From 63c3a1a7853ca60c28394ff419c708dcabdc4f38 Mon Sep 17 00:00:00 2001 From: Kiall Mac Innes Date: Thu, 11 Apr 2013 12:50:48 +0100 Subject: [PATCH] Add a command to list the nameservers for a domain Change-Id: Id44b9f8cfc0a79a7514ff338aab42f39067e1226 --- monikerclient/cli/domains.py | 16 ++++++++++++++++ monikerclient/v1/domains.py | 12 ++++++++++++ setup.py | 2 ++ 3 files changed, 30 insertions(+) diff --git a/monikerclient/cli/domains.py b/monikerclient/cli/domains.py index bec879b..2a5e7dc 100644 --- a/monikerclient/cli/domains.py +++ b/monikerclient/cli/domains.py @@ -108,3 +108,19 @@ class DeleteDomainCommand(base.DeleteCommand): def execute(self, parsed_args): return self.client.domains.delete(parsed_args.id) + + +class ListDomainServersCommand(base.ListCommand): + """ List Domain Servers """ + + columns = ['name'] + + def get_parser(self, prog_name): + parser = super(ListDomainServersCommand, self).get_parser(prog_name) + + parser.add_argument('id', help="Domain ID") + + return parser + + def execute(self, parsed_args): + return self.client.domains.list_domain_servers(parsed_args.id) diff --git a/monikerclient/v1/domains.py b/monikerclient/v1/domains.py index aa1dded..e5870aa 100644 --- a/monikerclient/v1/domains.py +++ b/monikerclient/v1/domains.py @@ -20,6 +20,7 @@ from monikerclient.v1.base import CrudController Domain = warlock.model_factory(utils.load_schema('v1', 'domain')) +Server = warlock.model_factory(utils.load_schema('v1', 'server')) class DomainsController(CrudController): @@ -77,3 +78,14 @@ class DomainsController(CrudController): self.client.delete('/domains/%s' % domain.id) else: self.client.delete('/domains/%s' % domain) + + def list_domain_servers(self, domain_id): + """ + Retrieve the list of nameservers for a domain + + :param domain_id: Domain Identifier + :returns: A list of :class:`Server`s + """ + response = self.client.get('/domains/%s/servers' % domain_id) + + return [Server(i) for i in response.json['servers']] diff --git a/setup.py b/setup.py index b5eb165..ba93e67 100755 --- a/setup.py +++ b/setup.py @@ -53,6 +53,8 @@ setup( domain-create = monikerclient.cli.domains:CreateDomainCommand domain-update = monikerclient.cli.domains:UpdateDomainCommand domain-delete = monikerclient.cli.domains:DeleteDomainCommand + domain-servers-list = monikerclient.cli.domains\ + :ListDomainServersCommand record-list = monikerclient.cli.records:ListRecordsCommand record-get = monikerclient.cli.records:GetRecordCommand