Version 4 (modified by Antoine de Torcy, 7 years ago) (diff)

a couple minor edits here and there

GENI Storage and Archive Service (GSAS) Descriptor Processing

Trying out the existing demo

This demo is available to anyone with an iRODS account on


It all happens in /geniRenci/home/public/md_tests/ . If a file is uploaded under that collection with a filename matching one of the GENI Object Descriptor XML files ( ), the file's content is parsed and turned into iRODS metadata that gets associated to the file (object) itself.


  • First you will need the GSAS descriptor files. Go to: , click on one or more of the five v1.1 examples. Click on the filename to see its contents (which will become iRODS metadata) and from there click 'original format' (bottom of page) to download it onto your desktop. You need to have it on your desktop to later upload it into iRODS.
  • If you are familiar with using iDrop-web you can speed through the navigation steps below.
  • Drill down to /geniRenci/home/public/md_tests/examples/ from the left hand side tree and click on 'examples' to make sure you're in that collection.
  • Click 'New folder' to create your own collection under examples (since multiple users will be uploading the same files). You should now be in that collection.
  • Click 'Upload' from the collection's toolbar on the right and pick one of the xml descriptor files you downloaded from GSAS (Artifact1.xml, Experiment1.xml, Step1.xml, project1.xml, projectSerialized.xml)
  • If all goes well the object should now show up under your collection in the left hand side tree. Click the on object and then click its 'Metadata' tab.
  • With any other file than those five no metadata is extracted upon upload.

Deploying this on your own iRODS server

  • This assumes that you are the administrator of an iRODS server. You might also need unix admin privilege if missing packages have to be installed. This set of tools is a work in progress and should be considered experimental. Having said that you are welcome to try it out on your own iRODS server, and certainly welcome to improve on it.
  • You will need to enable the XML iRODS module. First make sure that libxml2 and libxslt (along with their respective *-dev or *-devel packages, for headers) are installed on the host where your iRODS server is running. See comments in iRODS/modules/XML/Makefile, lines 40-52.
  • Enable the XML module by setting 'enabled: yes' in iRODS/modules/XML/info.txt. Then run './scripts/configure' and 'make clean; make' from your iRODS top level directory.
  • Download, core.dvm, and geniObject.xsl, attached below, to your desktop.
  • Because this demo (in its current form) works in a given collection you need to decide what that collection will be and create it if needed. Upload geniObject.xsl into your iRODS instance and make it public readable (ichmod read public /your_zone/.../geniObject.xsl).
  • Now edit and at line 55 replace '*xsltObjPath="/geniRenci/home/public/md_tests/files/geniObject.xsl"' with the iRODS path of your geniObject.xsl. You also need to edit the conditions of the acPostProcForXXX rules so that they use your own collection instead of /geniRenci/home/public/md_tests/ in ($objPath like "/geniRenci/home/public/md_tests/*"). There should be 3 substitutions to make: line 1, 14 and 30.
  • Add and core.dvm to your iRODS/server/config/reConfigs/ directory. This new version of core.dvm should replace your existing one.
  • Edit your iRODS/server/config/server.config as follows (geni listed first, no space after the comma). This will add to your server's rule set and the geni rules will be tried before those in core.
    #reRuleSet   core
    reRuleSet   geni,core
  • You should be all set. No need to recompile or restart iRODS here. Try uploading a file in your demo collection and cross your fingers. If you don't get any rule engine error check the new object's metadata. Upon success your latest iRODS/server/log/rodsLog.YYYY.MM.DD should mention: [acGeniMetadataExtract] Added metadata to /your_zone/..../blah.xml. Otherwise your current rodsLog would also be the first place to look for what went wrong.

Attachments (4)

Download all attachments as: .zip