a complex example -- query a job within given submit time and given exit code
authorAleš Křenek <ljocha@ics.muni.cz>
Fri, 7 Aug 2009 14:00:04 +0000 (14:00 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Fri, 7 Aug 2009 14:00:04 +0000 (14:00 +0000)
org.glite.lb.ws-test/examples/ws_comlex.pl [new file with mode: 0755]

diff --git a/org.glite.lb.ws-test/examples/ws_comlex.pl b/org.glite.lb.ws-test/examples/ws_comlex.pl
new file mode 100755 (executable)
index 0000000..7c45b9b
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+# version known to support enough from document/literal to work
+use SOAP::Lite 0.69;
+
+use Data::Dumper;
+
+$ENV{HTTPS_CA_DIR}='/etc/grid-security/certificates';
+$ENV{HTTPS_VERSION}='3';
+
+$ENV{HTTPS_CA_FILE}= $ENV{HTTPS_CERT_FILE} = $ENV{HTTPS_KEY_FILE} =
+       $ENV{X509_USER_PROXY} ? $ENV{X509_USER_PROXY} : "/tmp/x509up_u$<";
+
+
+$srv = shift;
+$when = shift;
+
+die "usage: $0 service when\n" unless $when;
+
+$c = SOAP::Lite
+       -> uri('http://glite.org/wsdl/services/lb')
+       -> proxy($srv) ;
+
+
+# TODO: replace with $srv/lb/?wsdl once it works
+service $c 'http://egee.cesnet.cz/en/WSDL/HEAD/LB.wsdl';
+
+$c->serializer->register_ns('http://glite.org/wsdl/types/lb','lbt');
+
+ns $c 'http://glite.org/wsdl/elements/lb';
+
+$req = SOAP::Data->value(
+               SOAP::Data->name(conditions => \SOAP::Data->value(
+                       SOAP::Data->name(attr => 'TIME')->type('lbt:queryAttr'),
+                       SOAP::Data->name(statName => 'SUBMITTED')->type('lbt:statName'),
+                       SOAP::Data->name(record=>\SOAP::Data->value(
+                               SOAP::Data->name(op => 'LESS')->type('lbt:queryOp'),
+                               SOAP::Data->name(value1 => \SOAP::Data->value(
+                                       SOAP::Data->name(t => \SOAP::Data->value(
+                                               SOAP::Data->name(tvSec => $when+1),
+                                               SOAP::Data->name(tvUsec => 0),
+                                       ))
+                               ))
+                       ))
+               )),
+               SOAP::Data->name(conditions => \SOAP::Data->value(
+                       SOAP::Data->name(attr => 'EXITCODE')->type('lbt:queryAttr'),
+                       SOAP::Data->name(record=>\SOAP::Data->value(
+                               SOAP::Data->name(op => 'EQUAL')->type('lbt:queryOp'),
+                               SOAP::Data->name(value1 => \SOAP::Data->value(
+                                       SOAP::Data->name(i => $when)
+                               ))
+                       ))
+               )),
+               SOAP::Data->name(flags => \SOAP::Data->value(
+                               SOAP::Data->name(flag => 'CLASSADS')->type('lbt:jobFlagsValue'),
+                               SOAP::Data->name(flag => 'CHILDSTAT')->type('lbt:jobFlagsValue')
+               )),
+       );
+
+on_fault $c sub { print Dumper($_[1]->fault); $fault = 1; };
+
+$resp = $c -> QueryJobs($req);
+
+@res = $resp->paramsout;
+
+print Dumper(@res),"\n";
+