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
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2007-07-30 - JuhaHerrala
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EGEE All webs login

This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Ask a support question or Send feedback