Developer Info

From OPeNDAP Documentation
Revision as of 21:15, 23 December 2016 by Ndp (talk | contribs) (AWS Tips)

1 Developer Guidelines and Information

The OPeNDAP FAQ has a pretty good section on developer's questions.

2 General development information

These pages contain general information relevant to anyone working with our software:

3 OPeNDAP Workshops

  • The APAC/BOM Workshops: This workshop spanned several days and covered a number of topics, including information for SAs and Developers. Oct 2007.
  • ESIP Federation Server Workshop: This half-day workshop focused on server installation and configuration. Summer 2008
  • Server Functions: This one-day workshop is all about writing and debugging server-side functions. It also contains a wealth of information about Hyrax, the BES and debugging tricks for the server. Spring 2012. Updated Fall 2014 for presentation to Ocean Networks Canada.

4 OPeNDAP Development process information

These pages contain information about how we'd like people working with us to use our various on-line tools.

  • Hyrax GitHub Source Build This explains how to clone our software from GitHub and build our code using a shell like bash. It also explains how to build the BES and all of the Hyrax 'standard' handlers in one operation, as well as how to build just the parts you need without cloning the whole set of repos. Some experience with 'git submodule' will make this easier, although the page explains everything.
  • How to Plan a Release Sprint A general template for planning a release in Jira or the equivalent.
  • Making a Release. Once software is ready for distribution, use this checklist to make sure you do all of the steps needed to make a release.
  • Making RPM Distributions. Follow these steps to create an RPM distribution of the software.
  • Making a Release of OLFS. Follow these steps to create the three .jar files needed for the OLFS release. Includes information on how to build the OLFS and how to run the tests.
  • Bug Prioritization. How we prioritize bugs in our software.
4.1 Software process issues:

4.2 AWS Tips

4.2.1 Growing a CentOS Root Partition on an AWS EC2 Instance
  • Install the EPEL6 repo
  • Install the cloud-utils-growpart package:
[bash]# yum install cloud-utils-growpart
  • Determine the root partition device using the lsblk command:
[bash]# lsblk
xvda    202:0    0  150G  0 disk 
└─xvda1 202:1    0  8G  0 part /
  • Grow the root partition:
[bash]# growpart /dev/xdva 1
  • At this point lsblk will not show a change, but if you use parted you'll see that the deed has indeed been done:
[bash]# parted
GNU Parted 2.1
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                         
(parted) print                                                            
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 314572800s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End         Size        Type     File system  Flags
 1      2048s  314568764s  314566717s  primary  ext4         boot
  • The only thing remaining is to resize the filesystem. This will be done automatically by the cloud-init tools after a reboot:
[bash]#  reboot now
  • When the system is back up, login and use lsblk to confirm your change:
[bash]$ lsblk
xvda    202:0    0  150G  0 disk 
└─xvda1 202:1    0  150G  0 part /
4.2.2 How Shutoff the CentOS firewall

If you trust the AWS firewall, then you'll probably want to shut off the now redundant Linux firewall:

  1. Stop the ipchains service: service ipchains stop
  2. Stop the iptables service: service iptables stop
  3. Stop the ipchains service from starting when you restart the server: chkconfig ipchains off
  4. Stop the iptables service from starting when you restart the server: chkconfig iptables off


5.1 For Software Developers

5.1.1 BES Development Information

5.2 Reference documentation

6 Old information

Note: The following is all about using Subversion and is out of date as of November 2014 when we switched to git. There are still good ideas here...