Bug 709746

Summary: condor aviary overwrites "requirements" classad
Product: Red Hat Enterprise MRG Reporter: Martin Kudlej <mkudlej>
Component: condor-aviaryAssignee: Pete MacKinnon <pmackinn>
Status: CLOSED NOTABUG QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: matt, pmackinn
Target Milestone: 2.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-02 13:28:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Martin Kudlej 2011-06-01 14:41:16 UTC
Description of problem:
I've submitted jobs via condor aviary and I've found that it overwrites "Requirements" classad which I've put into additional attributes list.

I've submitted:
result = client.service.submitJob(\
      # the executable command,
      # some arguments for the command,
      # the submitter name,
      # initial working directory wwhere job will execute,
      # an arbitrary string identifying the target submission group,
      #executable
      # special resource requirements
        None, \ # or []
      # additional attributes
[(Attribute){
   name = "Requirements"
   type = "EXPRESSION"
   value = "(FileSystemDomain =!= UNDEFINED) && (Arch=!=UNDEFINED) && (OpSys=="WINNT51" || OpSys=="WINNT52" || OpSys=="WINNT60" || OpSys=="WINNT61")"
 }, (Attribute){
   name = "JobUniverse"
   type = "INTEGER"
   value = 5
 }, (Attribute){
   name = "WhenToTransferOutput"
   type = "STRING"
   value = "ON_EXIT"
 }, (Attribute){
   name = "ShouldTransferFiles"
   type = "STRING"
   value = "YES"
 }]
      )

and condor-aviary changed it into:
$  condor_q -l | grep -i "^req"
Requirements = true


Version-Release number of selected component (if applicable):
condor-7.6.1-0.8

How reproducible:
100%

Steps to Reproduce:
1. install condor-aviary
2. submit job via aviary with "Requirements" classad in "additional attributes" of submitJob function
3. check "Requirements" classad of that job via condor_q
  
Actual results:
submitJob function overwrites value of "Requirements" in "additional attributes" parameter of that function.

Expected results:
submitJob will not overwrite any classad from "additional attributes" parameter.

Comment 1 Pete MacKinnon 2011-06-02 13:28:10 UTC
This is a feature of the submission API. Since extra attributes could be used to perhaps inadvertently overwrite the basic attributes, it was deemed that this should be a conscious decision by the user.

Basic attributes are:
cmd (ATTR_JOB_CMD)
requirements (ATTR_REQUIREMENTS)
owner (ATTR_OWNER)
iwd (ATTR_JOB_IWD)
args (ATTR_JOB_ARGUMENTS1)

In order to send along extra attributes that explicitly override basic attributes you must set the allowOverrides attribute on SubmitJob to be "true" ("false" by default).

<job:SubmitJob allowOverrides="true">