[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-users] stage executable and generate log using SOAP API



Matias Alberto Gavinowich wrote:
Hi,

I would like to see if you can give me a hint on this.

I've managed to transfer files to be used by my executable from a
program that accesses Condor by means of the SOAP API in the following
way (java code fragment follows, plase note how I transfer text1.txt):

                       Transaction xact = schedd.createTransaction();
                       xact.begin(30);
                       clusterId = xact.createCluster();
                       jobId = xact.createJob(clusterId);

                       //files to transfer
                       File[] files = {new File("resources/text1.txt")};
..............
                       xact.submit(clusterId, jobId, userName, universeType,
                                       executable,arguments,"(TRUE)",
extraAttributes, files);

However, I could not do that for executables (that is, I need them to
already be in the machine running the schedd). Specifying
transfer_executable to true does not solve what I want to do because
that relies on the executable already being in the host running
schedd, and I would like to get the executable from the computer
running the java program as I did with text1.txt.

Can this be done? I'd appreciate advice on how to do it.

You should be able to just add your executable to the "files" array and have it transferred along with your other input files.


Also, when sending jobs to Condor using the SOAP API. I've found out
that if I add a UserLog attribute to the ClassAd, I can get a log file
to be generated. However, that is only working for me if the user I
submit the job as (the one I specify as owner) has a user in the
computer running schedd. In that case, the log file is retrieved along
with the rest of the output files. If, on the contrary, I specify an
owner name which does not correspond to a user in the host running
schedd, no log file seems to be generated. I've tried this with no
path and with an absolute path for the log file.

Is that behavior by design? Can I specify an arbitrary owner name and
still get activity for the job logged somewhere?

This depends on your Condor configuration. By default, I believe, Condor will try to run your program as if it were the user you specified in the Owner attribute of your job. If the owner does not exist you probably don't see the log because your job is not running.

You need to have the owner exist as a user on the execute machine or configure Condor to use nobody users.

Best,


matt