Public Types | Public Member Functions | Protected Attributes

glite::jdl::ExpDagAd Class Reference

Provides a representation of the job description in the JDL language. More...

#include <glite/jdl/ExpDagAd.h>

Public Types

enum  attribute {
  EDG_JOBID, VIRTUAL_ORGANISATION, MYPROXY_SERVER, SEQUENCE_CODE,
  ISB_DEST_URI, SUBMIT_TO
}
enum  multiAttribute { INPUTSB, ZIPPED_ISB }
enum  level {
  CURRENT, SUBMISSION, NO_NODES, MULTI_LINES,
  RESTORED
}

Public Member Functions

std::string toString (const level &lev=CURRENT)
std::vector< std::string > getSubmissionStrings (std::vector< std::string > *jobids=NULL)
std::string jobid2node (const std::string &jobid)
Constructors/Destructor

 ExpDagAd (const std::string &jdl)
 ExpDagAd (std::ifstream &jdl_in)
 ExpDagAd (const ExpDagAd &dag)
 ExpDagAd (Ad *ad)
 ExpDagAd (const classad::ClassAd &classAd)
void operator= (const ExpDagAd &dag)
 ExpDagAd (DAGAd *ad)
virtual ~ExpDagAd () throw ()
ExpDagAdcheck ()
Has attribute

bool hasAttribute (const std::string &attr_name)
bool hasNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name)
bool hasNodeAttribute (const std::string &node, const std::string &attr_name)
Node Replacing

void replaceNode (const glite::jobid::JobId &nodeId, NodeAd &nodeAd)
void replaceNode (const std::string &nodeName, NodeAd &nodeAd)
setNodeAttribute

void setNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name, const std::string &attr_value)
void setNodeAttribute (const std::string &node, const std::string &attr_name, const std::string &attr_value)
void setNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name, int &attr_value)
void setNodeAttribute (const std::string &node, const std::string &attr_name, int &attr_value)
void setNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name, bool &attr_value)
void setNodeAttribute (const std::string &node, const std::string &attr_name, bool &attr_value)
void setNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name, const std::vector< std::string > &attr_value)
void setNodeAttribute (const std::string &node, const std::string &attr_name, const std::vector< std::string > &attr_value)
getNode methods

NodeAd getNode (const glite::jobid::JobId &nodeId)
NodeAd getNode (const std::string &nodeName)
std::vector< std::string > getNodeStringValue (const glite::jobid::JobId &node, const std::string &attr_name)
std::vector< std::string > getNodeStringValue (const std::string &node, const std::string &attr_name)
int getNodeInt (const glite::jobid::JobId &node, const std::string &attr_name)
int getNodeInt (const std::string &node, const std::string &attr_name)
bool getNodeBool (const glite::jobid::JobId &node, const std::string &attr_name)
bool getNodeBool (const std::string &node, const std::string &attr_name)
std::string getNodeAttribute (const std::string &node, const std::string &attr_name)
std::vector< std::pair
< std::string,
classad::ExprTree * > > 
getSubAttributes (const std::string &attr_name)
std::vector< std::string > getNodes ()
Del/Remove

void delNodeAttribute (const glite::jobid::JobId &node, const std::string &attr_name)
void delNodeAttribute (const std::string &node, const std::string &attr_name)
bool removeAttribute (attribute attr_name)
bool removeAttribute (const std::string &attr_name)
Miscellanous methods

void getJobIdStruct (JobIdStruct &jobIdStruct)
std::map< std::string,
std::string > 
getJobIdMap ()
bool gettoBretrieved ()
ExtractedAdgetExtractedAd ()
void inherit (const std::string &attr_name)
void setLocalAccess (bool lookInto)
void expand ()
std::string showDependencies ()
get Attributes

std::string getAttribute (attribute attr_name)
std::string getString (const std::string &attr_name)
bool getBool (const std::string &attr_name)
Ad getAttributeAd (const std::string &attr_name)
std::vector< std::string > getInputSandbox ()
classad::Value getTypeValue (const std::string &attr_name)
std::vector< std::string > getStringValue (const std::string &attr_name)
std::vector< std::string > getAttribute (multiAttribute attr_name)
set Attributes

void setAttribute (attribute attr_name, const std::string &attr_value)
void setAttribute (multiAttribute attr_name, const std::vector< std::string > &attr_values)
std::size_t size ()
default values

const std::string getDefaultRank ()
const std::string getDefaultReq ()
void setDefaultRank (const std::string &attr_value)
void setDefaultReq (const std::string &attr_value)
void setDefaultRank (classad::ExprTree *attr_value)
void setDefaultReq (classad::ExprTree *attr_value)
void setDefaultValues (bool val)
Warnings Management

bool hasWarnings ()
std::vector< std::string > getWarnings ()
void addWarning (const std::string &msg)
void addWarnings (const std::string &nodeName, Ad *ad)

Protected Attributes

boost::shared_ptr
< glite::jdl::DAGAd
dagad

Detailed Description

Provides a representation of the job description in the JDL language.

Provide a Userinterface-friendly utilisation for DagAd class for the WMS environment The user is able to create , modify and check a DagAd in order to prepare it to the submission and to perform other simple operations

Version:
0.1
Date:
18 7 2003
Author:
Alessandro Maraschini <alessandro.maraschini@datamat.it>

Member Enumeration Documentation

Possible attribute (of string type) to be set/get/removed from instance

Enumerator:
EDG_JOBID 

identifier of the Job

VIRTUAL_ORGANISATION 

Virtual Organisation related to the user

MYPROXY_SERVER 

certificate stored with MyProxy

SEQUENCE_CODE 

Sequence code provided by LB

ISB_DEST_URI 

InputSandbox common path where job files are stored

SUBMIT_TO 

Resource where to direclty submit the job

Enumerator:
CURRENT 

Representation up-to-date

SUBMISSION 

Representation ready for submission (all checks performed)

NO_NODES 

No information about nodes(attribute hidden)

MULTI_LINES 

One attribute per line representation

RESTORED 

Deprecated

Possible attribute (of vector of string type)to be set/get/removed from instance

Enumerator:
INPUTSB 

InputSandbox

ZIPPED_ISB 

Zipped InputSandbox


Constructor & Destructor Documentation

glite::jdl::ExpDagAd::ExpDagAd ( const std::string &  jdl  ) 

Constructor from String

glite::jdl::ExpDagAd::ExpDagAd ( std::ifstream &  jdl_in  ) 

Constructor from Stream

glite::jdl::ExpDagAd::ExpDagAd ( const ExpDagAd dag  ) 

Constructor Copy

glite::jdl::ExpDagAd::ExpDagAd ( Ad ad  ) 

Constructor From Ad

glite::jdl::ExpDagAd::ExpDagAd ( const classad::ClassAd &  classAd  ) 

Constructor From classad

glite::jdl::ExpDagAd::ExpDagAd ( DAGAd ad  ) 

Constructor from DagAd

virtual glite::jdl::ExpDagAd::~ExpDagAd (  )  throw () [virtual]

destructor


Member Function Documentation

void glite::jdl::ExpDagAd::addWarning ( const std::string &  msg  ) 

Add a new warning message to Warnings may be due to usage of deprecated attributes, methods, procedures.

See also:
hasWarnings
getWarnings
Parameters:
msg the warning message to be appended
void glite::jdl::ExpDagAd::addWarnings ( const std::string &  nodeName,
Ad ad 
)

Add all warnings (if any) from a specified ad

See also:
hasWarnings
getWarnings
addWarnings
Parameters:
nodeName the name of the node
ad the ad where to retrieves warning messages to be appended
ExpDagAd* glite::jdl::ExpDagAd::check (  ) 

Check whether the instance can be submitted or not, verifying all the inserted attribute and their values return the parsed (possibly internally modified ExpDagAd)

void glite::jdl::ExpDagAd::delNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name 
)

Delete the specified attribute for the selected node

Parameters:
node the jobid to be analized
attr_name the attribute to be removed
void glite::jdl::ExpDagAd::delNodeAttribute ( const std::string &  node,
const std::string &  attr_name 
)

Remove (if present) the attribute from the specified nde

Parameters:
node the name of the node to be looked for
attr_name the name of the attributeto be retrieved
void glite::jdl::ExpDagAd::expand (  ) 

Expand the "nodes" attribute into a vector of JobAds Load jdls for files-nodes type

std::string glite::jdl::ExpDagAd::getAttribute ( attribute  attr_name  ) 

Retrieve the value of an attribute in the DagAd

Parameters:
attr_name the name of the attribute to be retrieved
Returns:
the string representation of the value
std::vector<std::string> glite::jdl::ExpDagAd::getAttribute ( multiAttribute  attr_name  ) 

DEPRECATED Set the value of a vector of strings attribute in the DagAd

Parameters:
attr_name the name of the attribute to be set
Returns:
the multiAttribute of the value to be retrieved as a vector of strings
Ad glite::jdl::ExpDagAd::getAttributeAd ( const std::string &  attr_name  ) 

Retrieve the value of an Ad attribute in the DagAd

Parameters:
attr_name the name of the attribute to be retrieved
Returns:
the Ad of the value (if of Ad type)
bool glite::jdl::ExpDagAd::getBool ( const std::string &  attr_name  ) 

Retrieve the boolean value of an attribute in the DagAd

Parameters:
attr_name the name of the attribute to be retrieved
Returns:
the boolean value of the attribute
const std::string glite::jdl::ExpDagAd::getDefaultRank (  ) 

Retrieve the default Rank value as set by the user

Returns:
default rank string representation (or empty string if not set)
const std::string glite::jdl::ExpDagAd::getDefaultReq (  ) 

Retrieve the default Requrirements value as set by the user

Returns:
default requirements string representation (or empty string if not set)
ExtractedAd* glite::jdl::ExpDagAd::getExtractedAd (  ) 

Retrieve the local files to be for the current instance

Returns:
a pointer to an ExtractedAd instance, containing all local files to be extracted
std::vector<std::string> glite::jdl::ExpDagAd::getInputSandbox (  ) 

Retrieve the list of InputSandbox values of the DagAd

Returns:
the list containing all the string InputSandbox values
std::map<std::string,std::string> glite::jdl::ExpDagAd::getJobIdMap (  ) 

Retrieve the structure of the DagAd as a map of jobid,node all jobids must be already inserted (exception thrown otherwise)

Returns:
a map of jobid,node representing the structure of the current DagAd
void glite::jdl::ExpDagAd::getJobIdStruct ( JobIdStruct jobIdStruct  ) 

Retrieve the structure of the DagAd as in the current position. The first item is the Dag itself which has no node (NULL) and which contains all its children info inside all jobids must be already inserted (exception thrown otherwise)

Parameters:
jobIdStruct the JobId structure of the DagAd.
NodeAd glite::jdl::ExpDagAd::getNode ( const glite::jobid::JobId &  nodeId  ) 

Retrieve the NodeAd corresponding to the searched node

Parameters:
nodeId the jobid of the node to be retrieved
Returns:
the NodeAd corresponding for the seeked node
NodeAd glite::jdl::ExpDagAd::getNode ( const std::string &  nodeName  ) 

Retrieve the NodeAd corresponding to the searched node

Parameters:
nodeName the name of the node to be retrieved
Returns:
the NodeAd corresponding for the seeked node
std::string glite::jdl::ExpDagAd::getNodeAttribute ( const std::string &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string value for the specified attribute

Parameters:
node the name of the node to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the value of the specified string attribute
bool glite::jdl::ExpDagAd::getNodeBool ( const glite::jobid::JobId &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the jobid to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the boolean value for the specified node and attribute
bool glite::jdl::ExpDagAd::getNodeBool ( const std::string &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the name of the node to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the boolean value for the specified node and attribute
int glite::jdl::ExpDagAd::getNodeInt ( const glite::jobid::JobId &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the jobid to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the integer value for the specified node and attribute
int glite::jdl::ExpDagAd::getNodeInt ( const std::string &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the name of the node to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the integer value for the specified node and attribute
std::vector<std::string> glite::jdl::ExpDagAd::getNodes (  ) 

Retrieve the DagAd nodes names

Returns:
a vector of string containing all the dag nodes names
std::vector< std::string > glite::jdl::ExpDagAd::getNodeStringValue ( const glite::jobid::JobId &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the jobid to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the values of the specified string attribute as a vector of strings
std::vector< std::string > glite::jdl::ExpDagAd::getNodeStringValue ( const std::string &  node,
const std::string &  attr_name 
)

Retrieve (if present) the string values for the specified attribute

Parameters:
node the name of the node to be looked for
attr_name the name of the attributeto be retrieved
Returns:
the values of the specified string attribute as a vector of strings
std::string glite::jdl::ExpDagAd::getString ( const std::string &  attr_name  ) 

Retrieve the string value of an attribute in the DagAd

Parameters:
attr_name the name of the attribute to be retrieved
Returns:
the string value of the needed attribute
std::vector<std::string> glite::jdl::ExpDagAd::getStringValue ( const std::string &  attr_name  ) 
std::vector< std::pair< std::string , classad::ExprTree* > > glite::jdl::ExpDagAd::getSubAttributes ( const std::string &  attr_name  ) 

Retrieve the DagAd nodes values of a specified attribute

Parameters:
attr_name the name of the attribute to be retrieved
Returns:
a vector of pairs. Each pair contain the string representation of the jobid and a deep copy of the Expression representing the value of attr_name for this sub-job
std::vector<std::string> glite::jdl::ExpDagAd::getSubmissionStrings ( std::vector< std::string > *  jobids = NULL  ) 

Check the node of the DagAd and retrieve their submission strings

Parameters:
jobids fill the vector with jobids value in the same order as returned submission strings
Returns:
a vector of DagAd node's submission strings
bool glite::jdl::ExpDagAd::gettoBretrieved (  )  [inline]

Return wheter are there any files to be retrieved This value has significant meaning only after a previous check

classad::Value glite::jdl::ExpDagAd::getTypeValue ( const std::string &  attr_name  ) 
std::vector<std::string> glite::jdl::ExpDagAd::getWarnings (  ) 

Retrieve all collected warnings Warnings may be due to usage of deprecated attributes, methods, procedures.

See also:
hasWarnings
addWarning
Returns:
a list of string, each one represent the warning message
bool glite::jdl::ExpDagAd::hasAttribute ( const std::string &  attr_name  ) 

Check if an attribute is present inside the DagAd

Parameters:
attr_name the name of the attribute to be looked for
Returns:
true if the attribute is prensent, false otherwise
bool glite::jdl::ExpDagAd::hasNodeAttribute ( const std::string &  node,
const std::string &  attr_name 
)

Check wheter the attribute has been already specified for the jobid

Parameters:
node the name of the node to be modified
attr_name the name of the attribute to be inserted
bool glite::jdl::ExpDagAd::hasNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name 
)

Check wheter the attribute has been already specified for the jobid

Parameters:
node the jobid of the node to be modified
attr_name the name of the attribute to be inserted
bool glite::jdl::ExpDagAd::hasWarnings (  ) 

Determine whether there are any warning. Warnings may be due to usage of deprecated attributes, methods, procedures.

See also:
getWarnings
addWarning
Returns:
true whether warnings have been found
void glite::jdl::ExpDagAd::inherit ( const std::string &  attr_name  ) 

Set an attribute to be inherited at once inside the ExpDagAd

Parameters:
attr_name the attribute to be inherited
std::string glite::jdl::ExpDagAd::jobid2node ( const std::string &  jobid  ) 

Retrieve the node for the specified Jobid

Parameters:
jobid the string representatio of the required jobid
void glite::jdl::ExpDagAd::operator= ( const ExpDagAd dag  ) 

Operator =

bool glite::jdl::ExpDagAd::removeAttribute ( attribute  attr_name  ) 

delete an attribue from the DagAd

Parameters:
attr_name the name of the attribute to be removed
Returns:
true if attribute successfully removed
bool glite::jdl::ExpDagAd::removeAttribute ( const std::string &  attr_name  ) 

delete an attribue from the DagAd

Parameters:
attr_name the name of the attribute to be removed
Returns:
true if attribute successfully removed
void glite::jdl::ExpDagAd::replaceNode ( const glite::jobid::JobId &  nodeId,
NodeAd nodeAd 
)

Replace the specified node with the gived NodeAd

Parameters:
nodeId the jobid of the node to be replaced
nodeAd the NodeAd to be set for the specified node
void glite::jdl::ExpDagAd::replaceNode ( const std::string &  nodeName,
NodeAd nodeAd 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
nodeName the name of the node to be replaced
nodeAd the NodeAd to be set for the specified node
void glite::jdl::ExpDagAd::setAttribute ( attribute  attr_name,
const std::string &  attr_value 
)

Set the string value of an attribute in the DagAd

Parameters:
attr_name the name of the attribute to be set
attr_value the attribute of the value to be set
void glite::jdl::ExpDagAd::setAttribute ( multiAttribute  attr_name,
const std::vector< std::string > &  attr_values 
)

Set the value of a vector of strings attribute in the DagAd

Parameters:
attr_name the name of the attribute to be set
attr_values the multiAttribute of the value to be set as a vector of strings
void glite::jdl::ExpDagAd::setDefaultRank ( const std::string &  attr_value  ) 

Set the default value for Rank attribute (take in consideration if not specified in JDL)

Parameters:
attr_value the value to be set to the default rank
void glite::jdl::ExpDagAd::setDefaultRank ( classad::ExprTree *  attr_value  ) 

Set the default value for Rank attribute (take in consideration if not specified in JDL)

Parameters:
attr_value the value to be set to the default rank
void glite::jdl::ExpDagAd::setDefaultReq ( const std::string &  attr_value  ) 

Set the default value for Requirements attribute (take in consideration if not specified in JDL)

Parameters:
attr_value the value to be set to the default requirements
void glite::jdl::ExpDagAd::setDefaultReq ( classad::ExprTree *  attr_value  ) 

Set the default value for Requirements attribute (take in consideration if not specified in JDL)

Parameters:
attr_value the value to be set to the default requirements
void glite::jdl::ExpDagAd::setDefaultValues ( bool  val  )  [inline]

Set the default values for UI manipulation such as: userTag UI node name

Parameters:
val whether to set (true) or not (false) such values while submitting
void glite::jdl::ExpDagAd::setLocalAccess ( bool  lookInto  ) 

If JobAd is used by a remove machine, it is impossible to look into the local hard-disk by default this parameter is set to true

Parameters:
lookInto allow all the check methods to access to the local hard disk (true) or skip the check (false)
void glite::jdl::ExpDagAd::setNodeAttribute ( const std::string &  node,
const std::string &  attr_name,
int &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the name of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the integer attribute to be inserted for the specified attribute
void glite::jdl::ExpDagAd::setNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name,
int &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the jobid of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the integer attribute to be inserted for the specified attribute
void glite::jdl::ExpDagAd::setNodeAttribute ( const std::string &  node,
const std::string &  attr_name,
const std::vector< std::string > &  attr_value 
)

Set a vector of strings for the specified attribute and node

Parameters:
node the name of the node to be modified
attr_name the attribute to be added
attr_value the list of values (expressed as a vector of strings) to be inserted
void glite::jdl::ExpDagAd::setNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name,
const std::string &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the jobid of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the string attribute to be inserted for the specified attribute
void glite::jdl::ExpDagAd::setNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name,
const std::vector< std::string > &  attr_value 
)

Set a vector of strings for the specified attribute and node

Parameters:
node the jobid to be modified
attr_name the attribute to be added
attr_value the list of values (expressed as a vector of strings) to be inserted
void glite::jdl::ExpDagAd::setNodeAttribute ( const std::string &  node,
const std::string &  attr_name,
const std::string &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the name of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the string attribute to be inserted for the specified attribute
void glite::jdl::ExpDagAd::setNodeAttribute ( const glite::jobid::JobId &  node,
const std::string &  attr_name,
bool &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the jobid of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the boolean attribute to be inserted for the specified attribute
void glite::jdl::ExpDagAd::setNodeAttribute ( const std::string &  node,
const std::string &  attr_name,
bool &  attr_value 
)

Set the couple attribute = value for the specified node inside the classad

Parameters:
node the name of the node to be modified
attr_name the name of the attribute to be inserted
attr_value the value of the boolean attribute to be inserted for the specified attribute
std::string glite::jdl::ExpDagAd::showDependencies (  ) 

Represent dependency by a formatted string

Returns:
dependency representation
std::size_t glite::jdl::ExpDagAd::size (  ) 

DagAd dimension retrieval

Returns:
the number of the sub-job belonging to the DagAd
std::string glite::jdl::ExpDagAd::toString ( const level lev = CURRENT  ) 

Return the string representation of the DagAd

Returns:
the ExpDagAd with the requested level string representation
Parameters:
lev one of the allowed level

Field Documentation

boost::shared_ptr<glite::jdl::DAGAd> glite::jdl::ExpDagAd::dagad [protected]

Internal DAGAd instance


The documentation for this class was generated from the following file: