a little nicer wrt pep8
[sfa.git] / sfatables / runtime.py
index e22967c..f773b0d 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 
 import sys
 import os
@@ -44,7 +44,7 @@ class SFATablesRules:
 
     def create_xml_node(self, name, context_dict):
         node = libxml2.newNode(name)
-        for k in context_dict.keys():
+        for k in list(context_dict.keys()):
             if (type(context_dict[k])==dict):
                 childNode = self.create_xml_node(k, context_dict[k])
                 node.addChild(childNode)
@@ -56,8 +56,8 @@ class SFATablesRules:
                 
     def add_request_context_to_rspec(self, doc):
         p = doc.xpathNewContext()
-        context = p.xpathEval("//RSpec")
-        if (not context):
+        context = p.xpathEval("//*")
+        if not context or context[0].name not in ['RSpec', 'rspec']:
             raise Exception('Request is not an rspec')
         else:
             # Add the request context
@@ -87,22 +87,22 @@ class SFATablesRules:
 
     def print_rules(self):
         for rule in self.sorted_rule_list:
-            print rule.processors
+            print(rule.processors)
 
 def main():
     incoming = SFATablesRules('INCOMING')
     incoming.set_context({'sfa':{'user':{'hrn':'plc.princeton.sapanb'}}})
 
     outgoing = SFATablesRules('OUTGOING')
-    print "%d rules loaded for INCOMING chain"%len(incoming.sorted_rule_list)
+    print("%d rules loaded for INCOMING chain"%len(incoming.sorted_rule_list))
     incoming.print_rules()
 
-    print "%d rules loaded for OUTGOING chain"%len(outgoing.sorted_rule_list)
+    print("%d rules loaded for OUTGOING chain"%len(outgoing.sorted_rule_list))
     outgoing.print_rules()
 
     rspec = open(sys.argv[1]).read()
     newrspec = incoming.apply(rspec)
-    print newrspec
+    print(newrspec)
     return
 
 if __name__=="__main__":