X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfatables%2Fcommands%2FList.py;h=70d720649d59625037a5f9dcc4509f1899cb6fbc;hb=bfcea75fd4f7d91b186f4f0e479db0e6f0a231ae;hp=b841a933580ac36140cf8d371531089fab19e750;hpb=85df5980e422a31f1cc00c81a56ab06145cdee5b;p=sfa.git diff --git a/sfatables/commands/List.py b/sfatables/commands/List.py index b841a933..70d72064 100644 --- a/sfatables/commands/List.py +++ b/sfatables/commands/List.py @@ -1,19 +1,19 @@ import os, time import libxml2 -import pdb from sfatables.globals import * 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 +30,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 +68,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 +80,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() - +