Friday, October 10, 2008

NGS - Your software is here too!

A long overdue action on me was to assist David to get the NGS Software published correctly. The WLCG software already has the architecture for .list files to be created by the SGM users, but the NGS relies on parsing the contents of /usr/ngs

I'll admit to being totally confused by the interactions of the various BDII components - they are horribly complex and interwoven collection of scripts / providers / plugins / programs. I understand that counselling is available for those who spend too long working with them.

anyway - attempts to get a new plugin to simply provide the NGS software failed horribly and I ended up patching /opt/lcg/libexec/lcg-info-dynamic-software


--- lcg-info-dynamic-software.orig 2007-11-22 14:25:02.000000000 +0000
+++ lcg-info-dynamic-software 2008-10-10 22:02:15.000000000 +0100
@@ -1,8 +1,10 @@
#!/usr/bin/perl -w

use strict;
+use IO::Dir;

my $path="/opt/edg/var/info";
+my $ngspath="/usr/ngs";
my @output; # ldif output that is sent to std out.
my @dirs; # The contents of the path
my @ldif_file; # Content of the static ldif file
@@ -23,7 +25,7 @@
exit 1
}

-#Finds the installed software
+#Finds the installed software (glite)
@dirs=`ls $path`;
foreach(@dirs){
chomp;
@@ -40,6 +42,13 @@
}
}

+# Do the same for the NGS software
+my @tags = sort grep { /^[A-Z0-9]+_?/ } ( IO::Dir->new($ngspath)->read );
+for my $t (@tags) {
+ push @exp_soft, "GlueHostApplicationSoftwareRunTimeEnvironment: NGS-$t\n";
+ push @exp_soft, "GlueHostApplicationSoftwareRunTimeEnvironment: $t\n";
+}
+
#Produces the output from the static ldif file and the install software.
for (@ldif_file){
if(/dn:\s+GlueSubClusterUniqueID=/){

No comments: