Bug 743625 - Bad type of value of some keys in job Classads from Aviary
Summary: Bad type of value of some keys in job Classads from Aviary
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: condor-aviary
Version: Development
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: 2.1
: ---
Assignee: Pete MacKinnon
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-05 14:42 UTC by Daniel Horák
Modified: 2011-10-05 21:02 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-10-05 21:02:39 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Daniel Horák 2011-10-05 14:42:24 UTC
Description of problem:
  Aviary return some values of keys (in job Classads) as type 'text' (<class 'suds.sax.text.Text'>) instead of 'int' or 'float'.
  They are keys: 'currenttime', 'remotesyscpu', 'rank', 'remoteusercpu', 'requestdisk', 'localsyscpu', 'remotewallclocktime', 'localusercpu', 'requestmemory' and maybe other.


Version-Release number of selected component (if applicable):
  condor-7.6.4-0.6.el5
  condor-classads-7.6.4-0.6.el5
  python-condorutils-1.5-4.el5
  condor-qmf-7.6.4-0.6.el5
  condor-aviary-7.6.4-0.6.el5


How reproducible:
100%


Actual results:
------------------------------------------------------------------
Key: 'currenttime'
	CMD_TYPE:      'time()' (<type 'str'>)
	QMF_TYPE:      '1317816187' (<type 'int'>)
	AVIARY_TYPE:   '1317816188' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'remotesyscpu'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'rank'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'remoteusercpu'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'requestdisk'
	CMD_TYPE:      'DiskUsage' (<type 'str'>)
	QMF_TYPE:      '22' (<type 'int'>)
	AVIARY_TYPE:   '22' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'localsyscpu'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'remotewallclocktime'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'localusercpu'
	CMD_TYPE:      '0.0' (<type 'str'>)
	QMF_TYPE:      '0.0' (<type 'float'>)
	AVIARY_TYPE:   '0.000000' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------
Key: 'requestmemory'
	CMD_TYPE:      'ceiling(ifThenElse(JobVMMemory =!= undefined,JobVMMemory,ImageSize / 1024.000000))' (<type 'str'>)
	QMF_TYPE:      '1' (<type 'int'>)
	AVIARY_TYPE:   '1' (<class 'suds.sax.text.Text'>)
------------------------------------------------------------------


Expected results:
  Output of AVIARY should be the same (or similar) to QMF.

Comment 1 Pete MacKinnon 2011-10-05 21:02:39 UTC
This behaviour is by design. Aviary carries a different type encoding in its API which is more general. The cases where the QMF API gets tangled up is in the representation of Condor ClassAd expressions. In QMF, these have to be denoted out-of-band using a verbose descriptor tag. Aviary addresses this by treating every attribute value as a string with an accompanying type enumeration. These enumerations are FLOAT, INTEGER, EXPRESSION, BOOLEAN, etc.

Also, note that there is no requirement that Aviary and QMF have parity in their type encoding of ClassAd values (just that the type can be inferred or declared), so not sure what this test is all about.


Note You need to log in before you can comment on or make changes to this bug.