p = xmldoc.xpathNewContext()
supplied_arguments = options.arguments
- element = options.element
+ if (hasattr(options,'element') and options.element):
+ element = options.element
+ else:
+ element='*'
+
for option in supplied_arguments:
option_name = option['name']
option_value = getattr(options,option_name)
if (hasattr(options,option_name)):
- context = p.xpathEval("//rule[@element='%s' or @element='*']/argument[name='%s']"%element, option_name)
+ context = p.xpathEval("//rule[@element='%s' or @element='*']/argument[name='%s']"%(element, option_name))
if (not context):
- raise Exception('Unknown option %s for match %s'%(option,option['name']))
+ raise Exception('Unknown option %s for match %s and element %s'%(option,option['name'], element))
else:
# Add the value of option
valueNode = libxml2.newNode('value')
<match name="hrn">
<!-- Empty context. We _always_ get the hrn of the current user -->
+ <rule element='*'>
<context select="//sfa/current/user@hrn"/>
- <rule>
<argument>
<name>user-hrn</name>
<help>HRN of the user requesting resouces</help>
<operand>HRN</operand>
</argument>
- </rule>
<processor filename="hrn.xsl"/>
+ </rule>
</match>
target_parser = create_parser_xml_ext(target_dict)
targets_str = ",".join(target_dict.keys())
target_parser.add_option('-j','--jump',dest='name',help='Target name (one of %s)'%targets, metavar = 'TARGET')
- target_parser.add_option('-e','--element',dest='element',help='Element name'%targets, metavar = 'ELEMENT')
+ target_parser.add_option('-e','--element',dest='element',help='Element name', metavar = 'ELEMENT')
(target_options, args) = target_parser.parse_args(pargs[2])
try:
name = target_options.name
<target name="RESTRICT_SLICE_DOMAIN">
<rule element="node">
- <!-- The context is empty, since this target does not require any input from SFA -->
- <context select=""/>
+ <!-- The context is empty, since this target does not require any input from SFA -->
+ <context select=""/>
<argument>
<name>whitelist</name>
<help>Prefix of nodes to whitelist for this match.</help>
<help>Prefix of nodes to blacklist for this match.</help>
<operand>PREFIX</operand>
</argument>
- <processor filename="restrict_to_nodes.xsl"/>
+ <processor filename="restrict_to_nodes.xsl"/>
</rule>
</target>