diff options
-rw-r--r-- | myrpki/README | 2 | ||||
-rw-r--r-- | myrpki/arin-to-csv.py | 45 | ||||
-rw-r--r-- | myrpki/examples/prefixes.csv | 3 |
3 files changed, 8 insertions, 42 deletions
diff --git a/myrpki/README b/myrpki/README index 9ce12228..24c0fdcf 100644 --- a/myrpki/README +++ b/myrpki/README @@ -156,6 +156,8 @@ CSV file formats: - prefix: <child_handle> <prefix>/<length> + or: <child_handle> <range-min>-<range-max> + - asn: <child_handle> <asn> - parent: <parent_handle> <service_uri> <cms_bpki_cert_filename> <https_bpki_cert_filename> diff --git a/myrpki/arin-to-csv.py b/myrpki/arin-to-csv.py index 27f7c5b9..a687e418 100644 --- a/myrpki/arin-to-csv.py +++ b/myrpki/arin-to-csv.py @@ -23,7 +23,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ -import gzip, csv, myrpki, rpki.resource_set, rpki.ipaddrs, rpki.sundial +import gzip, csv, myrpki class Handle(object): @@ -54,41 +54,23 @@ class ASHandle(Handle): def finish(self, ctx): if self.check(): ctx.asns.writerow((self.OrgID, self.ASNumber)) - ctx.orgid(self.OrgID) class NetHandle(Handle): NetType = None - range_type = rpki.resource_set.resource_range_ipv4 - addr_type = rpki.ipaddrs.v4addr want_tags = ("NetHandle", "NetRange", "NetType", "OrgID") - useful_types = ("allocation", "assignment") - - def set(self, tag, val): - Handle.set(self, tag, val) - if tag == "NetRange": - min, sep, max = self.NetRange.partition("-") - self.Prefix = self.range_type(self.addr_type(min), - self.addr_type(max)) def finish(self, ctx): - if self.NetType in self.useful_types and self.check(): - if str(self.Prefix).find("/") >= 0: - ctx.prefixes.writerow((self.OrgID, self.Prefix)) - ctx.orgid(self.OrgID) - else: - print "Not a prefix: %r" % self + if self.NetType in ("allocation", "assignment") and self.check(): + ctx.prefixes.writerow((self.OrgID, self.NetRange)) def __repr__(self): return "<%s %s.%s %s %s>" % (self.__class__.__name__, self.OrgID, self.NetHandle, - self.NetType, self.Prefix) + self.NetType, self.NetRange) class V6NetHandle(NetHandle): - range_type = rpki.resource_set.resource_range_ipv6 - addr_type = rpki.ipaddrs.v6addr - want_tags = ("V6NetHandle", "NetRange", "NetType", "OrgID") def __repr__(self): @@ -108,30 +90,14 @@ def parseline(line): class gctx(object): - make_children = False - def csvout(self, fn): return csv.writer(open(fn, "w"), dialect = myrpki.csv_dialect) def __init__(self): self.asns = self.csvout("asns.csv") self.prefixes = self.csvout("prefixes.csv") - if self.make_children: - self.orgids = set() - - def orgid(self, o): - if self.make_children: - self.orgids.add(o) - - def finish(self): - expires = rpki.sundial.now() + rpki.sundial.timedelta(days = 365) - if self.make_children: - self.csvout("children.csv").writerows( - (orgid, expires, "children/%s.ta.cer" % orgid) - for orgid in self.orgids) def main(): - print "Starting at %s" % rpki.sundial.now() f = gzip.open("arin_db.txt.gz") cur = None ctx = gctx() @@ -149,8 +115,5 @@ def main(): cur.set(tag, val) if cur: cur.finish(ctx) - print "Finished main loop at %s" % rpki.sundial.now() - ctx.finish() - print "All done at %s" % rpki.sundial.now() main() diff --git a/myrpki/examples/prefixes.csv b/myrpki/examples/prefixes.csv index 46571835..21e39e04 100644 --- a/myrpki/examples/prefixes.csv +++ b/myrpki/examples/prefixes.csv @@ -1,7 +1,8 @@ # Syntax: <child_handle> <prefix>/<length> +# or: <child_handle> <min>-<max> # # NB: Comment lines are not allowed in these files, this one is only # present to explain the example # -Alice 192.0.2.1-192.0.2.33 +Alice 192.0.2.0/27 Bob 192.0.2.44-192.0.2.100 |