diff options
author | Rob Austein <sra@hactrn.net> | 2008-04-11 00:56:51 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2008-04-11 00:56:51 +0000 |
commit | 768624a863edf83088e30f7372117855462933d0 (patch) | |
tree | 1e5e61a5667453b2858aa988ab48720611fd2bc7 | |
parent | b72c54712ffb2a04031bd336c08240196174be2e (diff) |
Checkpoint
svn path=/rpkid/rpki/gctx.py; revision=1651
-rw-r--r-- | rpkid/rpki/gctx.py | 1 | ||||
-rw-r--r-- | rpkid/rpki/left_right.py | 10 | ||||
-rw-r--r-- | rpkid/testbed.1.yaml | 4 | ||||
-rw-r--r-- | rpkid/testbed.py | 8 |
4 files changed, 22 insertions, 1 deletions
diff --git a/rpkid/rpki/gctx.py b/rpkid/rpki/gctx.py index fa61ac27..9f2770c4 100644 --- a/rpkid/rpki/gctx.py +++ b/rpkid/rpki/gctx.py @@ -159,6 +159,7 @@ class global_context(object): for s in rpki.left_right.self_elt.sql_fetch_all(self): s.client_poll() s.update_children() + s.generate_roas() s.regenerate_crls_and_manifests() self.sql_sweep() return 200, "OK" diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py index e3c4c5e9..a8cd3092 100644 --- a/rpkid/rpki/left_right.py +++ b/rpkid/rpki/left_right.py @@ -417,6 +417,16 @@ class self_elt(data_elt): ca_detail.generate_crl() ca_detail.generate_manifest() + def generate_roas(self): + """Generate ROAs for this self's route_origin objects. + + This doesn't yet handle revocation or regeneration of existing + ROAs, the underlying support for that hasn't been written yet. + """ + + for route_origin in self.route_origins(): + route_origin.generate_roa() + class bsc_elt(data_elt): """<bsc/> (Business Signing Context) element.""" diff --git a/rpkid/testbed.1.yaml b/rpkid/testbed.1.yaml index acee42e2..0c601e91 100644 --- a/rpkid/testbed.1.yaml +++ b/rpkid/testbed.1.yaml @@ -23,6 +23,10 @@ kids: - name: Alice ipv4: 192.0.2.1-192.0.2.33 asn: 64533 + ipv4: 10.3.0.0/16 + route_origins: + 666: + ipv4: 10.3.0.44/32 --- - name: R0 rekey: diff --git a/rpkid/testbed.py b/rpkid/testbed.py index 8b9ce2ff..0e57e80c 100644 --- a/rpkid/testbed.py +++ b/rpkid/testbed.py @@ -367,6 +367,12 @@ class allocation(object): self.sia_base = yaml.get("sia_base") if "crl_interval" in yaml: self.crl_interval = timedelta.parse(yaml["crl_interval"]).convert_to_seconds() + self.route_origins = {} + if "route_origins" in yaml: + for asn,addrs in yaml.get("route_origins").items(): + self.route_origins[asn] = { + "v4" : rpki.resource_set.resource_set_ipv4(addrs.get("ipv4")), + "v6" : rpki.resource_set.resource_set_ipv6(addrs.get("ipv6")) } self.extra_conf = yaml.get("extra_conf", []) def closure(self): @@ -429,7 +435,7 @@ class allocation(object): def is_leaf(self): return not self.kids def is_root(self): return self.parent is None - def is_twig(self): return self.parent is not None and self.kids + def is_twig(self): return not self.is_leaf() and not self.is_root() def set_engine_number(self, n): """Set the engine number for this entity.""" |