<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:variable name="context-hrn" select="//request-context//hrn"/>
+ <xsl:variable name="context-hrn" select="//request-context/sfa/user/hrn"/>
<!-- Magic sauce -->
<xsl:apply-templates select="@* | node()"/>
</xsl:template>
- <xsl:template match="//request-context//user">
+ <xsl:template match="//match-context/argument[name='user-hrn']">
+ <xsl:value-of select="hrn"/>
<xsl:choose>
- <xsl:when test="starts-with($context-hrn, hrn)">
+ <xsl:when test="starts-with($context-hrn, value)">
<result verdict="True"/> <!--Match -->
</xsl:when>
<xsl:otherwise>
def main():
incoming = SFATablesRules('INCOMING')
- incoming.set_context({'sfa':{'user':{'hrn':'plc.princeton.sapanb'}}})
+ incoming.set_context({'sfa':{'user':{'hrn':'ple.princeton.sapanb'}}})
outgoing = SFATablesRules('OUTGOING')
print "%d rules loaded for INCOMING chain"%len(incoming.sorted_rule_list)
--- /dev/null
+<!-- run "runtime.py sfarspec" to apply current rule set to this file -->
+
+<RSpec>
+ <request>
+ <nodespec>
+ <node name="plc.princeton.planetlab-01"/>
+ <node name="plc.princeton.planetlab-02"/>
+ <node name="plc.princeton.planetlab-03"/>
+ <node name="plc.princeton.planetlab-04"/>
+ <node name="plc.tp.planetlab3"/>
+ </nodespec>
+ </request>
+</RSpec>
<!-- run "runtime.py sfarspec" to apply current rule set to this file -->
<RSpec>
+ <request-context><sfa><user><hrn>plc.princeton.sapanb</hrn></user></sfa></request-context>
+ <match-context><argument><name>user-hrn</name><value>plc.princeton.sapanb</value></argument></match-context>
<request>
<nodespec>
<node name="plc.princeton.planetlab-01"/>
# else rspec
if (self.match(rspec)):
+ print "Matched!"
return (True,self.wrap_up(self.target(rspec)))
else:
+ print "Not Matched!"
return (False,self.wrap_up(rspec))