Support CLI updating of domains/records/servers.
Updates to all resource types should now be functional. Change-Id: I9057ebd4ebffdeeb70c0c9b962c49b3dcb68d8f4
This commit is contained in:
parent
f4537b64c5
commit
145a7275f3
monikerclient
@ -49,6 +49,7 @@ class CreateDomainCommand(base.CreateCommand):
|
||||
|
||||
parser.add_argument('--name', help="Domain Name", required=True)
|
||||
parser.add_argument('--email', help="Domain Email", required=True)
|
||||
parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)")
|
||||
|
||||
return parser
|
||||
|
||||
@ -56,6 +57,7 @@ class CreateDomainCommand(base.CreateCommand):
|
||||
domain = Domain(
|
||||
name=parsed_args.name,
|
||||
email=parsed_args.email,
|
||||
ttl=parsed_args.ttl,
|
||||
)
|
||||
|
||||
return self.client.domains.create(domain)
|
||||
@ -70,6 +72,7 @@ class UpdateDomainCommand(base.UpdateCommand):
|
||||
parser.add_argument('id', help="Domain ID")
|
||||
parser.add_argument('--name', help="Domain Name")
|
||||
parser.add_argument('--email', help="Domain Email")
|
||||
parser.add_argument('--ttl', help="Time To Live (Seconds)")
|
||||
|
||||
return parser
|
||||
|
||||
@ -77,12 +80,14 @@ class UpdateDomainCommand(base.UpdateCommand):
|
||||
# TODO: API needs updating.. this get is silly
|
||||
domain = self.client.domains.get(parsed_args.id)
|
||||
|
||||
# TODO: How do we tell if an arg was supplied or intentionally set to
|
||||
# None?
|
||||
domain.update({
|
||||
'name': parsed_args.name,
|
||||
'email': parsed_args.email,
|
||||
})
|
||||
if parsed_args.name:
|
||||
domain.name = parsed_args.name
|
||||
|
||||
if parsed_args.email:
|
||||
domain.email = parsed_args.email
|
||||
|
||||
if parsed_args.ttl:
|
||||
domain.ttl = parsed_args.ttl
|
||||
|
||||
return self.client.domains.update(domain)
|
||||
|
||||
|
@ -68,9 +68,11 @@ class CreateRecordCommand(base.CreateCommand):
|
||||
name=parsed_args.name,
|
||||
type=parsed_args.type,
|
||||
data=parsed_args.data,
|
||||
ttl=parsed_args.ttl,
|
||||
)
|
||||
|
||||
if parsed_args.ttl:
|
||||
record.ttl = parsed_args.ttl
|
||||
|
||||
return self.client.records.create(parsed_args.domain_id, record)
|
||||
|
||||
|
||||
@ -85,7 +87,11 @@ class UpdateRecordCommand(base.UpdateCommand):
|
||||
parser.add_argument('--name', help="Record Name")
|
||||
parser.add_argument('--type', help="Record Type")
|
||||
parser.add_argument('--data', help="Record Data")
|
||||
parser.add_argument('--ttl', type=int, help="Record TTL")
|
||||
|
||||
ttl_group = parser.add_mutually_exclusive_group()
|
||||
ttl_group.add_argument('--ttl', type=int,
|
||||
help="Record Time To Live (Seconds)")
|
||||
ttl_group.add_argument('--no-ttl', action='store_true')
|
||||
|
||||
return parser
|
||||
|
||||
@ -93,14 +99,19 @@ class UpdateRecordCommand(base.UpdateCommand):
|
||||
# TODO: API needs updating.. this get is silly
|
||||
record = self.client.records.get(parsed_args.domain_id, parsed_args.id)
|
||||
|
||||
# TODO: How do we tell if an arg was supplied or intentionally set to
|
||||
# None?
|
||||
record.update({
|
||||
'name': parsed_args.name,
|
||||
'type': parsed_args.type,
|
||||
'data': parsed_args.data,
|
||||
'ttl': parsed_args.ttl,
|
||||
})
|
||||
if parsed_args.name:
|
||||
record.name = parsed_args.name
|
||||
|
||||
if parsed_args.type:
|
||||
record.type = parsed_args.type
|
||||
|
||||
if parsed_args.data:
|
||||
record.data = parsed_args.data
|
||||
|
||||
if parsed_args.no_ttl:
|
||||
record.ttl = None
|
||||
elif parsed_args.ttl:
|
||||
record.ttl = parsed_args.ttl
|
||||
|
||||
return self.client.records.update(parsed_args.domain_id, record)
|
||||
|
||||
|
@ -71,8 +71,14 @@ class UpdateServerCommand(base.UpdateCommand):
|
||||
|
||||
parser.add_argument('id', help="Server ID")
|
||||
parser.add_argument('--name', help="Server Name")
|
||||
parser.add_argument('--ipv4', help="Server IPv4 Address")
|
||||
parser.add_argument('--ipv6', help="Server IPv6 Address")
|
||||
|
||||
ipv4_group = parser.add_mutually_exclusive_group()
|
||||
ipv4_group.add_argument('--ipv4', help="Server IPv4 Address")
|
||||
ipv4_group.add_argument('--no-ipv4', action='store_true')
|
||||
|
||||
ipv6_group = parser.add_mutually_exclusive_group()
|
||||
ipv6_group.add_argument('--ipv6', help="Server IPv6 Address")
|
||||
ipv6_group.add_argument('--no-ipv6', action='store_true')
|
||||
|
||||
return parser
|
||||
|
||||
@ -80,13 +86,18 @@ class UpdateServerCommand(base.UpdateCommand):
|
||||
# TODO: API needs updating.. this get is silly
|
||||
server = self.client.servers.get(parsed_args.id)
|
||||
|
||||
# TODO: How do we tell if an arg was supplied or intentionally set to
|
||||
# None?
|
||||
server.update({
|
||||
'name': parsed_args.name,
|
||||
'ipv4': parsed_args.ipv4,
|
||||
'ipv6': parsed_args.ipv6,
|
||||
})
|
||||
if parsed_args.name:
|
||||
server.name = parsed_args.name
|
||||
|
||||
if parsed_args.no_ipv4:
|
||||
server.ipv4 = None
|
||||
elif parsed_args.ipv4:
|
||||
server.ipv4 = parsed_args.ipv4
|
||||
|
||||
if parsed_args.no_ipv6:
|
||||
server.ipv6 = None
|
||||
elif parsed_args.ipv6:
|
||||
server.ipv6 = parsed_args.ipv6
|
||||
|
||||
return self.client.servers.update(server)
|
||||
|
||||
|
@ -99,6 +99,8 @@ def model_factory(schema):
|
||||
return copy.deepcopy(dict(self))
|
||||
|
||||
def update(self, other):
|
||||
# NOTE(kiall): It seems update() doesn't update the
|
||||
# self.__dict__['changes'] dict correctly.
|
||||
mutation = dict(self.items())
|
||||
mutation.update(other)
|
||||
try:
|
||||
|
Loading…
x
Reference in New Issue
Block a user