aboutsummaryrefslogtreecommitdiff
path: root/rp/utils/scan_roas
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-01-26 03:47:16 +0000
committerRob Austein <sra@hactrn.net>2016-01-26 03:47:16 +0000
commit32fc12e0c1359311915358e4d3d8cee83902f384 (patch)
tree531889847b7d3e087741b81690326c0b81523ef0 /rp/utils/scan_roas
parenta2f628a14cb7b12b77829b9d0bbc8e948ea77337 (diff)
Add (mostly) backwards-compatible iterator which handles finding
authenticated RP data via either os.walk() or Django ORM database traversal. svn path=/branches/tk705/; revision=6236
Diffstat (limited to 'rp/utils/scan_roas')
-rwxr-xr-xrp/utils/scan_roas20
1 files changed, 8 insertions, 12 deletions
diff --git a/rp/utils/scan_roas b/rp/utils/scan_roas
index 689d1365..740d6628 100755
--- a/rp/utils/scan_roas
+++ b/rp/utils/scan_roas
@@ -26,6 +26,8 @@ import os
import argparse
import rpki.POW
+from rpki.rcynicdb.iterator import authenticated_objects
+
def check_dir(d):
if not os.path.isdir(d):
raise argparse.ArgumentTypeError("%r is not a directory" % d)
@@ -33,12 +35,6 @@ def check_dir(d):
class ROA(rpki.POW.ROA): # pylint: disable=W0232
- @classmethod
- def parse(cls, fn): # pylint: disable=W0621
- self = cls.derReadFile(fn) # pylint: disable=E1101
- self.extractWithoutVerifying()
- return self
-
@property
def prefixes(self):
v4, v6 = self.getPrefixes() # pylint: disable=E1101
@@ -53,12 +49,12 @@ class ROA(rpki.POW.ROA): # pylint: disable=W0232
return "%s %s %s" % (self.signingTime(), self.getASID(), " ".join(self.prefixes))
parser = argparse.ArgumentParser(description = __doc__)
-parser.add_argument("rcynic_dir", nargs = "+", type = check_dir,
+parser.add_argument("rcynic_dir", nargs = "?", type = check_dir,
help = "rcynic authenticated output directory")
args = parser.parse_args()
-for rcynic_dir in args.rcynic_dir:
- for root, dirs, files in os.walk(rcynic_dir):
- for fn in files:
- if fn.endswith(".roa"):
- print ROA.parse(os.path.join(root, fn))
+for uri, roa in authenticated_objects(args.rcynic_dir,
+ uri_suffix = ".roa",
+ class_map = dict(roa = ROA)):
+ roa.extractWithoutVerifying()
+ print roa