diff options
Diffstat (limited to 'rpkid/rpki/rpkic.py')
-rw-r--r-- | rpkid/rpki/rpkic.py | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/rpkid/rpki/rpkic.py b/rpkid/rpki/rpkic.py index a94954a2..90b75bb0 100644 --- a/rpkid/rpki/rpkic.py +++ b/rpkid/rpki/rpkic.py @@ -155,8 +155,8 @@ class main(rpki.cli.Cmd): self.stdout.write(" " * 4 + line) self.stdout.write("\n") - def irdb_handle_complete(self, klass, text, line, begidx, endidx): - return [obj.handle for obj in klass.objects.all() if obj.handle and obj.handle.startswith(text)] + def irdb_handle_complete(self, manager, text, line, begidx, endidx): + return [obj.handle for obj in manager.all() if obj.handle and obj.handle.startswith(text)] def do_select_identity(self, arg): """ @@ -169,7 +169,7 @@ class main(rpki.cli.Cmd): self.zoo.reset_identity(argv[0]) def complete_select_identity(self, *args): - return self.irdb_handle_complete(rpki.irdb.ResourceHolderCA, *args) + return self.irdb_handle_complete(rpki.irdb.ResourceHolderCA.objects, *args) def do_initialize(self, arg): @@ -249,7 +249,7 @@ class main(rpki.cli.Cmd): print "No such child \"%s\"" % arg def complete_delete_child(self, *args): - return self.irdb_handle_complete(rpki.irdb.Child, *args) + return self.irdb_handle_complete(self.zoo.resource_ca.children, *args) def do_configure_parent(self, arg): @@ -296,7 +296,19 @@ class main(rpki.cli.Cmd): print "No such parent \"%s\"" % arg def complete_delete_parent(self, *args): - return self.irdb_handle_complete(rpki.irdb.Parent, *args) + return self.irdb_handle_complete(self.zoo.resource_ca.parents, *args) + + + def do_delete_rootd(self, arg): + """ + Delete rootd associated with this RPKI entity. + """ + + try: + self.zoo.delete_rootd() + self.zoo.synchronize() + except rpki.irdb.Rootd.DoesNotExist: + print "No associated rootd" def do_configure_publication_client(self, arg): @@ -339,7 +351,7 @@ class main(rpki.cli.Cmd): print "No such client \"%s\"" % arg def complete_delete_publication_client(self, *args): - return self.irdb_handle_complete(rpki.irdb.Client, *args) + return self.irdb_handle_complete(self.zoo.resource_ca.clients, *args) def do_configure_repository(self, arg): @@ -380,7 +392,7 @@ class main(rpki.cli.Cmd): print "No such repository \"%s\"" % arg def complete_delete_repository(self, *args): - return self.irdb_handle_complete(rpki.irdb.Repository, *args) + return self.irdb_handle_complete(self.zoo.resource_ca.repositories, *args) def do_delete_self(self, arg): @@ -411,7 +423,7 @@ class main(rpki.cli.Cmd): self.zoo.synchronize(self.zoo.handle) def complete_renew_child(self, *args): - return self.irdb_handle_complete(rpki.irdb.Child, *args) + return self.irdb_handle_complete(self.zoo.resource_ca.children, *args) def do_renew_all_children(self, arg): @@ -443,7 +455,7 @@ class main(rpki.cli.Cmd): if len(argv) != 1: raise BadCommandSyntax("Need to specify prefixes.csv filename") - self.zoo.load_prefixes(argv[0]) + self.zoo.load_prefixes(argv[0], True) self.zoo.synchronize(self.zoo.handle) @@ -477,7 +489,7 @@ class main(rpki.cli.Cmd): if len(argv) != 1: raise BadCommandSyntax("Need to specify asns.csv filename") - self.zoo.load_asns(argv[0]) + self.zoo.load_asns(argv[0], True) self.zoo.synchronize(self.zoo.handle) |