aboutsummaryrefslogtreecommitdiff
path: root/scripts/irbe-cli.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-08-06 16:09:37 +0000
committerRob Austein <sra@hactrn.net>2007-08-06 16:09:37 +0000
commit9ec0a1feaa1c9b407a2bed7cc01266887ab1b14e (patch)
tree3960d55d60556acf6cff6b4cfcf7283490d2e956 /scripts/irbe-cli.py
parent8becf9cf697252d70b65550ec45f9cc347c80c3d (diff)
Checkpoint
svn path=/scripts/irbe-cli.py; revision=826
Diffstat (limited to 'scripts/irbe-cli.py')
-rwxr-xr-xscripts/irbe-cli.py47
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)