Integration Scripts
Please take a look in the examples of the
integration procedure page.
Information Format
Most of the scripts require information to be provided to them in the form of a file containing a list of packages. The format used to store this information in a file is
package-name|package-version|etics-name|etics-version|*
Create gLite Repository
This script is the preferred method to create/update repositories for gLite 3.1 releases.
The Create gLite Repository is essentially a wrapper script for all the scripts below. The only additional functionality it provides is that it copies the packages from the
ETICS repository into the YUM repository. It first checks the list before checking that the packages exist in the
ETICS repository. If this is successful it will then create the metapackage and copy everything to the YUM repository location and generate the YUM repository. After the repository has been generated it will do a test install of the metapackage. An optional update directory can also be specified. If the package doesn't already exist in the main-directory, it will be added to the update-directory. The script has the gLite repository structure embedded.
The repotype parameter is either cert, pps or prod.
Usage: create-glite-repository -p platform -l list -v version -d directory -r repotype
Examples:
create-glite-repository -p slc4_ia32_gcc346 -l glite-WN -v 3.1.0-3 -d /afs/cern.ch/project/gd/www/glite/prepare -r prod
create-glite-repository -p slc4_ia32_gcc346 -l PPS-glite-WN -v 3.1.0-4 -d /afs/cern.ch/project/gd/www/glite/prepare -r pps
create-glite-repository -p slc4_ia32_gcc346 -l cert-glite-WMS -v 3.1.0-4 -d /afs/cern.ch/project/gd/www/glite/public -r cert
One should take into concideration that there is a small rpm repository maintained by the integration team, outside of the
ETICS repository, serving such rpm packages that are not available in
ETICS. The location of that repository is :
/afs/cern.ch/project/gd/www/integration/repository/
Whenever an rpm package is found in the integration repository it is preferred over the
ETICS repository as the primary source of that package. The script outputs a warning whenever a package is picked from the integration repository.
Check List
The check list script will check the file for duplicate enteries and any spaces which could cause errors in the other scripts.
Usage: check-list -l list
Create Metapackage
The create meatpackage script will generate a metapackage according to the information given in the list. Any package identified as first level dependencies will be added as a dependency of the metapackage. The version must be specified in the form x.y.z-a. An optional fixme file can be used to addational lines to the spec file that may be required to workaround a problems. An example would be be to add a provides, requires or obsoletes line.
Usage: create-metapackage -l list -v version [-f fixme]
Update Version
The update version script will update the version for a specific package name found in the file. Multiple files can be specified inorder to do a bulk update.
Usage: update-version -n package -v version lists
Check ETICS Repository
The check
ETICS repository script will check to see if the packages specified in the list are present in the
ETICS repository. It will print the locations to stdout.
Usage: check-etics-repository -p platform -a artifact -l list
Generate YUM Repository
The Generate YUM Repository will generate the YUM repository. The script requires the location of the repository and any subdirectories which are used.
Usage: generate-yum-repository -d directory sub-directories
Check Install
The Check Install script will do a simulated install of the a package.
Usage: check-install -p package -u yum-url
If running as a non-root user eg.
glbuild the follow line will be required in the /etc/sudoers file.
glbuild ALL=NOPASSWD: /usr/bin/yum -c /tmp/yum/yum.conf -y --tsflags=test install *
Create RPM Repository
The create RPM Repository is essentially a wrapper script for all the above scripts. The only additional functionality it provides is that it copies the packages from the
ETICS repository into the YUM repository. It first checks the list before checking that the packages exist in the
ETICS repository. If this is successful it will then create the metapackage and copy everything to the YUM repository location and generate the YUM repository. After the repository has been generated it will do a test install of the metapackage. An optional update directory can also be specified. If the package doesn't already exist in the main-directory, it will be added to the update-directory.
Usage: create-rpm-repository -p platform -l list -v version -d directory -n main-directory [-u update-directory ]
Create Report
The create report script runs the
check-etics-repository script and produces a html report which is stored in AFS. This report is used as part of the integration dashboard.
Usage: create-report -p platform -l list
Get Patch
Get Patch
screen scraps the from the Savannah pathc the listed rpm. It will check whether these packages exist in the
ETICS repository and provide the information in the list format to stdout.
Usage: get-patch -p patch number
Move Patch
The move patch script will move a patch through the various states as defined in the integration process. This operation can be done on multiple patches simultaneously. The states available are
cert,
certified,
pps, _prod, _rejected,
obsolete.
Usage: move-patch -s state -r release patches
- cert
- Checks to see if all the packages exist in the ETICS repository and if so copies them to the certification repository under patches/patchnumber.
- certified
- Move the patch to the certified direcotory.
- pps
- If the patch is in certified, moves it into the PPS updates repository.
- prod
- If the patch is in certified, moves it into the Production updates repository.
- rejected/obsolete
- Removes the patch from all areas a puts it in the rejected/obsolete directory.
Check Version
The Check Version script will check to see if any versions of packages specified in a patch are newer that those given in a list.
Usage: check-version -p patch lists
Report
The report cgi is used to run the integration dashboard.
/afs/cern.ch/project/gd/www/cgi-bin/reports.cgi
Status
The status-cron-job is run every hour by Laurence Field to refresh the status of the integration dashboard.
status-cron-job