diff options
author | Rob Austein <sra@hactrn.net> | 2007-08-06 16:09:37 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-08-06 16:09:37 +0000 |
commit | 9ec0a1feaa1c9b407a2bed7cc01266887ab1b14e (patch) | |
tree | 3960d55d60556acf6cff6b4cfcf7283490d2e956 /scripts/irbe-cli.py | |
parent | 8becf9cf697252d70b65550ec45f9cc347c80c3d (diff) |
Checkpoint
svn path=/scripts/irbe-cli.py; revision=826
Diffstat (limited to 'scripts/irbe-cli.py')
-rwxr-xr-x | scripts/irbe-cli.py | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/scripts/irbe-cli.py b/scripts/irbe-cli.py index b2be9e16..5495c1e5 100755 --- a/scripts/irbe-cli.py +++ b/scripts/irbe-cli.py @@ -4,55 +4,60 @@ Command line program to simulate behavior of the IR back-end. """ -import glob, rpki.left_right, xml.sax, lxml.etree, lxml.sax, POW, POW.pkix, getopt, sys - -rng = lxml.etree.RelaxNG(lxml.etree.parse("left-right-schema.rng")) +import glob, rpki.left_right, rpki.relaxng, getopt, sys, lxml.etree class command(object): - options = () def getopt(self, argv): - if options: - opts, args = getopt.getopt(argv, "", [x[2:] for x in self.options]) + if self.options: + opts, args = getopt.getopt(argv, "", [x[2:] + "=" for x in self.options]) for o, a in opts: getattr(self, o[2:])(a) return args else: return argv - def self_id(self, arg): - self.self_id = arg + def process(self, msg): + msg.append(self.pdu) + def action(self, arg): + self.pdu.action = arg + self.pdu.type = "query" + def self_id(self, arg): + self.pdu.self_id = arg class help(command): - def run(self, msg): + options = () + + def process(self, msg): print "Usage:", sys.argv[0] for k,v in dispatch.iteritems(): - print " ".join((k,) + v.options) + print " ", " ".join((k,) + v.options) class self(command): options = ("--action", "--self_id", "--extension") def __init__(self): - self.extensions = {} + self.pdu = rpki.left_right.self_elt() def extension(self, arg): kv = arg.split(":", 1) - self.extensions[k] = v - - def run(self, msg): - pdu = rpki.left_right.self_elt() + self.pdu.extensions[k] = v - - dispatch = dict((x.__name__, x) for x in (help, self)) +rng = rpki.relaxng.RelaxNG("left-right-schema.rng") + msg = rpki.left_right.msg() argv = sys.argv[1:] while argv: - cmd = dispatch[argv[0]] - argv = getopt(argv[1:]) - cmd.run(msg) - + cmd = dispatch[argv[0]]() + argv = cmd.getopt(argv[1:]) + cmd.process(msg) + +if msg: + elt = msg.toXML() + rng.assertValid(elt) + print lxml.etree.tostring(elt, pretty_print=True, encoding="us-ascii", xml_declaration=True) |