X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfatables%2Fcommands%2FList.py;h=95d20381d0419d714ed54e7419f4b49b7280ceb1;hb=56c83fbbe57587bc321f73b1ca31cc3d592a707e;hp=b841a933580ac36140cf8d371531089fab19e750;hpb=85df5980e422a31f1cc00c81a56ab06145cdee5b;p=sfa.git diff --git a/sfatables/commands/List.py b/sfatables/commands/List.py index b841a933..95d20381 100644 --- a/sfatables/commands/List.py +++ b/sfatables/commands/List.py @@ -7,13 +7,14 @@ from sfatables.pretty import Pretty from sfatables.command import Command class List(Command): - options = [('-L','--list')] - help = 'List a chain' - key='list_rule' - matches = False - targets = False - + def __init__(self): + self.options = [('-L','--list')] + self.help = 'List a chain' + self.key='list_rule' + self.matches = False + self.targets = False + return def get_info(self, type, xmlextension_path): @@ -30,15 +31,18 @@ class List(Command): if (len(element_nodes)>1): raise Exception("Invalid rule %s contains multiple elements."%xmlextension_path) - element = element_nodes[0].content + element = [] + argument_str = "" + if element_nodes: + element = element_nodes[0].content - names = [n.content for n in name_nodes] - values = [v.content for v in value_nodes] + names = [n.content for n in name_nodes] + values = [v.content for v in value_nodes] - name_values = zip(names,values) - name_value_pairs = map(lambda (n,v):n+'='+v, name_values) + name_values = zip(names,values) + name_value_pairs = map(lambda (n,v):n+'='+v, name_values) - argument_str = ",".join(name_value_pairs) + argument_str = ",".join(name_value_pairs) p.xpathFreeContext() xmldoc.freeDoc() @@ -65,7 +69,7 @@ class List(Command): return chain = command_options.args[0] - chain_dir = sfatables_config + "/" + chain + chain_dir = os.path.join(sfatables_config, chain) rule_list = self.get_rule_list(chain_dir) @@ -77,16 +81,20 @@ class List(Command): match_path = sfatables_config + '/' + chain + '/' + match_file target_path = sfatables_config + '/' + chain + '/' + target_file - + match_info = self.get_info ('match',match_path) target_info = self.get_info ('target',target_path) - pretty.push_row(["%d"%number, match_info['name'], match_info['arguments'], target_info['name'], target_info['element'], target_info['arguments']]) - - + pretty.push_row(["%d"%number, + match_info['name'], + match_info['arguments'], + target_info['name'], + target_info['element'], + target_info['arguments']]) + pretty.pprint() - +