Mailing List Archives
Authenticated access
|
|
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [HTCondor-users] Condor 8.5 SOAP Question
- Date: Tue, 27 Oct 2015 15:01:35 -0500 (CDT)
- From: Todd L Miller <tlmiller@xxxxxxxxxxx>
- Subject: Re: [HTCondor-users] Condor 8.5 SOAP Question
The related sample-code looks as follows:
Transaction transaction = scheduler.beginTransaction(30).getTransaction();
Integer clusterId = scheduler.newCluster(transaction).getInteger();
Integer jobId = scheduler.newJob(transaction, clusterId).getInteger();
ClassAdStructAndStatus classAdStructAndStatus = scheduler.getJobAd(transaction, clusterId, jobId);
I'm not familiar with the specifics of our SOAP implementation,
but the problem here may be that you're trying to get the job ad before
you've finished building it.
How is Condor supposed to know, who owns a job, if the 'Owner' ClassAd is
only defined in the ' createJobTemplate' which needs the jobId from
'newJob'?
As I understand it, all the newJob() does -- despite the name --
is allocate a new procID. At that point, the job ad is almost entirely
empty. (For non-SOAP connections, the job may already have an Owner
attribute, because the connection itself authenticates as a particular
Owner.)
The examples for SOAP I've seen either build a job ad by hand or
call createJobTemplate() to generate a job class ad. You then submit the
job ad you built and commit the transaction. To continue your example:
Transaction transaction = scheduler.beginTransaction(30).getTransaction();
Integer clusterId = scheduler.newCluster(transaction).getInteger();
Integer jobId = scheduler.newJob(transaction, clusterId).getInteger();
ClassAdStructAttr[] jobAd = { ownerAttr, cmdAttr, argsAttr };
schedd.submit(transaction, clusterId, jobId, jobAd);
schedd.commitTransaction(transaction)
where 'ownerAttr', 'cmdAttr', and 'argsAttr' are (example) ClassAdStructAttr
objects created however you find convenient.
Is there a way to define a default job-owner for SOAP?
If I recall correctly, you can configure HTCondor to generate an
Owner attribute for SOAP by using SSL and the HTCondor mapfile.
There's a fully-worked example at the following URL (although it
uses Axis rather than JAX-WS):
https://spinningmatt.wordpress.com/2009/11/02/submitting-a-workflow-to-condor-via-soap-using-java/
If you still see problems (or if you try with HTCondor 8.4 and it
works), please let us know, and we'll take a closer look to see if we
accidentally broke something. Thanks!
- ToddM