pyupgrade changes for Python3.8+
Result of running $ pyupgrade --py38-plus $(git ls-files | grep ".py$") This was inspired by Nova [1] and Octavia [2] Fixed PEP8 errors introduced by pyupgrade by running: $ autopep8 --select=E127,E128,E501 --max-line-length 79 -r \ --in-place designate and manual updates. [1]: https://review.opendev.org/c/openstack/nova/+/896986 [2]: https://review.opendev.org/c/openstack/octavia/+/899263 Change-Id: I27d09edb7e75081379002615f4ecdb1aa007dbcf
This commit is contained in:
parent
44543113db
commit
b6e78fefdd
|
@ -24,7 +24,7 @@ from oslo_serialization import jsonutils
|
||||||
from designateclient import exceptions
|
from designateclient import exceptions
|
||||||
|
|
||||||
|
|
||||||
class Controller(object, metaclass=abc.ABCMeta):
|
class Controller(metaclass=abc.ABCMeta):
|
||||||
|
|
||||||
def __init__(self, client):
|
def __init__(self, client):
|
||||||
self.client = client
|
self.client = client
|
||||||
|
@ -38,10 +38,10 @@ class Controller(object, metaclass=abc.ABCMeta):
|
||||||
params['limit'] = limit
|
params['limit'] = limit
|
||||||
|
|
||||||
q = parse.urlencode(params) if params else ''
|
q = parse.urlencode(params) if params else ''
|
||||||
return '%(url)s%(params)s' % {
|
return '{url}{params}'.format(
|
||||||
'url': url,
|
url=url,
|
||||||
'params': '?%s' % q
|
params=f'?{q}'
|
||||||
}
|
)
|
||||||
|
|
||||||
def _serialize(self, kwargs):
|
def _serialize(self, kwargs):
|
||||||
headers = kwargs.get('headers')
|
headers = kwargs.get('headers')
|
||||||
|
@ -122,13 +122,14 @@ class CrudController(Controller, metaclass=abc.ABCMeta):
|
||||||
|
|
||||||
def get_versions():
|
def get_versions():
|
||||||
mgr = extension.ExtensionManager('designateclient.versions')
|
mgr = extension.ExtensionManager('designateclient.versions')
|
||||||
return dict([(ep.name, ep.plugin) for ep in mgr.extensions])
|
return {ep.name: ep.plugin for ep in mgr.extensions}
|
||||||
|
|
||||||
|
|
||||||
def Client(version, *args, **kwargs): # noqa
|
def Client(version, *args, **kwargs): # noqa
|
||||||
versions = get_versions()
|
versions = get_versions()
|
||||||
if version not in versions:
|
if version not in versions:
|
||||||
msg = 'Version %s is not supported, use one of (%s)' % (
|
msg = 'Version {} is not supported, use one of ({})'.format(
|
||||||
version, list(versions.keys()))
|
version, list(versions.keys())
|
||||||
|
)
|
||||||
raise exceptions.UnsupportedVersion(msg)
|
raise exceptions.UnsupportedVersion(msg)
|
||||||
return versions[version](*args, **kwargs)
|
return versions[version](*args, **kwargs)
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Base(Exception):
|
||||||
def __init__(self, message=None):
|
def __init__(self, message=None):
|
||||||
if not message:
|
if not message:
|
||||||
message = self.__class__.__name__
|
message = self.__class__.__name__
|
||||||
super(Base, self).__init__(message)
|
super().__init__(message)
|
||||||
|
|
||||||
|
|
||||||
class UnsupportedVersion(Base):
|
class UnsupportedVersion(Base):
|
||||||
|
@ -44,7 +44,7 @@ class RemoteError(Base):
|
||||||
self.errors = errors
|
self.errors = errors
|
||||||
self.request_id = request_id
|
self.request_id = request_id
|
||||||
|
|
||||||
super(RemoteError, self).__init__(err_message)
|
super().__init__(err_message)
|
||||||
|
|
||||||
def _get_error_message(self, _message, _type, _errors):
|
def _get_error_message(self, _message, _type, _errors):
|
||||||
# Try to get a useful error msg if 'message' has nothing
|
# Try to get a useful error msg if 'message' has nothing
|
||||||
|
|
|
@ -45,7 +45,7 @@ def build_option_string(options):
|
||||||
|
|
||||||
"--email 'me@example.com' --name 'example.com.'
|
"--email 'me@example.com' --name 'example.com.'
|
||||||
"""
|
"""
|
||||||
return " ".join("{0} '{1}'".format(flag, value)
|
return " ".join(f"{flag} '{value}'"
|
||||||
for flag, value in options.items()
|
for flag, value in options.items()
|
||||||
if value is not None)
|
if value is not None)
|
||||||
|
|
||||||
|
@ -72,18 +72,18 @@ def build_flags_string(flags):
|
||||||
return " ".join(flags.keys())
|
return " ".join(flags.keys())
|
||||||
|
|
||||||
|
|
||||||
class ZoneCommands(object):
|
class ZoneCommands:
|
||||||
"""This is a mixin that provides zone commands to DesignateCLI"""
|
"""This is a mixin that provides zone commands to DesignateCLI"""
|
||||||
|
|
||||||
def zone_list(self, *args, **kwargs):
|
def zone_list(self, *args, **kwargs):
|
||||||
return self.parsed_cmd('zone list', ListModel, *args, **kwargs)
|
return self.parsed_cmd('zone list', ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_show(self, id, *args, **kwargs):
|
def zone_show(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('zone show %s' % id, FieldValueModel, *args,
|
return self.parsed_cmd(f'zone show {id}', FieldValueModel, *args,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
def zone_delete(self, id, *args, **kwargs):
|
def zone_delete(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('zone delete %s' % id, FieldValueModel, *args,
|
return self.parsed_cmd(f'zone delete {id}', FieldValueModel, *args,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
def zone_create(self, name, email=None, ttl=None, description=None,
|
def zone_create(self, name, email=None, ttl=None, description=None,
|
||||||
|
@ -95,7 +95,7 @@ class ZoneCommands(object):
|
||||||
"--masters": masters,
|
"--masters": masters,
|
||||||
"--type": type,
|
"--type": type,
|
||||||
})
|
})
|
||||||
cmd = 'zone create {0} {1}'.format(name, options_str)
|
cmd = f'zone create {name} {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_set(self, id, email=None, ttl=None, description=None,
|
def zone_set(self, id, email=None, ttl=None, description=None,
|
||||||
|
@ -107,11 +107,11 @@ class ZoneCommands(object):
|
||||||
"--masters": masters,
|
"--masters": masters,
|
||||||
"--type": type,
|
"--type": type,
|
||||||
})
|
})
|
||||||
cmd = 'zone set {0} {1}'.format(id, options_str)
|
cmd = f'zone set {id} {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ZoneTransferCommands(object):
|
class ZoneTransferCommands:
|
||||||
"""A mixin for DesignateCLI to add zone transfer commands"""
|
"""A mixin for DesignateCLI to add zone transfer commands"""
|
||||||
|
|
||||||
def zone_transfer_request_list(self, *args, **kwargs):
|
def zone_transfer_request_list(self, *args, **kwargs):
|
||||||
|
@ -124,21 +124,20 @@ class ZoneTransferCommands(object):
|
||||||
"--target-project-id": target_project_id,
|
"--target-project-id": target_project_id,
|
||||||
"--description": description,
|
"--description": description,
|
||||||
})
|
})
|
||||||
cmd = 'zone transfer request create {0} {1}'.format(
|
cmd = f'zone transfer request create {zone_id} {options_str}'
|
||||||
zone_id, options_str)
|
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_request_show(self, id, *args, **kwargs):
|
def zone_transfer_request_show(self, id, *args, **kwargs):
|
||||||
cmd = 'zone transfer request show {0}'.format(id)
|
cmd = f'zone transfer request show {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_request_set(self, id, description=None, *args, **kwargs):
|
def zone_transfer_request_set(self, id, description=None, *args, **kwargs):
|
||||||
options_str = build_option_string({"--description": description})
|
options_str = build_option_string({"--description": description})
|
||||||
cmd = 'zone transfer request set {0} {1}'.format(options_str, id)
|
cmd = f'zone transfer request set {options_str} {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_request_delete(self, id, *args, **kwargs):
|
def zone_transfer_request_delete(self, id, *args, **kwargs):
|
||||||
cmd = 'zone transfer request delete {0}'.format(id)
|
cmd = f'zone transfer request delete {id}'
|
||||||
return self.parsed_cmd(cmd, *args, **kwargs)
|
return self.parsed_cmd(cmd, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_accept_request(self, id, key, *args, **kwargs):
|
def zone_transfer_accept_request(self, id, key, *args, **kwargs):
|
||||||
|
@ -146,11 +145,11 @@ class ZoneTransferCommands(object):
|
||||||
"--transfer-id": id,
|
"--transfer-id": id,
|
||||||
"--key": key,
|
"--key": key,
|
||||||
})
|
})
|
||||||
cmd = 'zone transfer accept request {0}'.format(options_str)
|
cmd = f'zone transfer accept request {options_str}'
|
||||||
return self.parsed_cmd(cmd, *args, **kwargs)
|
return self.parsed_cmd(cmd, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_accept_show(self, id, *args, **kwargs):
|
def zone_transfer_accept_show(self, id, *args, **kwargs):
|
||||||
cmd = 'zone transfer accept show {0}'.format(id)
|
cmd = f'zone transfer accept show {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_transfer_accept_list(self, *args, **kwargs):
|
def zone_transfer_accept_list(self, *args, **kwargs):
|
||||||
|
@ -158,7 +157,7 @@ class ZoneTransferCommands(object):
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ZoneExportCommands(object):
|
class ZoneExportCommands:
|
||||||
"""A mixin for DesignateCLI to add zone export commands"""
|
"""A mixin for DesignateCLI to add zone export commands"""
|
||||||
|
|
||||||
def zone_export_list(self, *args, **kwargs):
|
def zone_export_list(self, *args, **kwargs):
|
||||||
|
@ -166,24 +165,23 @@ class ZoneExportCommands(object):
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_export_create(self, zone_id, *args, **kwargs):
|
def zone_export_create(self, zone_id, *args, **kwargs):
|
||||||
cmd = 'zone export create {0}'.format(
|
cmd = f'zone export create {zone_id}'
|
||||||
zone_id)
|
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_export_show(self, zone_export_id, *args, **kwargs):
|
def zone_export_show(self, zone_export_id, *args, **kwargs):
|
||||||
cmd = 'zone export show {0}'.format(zone_export_id)
|
cmd = f'zone export show {zone_export_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_export_delete(self, zone_export_id, *args, **kwargs):
|
def zone_export_delete(self, zone_export_id, *args, **kwargs):
|
||||||
cmd = 'zone export delete {0}'.format(zone_export_id)
|
cmd = f'zone export delete {zone_export_id}'
|
||||||
return self.parsed_cmd(cmd, *args, **kwargs)
|
return self.parsed_cmd(cmd, *args, **kwargs)
|
||||||
|
|
||||||
def zone_export_showfile(self, zone_export_id, *args, **kwargs):
|
def zone_export_showfile(self, zone_export_id, *args, **kwargs):
|
||||||
cmd = 'zone export showfile {0}'.format(zone_export_id)
|
cmd = f'zone export showfile {zone_export_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ZoneImportCommands(object):
|
class ZoneImportCommands:
|
||||||
"""A mixin for DesignateCLI to add zone import commands"""
|
"""A mixin for DesignateCLI to add zone import commands"""
|
||||||
|
|
||||||
def zone_import_list(self, *args, **kwargs):
|
def zone_import_list(self, *args, **kwargs):
|
||||||
|
@ -191,26 +189,26 @@ class ZoneImportCommands(object):
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_import_create(self, zone_file_path, *args, **kwargs):
|
def zone_import_create(self, zone_file_path, *args, **kwargs):
|
||||||
cmd = 'zone import create {0}'.format(zone_file_path)
|
cmd = f'zone import create {zone_file_path}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_import_show(self, zone_import_id, *args, **kwargs):
|
def zone_import_show(self, zone_import_id, *args, **kwargs):
|
||||||
cmd = 'zone import show {0}'.format(zone_import_id)
|
cmd = f'zone import show {zone_import_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_import_delete(self, zone_import_id, *args, **kwargs):
|
def zone_import_delete(self, zone_import_id, *args, **kwargs):
|
||||||
cmd = 'zone import delete {0}'.format(zone_import_id)
|
cmd = f'zone import delete {zone_import_id}'
|
||||||
return self.parsed_cmd(cmd, *args, **kwargs)
|
return self.parsed_cmd(cmd, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class RecordsetCommands(object):
|
class RecordsetCommands:
|
||||||
|
|
||||||
def recordset_show(self, zone_id, id, *args, **kwargs):
|
def recordset_show(self, zone_id, id, *args, **kwargs):
|
||||||
cmd = 'recordset show {0} {1}'.format(zone_id, id)
|
cmd = f'recordset show {zone_id} {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def recordset_list(self, zone_id, *args, **kwargs):
|
def recordset_list(self, zone_id, *args, **kwargs):
|
||||||
cmd = 'recordset list {0}'.format(zone_id)
|
cmd = f'recordset list {zone_id}'
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def recordset_create(self, zone_id, name, records=None, type=None,
|
def recordset_create(self, zone_id, name, records=None, type=None,
|
||||||
|
@ -221,7 +219,7 @@ class RecordsetCommands(object):
|
||||||
'--description': description,
|
'--description': description,
|
||||||
'--ttl': ttl,
|
'--ttl': ttl,
|
||||||
})
|
})
|
||||||
cmd = 'recordset create {0} {1} {2}'.format(zone_id, name, options_str)
|
cmd = f'recordset create {zone_id} {name} {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def recordset_set(self, zone_id, id, records=None, type=None,
|
def recordset_set(self, zone_id, id, records=None, type=None,
|
||||||
|
@ -237,33 +235,32 @@ class RecordsetCommands(object):
|
||||||
'--no-description': no_description,
|
'--no-description': no_description,
|
||||||
'--no-ttl': no_ttl,
|
'--no-ttl': no_ttl,
|
||||||
})
|
})
|
||||||
cmd = 'recordset set {0} {1} {2} {3}'.format(
|
cmd = f'recordset set {zone_id} {id} {flags_str} {options_str}'
|
||||||
zone_id, id, flags_str, options_str)
|
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def recordset_delete(self, zone_id, id, *args, **kwargs):
|
def recordset_delete(self, zone_id, id, *args, **kwargs):
|
||||||
cmd = 'recordset delete {0} {1}'.format(zone_id, id)
|
cmd = f'recordset delete {zone_id} {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class TLDCommands(object):
|
class TLDCommands:
|
||||||
|
|
||||||
def tld_list(self, *args, **kwargs):
|
def tld_list(self, *args, **kwargs):
|
||||||
return self.parsed_cmd('tld list', ListModel, *args, **kwargs)
|
return self.parsed_cmd('tld list', ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def tld_show(self, id, *args, **kwargs):
|
def tld_show(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('tld show {0}'.format(id), FieldValueModel,
|
return self.parsed_cmd(f'tld show {id}', FieldValueModel,
|
||||||
*args, **kwargs)
|
*args, **kwargs)
|
||||||
|
|
||||||
def tld_delete(self, id, *args, **kwargs):
|
def tld_delete(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('tld delete {0}'.format(id), *args, **kwargs)
|
return self.parsed_cmd(f'tld delete {id}', *args, **kwargs)
|
||||||
|
|
||||||
def tld_create(self, name, description=None, *args, **kwargs):
|
def tld_create(self, name, description=None, *args, **kwargs):
|
||||||
options_str = build_option_string({
|
options_str = build_option_string({
|
||||||
'--name': name,
|
'--name': name,
|
||||||
'--description': description,
|
'--description': description,
|
||||||
})
|
})
|
||||||
cmd = 'tld create {0}'.format(options_str)
|
cmd = f'tld create {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def tld_set(self, id, name=None, description=None, no_description=False,
|
def tld_set(self, id, name=None, description=None, no_description=False,
|
||||||
|
@ -273,20 +270,20 @@ class TLDCommands(object):
|
||||||
'--description': description,
|
'--description': description,
|
||||||
})
|
})
|
||||||
flags_str = build_flags_string({'--no-description': no_description})
|
flags_str = build_flags_string({'--no-description': no_description})
|
||||||
cmd = 'tld set {0} {1} {2}'.format(id, options_str, flags_str)
|
cmd = f'tld set {id} {options_str} {flags_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class TSIGKeyCommands(object):
|
class TSIGKeyCommands:
|
||||||
def tsigkey_list(self, *args, **kwargs):
|
def tsigkey_list(self, *args, **kwargs):
|
||||||
return self.parsed_cmd('tsigkey list', ListModel, *args, **kwargs)
|
return self.parsed_cmd('tsigkey list', ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def tsigkey_show(self, id, *args, **kwargs):
|
def tsigkey_show(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('tsigkey show {0}'.format(id), FieldValueModel,
|
return self.parsed_cmd(f'tsigkey show {id}', FieldValueModel,
|
||||||
*args, **kwargs)
|
*args, **kwargs)
|
||||||
|
|
||||||
def tsigkey_delete(self, id, *args, **kwargs):
|
def tsigkey_delete(self, id, *args, **kwargs):
|
||||||
return self.parsed_cmd('tsigkey delete {0}'.format(id), *args,
|
return self.parsed_cmd(f'tsigkey delete {id}', *args,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
def tsigkey_create(self, name, algorithm, secret, scope, resource_id,
|
def tsigkey_create(self, name, algorithm, secret, scope, resource_id,
|
||||||
|
@ -298,7 +295,7 @@ class TSIGKeyCommands(object):
|
||||||
'--scope': scope,
|
'--scope': scope,
|
||||||
'--resource-id': resource_id,
|
'--resource-id': resource_id,
|
||||||
})
|
})
|
||||||
cmd = 'tsigkey create {0}'.format(options_str)
|
cmd = f'tsigkey create {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def tsigkey_set(self, id, name=None, algorithm=None, secret=None,
|
def tsigkey_set(self, id, name=None, algorithm=None, secret=None,
|
||||||
|
@ -310,11 +307,11 @@ class TSIGKeyCommands(object):
|
||||||
'--secret': secret,
|
'--secret': secret,
|
||||||
'--scope': scope,
|
'--scope': scope,
|
||||||
})
|
})
|
||||||
cmd = 'tsigkey set {0} {1}'.format(id, options_str)
|
cmd = f'tsigkey set {id} {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class BlacklistCommands(object):
|
class BlacklistCommands:
|
||||||
def zone_blacklist_list(self, *args, **kwargs):
|
def zone_blacklist_list(self, *args, **kwargs):
|
||||||
cmd = 'zone blacklist list'
|
cmd = 'zone blacklist list'
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
@ -325,7 +322,7 @@ class BlacklistCommands(object):
|
||||||
'--pattern': pattern,
|
'--pattern': pattern,
|
||||||
'--description': description,
|
'--description': description,
|
||||||
})
|
})
|
||||||
cmd = 'zone blacklist create {0}'.format(options_str)
|
cmd = f'zone blacklist create {options_str}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_blacklist_set(self, id, pattern=None, description=None,
|
def zone_blacklist_set(self, id, pattern=None, description=None,
|
||||||
|
@ -335,35 +332,34 @@ class BlacklistCommands(object):
|
||||||
'--description': description,
|
'--description': description,
|
||||||
})
|
})
|
||||||
flags_str = build_flags_string({'--no-description': no_description})
|
flags_str = build_flags_string({'--no-description': no_description})
|
||||||
cmd = 'zone blacklist set {0} {1} {2}'.format(id, options_str,
|
cmd = f'zone blacklist set {id} {options_str} {flags_str}'
|
||||||
flags_str)
|
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_blacklist_show(self, id, *args, **kwargs):
|
def zone_blacklist_show(self, id, *args, **kwargs):
|
||||||
cmd = 'zone blacklist show {0}'.format(id)
|
cmd = f'zone blacklist show {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def zone_blacklist_delete(self, id, *args, **kwargs):
|
def zone_blacklist_delete(self, id, *args, **kwargs):
|
||||||
cmd = 'zone blacklist delete {0}'.format(id)
|
cmd = f'zone blacklist delete {id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class SharedZoneCommands(object):
|
class SharedZoneCommands:
|
||||||
|
|
||||||
def shared_zone_show(self, zone_id, shared_zone_id, *args, **kwargs):
|
def shared_zone_show(self, zone_id, shared_zone_id, *args, **kwargs):
|
||||||
cmd = 'zone share show {0} {1}'.format(zone_id, shared_zone_id)
|
cmd = f'zone share show {zone_id} {shared_zone_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def shared_zone_list(self, zone_id, *args, **kwargs):
|
def shared_zone_list(self, zone_id, *args, **kwargs):
|
||||||
cmd = 'zone share list {0}'.format(zone_id)
|
cmd = f'zone share list {zone_id}'
|
||||||
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, ListModel, *args, **kwargs)
|
||||||
|
|
||||||
def share_zone(self, zone_id, target_project_id, *args, **kwargs):
|
def share_zone(self, zone_id, target_project_id, *args, **kwargs):
|
||||||
cmd = 'zone share create {0} {1}'.format(zone_id, target_project_id)
|
cmd = f'zone share create {zone_id} {target_project_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
def unshare_zone(self, zone_id, shared_zone_id, *args, **kwargs):
|
def unshare_zone(self, zone_id, shared_zone_id, *args, **kwargs):
|
||||||
cmd = 'zone share delete {0} {1}'.format(zone_id, shared_zone_id)
|
cmd = f'zone share delete {zone_id} {shared_zone_id}'
|
||||||
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -375,7 +371,7 @@ class DesignateCLI(base.CLIClient, ZoneCommands, ZoneTransferCommands,
|
||||||
_CLIENTS = None
|
_CLIENTS = None
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(DesignateCLI, self).__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
# grab the project id. this is used for zone transfer requests
|
# grab the project id. this is used for zone transfer requests
|
||||||
resp = FieldValueModel(self.openstack('token issue'))
|
resp = FieldValueModel(self.openstack('token issue'))
|
||||||
self.project_id = resp.project_id
|
self.project_id = resp.project_id
|
||||||
|
@ -421,7 +417,7 @@ class DesignateCLI(base.CLIClient, ZoneCommands, ZoneTransferCommands,
|
||||||
clients = self.get_clients()
|
clients = self.get_clients()
|
||||||
if user in clients:
|
if user in clients:
|
||||||
return clients[user]
|
return clients[user]
|
||||||
raise Exception("User '{0}' does not exist".format(user))
|
raise Exception(f"User '{user}' does not exist")
|
||||||
|
|
||||||
def parsed_cmd(self, cmd, model=None, *args, **kwargs):
|
def parsed_cmd(self, cmd, model=None, *args, **kwargs):
|
||||||
if self.using_auth_override:
|
if self.using_auth_override:
|
||||||
|
|
|
@ -18,40 +18,43 @@ import string
|
||||||
|
|
||||||
|
|
||||||
def random_digits(n=8):
|
def random_digits(n=8):
|
||||||
return "".join([random.choice(string.digits) for _ in range(n)])
|
return ''.join([random.choice(string.digits) for _ in range(n)])
|
||||||
|
|
||||||
|
|
||||||
def random_tld(name='testtld'):
|
def random_tld(name='testtld'):
|
||||||
return "{0}{1}".format(name, random_digits())
|
return f'{name}{random_digits()}'
|
||||||
|
|
||||||
|
|
||||||
def random_tsigkey_name(name='testtsig'):
|
def random_tsigkey_name(name='testtsig'):
|
||||||
return "{0}{1}".format(name, random_digits())
|
return f'{name}{random_digits()}'
|
||||||
|
|
||||||
|
|
||||||
def random_tsigkey_secret(name='test-secret'):
|
def random_tsigkey_secret(name='test-secret'):
|
||||||
return "{0}-{1}".format(name, random_digits(254 - len(name)))
|
return f'{name}-{random_digits(254 - len(name))}'
|
||||||
|
|
||||||
|
|
||||||
def random_zone_name(name='testdomain', tld='com'):
|
def random_zone_name(name='testdomain', tld='com'):
|
||||||
return "{0}{1}.{2}.".format(name, random_digits(), tld)
|
return f'{name}{random_digits()}.{tld}.'
|
||||||
|
|
||||||
|
|
||||||
def random_a_recordset_name(zone_name, recordset_name='testrecord'):
|
def random_a_recordset_name(zone_name, recordset_name='testrecord'):
|
||||||
return "{0}{1}.{2}".format(recordset_name, random_digits(), zone_name)
|
return f'{recordset_name}{random_digits()}.{zone_name}'
|
||||||
|
|
||||||
|
|
||||||
def random_blacklist(name='testblacklist'):
|
def random_blacklist(name='testblacklist'):
|
||||||
return '{0}{1}'.format(name, random_digits())
|
return f'{name}{random_digits()}'
|
||||||
|
|
||||||
|
|
||||||
def random_zone_file(name='testzoneimport'):
|
def random_zone_file(name='testzoneimport'):
|
||||||
return ("$ORIGIN {0}{1}.com.\n"
|
return (
|
||||||
"$TTL 300\n"
|
'$ORIGIN {0}{1}.com.\n'
|
||||||
"{0}{1}.com. 300 IN SOA ns.{0}{1}.com. "
|
'$TTL 300\n'
|
||||||
"nsadmin.{0}{1}.com. 42 42 42 42 42\n"
|
'{0}{1}.com. 300 IN SOA ns.{0}{1}.com. '
|
||||||
"{0}{1}.com. 300 IN NS ns.{0}{1}.com.\n"
|
'nsadmin.{0}{1}.com. 42 42 42 42 42\n'
|
||||||
"{0}{1}.com. 300 IN MX 10 mail.{0}{1}.com.\n"
|
'{0}{1}.com. 300 IN NS ns.{0}{1}.com.\n'
|
||||||
"ns.{0}{1}.com. 300 IN A 10.0.0.1\n"
|
'{0}{1}.com. 300 IN MX 10 mail.{0}{1}.com.\n'
|
||||||
"mail.{0}{1}.com. 300 IN A 10.0.0.2\n".format(name,
|
'ns.{0}{1}.com. 300 IN A 10.0.0.1\n'
|
||||||
random_digits()))
|
'mail.{0}{1}.com. 300 IN A 10.0.0.2\n'.format(
|
||||||
|
name, random_digits()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||||
from tempest.lib.cli import output_parser
|
from tempest.lib.cli import output_parser
|
||||||
|
|
||||||
|
|
||||||
class Model(object):
|
class Model:
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.__dict__)
|
return str(self.__dict__)
|
||||||
|
|
|
@ -28,7 +28,7 @@ class BaseFixture(fixtures.Fixture):
|
||||||
|
|
||||||
def __init__(self, user='default', *args, **kwargs):
|
def __init__(self, user='default', *args, **kwargs):
|
||||||
"""args/kwargs are forwarded to a create method on DesignateCLI"""
|
"""args/kwargs are forwarded to a create method on DesignateCLI"""
|
||||||
super(BaseFixture, self).__init__()
|
super().__init__()
|
||||||
self.args = args
|
self.args = args
|
||||||
self.kwargs = kwargs
|
self.kwargs = kwargs
|
||||||
self.client = DesignateCLI.as_user(user)
|
self.client = DesignateCLI.as_user(user)
|
||||||
|
@ -39,7 +39,7 @@ class BaseFixture(fixtures.Fixture):
|
||||||
# with an artificial SetupError, which produces bad error messages.
|
# with an artificial SetupError, which produces bad error messages.
|
||||||
# This just logs those stack traces to stderr for easier debugging.
|
# This just logs those stack traces to stderr for easier debugging.
|
||||||
try:
|
try:
|
||||||
super(BaseFixture, self).setUp()
|
super().setUp()
|
||||||
except MultipleExceptions as e:
|
except MultipleExceptions as e:
|
||||||
for i, exc_info in enumerate(e.args):
|
for i, exc_info in enumerate(e.args):
|
||||||
print('--- printing MultipleExceptions traceback {} of {} ---'
|
print('--- printing MultipleExceptions traceback {} of {} ---'
|
||||||
|
@ -52,7 +52,7 @@ class ZoneFixture(BaseFixture):
|
||||||
"""See DesignateCLI.zone_create for __init__ args"""
|
"""See DesignateCLI.zone_create for __init__ args"""
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(ZoneFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.zone = self.client.zone_create(*self.args, **self.kwargs)
|
self.zone = self.client.zone_create(*self.args, **self.kwargs)
|
||||||
self.addCleanup(self.cleanup_zone, self.client, self.zone.id)
|
self.addCleanup(self.cleanup_zone, self.client, self.zone.id)
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ class TransferRequestFixture(BaseFixture):
|
||||||
|
|
||||||
def __init__(self, zone, user='default', target_user='alt', *args,
|
def __init__(self, zone, user='default', target_user='alt', *args,
|
||||||
**kwargs):
|
**kwargs):
|
||||||
super(TransferRequestFixture, self).__init__(user, *args, **kwargs)
|
super().__init__(user, *args, **kwargs)
|
||||||
self.zone = zone
|
self.zone = zone
|
||||||
self.target_client = DesignateCLI.as_user(target_user)
|
self.target_client = DesignateCLI.as_user(target_user)
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ class TransferRequestFixture(BaseFixture):
|
||||||
self.kwargs['target_project_id'] = self.target_client.project_id
|
self.kwargs['target_project_id'] = self.target_client.project_id
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(TransferRequestFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.transfer_request = self.client.zone_transfer_request_create(
|
self.transfer_request = self.client.zone_transfer_request_create(
|
||||||
zone_id=self.zone.id,
|
zone_id=self.zone.id,
|
||||||
*self.args, **self.kwargs
|
*self.args, **self.kwargs
|
||||||
|
@ -101,11 +101,11 @@ class ExportFixture(BaseFixture):
|
||||||
"""See DesignateCLI.zone_export_create for __init__ args"""
|
"""See DesignateCLI.zone_export_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, zone, user='default', *args, **kwargs):
|
def __init__(self, zone, user='default', *args, **kwargs):
|
||||||
super(ExportFixture, self).__init__(user, *args, **kwargs)
|
super().__init__(user, *args, **kwargs)
|
||||||
self.zone = zone
|
self.zone = zone
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(ExportFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.zone_export = self.client.zone_export_create(
|
self.zone_export = self.client.zone_export_create(
|
||||||
zone_id=self.zone.id,
|
zone_id=self.zone.id,
|
||||||
*self.args, **self.kwargs
|
*self.args, **self.kwargs
|
||||||
|
@ -126,11 +126,11 @@ class ImportFixture(BaseFixture):
|
||||||
"""See DesignateCLI.zone_import_create for __init__ args"""
|
"""See DesignateCLI.zone_import_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, zone_file_contents, user='default', *args, **kwargs):
|
def __init__(self, zone_file_contents, user='default', *args, **kwargs):
|
||||||
super(ImportFixture, self).__init__(user, *args, **kwargs)
|
super().__init__(user, *args, **kwargs)
|
||||||
self.zone_file_contents = zone_file_contents
|
self.zone_file_contents = zone_file_contents
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(ImportFixture, self)._setUp()
|
super()._setUp()
|
||||||
|
|
||||||
with tempfile.NamedTemporaryFile() as f:
|
with tempfile.NamedTemporaryFile() as f:
|
||||||
f.write(self.zone_file_contents)
|
f.write(self.zone_file_contents)
|
||||||
|
@ -158,7 +158,7 @@ class RecordsetFixture(BaseFixture):
|
||||||
"""See DesignateCLI.recordset_create for __init__ args"""
|
"""See DesignateCLI.recordset_create for __init__ args"""
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(RecordsetFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.recordset = self.client.recordset_create(
|
self.recordset = self.client.recordset_create(
|
||||||
*self.args, **self.kwargs)
|
*self.args, **self.kwargs)
|
||||||
self.addCleanup(self.cleanup_recordset, self.client,
|
self.addCleanup(self.cleanup_recordset, self.client,
|
||||||
|
@ -176,10 +176,10 @@ class TLDFixture(BaseFixture):
|
||||||
"""See DesignateCLI.tld_create for __init__ args"""
|
"""See DesignateCLI.tld_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, user='admin', *args, **kwargs):
|
def __init__(self, user='admin', *args, **kwargs):
|
||||||
super(TLDFixture, self).__init__(user=user, *args, **kwargs)
|
super().__init__(user=user, *args, **kwargs)
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(TLDFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.tld = self.client.tld_create(*self.args, **self.kwargs)
|
self.tld = self.client.tld_create(*self.args, **self.kwargs)
|
||||||
self.addCleanup(self.cleanup_tld, self.client, self.tld.id)
|
self.addCleanup(self.cleanup_tld, self.client, self.tld.id)
|
||||||
|
|
||||||
|
@ -195,10 +195,10 @@ class TSIGKeyFixture(BaseFixture):
|
||||||
"""See DesignateCLI.tsigkey_create for __init__ args"""
|
"""See DesignateCLI.tsigkey_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, user='admin', *args, **kwargs):
|
def __init__(self, user='admin', *args, **kwargs):
|
||||||
super(TSIGKeyFixture, self).__init__(user=user, *args, **kwargs)
|
super().__init__(user=user, *args, **kwargs)
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(TSIGKeyFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.tsigkey = self.client.tsigkey_create(*self.args, **self.kwargs)
|
self.tsigkey = self.client.tsigkey_create(*self.args, **self.kwargs)
|
||||||
self.addCleanup(self.cleanup_tsigkey(self.client, self.tsigkey.id))
|
self.addCleanup(self.cleanup_tsigkey(self.client, self.tsigkey.id))
|
||||||
|
|
||||||
|
@ -214,10 +214,10 @@ class BlacklistFixture(BaseFixture):
|
||||||
"""See DesignateCLI.zone_blacklist_create for __init__ args"""
|
"""See DesignateCLI.zone_blacklist_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, user='admin', *args, **kwargs):
|
def __init__(self, user='admin', *args, **kwargs):
|
||||||
super(BlacklistFixture, self).__init__(user=user, *args, **kwargs)
|
super().__init__(user=user, *args, **kwargs)
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(BlacklistFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.blacklist = self.client.zone_blacklist_create(*self.args,
|
self.blacklist = self.client.zone_blacklist_create(*self.args,
|
||||||
**self.kwargs)
|
**self.kwargs)
|
||||||
self.addCleanup(self.cleanup_blacklist, self.client, self.blacklist.id)
|
self.addCleanup(self.cleanup_blacklist, self.client, self.blacklist.id)
|
||||||
|
@ -234,11 +234,11 @@ class SharedZoneFixture(BaseFixture):
|
||||||
"""See DesignateCLI.recordset_create for __init__ args"""
|
"""See DesignateCLI.recordset_create for __init__ args"""
|
||||||
|
|
||||||
def __init__(self, zone, *args, **kwargs):
|
def __init__(self, zone, *args, **kwargs):
|
||||||
super(SharedZoneFixture, self).__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.zone = zone
|
self.zone = zone
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
super(SharedZoneFixture, self)._setUp()
|
super()._setUp()
|
||||||
self.zone_share = self.client.zone_share(zone_id=self.zone.id,
|
self.zone_share = self.client.zone_share(zone_id=self.zone.id,
|
||||||
*self.args, **self.kwargs)
|
*self.args, **self.kwargs)
|
||||||
self.addCleanup(self.cleanup_shared_zone, self.client, self.zone.id,
|
self.addCleanup(self.cleanup_shared_zone, self.client, self.zone.id,
|
||||||
|
|
|
@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import BlacklistFixture
|
||||||
class TestBlacklist(BaseDesignateTest):
|
class TestBlacklist(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBlacklist, self).setUp()
|
super().setUp()
|
||||||
pattern = random_blacklist()
|
pattern = random_blacklist()
|
||||||
self.blacklist = self.useFixture(BlacklistFixture(
|
self.blacklist = self.useFixture(BlacklistFixture(
|
||||||
pattern=pattern,
|
pattern=pattern,
|
||||||
|
|
|
@ -25,7 +25,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
class TestRecordset(BaseDesignateTest):
|
class TestRecordset(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestRecordset, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
self.zone = self.useFixture(ZoneFixture(
|
self.zone = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
|
|
@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
class TestSharedZone(BaseDesignateTest):
|
class TestSharedZone(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestSharedZone, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
fixture = self.useFixture(ZoneFixture(
|
fixture = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
|
|
@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import TLDFixture
|
||||||
class TestTld(BaseDesignateTest):
|
class TestTld(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTld, self).setUp()
|
super().setUp()
|
||||||
tld_name = random_tld()
|
tld_name = random_tld()
|
||||||
self.tld = self.useFixture(TLDFixture(
|
self.tld = self.useFixture(TLDFixture(
|
||||||
name=tld_name,
|
name=tld_name,
|
||||||
|
|
|
@ -25,7 +25,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
|
|
||||||
class TestTSIGKey(BaseDesignateTest):
|
class TestTSIGKey(BaseDesignateTest):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTSIGKey, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tsigkey_exists('com')
|
self.ensure_tsigkey_exists('com')
|
||||||
self.zone = self.useFixture(ZoneFixture(
|
self.zone = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
|
|
@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
class TestZone(BaseDesignateTest):
|
class TestZone(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZone, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
self.fixture = self.useFixture(ZoneFixture(
|
self.fixture = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
@ -61,7 +61,7 @@ class TestZone(BaseDesignateTest):
|
||||||
|
|
||||||
def test_zone_set(self):
|
def test_zone_set(self):
|
||||||
ttl = int(self.zone.ttl) + 123
|
ttl = int(self.zone.ttl) + 123
|
||||||
email = 'updated{0}'.format(self.zone.email)
|
email = f'updated{self.zone.email}'
|
||||||
description = 'new description'
|
description = 'new description'
|
||||||
|
|
||||||
zone = self.clients.zone_set(self.zone.id, ttl=ttl, email=email,
|
zone = self.clients.zone_set(self.zone.id, ttl=ttl, email=email,
|
||||||
|
@ -71,8 +71,9 @@ class TestZone(BaseDesignateTest):
|
||||||
self.assertEqual(description, zone.description)
|
self.assertEqual(description, zone.description)
|
||||||
|
|
||||||
def test_invalid_option_on_zone_create(self):
|
def test_invalid_option_on_zone_create(self):
|
||||||
cmd = 'zone create %s --invalid "not a valid option"'.format(
|
cmd = 'zone create {} --invalid "not a valid option"'.format(
|
||||||
random_zone_name())
|
random_zone_name()
|
||||||
|
)
|
||||||
self.assertRaises(CommandFailed, self.clients.openstack, cmd)
|
self.assertRaises(CommandFailed, self.clients.openstack, cmd)
|
||||||
|
|
||||||
def test_invalid_zone_command(self):
|
def test_invalid_zone_command(self):
|
||||||
|
@ -83,7 +84,7 @@ class TestZone(BaseDesignateTest):
|
||||||
class TestsPassingZoneFlags(BaseDesignateTest):
|
class TestsPassingZoneFlags(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestsPassingZoneFlags, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
|
|
||||||
def test_zone_create_primary_with_all_args(self):
|
def test_zone_create_primary_with_all_args(self):
|
||||||
|
|
|
@ -24,7 +24,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
class TestZoneExport(BaseDesignateTest):
|
class TestZoneExport(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZoneExport, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
fixture = self.useFixture(ZoneFixture(
|
fixture = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
|
|
@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ImportFixture
|
||||||
class TestZoneImport(BaseDesignateTest):
|
class TestZoneImport(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZoneImport, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
self.zone_file_contents = random_zone_file()
|
self.zone_file_contents = random_zone_file()
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture
|
||||||
class TestZoneTransferRequest(BaseDesignateTest):
|
class TestZoneTransferRequest(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZoneTransferRequest, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
fixture = self.useFixture(ZoneFixture(
|
fixture = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
@ -92,7 +92,7 @@ class TestZoneTransferRequest(BaseDesignateTest):
|
||||||
class TestZoneTransferAccept(BaseDesignateTest):
|
class TestZoneTransferAccept(BaseDesignateTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZoneTransferAccept, self).setUp()
|
super().setUp()
|
||||||
self.ensure_tld_exists('com')
|
self.ensure_tld_exists('com')
|
||||||
fixture = self.useFixture(ZoneFixture(
|
fixture = self.useFixture(ZoneFixture(
|
||||||
name=random_zone_name(),
|
name=random_zone_name(),
|
||||||
|
|
|
@ -35,7 +35,7 @@ class TestCase(test.BaseTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""Run before each test method to initialize test environment."""
|
"""Run before each test method to initialize test environment."""
|
||||||
|
|
||||||
super(TestCase, self).setUp()
|
super().setUp()
|
||||||
test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
|
test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
|
||||||
try:
|
try:
|
||||||
test_timeout = int(test_timeout)
|
test_timeout = int(test_timeout)
|
||||||
|
@ -74,7 +74,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
def get_base(self, base_url=None):
|
def get_base(self, base_url=None):
|
||||||
if not base_url:
|
if not base_url:
|
||||||
base_url = '%sv%s' % (self.TEST_URL, self.VERSION)
|
base_url = f'{self.TEST_URL}v{self.VERSION}'
|
||||||
return base_url
|
return base_url
|
||||||
|
|
||||||
def stub_url(self, method, parts=None, base_url=None, json=None, **kwargs):
|
def stub_url(self, method, parts=None, base_url=None, json=None, **kwargs):
|
||||||
|
|
|
@ -21,7 +21,7 @@ from designateclient.v2.cli import recordsets
|
||||||
|
|
||||||
class TestDesignateCreateRecordSets(utils.TestCommand):
|
class TestDesignateCreateRecordSets(utils.TestCommand):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestDesignateCreateRecordSets, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.dns = mock.MagicMock()
|
self.app.client_manager.dns = mock.MagicMock()
|
||||||
self.cmd = recordsets.CreateRecordSetCommand(self.app, None)
|
self.cmd = recordsets.CreateRecordSetCommand(self.app, None)
|
||||||
self.dns_client = self.app.client_manager.dns
|
self.dns_client = self.app.client_manager.dns
|
||||||
|
@ -54,7 +54,7 @@ class TestDesignateCreateRecordSets(utils.TestCommand):
|
||||||
|
|
||||||
class TestDesignateListRecordSets(utils.TestCommand):
|
class TestDesignateListRecordSets(utils.TestCommand):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestDesignateListRecordSets, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.dns = mock.MagicMock()
|
self.app.client_manager.dns = mock.MagicMock()
|
||||||
self.cmd = recordsets.ListRecordSetsCommand(self.app, None)
|
self.cmd = recordsets.ListRecordSetsCommand(self.app, None)
|
||||||
self.dns_client = self.app.client_manager.dns
|
self.dns_client = self.app.client_manager.dns
|
||||||
|
|
|
@ -21,7 +21,7 @@ from designateclient.v2.cli import zones
|
||||||
|
|
||||||
class TestDesignateCreateZone(utils.TestCommand):
|
class TestDesignateCreateZone(utils.TestCommand):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestDesignateCreateZone, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.dns = mock.MagicMock()
|
self.app.client_manager.dns = mock.MagicMock()
|
||||||
self.cmd = zones.CreateZoneCommand(self.app, None)
|
self.cmd = zones.CreateZoneCommand(self.app, None)
|
||||||
self.dns_client = self.app.client_manager.dns
|
self.dns_client = self.app.client_manager.dns
|
||||||
|
@ -49,7 +49,7 @@ class TestDesignateCreateZone(utils.TestCommand):
|
||||||
|
|
||||||
class TestDesignateListZones(utils.TestCommand):
|
class TestDesignateListZones(utils.TestCommand):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestDesignateListZones, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.dns = mock.MagicMock()
|
self.app.client_manager.dns = mock.MagicMock()
|
||||||
self.cmd = zones.ListZonesCommand(self.app, None)
|
self.cmd = zones.ListZonesCommand(self.app, None)
|
||||||
self.dns_client = self.app.client_manager.dns
|
self.dns_client = self.app.client_manager.dns
|
||||||
|
|
|
@ -18,7 +18,7 @@ import uuid
|
||||||
from designateclient.tests import base
|
from designateclient.tests import base
|
||||||
|
|
||||||
|
|
||||||
class CrudMixin(object):
|
class CrudMixin:
|
||||||
path_prefix = None
|
path_prefix = None
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
|
|
|
@ -22,7 +22,7 @@ class TestBlacklists(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'blacklists'
|
RESOURCE = 'blacklists'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestBlacklists, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("pattern", uuid.uuid4().hex)
|
ref.setdefault("pattern", uuid.uuid4().hex)
|
||||||
return ref
|
return ref
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'recordsets'
|
RESOURCE = 'recordsets'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestRecordSets, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("name", uuid.uuid4().hex)
|
ref.setdefault("name", uuid.uuid4().hex)
|
||||||
ref.setdefault("type", "A")
|
ref.setdefault("type", "A")
|
||||||
ref.setdefault("records", ["10.0.0.1"])
|
ref.setdefault("records", ["10.0.0.1"])
|
||||||
|
@ -49,11 +49,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE,
|
ZONE,
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
@patch.object(zones.ZoneController, "get")
|
@patch.object(zones.ZoneController, "get")
|
||||||
|
@ -70,11 +70,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE["name"],
|
ZONE["name"],
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
@patch.object(zones.ZoneController, "get")
|
@patch.object(zones.ZoneController, "get")
|
||||||
|
@ -95,7 +95,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
@patch.object(zones.ZoneController, "list")
|
@patch.object(zones.ZoneController, "list")
|
||||||
|
@ -112,7 +112,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
with testtools.ExpectedException(exceptions.NoUniqueMatch):
|
with testtools.ExpectedException(exceptions.NoUniqueMatch):
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE["name"],
|
ZONE["name"],
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
|
@ -127,11 +127,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE["id"],
|
ZONE["id"],
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
@patch.object(zones.ZoneController, "get")
|
@patch.object(zones.ZoneController, "get")
|
||||||
|
@ -152,7 +152,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"])
|
values["records"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
def test_create_with_description(self):
|
def test_create_with_description(self):
|
||||||
|
@ -166,12 +166,12 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE["id"],
|
ZONE["id"],
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"],
|
values["records"],
|
||||||
description=values["description"])
|
description=values["description"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
def test_create_with_ttl(self):
|
def test_create_with_ttl(self):
|
||||||
|
@ -185,12 +185,12 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
self.client.recordsets.create(
|
self.client.recordsets.create(
|
||||||
ZONE["id"],
|
ZONE["id"],
|
||||||
"%s.%s" % (values["name"], ZONE["name"]),
|
"{}.{}".format(values["name"], ZONE["name"]),
|
||||||
values["type"],
|
values["type"],
|
||||||
values["records"],
|
values["records"],
|
||||||
ttl=values["ttl"])
|
ttl=values["ttl"])
|
||||||
|
|
||||||
values["name"] = "%s.%s" % (ref["name"], ZONE["name"])
|
values["name"] = "{}.{}".format(ref["name"], ZONE["name"])
|
||||||
self.assertRequestBodyIs(json=values)
|
self.assertRequestBodyIs(json=values)
|
||||||
|
|
||||||
def test_get(self):
|
def test_get(self):
|
||||||
|
|
|
@ -17,7 +17,7 @@ import uuid
|
||||||
|
|
||||||
from designateclient.tests import v2
|
from designateclient.tests import v2
|
||||||
|
|
||||||
FIP_ID = '%s:%s' % (str(uuid.uuid4()), "RegionOne")
|
FIP_ID = '{}:{}'.format(str(uuid.uuid4()), "RegionOne")
|
||||||
|
|
||||||
|
|
||||||
class TestFloatingIP(v2.APIV2TestCase, v2.CrudMixin):
|
class TestFloatingIP(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
|
@ -20,7 +20,7 @@ class TestServiceStatuses(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'service_statuses'
|
RESOURCE = 'service_statuses'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestServiceStatuses, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref["name"] = "foo"
|
ref["name"] = "foo"
|
||||||
return ref
|
return ref
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ def create_session(timeout=None):
|
||||||
class TestTimeout(v2.APIV2TestCase, v2.CrudMixin):
|
class TestTimeout(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTimeout, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Mock methods in KeyStone's Session
|
# Mock methods in KeyStone's Session
|
||||||
self._saved_methods = (
|
self._saved_methods = (
|
||||||
|
@ -56,7 +56,7 @@ class TestTimeout(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
self.mock_send_request = keystone_session.Session._send_request
|
self.mock_send_request = keystone_session.Session._send_request
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(TestTimeout, self).tearDown()
|
super().tearDown()
|
||||||
(
|
(
|
||||||
keystone_session.Session.get_auth_headers,
|
keystone_session.Session.get_auth_headers,
|
||||||
keystone_session.Session.get_endpoint,
|
keystone_session.Session.get_endpoint,
|
||||||
|
|
|
@ -22,7 +22,7 @@ class TestTlds(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'tlds'
|
RESOURCE = 'tlds'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestTlds, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("name", uuid.uuid4().hex)
|
ref.setdefault("name", uuid.uuid4().hex)
|
||||||
return ref
|
return ref
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ class TestTSIGKeys(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'tsigkeys'
|
RESOURCE = 'tsigkeys'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestTSIGKeys, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("name", uuid.uuid4().hex)
|
ref.setdefault("name", uuid.uuid4().hex)
|
||||||
ref.setdefault("algorithm", "hmac-sha256")
|
ref.setdefault("algorithm", "hmac-sha256")
|
||||||
ref.setdefault("secret", uuid.uuid4().hex)
|
ref.setdefault("secret", uuid.uuid4().hex)
|
||||||
|
|
|
@ -23,7 +23,7 @@ class TestZones(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
RESOURCE = 'zones'
|
RESOURCE = 'zones'
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestZones, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("name", uuid.uuid4().hex)
|
ref.setdefault("name", uuid.uuid4().hex)
|
||||||
ref.setdefault("type", "PRIMARY")
|
ref.setdefault("type", "PRIMARY")
|
||||||
return ref
|
return ref
|
||||||
|
@ -278,7 +278,7 @@ class TestZoneTransfers(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
class TestZoneExports(v2.APIV2TestCase, v2.CrudMixin):
|
class TestZoneExports(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestZoneExports, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("zone_id", uuid.uuid4().hex)
|
ref.setdefault("zone_id", uuid.uuid4().hex)
|
||||||
ref.setdefault("created_at", time.strftime("%c"))
|
ref.setdefault("created_at", time.strftime("%c"))
|
||||||
ref.setdefault("updated_at", time.strftime("%c"))
|
ref.setdefault("updated_at", time.strftime("%c"))
|
||||||
|
@ -342,7 +342,7 @@ class TestZoneExports(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
class TestZoneImports(v2.APIV2TestCase, v2.CrudMixin):
|
class TestZoneImports(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestZoneImports, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("zone_id", uuid.uuid4().hex)
|
ref.setdefault("zone_id", uuid.uuid4().hex)
|
||||||
ref.setdefault("created_at", time.strftime("%c"))
|
ref.setdefault("created_at", time.strftime("%c"))
|
||||||
ref.setdefault("updated_at", time.strftime("%c"))
|
ref.setdefault("updated_at", time.strftime("%c"))
|
||||||
|
@ -396,7 +396,7 @@ class TestZoneImports(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
|
|
||||||
class TestZoneShared(v2.APIV2TestCase, v2.CrudMixin):
|
class TestZoneShared(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestZoneShared, self).setUp()
|
super().setUp()
|
||||||
self.zone_id = str(uuid.uuid4())
|
self.zone_id = str(uuid.uuid4())
|
||||||
self.target_project_id = str(uuid.uuid4())
|
self.target_project_id = str(uuid.uuid4())
|
||||||
self.project_id = str(uuid.uuid4())
|
self.project_id = str(uuid.uuid4())
|
||||||
|
@ -404,7 +404,7 @@ class TestZoneShared(v2.APIV2TestCase, v2.CrudMixin):
|
||||||
self.updated_at = time.strftime("%c")
|
self.updated_at = time.strftime("%c")
|
||||||
|
|
||||||
def new_ref(self, **kwargs):
|
def new_ref(self, **kwargs):
|
||||||
ref = super(TestZoneShared, self).new_ref(**kwargs)
|
ref = super().new_ref(**kwargs)
|
||||||
ref.setdefault("zone_id", self.zone_id)
|
ref.setdefault("zone_id", self.zone_id)
|
||||||
ref.setdefault("target_project_id", self.target_project_id)
|
ref.setdefault("target_project_id", self.target_project_id)
|
||||||
ref.setdefault("project_id", self.project_id)
|
ref.setdefault("project_id", self.project_id)
|
||||||
|
|
|
@ -82,11 +82,11 @@ def find_resourceid_by_name_or_id(resource_client, name_or_id):
|
||||||
candidate_ids = [r['id'] for r in resources if r.get('name') == name_or_id]
|
candidate_ids = [r['id'] for r in resources if r.get('name') == name_or_id]
|
||||||
if not candidate_ids:
|
if not candidate_ids:
|
||||||
raise exceptions.ResourceNotFound(
|
raise exceptions.ResourceNotFound(
|
||||||
'Could not find resource with name "%s"' % name_or_id)
|
f'Could not find resource with name "{name_or_id}"')
|
||||||
elif len(candidate_ids) > 1:
|
elif len(candidate_ids) > 1:
|
||||||
str_ids = ','.join(candidate_ids)
|
str_ids = ','.join(candidate_ids)
|
||||||
raise exceptions.NoUniqueMatch(
|
raise exceptions.NoUniqueMatch(
|
||||||
'Multiple resources with name "%s": %s' % (name_or_id, str_ids))
|
f'Multiple resources with name "{name_or_id}": {str_ids}')
|
||||||
return candidate_ids[0]
|
return candidate_ids[0]
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,4 +108,4 @@ class AdapterWithTimeout(adapter.Adapter):
|
||||||
if self.timeout is not None:
|
if self.timeout is not None:
|
||||||
kwargs.setdefault('timeout', self.timeout)
|
kwargs.setdefault('timeout', self.timeout)
|
||||||
|
|
||||||
return super(AdapterWithTimeout, self).request(*args, **kwargs)
|
return super().request(*args, **kwargs)
|
||||||
|
|
|
@ -30,19 +30,19 @@ class BlacklistController(V2Controller):
|
||||||
def list(self, criterion=None, marker=None, limit=None):
|
def list(self, criterion=None, marker=None, limit=None):
|
||||||
url = self.build_url('/blacklists', criterion, marker, limit)
|
url = self.build_url('/blacklists', criterion, marker, limit)
|
||||||
|
|
||||||
return self._get(url, response_key="blacklists")
|
return self._get(url, response_key='blacklists')
|
||||||
|
|
||||||
def get(self, blacklist_id):
|
def get(self, blacklist_id):
|
||||||
url = '/blacklists/%s' % blacklist_id
|
url = f'/blacklists/{blacklist_id}'
|
||||||
|
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
def update(self, blacklist_id, values):
|
def update(self, blacklist_id, values):
|
||||||
url = '/blacklists/%s' % blacklist_id
|
url = f'/blacklists/{blacklist_id}'
|
||||||
|
|
||||||
return self._patch(url, data=values)
|
return self._patch(url, data=values)
|
||||||
|
|
||||||
def delete(self, blacklist_id):
|
def delete(self, blacklist_id):
|
||||||
url = '/blacklists/%s' % blacklist_id
|
url = f'/blacklists/{blacklist_id}'
|
||||||
|
|
||||||
return self._delete(url)
|
return self._delete(url)
|
||||||
|
|
|
@ -37,7 +37,7 @@ class ListBlacklistsCommand(command.Lister):
|
||||||
columns = ['id', 'pattern', 'description']
|
columns = ['id', 'pattern', 'description']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListBlacklistsCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -56,9 +56,9 @@ class ShowBlacklistCommand(command.ShowOne):
|
||||||
"""Show blacklist details"""
|
"""Show blacklist details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowBlacklistCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Blacklist ID")
|
parser.add_argument('id', help='Blacklist ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -76,11 +76,11 @@ class CreateBlacklistCommand(command.ShowOne):
|
||||||
"""Create new blacklist"""
|
"""Create new blacklist"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateBlacklistCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--pattern', help="Blacklist pattern",
|
parser.add_argument('--pattern', help='Blacklist pattern',
|
||||||
required=True)
|
required=True)
|
||||||
parser.add_argument('--description', help="Description")
|
parser.add_argument('--description', help='Description')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -101,13 +101,13 @@ class SetBlacklistCommand(command.ShowOne):
|
||||||
"""Set blacklist properties"""
|
"""Set blacklist properties"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetBlacklistCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Blacklist ID")
|
parser.add_argument('id', help='Blacklist ID')
|
||||||
parser.add_argument('--pattern', help="Blacklist pattern")
|
parser.add_argument('--pattern', help='Blacklist pattern')
|
||||||
|
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -138,9 +138,9 @@ class DeleteBlacklistCommand(command.Command):
|
||||||
"""Delete blacklist"""
|
"""Delete blacklist"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteBlacklistCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Blacklist ID")
|
parser.add_argument('id', help='Blacklist ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
|
|
@ -39,13 +39,13 @@ class ListQuotasCommand(show.ShowOne):
|
||||||
# columns = ['resource', 'hard_limit']
|
# columns = ['resource', 'hard_limit']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListQuotasCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--project-id',
|
'--project-id',
|
||||||
help="Project ID Default: current project")
|
help='Project ID Default: current project')
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
@ -70,18 +70,18 @@ class SetQuotasCommand(show.ShowOne):
|
||||||
return itertools.chain(DNS_QUOTAS.items())
|
return itertools.chain(DNS_QUOTAS.items())
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetQuotasCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
parser.add_argument('--project-id', help="Project ID")
|
parser.add_argument('--project-id', help='Project ID')
|
||||||
for k, v in self._build_options_list():
|
for k, v in self._build_options_list():
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--%s' % v,
|
f'--{v}',
|
||||||
metavar='<%s>' % v,
|
metavar=f'<{v}>',
|
||||||
dest=k,
|
dest=k,
|
||||||
type=int,
|
type=int,
|
||||||
help='New value for the %s quota' % v,
|
help=f'New value for the {v} quota',
|
||||||
)
|
)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
@ -111,11 +111,11 @@ class ResetQuotasCommand(command.Command):
|
||||||
"""Reset quotas"""
|
"""Reset quotas"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ResetQuotasCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
parser.add_argument('--project-id', help="Project ID")
|
parser.add_argument('--project-id', help='Project ID')
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
|
@ -48,19 +48,19 @@ class ListRecordSetsCommand(command.Lister):
|
||||||
columns = ['id', 'name', 'type', 'records', 'status', 'action']
|
columns = ['id', 'name', 'type', 'records', 'status', 'action']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListRecordSetsCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="RecordSet Name", required=False)
|
parser.add_argument('--name', help='RecordSet Name', required=False)
|
||||||
parser.add_argument('--type', help="RecordSet Type", required=False)
|
parser.add_argument('--type', help='RecordSet Type', required=False)
|
||||||
parser.add_argument('--data', help="RecordSet Record Data",
|
parser.add_argument('--data', help='RecordSet Record Data',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--ttl', help="Time To Live (Seconds)",
|
parser.add_argument('--ttl', help='Time To Live (Seconds)',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--description', help="Description",
|
parser.add_argument('--description', help='Description',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--status', help="RecordSet Status",
|
parser.add_argument('--status', help='RecordSet Status',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--action', help="RecordSet Action",
|
parser.add_argument('--action', help='RecordSet Action',
|
||||||
required=False)
|
required=False)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID. To list all"
|
parser.add_argument('zone_id', help="Zone ID. To list all"
|
||||||
|
@ -76,25 +76,25 @@ class ListRecordSetsCommand(command.Lister):
|
||||||
|
|
||||||
criterion = {}
|
criterion = {}
|
||||||
if parsed_args.type is not None:
|
if parsed_args.type is not None:
|
||||||
criterion["type"] = parsed_args.type
|
criterion['type'] = parsed_args.type
|
||||||
|
|
||||||
if parsed_args.name is not None:
|
if parsed_args.name is not None:
|
||||||
criterion["name"] = parsed_args.name
|
criterion['name'] = parsed_args.name
|
||||||
|
|
||||||
if parsed_args.data is not None:
|
if parsed_args.data is not None:
|
||||||
criterion["data"] = parsed_args.data
|
criterion['data'] = parsed_args.data
|
||||||
|
|
||||||
if parsed_args.ttl is not None:
|
if parsed_args.ttl is not None:
|
||||||
criterion["ttl"] = parsed_args.ttl
|
criterion['ttl'] = parsed_args.ttl
|
||||||
|
|
||||||
if parsed_args.description is not None:
|
if parsed_args.description is not None:
|
||||||
criterion["description"] = parsed_args.description
|
criterion['description'] = parsed_args.description
|
||||||
|
|
||||||
if parsed_args.status is not None:
|
if parsed_args.status is not None:
|
||||||
criterion["status"] = parsed_args.status
|
criterion['status'] = parsed_args.status
|
||||||
|
|
||||||
if parsed_args.action is not None:
|
if parsed_args.action is not None:
|
||||||
criterion["action"] = parsed_args.action
|
criterion['action'] = parsed_args.action
|
||||||
|
|
||||||
cols = list(self.columns)
|
cols = list(self.columns)
|
||||||
|
|
||||||
|
@ -119,10 +119,10 @@ class ShowRecordSetCommand(command.ShowOne):
|
||||||
"""Show recordset details"""
|
"""Show recordset details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowRecordSetCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID")
|
parser.add_argument('zone_id', help='Zone ID')
|
||||||
parser.add_argument('id', help="RecordSet ID")
|
parser.add_argument('id', help='RecordSet ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -143,10 +143,10 @@ class CreateRecordSetCommand(command.ShowOne):
|
||||||
log = logging.getLogger('deprecated')
|
log = logging.getLogger('deprecated')
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateRecordSetCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID")
|
parser.add_argument('zone_id', help='Zone ID')
|
||||||
parser.add_argument('name', help="RecordSet Name")
|
parser.add_argument('name', help='RecordSet Name')
|
||||||
req_group = parser.add_mutually_exclusive_group(required=True)
|
req_group = parser.add_mutually_exclusive_group(required=True)
|
||||||
req_group.add_argument(
|
req_group.add_argument(
|
||||||
'--records',
|
'--records',
|
||||||
|
@ -154,11 +154,11 @@ class CreateRecordSetCommand(command.ShowOne):
|
||||||
nargs='+')
|
nargs='+')
|
||||||
req_group.add_argument(
|
req_group.add_argument(
|
||||||
'--record',
|
'--record',
|
||||||
help="RecordSet Record, repeat if necessary",
|
help='RecordSet Record, repeat if necessary',
|
||||||
action='append')
|
action='append')
|
||||||
parser.add_argument('--type', help="RecordSet Type", required=True)
|
parser.add_argument('--type', help='RecordSet Type', required=True)
|
||||||
parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)")
|
parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)')
|
||||||
parser.add_argument('--description', help="Description")
|
parser.add_argument('--description', help='Description')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ class CreateRecordSetCommand(command.ShowOne):
|
||||||
all_records = parsed_args.record or parsed_args.records
|
all_records = parsed_args.record or parsed_args.records
|
||||||
if parsed_args.records:
|
if parsed_args.records:
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
"Option --records is deprecated, use --record instead.")
|
'Option --records is deprecated, use --record instead.')
|
||||||
data = client.recordsets.create(
|
data = client.recordsets.create(
|
||||||
parsed_args.zone_id,
|
parsed_args.zone_id,
|
||||||
parsed_args.name,
|
parsed_args.name,
|
||||||
|
@ -188,10 +188,10 @@ class SetRecordSetCommand(command.ShowOne):
|
||||||
"""Set recordset properties"""
|
"""Set recordset properties"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetRecordSetCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID")
|
parser.add_argument('zone_id', help='Zone ID')
|
||||||
parser.add_argument('id', help="RecordSet ID")
|
parser.add_argument('id', help='RecordSet ID')
|
||||||
req_group = parser.add_mutually_exclusive_group()
|
req_group = parser.add_mutually_exclusive_group()
|
||||||
req_group.add_argument(
|
req_group.add_argument(
|
||||||
'--records',
|
'--records',
|
||||||
|
@ -199,15 +199,15 @@ class SetRecordSetCommand(command.ShowOne):
|
||||||
nargs='+')
|
nargs='+')
|
||||||
req_group.add_argument(
|
req_group.add_argument(
|
||||||
'--record',
|
'--record',
|
||||||
help="RecordSet Record, repeat if necessary",
|
help='RecordSet Record, repeat if necessary',
|
||||||
action='append')
|
action='append')
|
||||||
|
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
ttl_group = parser.add_mutually_exclusive_group()
|
ttl_group = parser.add_mutually_exclusive_group()
|
||||||
ttl_group.add_argument('--ttl', type=int, help="TTL")
|
ttl_group.add_argument('--ttl', type=int, help='TTL')
|
||||||
ttl_group.add_argument('--no-ttl', action='store_true')
|
ttl_group.add_argument('--no-ttl', action='store_true')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -231,7 +231,7 @@ class SetRecordSetCommand(command.ShowOne):
|
||||||
all_records = parsed_args.record or parsed_args.records
|
all_records = parsed_args.record or parsed_args.records
|
||||||
if parsed_args.records:
|
if parsed_args.records:
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
"Option --records is deprecated, use --record instead.")
|
'Option --records is deprecated, use --record instead.')
|
||||||
|
|
||||||
if all_records:
|
if all_records:
|
||||||
data['records'] = all_records
|
data['records'] = all_records
|
||||||
|
@ -253,10 +253,10 @@ class DeleteRecordSetCommand(command.ShowOne):
|
||||||
"""Delete recordset"""
|
"""Delete recordset"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteRecordSetCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID")
|
parser.add_argument('zone_id', help='Zone ID')
|
||||||
parser.add_argument('id', help="RecordSet ID")
|
parser.add_argument('id', help='RecordSet ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
common.add_edit_managed_option(parser)
|
common.add_edit_managed_option(parser)
|
||||||
|
|
|
@ -37,7 +37,7 @@ class ListFloatingIPCommand(command.Lister):
|
||||||
columns = ['id', 'ptrdname', 'description', 'ttl']
|
columns = ['id', 'ptrdname', 'description', 'ttl']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListFloatingIPCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -56,10 +56,10 @@ class ShowFloatingIPCommand(command.ShowOne):
|
||||||
"""Show floatingip ptr record details"""
|
"""Show floatingip ptr record details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowFloatingIPCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('floatingip_id', help="Floating IP ID in format "
|
parser.add_argument('floatingip_id', help='Floating IP ID in format '
|
||||||
"region:floatingip_id")
|
'region:floatingip_id')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -77,18 +77,18 @@ class SetFloatingIPCommand(command.ShowOne):
|
||||||
"""Set floatingip ptr record"""
|
"""Set floatingip ptr record"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetFloatingIPCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('floatingip_id', help="Floating IP ID in format "
|
parser.add_argument('floatingip_id', help='Floating IP ID in format '
|
||||||
"region:floatingip_id")
|
'region:floatingip_id')
|
||||||
parser.add_argument('ptrdname', help="PTRD Name")
|
parser.add_argument('ptrdname', help='PTRD Name')
|
||||||
|
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
ttl_group = parser.add_mutually_exclusive_group()
|
ttl_group = parser.add_mutually_exclusive_group()
|
||||||
ttl_group.add_argument('--ttl', type=int, help="TTL")
|
ttl_group.add_argument('--ttl', type=int, help='TTL')
|
||||||
ttl_group.add_argument('--no-ttl', action='store_true')
|
ttl_group.add_argument('--no-ttl', action='store_true')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -125,10 +125,10 @@ class UnsetFloatingIPCommand(command.Command):
|
||||||
"""Unset floatingip ptr record"""
|
"""Unset floatingip ptr record"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(UnsetFloatingIPCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('floatingip_id', help="Floating IP ID in format "
|
parser.add_argument('floatingip_id', help='Floating IP ID in format '
|
||||||
"region:floatingip_id")
|
'region:floatingip_id')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,10 @@ LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def _format_status(status):
|
def _format_status(status):
|
||||||
status.pop("links", None)
|
status.pop('links', None)
|
||||||
# Remove unneeded fields for display output formatting
|
# Remove unneeded fields for display output formatting
|
||||||
for k in ("capabilities", "stats"):
|
for k in ('capabilities', 'stats'):
|
||||||
status[k] = "\n".join(status[k]) if status[k] else "-"
|
status[k] = '\n'.join(status[k]) if status[k] else '-'
|
||||||
return status
|
return status
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,12 +41,12 @@ class ListServiceStatusesCommand(command.Lister):
|
||||||
'capabilities']
|
'capabilities']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListServiceStatusesCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument("--hostname", help="Hostname", required=False)
|
parser.add_argument('--hostname', help='Hostname', required=False)
|
||||||
parser.add_argument("--service_name", help="Service Name",
|
parser.add_argument('--service_name', help='Service Name',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument("--status", help="Status", required=False)
|
parser.add_argument('--status', help='Status', required=False)
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
@ -58,7 +58,7 @@ class ListServiceStatusesCommand(command.Lister):
|
||||||
cols = self.columns
|
cols = self.columns
|
||||||
|
|
||||||
criterion = {}
|
criterion = {}
|
||||||
for i in ["hostname", "service_name", "status"]:
|
for i in ['hostname', 'service_name', 'status']:
|
||||||
v = getattr(parsed_args, i)
|
v = getattr(parsed_args, i)
|
||||||
if v is not None:
|
if v is not None:
|
||||||
criterion[i] = v
|
criterion[i] = v
|
||||||
|
@ -76,9 +76,9 @@ class ShowServiceStatusCommand(command.ShowOne):
|
||||||
"""Show service status details"""
|
"""Show service status details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowServiceStatusCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Service Status ID")
|
parser.add_argument('id', help='Service Status ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
|
|
@ -37,11 +37,11 @@ class ListTLDsCommand(command.Lister):
|
||||||
columns = ['id', 'name', 'description']
|
columns = ['id', 'name', 'description']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListTLDsCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="TLD NAME")
|
parser.add_argument('--name', help='TLD NAME')
|
||||||
|
|
||||||
parser.add_argument('--description', help="TLD Description")
|
parser.add_argument('--description', help='TLD Description')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -61,9 +61,9 @@ class ShowTLDCommand(command.ShowOne):
|
||||||
"""Show tld details"""
|
"""Show tld details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowTLDCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TLD name or ID")
|
parser.add_argument('id', help='TLD name or ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -81,10 +81,10 @@ class CreateTLDCommand(command.ShowOne):
|
||||||
"""Create new tld"""
|
"""Create new tld"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateTLDCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="TLD Name", required=True)
|
parser.add_argument('--name', help='TLD Name', required=True)
|
||||||
parser.add_argument('--description', help="Description")
|
parser.add_argument('--description', help='Description')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -102,12 +102,12 @@ class SetTLDCommand(command.ShowOne):
|
||||||
"""Set tld properties"""
|
"""Set tld properties"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetTLDCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TLD name or ID")
|
parser.add_argument('id', help='TLD name or ID')
|
||||||
parser.add_argument('--name', help="TLD Name")
|
parser.add_argument('--name', help='TLD Name')
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -137,9 +137,9 @@ class DeleteTLDCommand(command.Command):
|
||||||
"""Delete tld"""
|
"""Delete tld"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteTLDCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TLD name or ID")
|
parser.add_argument('id', help='TLD name or ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
|
|
@ -36,12 +36,12 @@ class ListTSIGKeysCommand(command.Lister):
|
||||||
columns = ['id', 'name', 'algorithm', 'secret', 'scope', 'resource_id']
|
columns = ['id', 'name', 'algorithm', 'secret', 'scope', 'resource_id']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListTSIGKeysCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="TSIGKey NAME", required=False)
|
parser.add_argument('--name', help='TSIGKey NAME', required=False)
|
||||||
parser.add_argument('--algorithm', help="TSIGKey algorithm",
|
parser.add_argument('--algorithm', help='TSIGKey algorithm',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--scope', help="TSIGKey scope", required=False)
|
parser.add_argument('--scope', help='TSIGKey scope', required=False)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -53,11 +53,11 @@ class ListTSIGKeysCommand(command.Lister):
|
||||||
|
|
||||||
criterion = {}
|
criterion = {}
|
||||||
if parsed_args.name is not None:
|
if parsed_args.name is not None:
|
||||||
criterion["name"] = parsed_args.name
|
criterion['name'] = parsed_args.name
|
||||||
if parsed_args.algorithm is not None:
|
if parsed_args.algorithm is not None:
|
||||||
criterion["algorithm"] = parsed_args.algorithm
|
criterion['algorithm'] = parsed_args.algorithm
|
||||||
if parsed_args.scope is not None:
|
if parsed_args.scope is not None:
|
||||||
criterion["scope"] = parsed_args.scope
|
criterion['scope'] = parsed_args.scope
|
||||||
|
|
||||||
data = get_all(client.tsigkeys.list, criterion)
|
data = get_all(client.tsigkeys.list, criterion)
|
||||||
|
|
||||||
|
@ -69,9 +69,9 @@ class ShowTSIGKeyCommand(command.ShowOne):
|
||||||
"""Show tsigkey details"""
|
"""Show tsigkey details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowTSIGKeyCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TSIGKey ID")
|
parser.add_argument('id', help='TSIGKey ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -89,14 +89,14 @@ class CreateTSIGKeyCommand(command.ShowOne):
|
||||||
"""Create new tsigkey"""
|
"""Create new tsigkey"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateTSIGKeyCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="TSIGKey Name", required=True)
|
parser.add_argument('--name', help='TSIGKey Name', required=True)
|
||||||
parser.add_argument('--algorithm', help="TSIGKey algorithm",
|
parser.add_argument('--algorithm', help='TSIGKey algorithm',
|
||||||
required=True)
|
required=True)
|
||||||
parser.add_argument('--secret', help="TSIGKey secret", required=True)
|
parser.add_argument('--secret', help='TSIGKey secret', required=True)
|
||||||
parser.add_argument('--scope', help="TSIGKey scope", required=True)
|
parser.add_argument('--scope', help='TSIGKey scope', required=True)
|
||||||
parser.add_argument('--resource-id', help="TSIGKey resource_id",
|
parser.add_argument('--resource-id', help='TSIGKey resource_id',
|
||||||
required=True)
|
required=True)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -117,13 +117,13 @@ class SetTSIGKeyCommand(command.ShowOne):
|
||||||
"""Set tsigkey properties"""
|
"""Set tsigkey properties"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetTSIGKeyCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TSIGKey ID")
|
parser.add_argument('id', help='TSIGKey ID')
|
||||||
parser.add_argument('--name', help="TSIGKey Name")
|
parser.add_argument('--name', help='TSIGKey Name')
|
||||||
parser.add_argument('--algorithm', help="TSIGKey algorithm")
|
parser.add_argument('--algorithm', help='TSIGKey algorithm')
|
||||||
parser.add_argument('--secret', help="TSIGKey secret")
|
parser.add_argument('--secret', help='TSIGKey secret')
|
||||||
parser.add_argument('--scope', help="TSIGKey scope")
|
parser.add_argument('--scope', help='TSIGKey scope')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -153,9 +153,9 @@ class DeleteTSIGKeyCommand(command.Command):
|
||||||
"""Delete tsigkey"""
|
"""Delete tsigkey"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteTSIGKeyCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="TSIGKey ID")
|
parser.add_argument('id', help='TSIGKey ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
|
|
@ -29,10 +29,10 @@ LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
def _format_zone(zone):
|
def _format_zone(zone):
|
||||||
zone.pop('links', None)
|
zone.pop('links', None)
|
||||||
zone['masters'] = ", ".join(zone['masters'])
|
zone['masters'] = ', '.join(zone['masters'])
|
||||||
attrib = ''
|
attrib = ''
|
||||||
for attr in zone['attributes']:
|
for attr in zone['attributes']:
|
||||||
attrib += "%s:%s\n" % (attr, zone['attributes'][attr])
|
attrib += '{}:{}\n'.format(attr, zone['attributes'][attr])
|
||||||
zone['attributes'] = attrib
|
zone['attributes'] = attrib
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,19 +50,19 @@ class ListZonesCommand(command.Lister):
|
||||||
columns = ['id', 'name', 'type', 'serial', 'status', 'action']
|
columns = ['id', 'name', 'type', 'serial', 'status', 'action']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListZonesCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--name', help="Zone Name", required=False)
|
parser.add_argument('--name', help='Zone Name', required=False)
|
||||||
parser.add_argument('--email', help="Zone Email", required=False)
|
parser.add_argument('--email', help='Zone Email', required=False)
|
||||||
parser.add_argument('--type', help="Zone Type",
|
parser.add_argument('--type', help='Zone Type',
|
||||||
choices=["PRIMARY", "SECONDARY"],
|
choices=['PRIMARY', 'SECONDARY'],
|
||||||
default=None,
|
default=None,
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--ttl', help="Time To Live (Seconds)",
|
parser.add_argument('--ttl', help='Time To Live (Seconds)',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--description', help="Description",
|
parser.add_argument('--description', help='Description',
|
||||||
required=False)
|
required=False)
|
||||||
parser.add_argument('--status', help="Zone Status", required=False)
|
parser.add_argument('--status', help='Zone Status', required=False)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -74,22 +74,22 @@ class ListZonesCommand(command.Lister):
|
||||||
|
|
||||||
criterion = {}
|
criterion = {}
|
||||||
if parsed_args.type is not None:
|
if parsed_args.type is not None:
|
||||||
criterion["type"] = parsed_args.type
|
criterion['type'] = parsed_args.type
|
||||||
|
|
||||||
if parsed_args.name is not None:
|
if parsed_args.name is not None:
|
||||||
criterion["name"] = parsed_args.name
|
criterion['name'] = parsed_args.name
|
||||||
|
|
||||||
if parsed_args.ttl is not None:
|
if parsed_args.ttl is not None:
|
||||||
criterion["ttl"] = parsed_args.ttl
|
criterion['ttl'] = parsed_args.ttl
|
||||||
|
|
||||||
if parsed_args.description is not None:
|
if parsed_args.description is not None:
|
||||||
criterion["description"] = parsed_args.description
|
criterion['description'] = parsed_args.description
|
||||||
|
|
||||||
if parsed_args.email is not None:
|
if parsed_args.email is not None:
|
||||||
criterion["email"] = parsed_args.email
|
criterion['email'] = parsed_args.email
|
||||||
|
|
||||||
if parsed_args.status is not None:
|
if parsed_args.status is not None:
|
||||||
criterion["status"] = parsed_args.status
|
criterion['status'] = parsed_args.status
|
||||||
|
|
||||||
data = get_all(client.zones.list, criterion)
|
data = get_all(client.zones.list, criterion)
|
||||||
|
|
||||||
|
@ -105,9 +105,9 @@ class ShowZoneCommand(command.ShowOne):
|
||||||
"""Show zone details"""
|
"""Show zone details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone ID")
|
parser.add_argument('id', help='Zone ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -127,17 +127,17 @@ class CreateZoneCommand(command.ShowOne):
|
||||||
"""Create new zone"""
|
"""Create new zone"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('name', help="Zone Name")
|
parser.add_argument('name', help='Zone Name')
|
||||||
parser.add_argument('--email', help="Zone Email")
|
parser.add_argument('--email', help='Zone Email')
|
||||||
parser.add_argument('--type', help="Zone Type",
|
parser.add_argument('--type', help='Zone Type',
|
||||||
choices=["PRIMARY", "SECONDARY"],
|
choices=['PRIMARY', 'SECONDARY'],
|
||||||
default='PRIMARY')
|
default='PRIMARY')
|
||||||
parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)")
|
parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)')
|
||||||
parser.add_argument('--description', help="Description")
|
parser.add_argument('--description', help='Description')
|
||||||
parser.add_argument('--masters', help="Zone Masters", nargs='+')
|
parser.add_argument('--masters', help='Zone Masters', nargs='+')
|
||||||
parser.add_argument('--attributes', help="Zone Attributes", nargs='+')
|
parser.add_argument('--attributes', help='Zone Attributes', nargs='+')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -150,36 +150,39 @@ class CreateZoneCommand(command.ShowOne):
|
||||||
payload = {}
|
payload = {}
|
||||||
|
|
||||||
if parsed_args.description:
|
if parsed_args.description:
|
||||||
payload["description"] = parsed_args.description
|
payload['description'] = parsed_args.description
|
||||||
|
|
||||||
if parsed_args.attributes:
|
if parsed_args.attributes:
|
||||||
payload["attributes"] = {}
|
payload['attributes'] = {}
|
||||||
for attr in parsed_args.attributes:
|
for attr in parsed_args.attributes:
|
||||||
try:
|
try:
|
||||||
k, v = attr.split(':')
|
k, v = attr.split(':')
|
||||||
payload["attributes"][k] = v
|
payload['attributes'][k] = v
|
||||||
except ValueError:
|
except ValueError:
|
||||||
msg = ("Attribute '%s' is in an incorrect format. "
|
raise osc_exc.CommandError(
|
||||||
"Attributes are <key>:<value> formated")
|
f"Attribute '{attr}' is in an incorrect format. "
|
||||||
raise osc_exc.CommandError(msg % attr)
|
"Attributes are <key>:<value> formated"
|
||||||
|
)
|
||||||
|
|
||||||
if parsed_args.type == 'PRIMARY':
|
if parsed_args.type == 'PRIMARY':
|
||||||
# email is just for PRIMARY.
|
# email is just for PRIMARY.
|
||||||
if not parsed_args.email:
|
if not parsed_args.email:
|
||||||
msg = "Zone type PRIMARY requires --email."
|
raise osc_exc.CommandError(
|
||||||
raise osc_exc.CommandError(msg)
|
'Zone type PRIMARY requires --email.'
|
||||||
|
)
|
||||||
|
|
||||||
payload["email"] = parsed_args.email
|
payload['email'] = parsed_args.email
|
||||||
|
|
||||||
# TTL is just valid for PRIMARY
|
# TTL is just valid for PRIMARY
|
||||||
if parsed_args.ttl is not None:
|
if parsed_args.ttl is not None:
|
||||||
payload["ttl"] = parsed_args.ttl
|
payload['ttl'] = parsed_args.ttl
|
||||||
elif parsed_args.type == 'SECONDARY':
|
elif parsed_args.type == 'SECONDARY':
|
||||||
payload["masters"] = parsed_args.masters
|
payload['masters'] = parsed_args.masters
|
||||||
else:
|
else:
|
||||||
msg = ("Type %s is not supported. Please choose between "
|
raise osc_exc.CommandError(
|
||||||
"PRIMARY or SECONDARY")
|
f'Type {parsed_args.type} is not supported. Please choose '
|
||||||
raise osc_exc.CommandError(msg % parsed_args.type)
|
'between PRIMARY or SECONDARY'
|
||||||
|
)
|
||||||
|
|
||||||
data = client.zones.create(
|
data = client.zones.create(
|
||||||
parsed_args.name, parsed_args.type, **payload)
|
parsed_args.name, parsed_args.type, **payload)
|
||||||
|
@ -192,16 +195,16 @@ class SetZoneCommand(command.ShowOne):
|
||||||
"""Set zone properties"""
|
"""Set zone properties"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone ID")
|
parser.add_argument('id', help='Zone ID')
|
||||||
parser.add_argument('--email', help="Zone Email")
|
parser.add_argument('--email', help='Zone Email')
|
||||||
parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)")
|
parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)')
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
parser.add_argument('--masters', help="Zone Masters", nargs='+')
|
parser.add_argument('--masters', help='Zone Masters', nargs='+')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -237,9 +240,9 @@ class DeleteZoneCommand(command.ShowOne):
|
||||||
"""Delete zone"""
|
"""Delete zone"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone ID")
|
parser.add_argument('id', help='Zone ID')
|
||||||
|
|
||||||
parser.add_argument('--delete-shares', default=False,
|
parser.add_argument('--delete-shares', default=False,
|
||||||
action='store_true',
|
action='store_true',
|
||||||
|
@ -270,9 +273,9 @@ class DeleteZoneCommand(command.ShowOne):
|
||||||
class AbandonZoneCommand(command.Command):
|
class AbandonZoneCommand(command.Command):
|
||||||
"""Abandon a zone"""
|
"""Abandon a zone"""
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(AbandonZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone ID")
|
parser.add_argument('id', help='Zone ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -284,16 +287,16 @@ class AbandonZoneCommand(command.Command):
|
||||||
|
|
||||||
client.zones.abandon(parsed_args.id)
|
client.zones.abandon(parsed_args.id)
|
||||||
|
|
||||||
LOG.info("Z %(zone_id)s abandoned",
|
LOG.info('Z %(zone_id)s abandoned',
|
||||||
{"zone_id": parsed_args.id})
|
{'zone_id': parsed_args.id})
|
||||||
|
|
||||||
|
|
||||||
class AXFRZoneCommand(command.Command):
|
class AXFRZoneCommand(command.Command):
|
||||||
"""AXFR a zone"""
|
"""AXFR a zone"""
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(AXFRZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone ID")
|
parser.add_argument('id', help='Zone ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -305,22 +308,22 @@ class AXFRZoneCommand(command.Command):
|
||||||
|
|
||||||
client.zones.axfr(parsed_args.id)
|
client.zones.axfr(parsed_args.id)
|
||||||
|
|
||||||
LOG.info("Scheduled AXFR for zone %(zone_id)s",
|
LOG.info('Scheduled AXFR for zone %(zone_id)s',
|
||||||
{"zone_id": parsed_args.id})
|
{'zone_id': parsed_args.id})
|
||||||
|
|
||||||
|
|
||||||
class CreateTransferRequestCommand(command.ShowOne):
|
class CreateTransferRequestCommand(command.ShowOne):
|
||||||
"""Create new zone transfer request"""
|
"""Create new zone transfer request"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(CreateTransferRequestCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID to transfer.",)
|
parser.add_argument('zone_id', help='Zone ID to transfer.',)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--target-project-id',
|
'--target-project-id',
|
||||||
help="Target Project ID to transfer to.")
|
help='Target Project ID to transfer to.')
|
||||||
parser.add_argument('--description', help="Description")
|
parser.add_argument('--description', help='Description')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -343,7 +346,7 @@ class ListTransferRequestsCommand(command.Lister):
|
||||||
'target_project_id', 'status', 'key']
|
'target_project_id', 'status', 'key']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListTransferRequestsCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -364,9 +367,9 @@ class ShowTransferRequestCommand(command.ShowOne):
|
||||||
"""Show Zone Transfer Request Details"""
|
"""Show Zone Transfer Request Details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowTransferRequestCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone Tranfer Request ID")
|
parser.add_argument('id', help='Zone Tranfer Request ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -385,16 +388,16 @@ class SetTransferRequestCommand(command.ShowOne):
|
||||||
"""Set a Zone Transfer Request"""
|
"""Set a Zone Transfer Request"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(SetTransferRequestCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone Transfer Request ID")
|
parser.add_argument('id', help='Zone Transfer Request ID')
|
||||||
description_group = parser.add_mutually_exclusive_group()
|
description_group = parser.add_mutually_exclusive_group()
|
||||||
description_group.add_argument('--description', help="Description")
|
description_group.add_argument('--description', help='Description')
|
||||||
description_group.add_argument('--no-description', action='store_true')
|
description_group.add_argument('--no-description', action='store_true')
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--target-project-id',
|
'--target-project-id',
|
||||||
help="Target Project ID to transfer to.")
|
help='Target Project ID to transfer to.')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -421,10 +424,10 @@ class SetTransferRequestCommand(command.ShowOne):
|
||||||
class DeleteTransferRequestCommand(command.Command):
|
class DeleteTransferRequestCommand(command.Command):
|
||||||
"""Delete a Zone Transfer Request"""
|
"""Delete a Zone Transfer Request"""
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteTransferRequestCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone Transfer Request ID")
|
parser.add_argument('id', help='Zone Transfer Request ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -443,12 +446,12 @@ class AcceptTransferRequestCommand(command.ShowOne):
|
||||||
"""Accept a Zone Transfer Request"""
|
"""Accept a Zone Transfer Request"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(AcceptTransferRequestCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('--transfer-id', help="Transfer ID", type=str,
|
parser.add_argument('--transfer-id', help='Transfer ID', type=str,
|
||||||
required=True)
|
required=True)
|
||||||
parser.add_argument('--key', help="Transfer Key", type=str,
|
parser.add_argument('--key', help='Transfer Key', type=str,
|
||||||
required=True)
|
required=True)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -471,7 +474,7 @@ class ListTransferAcceptsCommand(command.Lister):
|
||||||
'zone_transfer_request_id', 'status', 'key']
|
'zone_transfer_request_id', 'status', 'key']
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListTransferAcceptsCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -492,9 +495,9 @@ class ShowTransferAcceptCommand(command.ShowOne):
|
||||||
"""Show Zone Transfer Accept"""
|
"""Show Zone Transfer Accept"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowTransferAcceptCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('id', help="Zone Tranfer Accept ID")
|
parser.add_argument('id', help='Zone Tranfer Accept ID')
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -513,12 +516,12 @@ class ExportZoneCommand(command.ShowOne):
|
||||||
"""Export a Zone"""
|
"""Export a Zone"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ExportZoneCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
parser.add_argument('zone_id', help="Zone ID", type=str)
|
parser.add_argument('zone_id', help='Zone ID', type=str)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
@ -545,7 +548,7 @@ class ListZoneExportsCommand(command.Lister):
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListZoneExportsCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -567,10 +570,10 @@ class ShowZoneExportCommand(command.ShowOne):
|
||||||
"""Show a Zone Export"""
|
"""Show a Zone Export"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowZoneExportCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_export_id', help="Zone Export ID", type=str)
|
parser.add_argument('zone_export_id', help='Zone Export ID', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -591,10 +594,10 @@ class DeleteZoneExportCommand(command.Command):
|
||||||
"""Delete a Zone Export"""
|
"""Delete a Zone Export"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteZoneExportCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_export_id', help="Zone Export ID", type=str)
|
parser.add_argument('zone_export_id', help='Zone Export ID', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -613,10 +616,10 @@ class ShowZoneExportFileCommand(command.ShowOne):
|
||||||
"""Show the zone file for the Zone Export"""
|
"""Show the zone file for the Zone Export"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowZoneExportFileCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_export_id', help="Zone Export ID", type=str)
|
parser.add_argument('zone_export_id', help='Zone Export ID', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -635,11 +638,11 @@ class ImportZoneCommand(command.ShowOne):
|
||||||
"""Import a Zone from a file on the filesystem"""
|
"""Import a Zone from a file on the filesystem"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ImportZoneCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_file_path',
|
parser.add_argument('zone_file_path',
|
||||||
help="Path to a zone file", type=str)
|
help='Path to a zone file', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -649,7 +652,7 @@ class ImportZoneCommand(command.ShowOne):
|
||||||
client = self.app.client_manager.dns
|
client = self.app.client_manager.dns
|
||||||
common.set_all_common_headers(client, parsed_args)
|
common.set_all_common_headers(client, parsed_args)
|
||||||
|
|
||||||
with open(parsed_args.zone_file_path, 'r') as f:
|
with open(parsed_args.zone_file_path) as f:
|
||||||
zone_file_contents = f.read()
|
zone_file_contents = f.read()
|
||||||
|
|
||||||
data = client.zone_imports.create(zone_file_contents)
|
data = client.zone_imports.create(zone_file_contents)
|
||||||
|
@ -672,7 +675,7 @@ class ListZoneImportsCommand(command.Lister):
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListZoneImportsCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -694,10 +697,10 @@ class ShowZoneImportCommand(command.ShowOne):
|
||||||
"""Show a Zone Import"""
|
"""Show a Zone Import"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowZoneImportCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_import_id', help="Zone Import ID", type=str)
|
parser.add_argument('zone_import_id', help='Zone Import ID', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -718,10 +721,10 @@ class DeleteZoneImportCommand(command.Command):
|
||||||
"""Delete a Zone Import"""
|
"""Delete a Zone Import"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteZoneImportCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone_import_id', help="Zone Import ID", type=str)
|
parser.add_argument('zone_import_id', help='Zone Import ID', type=str)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
|
||||||
|
@ -740,7 +743,7 @@ class ShareZoneCommand(command.ShowOne):
|
||||||
"""Share a Zone"""
|
"""Share a Zone"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShareZoneCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -777,7 +780,7 @@ class ListSharedZonesCommand(command.Lister):
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ListSharedZonesCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
common.add_all_common_options(parser)
|
common.add_all_common_options(parser)
|
||||||
|
@ -812,7 +815,7 @@ class ShowSharedZoneCommand(command.ShowOne):
|
||||||
"""Show Zone Share Details"""
|
"""Show Zone Share Details"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ShowSharedZoneCommand, self).get_parser(prog_name)
|
parser = super().get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone', help='The zone name or ID to share.')
|
parser.add_argument('zone', help='The zone name or ID to share.')
|
||||||
parser.add_argument('shared_zone_id',
|
parser.add_argument('shared_zone_id',
|
||||||
|
@ -837,7 +840,7 @@ class DeleteSharedZoneCommand(command.Command):
|
||||||
"""Delete a Zone Share"""
|
"""Delete a Zone Share"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(DeleteSharedZoneCommand, self).get_parser(
|
parser = super().get_parser(
|
||||||
prog_name)
|
prog_name)
|
||||||
|
|
||||||
parser.add_argument('zone', help='The zone name or ID to share.')
|
parser.add_argument('zone', help='The zone name or ID to share.')
|
||||||
|
|
|
@ -116,7 +116,7 @@ class DesignateAdapter(adapter.LegacyJsonAdapter):
|
||||||
return response, body
|
return response, body
|
||||||
|
|
||||||
|
|
||||||
class Client(object):
|
class Client:
|
||||||
def __init__(self, region_name=None, endpoint_type='publicURL',
|
def __init__(self, region_name=None, endpoint_type='publicURL',
|
||||||
extensions=None, service_type='dns', service_name=None,
|
extensions=None, service_type='dns', service_name=None,
|
||||||
http_log_debug=False, session=None, auth=None, timeout=None,
|
http_log_debug=False, session=None, auth=None, timeout=None,
|
||||||
|
@ -131,7 +131,7 @@ class Client(object):
|
||||||
region_name=region_name,
|
region_name=region_name,
|
||||||
service_type=service_type,
|
service_type=service_type,
|
||||||
interface=endpoint_type.rstrip('URL'),
|
interface=endpoint_type.rstrip('URL'),
|
||||||
user_agent='python-designateclient-%s' % version.version_info,
|
user_agent=f'python-designateclient-{version.version_info}',
|
||||||
version=('2'),
|
version=('2'),
|
||||||
endpoint_override=endpoint_override,
|
endpoint_override=endpoint_override,
|
||||||
timeout=timeout,
|
timeout=timeout,
|
||||||
|
|
|
@ -21,6 +21,6 @@ class NameServerController(V2Controller):
|
||||||
def list(self, zone):
|
def list(self, zone):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
|
|
||||||
url = '/zones/%s/nameservers' % zone
|
url = f'/zones/{zone}/nameservers'
|
||||||
|
|
||||||
return self._get(url, response_key='nameservers')
|
return self._get(url, response_key='nameservers')
|
||||||
|
|
|
@ -18,10 +18,10 @@ from designateclient.v2.base import V2Controller
|
||||||
|
|
||||||
class QuotasController(V2Controller):
|
class QuotasController(V2Controller):
|
||||||
def list(self, project_id):
|
def list(self, project_id):
|
||||||
return self._get('/quotas/%s' % project_id)
|
return self._get(f'/quotas/{project_id}')
|
||||||
|
|
||||||
def update(self, project_id, values):
|
def update(self, project_id, values):
|
||||||
return self._patch('/quotas/%s' % project_id, data=values)
|
return self._patch(f'/quotas/{project_id}', data=values)
|
||||||
|
|
||||||
def reset(self, project_id):
|
def reset(self, project_id):
|
||||||
return self._delete('/quotas/%s' % project_id)
|
return self._delete(f'/quotas/{project_id}')
|
||||||
|
|
|
@ -32,11 +32,11 @@ class RecordSetController(V2Controller):
|
||||||
|
|
||||||
# We where given a name like "www" vs www.i.io., attempt to fix it on
|
# We where given a name like "www" vs www.i.io., attempt to fix it on
|
||||||
# the behalf of the actor.
|
# the behalf of the actor.
|
||||||
if not name.endswith("."):
|
if not name.endswith('.'):
|
||||||
if not isinstance(zone_info, dict):
|
if not isinstance(zone_info, dict):
|
||||||
zone_info = self.client.zones.get(zone)
|
zone_info = self.client.zones.get(zone)
|
||||||
|
|
||||||
name = "%s.%s" % (name, zone_info["name"])
|
name = '{}.{}'.format(name, zone_info['name'])
|
||||||
|
|
||||||
return name, zone_info
|
return name, zone_info
|
||||||
|
|
||||||
|
@ -57,24 +57,22 @@ class RecordSetController(V2Controller):
|
||||||
data['description'] = description
|
data['description'] = description
|
||||||
|
|
||||||
if zone_info is not None:
|
if zone_info is not None:
|
||||||
zone_id = zone_info["id"]
|
zone_id = zone_info['id']
|
||||||
else:
|
else:
|
||||||
zone_id = zone
|
zone_id = zone
|
||||||
|
|
||||||
url = '/zones/%s/recordsets' % zone_id
|
return self._post(f'/zones/{zone_id}/recordsets', data=data)
|
||||||
return self._post(url, data=data)
|
|
||||||
|
|
||||||
def list(self, zone, criterion=None, marker=None, limit=None):
|
def list(self, zone, criterion=None, marker=None, limit=None):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
|
|
||||||
url = self.build_url(
|
url = self.build_url(
|
||||||
'/zones/%s/recordsets' % zone,
|
f'/zones/{zone}/recordsets', criterion, marker, limit
|
||||||
criterion, marker, limit)
|
)
|
||||||
|
|
||||||
return self._get(url, response_key='recordsets')
|
return self._get(url, response_key='recordsets')
|
||||||
|
|
||||||
def list_all_zones(self, criterion=None, marker=None, limit=None):
|
def list_all_zones(self, criterion=None, marker=None, limit=None):
|
||||||
|
|
||||||
url = self.build_url('/recordsets', criterion, marker, limit)
|
url = self.build_url('/recordsets', criterion, marker, limit)
|
||||||
|
|
||||||
return self._get(url, response_key='recordsets')
|
return self._get(url, response_key='recordsets')
|
||||||
|
@ -83,8 +81,7 @@ class RecordSetController(V2Controller):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
||||||
|
|
||||||
url = self.build_url('/zones/%s/recordsets/%s' % (
|
url = self.build_url(f'/zones/{zone}/recordsets/{recordset}')
|
||||||
zone, recordset))
|
|
||||||
|
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
|
@ -92,7 +89,7 @@ class RecordSetController(V2Controller):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
||||||
|
|
||||||
url = '/zones/%s/recordsets/%s' % (zone, recordset)
|
url = f'/zones/{zone}/recordsets/{recordset}'
|
||||||
|
|
||||||
return self._put(url, data=values)
|
return self._put(url, data=values)
|
||||||
|
|
||||||
|
@ -100,6 +97,6 @@ class RecordSetController(V2Controller):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
recordset = v2_utils.resolve_by_name(self.list, recordset, zone)
|
||||||
|
|
||||||
url = '/zones/%s/recordsets/%s' % (zone, recordset)
|
url = f'/zones/{zone}/recordsets/{recordset}'
|
||||||
|
|
||||||
return self._delete(url)
|
return self._delete(url)
|
||||||
|
|
|
@ -23,12 +23,12 @@ class FloatingIPController(V2Controller):
|
||||||
}
|
}
|
||||||
|
|
||||||
if description is not None:
|
if description is not None:
|
||||||
data["description"] = description
|
data['description'] = description
|
||||||
|
|
||||||
if ttl is not None:
|
if ttl is not None:
|
||||||
data["ttl"] = ttl
|
data['ttl'] = ttl
|
||||||
|
|
||||||
url = '/reverse/floatingips/%s' % floatingip_id
|
url = f'/reverse/floatingips/{floatingip_id}'
|
||||||
return self._patch(url, data=data)
|
return self._patch(url, data=data)
|
||||||
|
|
||||||
def list(self, criterion=None):
|
def list(self, criterion=None):
|
||||||
|
@ -37,13 +37,13 @@ class FloatingIPController(V2Controller):
|
||||||
return self._get(url, response_key='floatingips')
|
return self._get(url, response_key='floatingips')
|
||||||
|
|
||||||
def get(self, floatingip_id):
|
def get(self, floatingip_id):
|
||||||
url = '/reverse/floatingips/%s' % floatingip_id
|
url = f'/reverse/floatingips/{floatingip_id}'
|
||||||
|
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
def unset(self, floatingip_id):
|
def unset(self, floatingip_id):
|
||||||
data = {"ptrdname": None}
|
data = {'ptrdname': None}
|
||||||
|
|
||||||
url = '/reverse/floatingips/%s' % floatingip_id
|
url = f'/reverse/floatingips/{floatingip_id}'
|
||||||
|
|
||||||
return self._patch(url, data=data)
|
return self._patch(url, data=data)
|
||||||
|
|
|
@ -20,9 +20,9 @@ class ServiceStatusesController(base.V2Controller):
|
||||||
def list(self, criterion=None, marker=None, limit=None):
|
def list(self, criterion=None, marker=None, limit=None):
|
||||||
url = self.build_url('/service_statuses', criterion, marker, limit)
|
url = self.build_url('/service_statuses', criterion, marker, limit)
|
||||||
|
|
||||||
return self._get(url, response_key="service_statuses")
|
return self._get(url, response_key='service_statuses')
|
||||||
|
|
||||||
def get(self, service_status_id):
|
def get(self, service_status_id):
|
||||||
url = '/service_statuses/%s' % service_status_id
|
url = f'/service_statuses/{service_status_id}'
|
||||||
|
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
|
@ -24,7 +24,7 @@ class TLDController(V2Controller):
|
||||||
}
|
}
|
||||||
|
|
||||||
if description is not None:
|
if description is not None:
|
||||||
data["description"] = description
|
data['description'] = description
|
||||||
|
|
||||||
return self._post('/tlds', data=data)
|
return self._post('/tlds', data=data)
|
||||||
|
|
||||||
|
@ -36,14 +36,14 @@ class TLDController(V2Controller):
|
||||||
def get(self, tld):
|
def get(self, tld):
|
||||||
tld = v2_utils.resolve_by_name(self.list, tld)
|
tld = v2_utils.resolve_by_name(self.list, tld)
|
||||||
|
|
||||||
return self._get('/tlds/%s' % tld)
|
return self._get(f'/tlds/{tld}')
|
||||||
|
|
||||||
def update(self, tld, values):
|
def update(self, tld, values):
|
||||||
tld = v2_utils.resolve_by_name(self.list, tld)
|
tld = v2_utils.resolve_by_name(self.list, tld)
|
||||||
|
|
||||||
return self._patch('/tlds/%s' % tld, data=values)
|
return self._patch(f'/tlds/{tld}', data=values)
|
||||||
|
|
||||||
def delete(self, tld):
|
def delete(self, tld):
|
||||||
tld = v2_utils.resolve_by_name(self.list, tld)
|
tld = v2_utils.resolve_by_name(self.list, tld)
|
||||||
|
|
||||||
return self._delete('/tlds/%s' % tld)
|
return self._delete(f'/tlds/{tld}')
|
||||||
|
|
|
@ -37,14 +37,14 @@ class TSIGKeysController(V2Controller):
|
||||||
def get(self, tsigkey):
|
def get(self, tsigkey):
|
||||||
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
||||||
|
|
||||||
return self._get('/tsigkeys/%s' % tsigkey)
|
return self._get(f'/tsigkeys/{tsigkey}')
|
||||||
|
|
||||||
def update(self, tsigkey, values):
|
def update(self, tsigkey, values):
|
||||||
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
||||||
|
|
||||||
return self._patch('/tsigkeys/%s' % tsigkey, data=values)
|
return self._patch(f'/tsigkeys/{tsigkey}', data=values)
|
||||||
|
|
||||||
def delete(self, tsigkey):
|
def delete(self, tsigkey):
|
||||||
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
tsigkey = v2_utils.resolve_by_name(self.list, tsigkey)
|
||||||
|
|
||||||
return self._delete('/tsigkeys/%s' % tsigkey)
|
return self._delete(f'/tsigkeys/{tsigkey}')
|
||||||
|
|
|
@ -29,16 +29,17 @@ def resolve_by_name(func, name, *args):
|
||||||
if uuidutils.is_uuid_like(name):
|
if uuidutils.is_uuid_like(name):
|
||||||
return name
|
return name
|
||||||
|
|
||||||
results = func(criterion={"name": "%s" % name}, *args)
|
results = func(criterion={"name": f"{name}"}, *args)
|
||||||
length = len(results)
|
length = len(results)
|
||||||
|
|
||||||
if length == 1:
|
if length == 1:
|
||||||
return results[0]["id"]
|
return results[0]["id"]
|
||||||
elif length == 0:
|
elif length == 0:
|
||||||
raise exceptions.NotFound("Name %s didn't resolve" % name)
|
raise exceptions.NotFound(f"Name {name} didn't resolve")
|
||||||
else:
|
else:
|
||||||
msg = "Multiple matches found for %s, please use ID instead." % name
|
raise exceptions.NoUniqueMatch(
|
||||||
raise exceptions.NoUniqueMatch(msg)
|
"Multiple matches found for {name}, please use ID instead."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def parse_query_from_url(url):
|
def parse_query_from_url(url):
|
||||||
|
|
|
@ -20,52 +20,52 @@ from designateclient.v2 import utils as v2_utils
|
||||||
class ZoneController(V2Controller):
|
class ZoneController(V2Controller):
|
||||||
def create(self, name, type_=None, email=None, description=None, ttl=None,
|
def create(self, name, type_=None, email=None, description=None, ttl=None,
|
||||||
masters=None, attributes=None):
|
masters=None, attributes=None):
|
||||||
type_ = type_ or "PRIMARY"
|
type_ = type_ or 'PRIMARY'
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"name": name,
|
'name': name,
|
||||||
"type": type_
|
'type': type_
|
||||||
}
|
}
|
||||||
|
|
||||||
if type_ == "PRIMARY":
|
if type_ == 'PRIMARY':
|
||||||
if email:
|
if email:
|
||||||
data["email"] = email
|
data['email'] = email
|
||||||
|
|
||||||
if ttl is not None:
|
if ttl is not None:
|
||||||
data["ttl"] = ttl
|
data['ttl'] = ttl
|
||||||
|
|
||||||
elif type_ == "SECONDARY" and masters:
|
elif type_ == 'SECONDARY' and masters:
|
||||||
data["masters"] = masters
|
data['masters'] = masters
|
||||||
|
|
||||||
if description is not None:
|
if description is not None:
|
||||||
data["description"] = description
|
data['description'] = description
|
||||||
|
|
||||||
if attributes is not None:
|
if attributes is not None:
|
||||||
data["attributes"] = attributes
|
data['attributes'] = attributes
|
||||||
|
|
||||||
return self._post('/zones', data=data)
|
return self._post('/zones', data=data)
|
||||||
|
|
||||||
def list(self, criterion=None, marker=None, limit=None):
|
def list(self, criterion=None, marker=None, limit=None):
|
||||||
url = self.build_url('/zones', criterion, marker, limit)
|
url = self.build_url('/zones', criterion, marker, limit)
|
||||||
|
|
||||||
return self._get(url, response_key="zones")
|
return self._get(url, response_key='zones')
|
||||||
|
|
||||||
def get(self, zone):
|
def get(self, zone):
|
||||||
zone = v2_utils.resolve_by_name(self.list, zone)
|
zone = v2_utils.resolve_by_name(self.list, zone)
|
||||||
|
|
||||||
return self._get('/zones/%s' % zone)
|
return self._get(f'/zones/{zone}')
|
||||||
|
|
||||||
def update(self, zone, values):
|
def update(self, zone, values):
|
||||||
zone = v2_utils.resolve_by_name(self.list, zone)
|
zone = v2_utils.resolve_by_name(self.list, zone)
|
||||||
|
|
||||||
url = self.build_url('/zones/%s' % zone)
|
url = self.build_url(f'/zones/{zone}')
|
||||||
|
|
||||||
return self._patch(url, data=values)
|
return self._patch(url, data=values)
|
||||||
|
|
||||||
def delete(self, zone, delete_shares=False):
|
def delete(self, zone, delete_shares=False):
|
||||||
zone = v2_utils.resolve_by_name(self.list, zone)
|
zone = v2_utils.resolve_by_name(self.list, zone)
|
||||||
|
|
||||||
url = self.build_url('/zones/%s' % zone)
|
url = self.build_url(f'/zones/{zone}')
|
||||||
|
|
||||||
if delete_shares:
|
if delete_shares:
|
||||||
headers = {'X-Designate-Delete-Shares': 'true'}
|
headers = {'X-Designate-Delete-Shares': 'true'}
|
||||||
|
@ -78,14 +78,14 @@ class ZoneController(V2Controller):
|
||||||
def abandon(self, zone):
|
def abandon(self, zone):
|
||||||
zone = v2_utils.resolve_by_name(self.list, zone)
|
zone = v2_utils.resolve_by_name(self.list, zone)
|
||||||
|
|
||||||
url = '/zones/%s/tasks/abandon' % zone
|
url = f'/zones/{zone}/tasks/abandon'
|
||||||
|
|
||||||
self.client.session.post(url)
|
self.client.session.post(url)
|
||||||
|
|
||||||
def axfr(self, zone):
|
def axfr(self, zone):
|
||||||
zone = v2_utils.resolve_by_name(self.list, zone)
|
zone = v2_utils.resolve_by_name(self.list, zone)
|
||||||
|
|
||||||
url = '/zones/%s/tasks/xfr' % zone
|
url = f'/zones/{zone}/tasks/xfr'
|
||||||
|
|
||||||
self.client.session.post(url)
|
self.client.session.post(url)
|
||||||
|
|
||||||
|
@ -95,67 +95,67 @@ class ZoneTransfersController(V2Controller):
|
||||||
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"target_project_id": target_project_id
|
'target_project_id': target_project_id
|
||||||
}
|
}
|
||||||
|
|
||||||
if description is not None:
|
if description is not None:
|
||||||
data["description"] = description
|
data['description'] = description
|
||||||
|
|
||||||
url = '/zones/%s/tasks/transfer_requests' % zone
|
url = f'/zones/{zone}/tasks/transfer_requests'
|
||||||
|
|
||||||
return self._post(url, data=data)
|
return self._post(url, data=data)
|
||||||
|
|
||||||
def get_request(self, transfer_id):
|
def get_request(self, transfer_id):
|
||||||
url = '/zones/tasks/transfer_requests/%s' % transfer_id
|
url = f'/zones/tasks/transfer_requests/{transfer_id}'
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
def list_requests(self):
|
def list_requests(self):
|
||||||
url = '/zones/tasks/transfer_requests'
|
url = '/zones/tasks/transfer_requests'
|
||||||
return self._get(url, response_key="transfer_requests")
|
return self._get(url, response_key='transfer_requests')
|
||||||
|
|
||||||
def update_request(self, transfer_id, values):
|
def update_request(self, transfer_id, values):
|
||||||
url = '/zones/tasks/transfer_requests/%s' % transfer_id
|
url = f'/zones/tasks/transfer_requests/{transfer_id}'
|
||||||
return self._patch(url, data=values)
|
return self._patch(url, data=values)
|
||||||
|
|
||||||
def delete_request(self, transfer_id):
|
def delete_request(self, transfer_id):
|
||||||
url = '/zones/tasks/transfer_requests/%s' % transfer_id
|
url = f'/zones/tasks/transfer_requests/{transfer_id}'
|
||||||
self._delete(url)
|
self._delete(url)
|
||||||
|
|
||||||
def accept_request(self, transfer_id, key):
|
def accept_request(self, transfer_id, key):
|
||||||
url = '/zones/tasks/transfer_accepts'
|
url = '/zones/tasks/transfer_accepts'
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"key": key,
|
'key': key,
|
||||||
"zone_transfer_request_id": transfer_id
|
'zone_transfer_request_id': transfer_id
|
||||||
}
|
}
|
||||||
return self._post(url, data=data)
|
return self._post(url, data=data)
|
||||||
|
|
||||||
def get_accept(self, accept_id):
|
def get_accept(self, accept_id):
|
||||||
url = '/zones/tasks/transfer_accepts/%s' % accept_id
|
url = f'/zones/tasks/transfer_accepts/{accept_id}'
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
def list_accepts(self):
|
def list_accepts(self):
|
||||||
url = '/zones/tasks/transfer_accepts'
|
url = '/zones/tasks/transfer_accepts'
|
||||||
return self._get(url, response_key="transfer_accepts")
|
return self._get(url, response_key='transfer_accepts')
|
||||||
|
|
||||||
|
|
||||||
class ZoneExportsController(V2Controller):
|
class ZoneExportsController(V2Controller):
|
||||||
def create(self, zone):
|
def create(self, zone):
|
||||||
zone_id = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone_id = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
|
|
||||||
return self._post('/zones/%s/tasks/export' % zone_id)
|
return self._post(f'/zones/{zone_id}/tasks/export')
|
||||||
|
|
||||||
def get_export_record(self, zone_export_id):
|
def get_export_record(self, zone_export_id):
|
||||||
return self._get('/zones/tasks/exports/%s' % zone_export_id)
|
return self._get(f'/zones/tasks/exports/{zone_export_id}')
|
||||||
|
|
||||||
def list(self):
|
def list(self):
|
||||||
return self._get('/zones/tasks/exports')
|
return self._get('/zones/tasks/exports')
|
||||||
|
|
||||||
def delete(self, zone_export_id):
|
def delete(self, zone_export_id):
|
||||||
return self._delete('/zones/tasks/exports/%s' % zone_export_id)
|
return self._delete(f'/zones/tasks/exports/{zone_export_id}')
|
||||||
|
|
||||||
def get_export(self, zone_export_id):
|
def get_export(self, zone_export_id):
|
||||||
return self._get('/zones/tasks/exports/%s/export' % zone_export_id,
|
return self._get(f'/zones/tasks/exports/{zone_export_id}/export',
|
||||||
headers={'Accept': 'text/dns'})
|
headers={'Accept': 'text/dns'})
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,20 +165,20 @@ class ZoneImportsController(V2Controller):
|
||||||
headers={'Content-Type': 'text/dns'})
|
headers={'Content-Type': 'text/dns'})
|
||||||
|
|
||||||
def get_import_record(self, zone_import_id):
|
def get_import_record(self, zone_import_id):
|
||||||
return self._get('/zones/tasks/imports/%s' % zone_import_id)
|
return self._get(f'/zones/tasks/imports/{zone_import_id}')
|
||||||
|
|
||||||
def list(self):
|
def list(self):
|
||||||
return self._get('/zones/tasks/imports')
|
return self._get('/zones/tasks/imports')
|
||||||
|
|
||||||
def delete(self, zone_import_id):
|
def delete(self, zone_import_id):
|
||||||
return self._delete('/zones/tasks/imports/%s' % zone_import_id)
|
return self._delete(f'/zones/tasks/imports/{zone_import_id}')
|
||||||
|
|
||||||
|
|
||||||
class ZoneShareController(V2Controller):
|
class ZoneShareController(V2Controller):
|
||||||
def create(self, zone, target_project_id):
|
def create(self, zone, target_project_id):
|
||||||
zone_id = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
zone_id = v2_utils.resolve_by_name(self.client.zones.list, zone)
|
||||||
|
|
||||||
data = {"target_project_id": target_project_id}
|
data = {'target_project_id': target_project_id}
|
||||||
|
|
||||||
return self._post(f'/zones/{zone_id}/shares', data=data)
|
return self._post(f'/zones/{zone_id}/shares', data=data)
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ client = client.Client(session=session)
|
||||||
try:
|
try:
|
||||||
zone = client.zones.create('i.io.', email='i@i.io')
|
zone = client.zones.create('i.io.', email='i@i.io')
|
||||||
except exceptions.RemoteError:
|
except exceptions.RemoteError:
|
||||||
zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']
|
zone = {z['name']: z for z in client.zones.list()}['i.io.']
|
||||||
|
|
||||||
print("Recordset list...")
|
print("Recordset list...")
|
||||||
for rs in client.recordsets.list(zone['id']):
|
for rs in client.recordsets.list(zone['id']):
|
||||||
|
|
|
@ -24,7 +24,7 @@ client = client.Client(session=session)
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']
|
zone = {z['name']: z for z in client.zones.list()}['i.io.']
|
||||||
client.zones.delete(zone['id'])
|
client.zones.delete(zone['id'])
|
||||||
except exceptions.NotFound:
|
except exceptions.NotFound:
|
||||||
pass
|
pass
|
||||||
|
@ -40,7 +40,7 @@ for rrset in client.recordsets.list(zone['id']):
|
||||||
# Make some A records
|
# Make some A records
|
||||||
www = client.recordsets.create(
|
www = client.recordsets.create(
|
||||||
zone['id'],
|
zone['id'],
|
||||||
'www.%s' % zone['name'],
|
'www.{}'.format(zone['name']),
|
||||||
'A',
|
'A',
|
||||||
['10.0.0.1'])
|
['10.0.0.1'])
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ client.recordsets.update(zone['id'], www['id'], values)
|
||||||
|
|
||||||
cname = client.recordsets.create(
|
cname = client.recordsets.create(
|
||||||
zone['id'],
|
zone['id'],
|
||||||
'my-site.%s' % zone['name'],
|
'my-site.{}'.format(zone['name']),
|
||||||
'CNAME',
|
'CNAME',
|
||||||
[www['name']])
|
[www['name']])
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
@ -27,6 +26,6 @@ client = client.Client(session=session)
|
||||||
try:
|
try:
|
||||||
zone = client.zones.create('i.io.', email='i@i.io')
|
zone = client.zones.create('i.io.', email='i@i.io')
|
||||||
except exceptions.RemoteError:
|
except exceptions.RemoteError:
|
||||||
zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']
|
zone = {z['name']: z for z in client.zones.list()}['i.io.']
|
||||||
|
|
||||||
print(client.recordsets.list(zone['id']))
|
print(client.recordsets.list(zone['id']))
|
||||||
|
|
|
@ -24,13 +24,13 @@ client = client.Client(session=session)
|
||||||
|
|
||||||
# Primary Zone
|
# Primary Zone
|
||||||
primary = client.zones.create(
|
primary = client.zones.create(
|
||||||
'primary-%s.io.' % str(uuid.uuid4()),
|
f'primary-{str(uuid.uuid4())}.io.',
|
||||||
'PRIMARY',
|
'PRIMARY',
|
||||||
'root@x.com')
|
'root@x.com')
|
||||||
|
|
||||||
# Secondary Zone
|
# Secondary Zone
|
||||||
slave = client.zones.create(
|
slave = client.zones.create(
|
||||||
'secondary-%s.io.' % str(uuid.uuid4()),
|
f'secondary-{str(uuid.uuid4())}.io.',
|
||||||
'SECONDARY',
|
'SECONDARY',
|
||||||
masters=["127.0.1.1"])
|
masters=["127.0.1.1"])
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ session = keystone_session.Session(auth=auth)
|
||||||
client = client.Client(session=session)
|
client = client.Client(session=session)
|
||||||
|
|
||||||
zone = client.zones.create(
|
zone = client.zones.create(
|
||||||
'primary-%s.io.' % str(uuid.uuid4()),
|
f'primary-{str(uuid.uuid4())}.io.',
|
||||||
'PRIMARY',
|
'PRIMARY',
|
||||||
'root@x.com')
|
'root@x.com')
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
#
|
||||||
# designateclient documentation build configuration file
|
# designateclient documentation build configuration file
|
||||||
|
|
||||||
|
@ -39,7 +38,7 @@ source_suffix = '.rst'
|
||||||
master_doc = 'index'
|
master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
copyright = u'2012, Managed I.T. 2013-2014, Hewlett-Packard Development Company, L.P.'
|
copyright = '2012, Managed I.T. 2013-2014, Hewlett-Packard Development Company, L.P.'
|
||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
# List of patterns, relative to source directory, that match files and
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
|
|
|
@ -61,8 +61,8 @@ source_suffix = '.rst'
|
||||||
master_doc = 'index'
|
master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'Designate Client Release Notes'
|
project = 'Designate Client Release Notes'
|
||||||
copyright = u'2015, Designate Developers'
|
copyright = '2015, Designate Developers'
|
||||||
|
|
||||||
# Release notes are version independent.
|
# Release notes are version independent.
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
|
@ -212,9 +212,9 @@ latex_elements = {
|
||||||
# author, documentclass [howto, manual, or own class]).
|
# author, documentclass [howto, manual, or own class]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('index', 'DesignateClientReleaseNotes.tex',
|
('index', 'DesignateClientReleaseNotes.tex',
|
||||||
u'Designate Client Release Notes '
|
'Designate Client Release Notes '
|
||||||
u'Documentation',
|
'Documentation',
|
||||||
u'Designate Developers', 'manual'),
|
'Designate Developers', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
# The name of an image file (relative to this directory) to place at the top of
|
||||||
|
@ -243,8 +243,8 @@ latex_documents = [
|
||||||
# One entry per manual page. List of tuples
|
# One entry per manual page. List of tuples
|
||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [
|
||||||
('index', 'designateclientreleasenotes', u'Designate Client Release Notes '
|
('index', 'designateclientreleasenotes', 'Designate Client Release Notes '
|
||||||
u'Documentation', [u'Designate Developers'], 1)
|
'Documentation', ['Designate Developers'], 1)
|
||||||
]
|
]
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
# If true, show URL addresses after external links.
|
||||||
|
@ -258,9 +258,9 @@ man_pages = [
|
||||||
# dir menu entry, description, category)
|
# dir menu entry, description, category)
|
||||||
texinfo_documents = [
|
texinfo_documents = [
|
||||||
('index', 'DesignateClientReleaseNotes',
|
('index', 'DesignateClientReleaseNotes',
|
||||||
u'Designate Client Release Notes '
|
'Designate Client Release Notes '
|
||||||
u'Documentation',
|
'Documentation',
|
||||||
u'Designate Developers', 'DesignateClientReleaseNotes',
|
'Designate Developers', 'DesignateClientReleaseNotes',
|
||||||
'One line description of project.',
|
'One line description of project.',
|
||||||
'Miscellaneous'),
|
'Miscellaneous'),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue