diff --git a/designateclient/client.py b/designateclient/client.py index 03564cba..7db867f5 100644 --- a/designateclient/client.py +++ b/designateclient/client.py @@ -24,7 +24,7 @@ from oslo_serialization import jsonutils from designateclient import exceptions -class Controller(object, metaclass=abc.ABCMeta): +class Controller(metaclass=abc.ABCMeta): def __init__(self, client): self.client = client @@ -38,10 +38,10 @@ class Controller(object, metaclass=abc.ABCMeta): params['limit'] = limit q = parse.urlencode(params) if params else '' - return '%(url)s%(params)s' % { - 'url': url, - 'params': '?%s' % q - } + return '{url}{params}'.format( + url=url, + params=f'?{q}' + ) def _serialize(self, kwargs): headers = kwargs.get('headers') @@ -122,13 +122,14 @@ class CrudController(Controller, metaclass=abc.ABCMeta): def get_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 versions = get_versions() if version not in versions: - msg = 'Version %s is not supported, use one of (%s)' % ( - version, list(versions.keys())) + msg = 'Version {} is not supported, use one of ({})'.format( + version, list(versions.keys()) + ) raise exceptions.UnsupportedVersion(msg) return versions[version](*args, **kwargs) diff --git a/designateclient/exceptions.py b/designateclient/exceptions.py index e220b972..d1ebbcbf 100644 --- a/designateclient/exceptions.py +++ b/designateclient/exceptions.py @@ -19,7 +19,7 @@ class Base(Exception): def __init__(self, message=None): if not message: message = self.__class__.__name__ - super(Base, self).__init__(message) + super().__init__(message) class UnsupportedVersion(Base): @@ -44,7 +44,7 @@ class RemoteError(Base): self.errors = errors self.request_id = request_id - super(RemoteError, self).__init__(err_message) + super().__init__(err_message) def _get_error_message(self, _message, _type, _errors): # Try to get a useful error msg if 'message' has nothing diff --git a/designateclient/functionaltests/client.py b/designateclient/functionaltests/client.py index 6edf3773..dd0a309c 100644 --- a/designateclient/functionaltests/client.py +++ b/designateclient/functionaltests/client.py @@ -45,7 +45,7 @@ def build_option_string(options): "--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() if value is not None) @@ -72,18 +72,18 @@ def build_flags_string(flags): return " ".join(flags.keys()) -class ZoneCommands(object): +class ZoneCommands: """This is a mixin that provides zone commands to DesignateCLI""" def zone_list(self, *args, **kwargs): return self.parsed_cmd('zone list', ListModel, *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) 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) def zone_create(self, name, email=None, ttl=None, description=None, @@ -95,7 +95,7 @@ class ZoneCommands(object): "--masters": masters, "--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) def zone_set(self, id, email=None, ttl=None, description=None, @@ -107,11 +107,11 @@ class ZoneCommands(object): "--masters": masters, "--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) -class ZoneTransferCommands(object): +class ZoneTransferCommands: """A mixin for DesignateCLI to add zone transfer commands""" def zone_transfer_request_list(self, *args, **kwargs): @@ -124,21 +124,20 @@ class ZoneTransferCommands(object): "--target-project-id": target_project_id, "--description": description, }) - cmd = 'zone transfer request create {0} {1}'.format( - zone_id, options_str) + cmd = f'zone transfer request create {zone_id} {options_str}' return self.parsed_cmd(cmd, FieldValueModel, *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) def zone_transfer_request_set(self, id, description=None, *args, **kwargs): 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) 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) def zone_transfer_accept_request(self, id, key, *args, **kwargs): @@ -146,11 +145,11 @@ class ZoneTransferCommands(object): "--transfer-id": id, "--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) 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) def zone_transfer_accept_list(self, *args, **kwargs): @@ -158,7 +157,7 @@ class ZoneTransferCommands(object): return self.parsed_cmd(cmd, ListModel, *args, **kwargs) -class ZoneExportCommands(object): +class ZoneExportCommands: """A mixin for DesignateCLI to add zone export commands""" def zone_export_list(self, *args, **kwargs): @@ -166,24 +165,23 @@ class ZoneExportCommands(object): return self.parsed_cmd(cmd, ListModel, *args, **kwargs) def zone_export_create(self, zone_id, *args, **kwargs): - cmd = 'zone export create {0}'.format( - zone_id) + cmd = f'zone export create {zone_id}' return self.parsed_cmd(cmd, FieldValueModel, *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) 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) 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) -class ZoneImportCommands(object): +class ZoneImportCommands: """A mixin for DesignateCLI to add zone import commands""" def zone_import_list(self, *args, **kwargs): @@ -191,26 +189,26 @@ class ZoneImportCommands(object): return self.parsed_cmd(cmd, ListModel, *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) 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) 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) -class RecordsetCommands(object): +class RecordsetCommands: 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) 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) def recordset_create(self, zone_id, name, records=None, type=None, @@ -221,7 +219,7 @@ class RecordsetCommands(object): '--description': description, '--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) def recordset_set(self, zone_id, id, records=None, type=None, @@ -237,33 +235,32 @@ class RecordsetCommands(object): '--no-description': no_description, '--no-ttl': no_ttl, }) - cmd = 'recordset set {0} {1} {2} {3}'.format( - zone_id, id, flags_str, options_str) + cmd = f'recordset set {zone_id} {id} {flags_str} {options_str}' return self.parsed_cmd(cmd, FieldValueModel, *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) -class TLDCommands(object): +class TLDCommands: def tld_list(self, *args, **kwargs): return self.parsed_cmd('tld list', ListModel, *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) 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): options_str = build_option_string({ '--name': name, '--description': description, }) - cmd = 'tld create {0}'.format(options_str) + cmd = f'tld create {options_str}' return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs) def tld_set(self, id, name=None, description=None, no_description=False, @@ -273,20 +270,20 @@ class TLDCommands(object): '--description': 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) -class TSIGKeyCommands(object): +class TSIGKeyCommands: def tsigkey_list(self, *args, **kwargs): return self.parsed_cmd('tsigkey list', ListModel, *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) 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) def tsigkey_create(self, name, algorithm, secret, scope, resource_id, @@ -298,7 +295,7 @@ class TSIGKeyCommands(object): '--scope': scope, '--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) def tsigkey_set(self, id, name=None, algorithm=None, secret=None, @@ -310,11 +307,11 @@ class TSIGKeyCommands(object): '--secret': secret, '--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) -class BlacklistCommands(object): +class BlacklistCommands: def zone_blacklist_list(self, *args, **kwargs): cmd = 'zone blacklist list' return self.parsed_cmd(cmd, ListModel, *args, **kwargs) @@ -325,7 +322,7 @@ class BlacklistCommands(object): '--pattern': pattern, '--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) def zone_blacklist_set(self, id, pattern=None, description=None, @@ -335,35 +332,34 @@ class BlacklistCommands(object): '--description': description, }) flags_str = build_flags_string({'--no-description': no_description}) - cmd = 'zone blacklist set {0} {1} {2}'.format(id, options_str, - flags_str) + cmd = f'zone blacklist set {id} {options_str} {flags_str}' return self.parsed_cmd(cmd, FieldValueModel, *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) 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) -class SharedZoneCommands(object): +class SharedZoneCommands: 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) 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) 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) 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) @@ -375,7 +371,7 @@ class DesignateCLI(base.CLIClient, ZoneCommands, ZoneTransferCommands, _CLIENTS = None 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 resp = FieldValueModel(self.openstack('token issue')) self.project_id = resp.project_id @@ -421,7 +417,7 @@ class DesignateCLI(base.CLIClient, ZoneCommands, ZoneTransferCommands, clients = self.get_clients() if user in clients: 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): if self.using_auth_override: diff --git a/designateclient/functionaltests/datagen.py b/designateclient/functionaltests/datagen.py index 3aea79d6..1ed70271 100644 --- a/designateclient/functionaltests/datagen.py +++ b/designateclient/functionaltests/datagen.py @@ -18,40 +18,43 @@ import string 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'): - return "{0}{1}".format(name, random_digits()) + return f'{name}{random_digits()}' 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'): - 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'): - 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'): - return "{0}{1}.{2}".format(recordset_name, random_digits(), zone_name) + return f'{recordset_name}{random_digits()}.{zone_name}' def random_blacklist(name='testblacklist'): - return '{0}{1}'.format(name, random_digits()) + return f'{name}{random_digits()}' def random_zone_file(name='testzoneimport'): - return ("$ORIGIN {0}{1}.com.\n" - "$TTL 300\n" - "{0}{1}.com. 300 IN SOA ns.{0}{1}.com. " - "nsadmin.{0}{1}.com. 42 42 42 42 42\n" - "{0}{1}.com. 300 IN NS ns.{0}{1}.com.\n" - "{0}{1}.com. 300 IN MX 10 mail.{0}{1}.com.\n" - "ns.{0}{1}.com. 300 IN A 10.0.0.1\n" - "mail.{0}{1}.com. 300 IN A 10.0.0.2\n".format(name, - random_digits())) + return ( + '$ORIGIN {0}{1}.com.\n' + '$TTL 300\n' + '{0}{1}.com. 300 IN SOA ns.{0}{1}.com. ' + 'nsadmin.{0}{1}.com. 42 42 42 42 42\n' + '{0}{1}.com. 300 IN NS ns.{0}{1}.com.\n' + '{0}{1}.com. 300 IN MX 10 mail.{0}{1}.com.\n' + 'ns.{0}{1}.com. 300 IN A 10.0.0.1\n' + 'mail.{0}{1}.com. 300 IN A 10.0.0.2\n'.format( + name, random_digits() + ) + ) diff --git a/designateclient/functionaltests/models.py b/designateclient/functionaltests/models.py index 0e49d92e..8fac7978 100644 --- a/designateclient/functionaltests/models.py +++ b/designateclient/functionaltests/models.py @@ -16,7 +16,7 @@ limitations under the License. from tempest.lib.cli import output_parser -class Model(object): +class Model: def __str__(self): return str(self.__dict__) diff --git a/designateclient/functionaltests/v2/fixtures.py b/designateclient/functionaltests/v2/fixtures.py index c72a18b7..38f61fbc 100644 --- a/designateclient/functionaltests/v2/fixtures.py +++ b/designateclient/functionaltests/v2/fixtures.py @@ -28,7 +28,7 @@ class BaseFixture(fixtures.Fixture): def __init__(self, user='default', *args, **kwargs): """args/kwargs are forwarded to a create method on DesignateCLI""" - super(BaseFixture, self).__init__() + super().__init__() self.args = args self.kwargs = kwargs self.client = DesignateCLI.as_user(user) @@ -39,7 +39,7 @@ class BaseFixture(fixtures.Fixture): # with an artificial SetupError, which produces bad error messages. # This just logs those stack traces to stderr for easier debugging. try: - super(BaseFixture, self).setUp() + super().setUp() except MultipleExceptions as e: for i, exc_info in enumerate(e.args): print('--- printing MultipleExceptions traceback {} of {} ---' @@ -52,7 +52,7 @@ class ZoneFixture(BaseFixture): """See DesignateCLI.zone_create for __init__ args""" def _setUp(self): - super(ZoneFixture, self)._setUp() + super()._setUp() self.zone = self.client.zone_create(*self.args, **self.kwargs) 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, **kwargs): - super(TransferRequestFixture, self).__init__(user, *args, **kwargs) + super().__init__(user, *args, **kwargs) self.zone = zone 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 def _setUp(self): - super(TransferRequestFixture, self)._setUp() + super()._setUp() self.transfer_request = self.client.zone_transfer_request_create( zone_id=self.zone.id, *self.args, **self.kwargs @@ -101,11 +101,11 @@ class ExportFixture(BaseFixture): """See DesignateCLI.zone_export_create for __init__ args""" def __init__(self, zone, user='default', *args, **kwargs): - super(ExportFixture, self).__init__(user, *args, **kwargs) + super().__init__(user, *args, **kwargs) self.zone = zone def _setUp(self): - super(ExportFixture, self)._setUp() + super()._setUp() self.zone_export = self.client.zone_export_create( zone_id=self.zone.id, *self.args, **self.kwargs @@ -126,11 +126,11 @@ class ImportFixture(BaseFixture): """See DesignateCLI.zone_import_create for __init__ args""" 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 def _setUp(self): - super(ImportFixture, self)._setUp() + super()._setUp() with tempfile.NamedTemporaryFile() as f: f.write(self.zone_file_contents) @@ -158,7 +158,7 @@ class RecordsetFixture(BaseFixture): """See DesignateCLI.recordset_create for __init__ args""" def _setUp(self): - super(RecordsetFixture, self)._setUp() + super()._setUp() self.recordset = self.client.recordset_create( *self.args, **self.kwargs) self.addCleanup(self.cleanup_recordset, self.client, @@ -176,10 +176,10 @@ class TLDFixture(BaseFixture): """See DesignateCLI.tld_create for __init__ args""" def __init__(self, user='admin', *args, **kwargs): - super(TLDFixture, self).__init__(user=user, *args, **kwargs) + super().__init__(user=user, *args, **kwargs) def _setUp(self): - super(TLDFixture, self)._setUp() + super()._setUp() self.tld = self.client.tld_create(*self.args, **self.kwargs) self.addCleanup(self.cleanup_tld, self.client, self.tld.id) @@ -195,10 +195,10 @@ class TSIGKeyFixture(BaseFixture): """See DesignateCLI.tsigkey_create for __init__ args""" def __init__(self, user='admin', *args, **kwargs): - super(TSIGKeyFixture, self).__init__(user=user, *args, **kwargs) + super().__init__(user=user, *args, **kwargs) def _setUp(self): - super(TSIGKeyFixture, self)._setUp() + super()._setUp() self.tsigkey = self.client.tsigkey_create(*self.args, **self.kwargs) 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""" def __init__(self, user='admin', *args, **kwargs): - super(BlacklistFixture, self).__init__(user=user, *args, **kwargs) + super().__init__(user=user, *args, **kwargs) def _setUp(self): - super(BlacklistFixture, self)._setUp() + super()._setUp() self.blacklist = self.client.zone_blacklist_create(*self.args, **self.kwargs) self.addCleanup(self.cleanup_blacklist, self.client, self.blacklist.id) @@ -234,11 +234,11 @@ class SharedZoneFixture(BaseFixture): """See DesignateCLI.recordset_create for __init__ args""" def __init__(self, zone, *args, **kwargs): - super(SharedZoneFixture, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.zone = zone def _setUp(self): - super(SharedZoneFixture, self)._setUp() + super()._setUp() self.zone_share = self.client.zone_share(zone_id=self.zone.id, *self.args, **self.kwargs) self.addCleanup(self.cleanup_shared_zone, self.client, self.zone.id, diff --git a/designateclient/functionaltests/v2/test_blacklist.py b/designateclient/functionaltests/v2/test_blacklist.py index db8c756c..e9881965 100644 --- a/designateclient/functionaltests/v2/test_blacklist.py +++ b/designateclient/functionaltests/v2/test_blacklist.py @@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import BlacklistFixture class TestBlacklist(BaseDesignateTest): def setUp(self): - super(TestBlacklist, self).setUp() + super().setUp() pattern = random_blacklist() self.blacklist = self.useFixture(BlacklistFixture( pattern=pattern, diff --git a/designateclient/functionaltests/v2/test_recordsets.py b/designateclient/functionaltests/v2/test_recordsets.py index 419d03ce..69f4161e 100644 --- a/designateclient/functionaltests/v2/test_recordsets.py +++ b/designateclient/functionaltests/v2/test_recordsets.py @@ -25,7 +25,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestRecordset(BaseDesignateTest): def setUp(self): - super(TestRecordset, self).setUp() + super().setUp() self.ensure_tld_exists('com') self.zone = self.useFixture(ZoneFixture( name=random_zone_name(), diff --git a/designateclient/functionaltests/v2/test_shared_zone.py b/designateclient/functionaltests/v2/test_shared_zone.py index 0e8b3928..1aa225a9 100644 --- a/designateclient/functionaltests/v2/test_shared_zone.py +++ b/designateclient/functionaltests/v2/test_shared_zone.py @@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestSharedZone(BaseDesignateTest): def setUp(self): - super(TestSharedZone, self).setUp() + super().setUp() self.ensure_tld_exists('com') fixture = self.useFixture(ZoneFixture( name=random_zone_name(), diff --git a/designateclient/functionaltests/v2/test_tlds.py b/designateclient/functionaltests/v2/test_tlds.py index 402dffcf..2c8f3b6a 100644 --- a/designateclient/functionaltests/v2/test_tlds.py +++ b/designateclient/functionaltests/v2/test_tlds.py @@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import TLDFixture class TestTld(BaseDesignateTest): def setUp(self): - super(TestTld, self).setUp() + super().setUp() tld_name = random_tld() self.tld = self.useFixture(TLDFixture( name=tld_name, diff --git a/designateclient/functionaltests/v2/test_tsigkeys.py b/designateclient/functionaltests/v2/test_tsigkeys.py index 7ed4d75b..4aa7c537 100644 --- a/designateclient/functionaltests/v2/test_tsigkeys.py +++ b/designateclient/functionaltests/v2/test_tsigkeys.py @@ -25,7 +25,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestTSIGKey(BaseDesignateTest): def setUp(self): - super(TestTSIGKey, self).setUp() + super().setUp() self.ensure_tsigkey_exists('com') self.zone = self.useFixture(ZoneFixture( name=random_zone_name(), diff --git a/designateclient/functionaltests/v2/test_zone.py b/designateclient/functionaltests/v2/test_zone.py index 4f1b803b..b571ca11 100644 --- a/designateclient/functionaltests/v2/test_zone.py +++ b/designateclient/functionaltests/v2/test_zone.py @@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestZone(BaseDesignateTest): def setUp(self): - super(TestZone, self).setUp() + super().setUp() self.ensure_tld_exists('com') self.fixture = self.useFixture(ZoneFixture( name=random_zone_name(), @@ -61,7 +61,7 @@ class TestZone(BaseDesignateTest): def test_zone_set(self): ttl = int(self.zone.ttl) + 123 - email = 'updated{0}'.format(self.zone.email) + email = f'updated{self.zone.email}' description = 'new description' zone = self.clients.zone_set(self.zone.id, ttl=ttl, email=email, @@ -71,8 +71,9 @@ class TestZone(BaseDesignateTest): self.assertEqual(description, zone.description) def test_invalid_option_on_zone_create(self): - cmd = 'zone create %s --invalid "not a valid option"'.format( - random_zone_name()) + cmd = 'zone create {} --invalid "not a valid option"'.format( + random_zone_name() + ) self.assertRaises(CommandFailed, self.clients.openstack, cmd) def test_invalid_zone_command(self): @@ -83,7 +84,7 @@ class TestZone(BaseDesignateTest): class TestsPassingZoneFlags(BaseDesignateTest): def setUp(self): - super(TestsPassingZoneFlags, self).setUp() + super().setUp() self.ensure_tld_exists('com') def test_zone_create_primary_with_all_args(self): diff --git a/designateclient/functionaltests/v2/test_zone_export.py b/designateclient/functionaltests/v2/test_zone_export.py index 6052a997..7f06fc1e 100644 --- a/designateclient/functionaltests/v2/test_zone_export.py +++ b/designateclient/functionaltests/v2/test_zone_export.py @@ -24,7 +24,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestZoneExport(BaseDesignateTest): def setUp(self): - super(TestZoneExport, self).setUp() + super().setUp() self.ensure_tld_exists('com') fixture = self.useFixture(ZoneFixture( name=random_zone_name(), diff --git a/designateclient/functionaltests/v2/test_zone_import.py b/designateclient/functionaltests/v2/test_zone_import.py index 51c9906a..f672befc 100644 --- a/designateclient/functionaltests/v2/test_zone_import.py +++ b/designateclient/functionaltests/v2/test_zone_import.py @@ -23,7 +23,7 @@ from designateclient.functionaltests.v2.fixtures import ImportFixture class TestZoneImport(BaseDesignateTest): def setUp(self): - super(TestZoneImport, self).setUp() + super().setUp() self.ensure_tld_exists('com') self.zone_file_contents = random_zone_file() diff --git a/designateclient/functionaltests/v2/test_zone_transfer.py b/designateclient/functionaltests/v2/test_zone_transfer.py index 32c572b1..c43fc1a1 100644 --- a/designateclient/functionaltests/v2/test_zone_transfer.py +++ b/designateclient/functionaltests/v2/test_zone_transfer.py @@ -27,7 +27,7 @@ from designateclient.functionaltests.v2.fixtures import ZoneFixture class TestZoneTransferRequest(BaseDesignateTest): def setUp(self): - super(TestZoneTransferRequest, self).setUp() + super().setUp() self.ensure_tld_exists('com') fixture = self.useFixture(ZoneFixture( name=random_zone_name(), @@ -92,7 +92,7 @@ class TestZoneTransferRequest(BaseDesignateTest): class TestZoneTransferAccept(BaseDesignateTest): def setUp(self): - super(TestZoneTransferAccept, self).setUp() + super().setUp() self.ensure_tld_exists('com') fixture = self.useFixture(ZoneFixture( name=random_zone_name(), diff --git a/designateclient/tests/base.py b/designateclient/tests/base.py index a4888c7d..5bcdd8cd 100644 --- a/designateclient/tests/base.py +++ b/designateclient/tests/base.py @@ -35,7 +35,7 @@ class TestCase(test.BaseTestCase): def setUp(self): """Run before each test method to initialize test environment.""" - super(TestCase, self).setUp() + super().setUp() test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0) try: test_timeout = int(test_timeout) @@ -74,7 +74,7 @@ class APITestCase(TestCase): def get_base(self, base_url=None): 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 def stub_url(self, method, parts=None, base_url=None, json=None, **kwargs): diff --git a/designateclient/tests/osc/v2/test_recordsets.py b/designateclient/tests/osc/v2/test_recordsets.py index c9d2252c..1a8eba86 100644 --- a/designateclient/tests/osc/v2/test_recordsets.py +++ b/designateclient/tests/osc/v2/test_recordsets.py @@ -21,7 +21,7 @@ from designateclient.v2.cli import recordsets class TestDesignateCreateRecordSets(utils.TestCommand): def setUp(self): - super(TestDesignateCreateRecordSets, self).setUp() + super().setUp() self.app.client_manager.dns = mock.MagicMock() self.cmd = recordsets.CreateRecordSetCommand(self.app, None) self.dns_client = self.app.client_manager.dns @@ -54,7 +54,7 @@ class TestDesignateCreateRecordSets(utils.TestCommand): class TestDesignateListRecordSets(utils.TestCommand): def setUp(self): - super(TestDesignateListRecordSets, self).setUp() + super().setUp() self.app.client_manager.dns = mock.MagicMock() self.cmd = recordsets.ListRecordSetsCommand(self.app, None) self.dns_client = self.app.client_manager.dns diff --git a/designateclient/tests/osc/v2/test_zone.py b/designateclient/tests/osc/v2/test_zone.py index adf3f3d9..1178b40b 100644 --- a/designateclient/tests/osc/v2/test_zone.py +++ b/designateclient/tests/osc/v2/test_zone.py @@ -21,7 +21,7 @@ from designateclient.v2.cli import zones class TestDesignateCreateZone(utils.TestCommand): def setUp(self): - super(TestDesignateCreateZone, self).setUp() + super().setUp() self.app.client_manager.dns = mock.MagicMock() self.cmd = zones.CreateZoneCommand(self.app, None) self.dns_client = self.app.client_manager.dns @@ -49,7 +49,7 @@ class TestDesignateCreateZone(utils.TestCommand): class TestDesignateListZones(utils.TestCommand): def setUp(self): - super(TestDesignateListZones, self).setUp() + super().setUp() self.app.client_manager.dns = mock.MagicMock() self.cmd = zones.ListZonesCommand(self.app, None) self.dns_client = self.app.client_manager.dns diff --git a/designateclient/tests/v2/__init__.py b/designateclient/tests/v2/__init__.py index f870d158..20fa5693 100644 --- a/designateclient/tests/v2/__init__.py +++ b/designateclient/tests/v2/__init__.py @@ -18,7 +18,7 @@ import uuid from designateclient.tests import base -class CrudMixin(object): +class CrudMixin: path_prefix = None def new_ref(self, **kwargs): diff --git a/designateclient/tests/v2/test_blacklists.py b/designateclient/tests/v2/test_blacklists.py index df1ceb5d..ecbba6a0 100644 --- a/designateclient/tests/v2/test_blacklists.py +++ b/designateclient/tests/v2/test_blacklists.py @@ -22,7 +22,7 @@ class TestBlacklists(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'blacklists' def new_ref(self, **kwargs): - ref = super(TestBlacklists, self).new_ref(**kwargs) + ref = super().new_ref(**kwargs) ref.setdefault("pattern", uuid.uuid4().hex) return ref diff --git a/designateclient/tests/v2/test_recordsets.py b/designateclient/tests/v2/test_recordsets.py index 1478f223..11806ac0 100644 --- a/designateclient/tests/v2/test_recordsets.py +++ b/designateclient/tests/v2/test_recordsets.py @@ -32,7 +32,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'recordsets' 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("type", "A") ref.setdefault("records", ["10.0.0.1"]) @@ -49,11 +49,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): self.client.recordsets.create( ZONE, - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) @patch.object(zones.ZoneController, "get") @@ -70,11 +70,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): self.client.recordsets.create( ZONE["name"], - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) @patch.object(zones.ZoneController, "get") @@ -95,7 +95,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): values["type"], values["records"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) @patch.object(zones.ZoneController, "list") @@ -112,7 +112,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): with testtools.ExpectedException(exceptions.NoUniqueMatch): self.client.recordsets.create( ZONE["name"], - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"]) @@ -127,11 +127,11 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): self.client.recordsets.create( ZONE["id"], - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) @patch.object(zones.ZoneController, "get") @@ -152,7 +152,7 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): values["type"], values["records"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) def test_create_with_description(self): @@ -166,12 +166,12 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): self.client.recordsets.create( ZONE["id"], - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"], description=values["description"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) def test_create_with_ttl(self): @@ -185,12 +185,12 @@ class TestRecordSets(v2.APIV2TestCase, v2.CrudMixin): self.client.recordsets.create( ZONE["id"], - "%s.%s" % (values["name"], ZONE["name"]), + "{}.{}".format(values["name"], ZONE["name"]), values["type"], values["records"], ttl=values["ttl"]) - values["name"] = "%s.%s" % (ref["name"], ZONE["name"]) + values["name"] = "{}.{}".format(ref["name"], ZONE["name"]) self.assertRequestBodyIs(json=values) def test_get(self): diff --git a/designateclient/tests/v2/test_reverse.py b/designateclient/tests/v2/test_reverse.py index a303f07b..85add3c9 100644 --- a/designateclient/tests/v2/test_reverse.py +++ b/designateclient/tests/v2/test_reverse.py @@ -17,7 +17,7 @@ import uuid 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): diff --git a/designateclient/tests/v2/test_service_statuses.py b/designateclient/tests/v2/test_service_statuses.py index 9dd571d3..d6349ac3 100644 --- a/designateclient/tests/v2/test_service_statuses.py +++ b/designateclient/tests/v2/test_service_statuses.py @@ -20,7 +20,7 @@ class TestServiceStatuses(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'service_statuses' def new_ref(self, **kwargs): - ref = super(TestServiceStatuses, self).new_ref(**kwargs) + ref = super().new_ref(**kwargs) ref["name"] = "foo" return ref diff --git a/designateclient/tests/v2/test_timeout.py b/designateclient/tests/v2/test_timeout.py index 0b42a39a..ec96bbd6 100644 --- a/designateclient/tests/v2/test_timeout.py +++ b/designateclient/tests/v2/test_timeout.py @@ -31,7 +31,7 @@ def create_session(timeout=None): class TestTimeout(v2.APIV2TestCase, v2.CrudMixin): def setUp(self): - super(TestTimeout, self).setUp() + super().setUp() # Mock methods in KeyStone's Session self._saved_methods = ( @@ -56,7 +56,7 @@ class TestTimeout(v2.APIV2TestCase, v2.CrudMixin): self.mock_send_request = keystone_session.Session._send_request def tearDown(self): - super(TestTimeout, self).tearDown() + super().tearDown() ( keystone_session.Session.get_auth_headers, keystone_session.Session.get_endpoint, diff --git a/designateclient/tests/v2/test_tlds.py b/designateclient/tests/v2/test_tlds.py index 080e8fe5..4d699f10 100644 --- a/designateclient/tests/v2/test_tlds.py +++ b/designateclient/tests/v2/test_tlds.py @@ -22,7 +22,7 @@ class TestTlds(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'tlds' def new_ref(self, **kwargs): - ref = super(TestTlds, self).new_ref(**kwargs) + ref = super().new_ref(**kwargs) ref.setdefault("name", uuid.uuid4().hex) return ref diff --git a/designateclient/tests/v2/test_tsigkeys.py b/designateclient/tests/v2/test_tsigkeys.py index 6290ffaa..0ce74cfd 100644 --- a/designateclient/tests/v2/test_tsigkeys.py +++ b/designateclient/tests/v2/test_tsigkeys.py @@ -22,7 +22,7 @@ class TestTSIGKeys(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'tsigkeys' 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("algorithm", "hmac-sha256") ref.setdefault("secret", uuid.uuid4().hex) diff --git a/designateclient/tests/v2/test_zones.py b/designateclient/tests/v2/test_zones.py index 63ee81e3..fd306545 100644 --- a/designateclient/tests/v2/test_zones.py +++ b/designateclient/tests/v2/test_zones.py @@ -23,7 +23,7 @@ class TestZones(v2.APIV2TestCase, v2.CrudMixin): RESOURCE = 'zones' 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("type", "PRIMARY") return ref @@ -278,7 +278,7 @@ class TestZoneTransfers(v2.APIV2TestCase, v2.CrudMixin): class TestZoneExports(v2.APIV2TestCase, v2.CrudMixin): 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("created_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): 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("created_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): def setUp(self): - super(TestZoneShared, self).setUp() + super().setUp() self.zone_id = str(uuid.uuid4()) self.target_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") 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("target_project_id", self.target_project_id) ref.setdefault("project_id", self.project_id) diff --git a/designateclient/utils.py b/designateclient/utils.py index 79b1fb68..8781378f 100644 --- a/designateclient/utils.py +++ b/designateclient/utils.py @@ -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] if not candidate_ids: 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: str_ids = ','.join(candidate_ids) 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] @@ -108,4 +108,4 @@ class AdapterWithTimeout(adapter.Adapter): if self.timeout is not None: kwargs.setdefault('timeout', self.timeout) - return super(AdapterWithTimeout, self).request(*args, **kwargs) + return super().request(*args, **kwargs) diff --git a/designateclient/v2/blacklists.py b/designateclient/v2/blacklists.py index 102c0183..cb1e6296 100644 --- a/designateclient/v2/blacklists.py +++ b/designateclient/v2/blacklists.py @@ -30,19 +30,19 @@ class BlacklistController(V2Controller): def list(self, criterion=None, marker=None, limit=None): 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): - url = '/blacklists/%s' % blacklist_id + url = f'/blacklists/{blacklist_id}' return self._get(url) def update(self, blacklist_id, values): - url = '/blacklists/%s' % blacklist_id + url = f'/blacklists/{blacklist_id}' return self._patch(url, data=values) def delete(self, blacklist_id): - url = '/blacklists/%s' % blacklist_id + url = f'/blacklists/{blacklist_id}' return self._delete(url) diff --git a/designateclient/v2/cli/blacklists.py b/designateclient/v2/cli/blacklists.py index 11f66403..4e6bc4ed 100644 --- a/designateclient/v2/cli/blacklists.py +++ b/designateclient/v2/cli/blacklists.py @@ -37,7 +37,7 @@ class ListBlacklistsCommand(command.Lister): columns = ['id', 'pattern', 'description'] 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) @@ -56,9 +56,9 @@ class ShowBlacklistCommand(command.ShowOne): """Show blacklist details""" 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) @@ -76,11 +76,11 @@ class CreateBlacklistCommand(command.ShowOne): """Create new blacklist""" 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) - parser.add_argument('--description', help="Description") + parser.add_argument('--description', help='Description') common.add_all_common_options(parser) @@ -101,13 +101,13 @@ class SetBlacklistCommand(command.ShowOne): """Set blacklist properties""" 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('--pattern', help="Blacklist pattern") + parser.add_argument('id', help='Blacklist ID') + parser.add_argument('--pattern', help='Blacklist pattern') 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') common.add_all_common_options(parser) @@ -138,9 +138,9 @@ class DeleteBlacklistCommand(command.Command): """Delete blacklist""" 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) diff --git a/designateclient/v2/cli/quotas.py b/designateclient/v2/cli/quotas.py index a6fcda71..451d06b2 100644 --- a/designateclient/v2/cli/quotas.py +++ b/designateclient/v2/cli/quotas.py @@ -39,13 +39,13 @@ class ListQuotasCommand(show.ShowOne): # columns = ['resource', 'hard_limit'] 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) parser.add_argument( '--project-id', - help="Project ID Default: current project") + help='Project ID Default: current project') return parser @@ -70,18 +70,18 @@ class SetQuotasCommand(show.ShowOne): return itertools.chain(DNS_QUOTAS.items()) 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) - parser.add_argument('--project-id', help="Project ID") + parser.add_argument('--project-id', help='Project ID') for k, v in self._build_options_list(): parser.add_argument( - '--%s' % v, - metavar='<%s>' % v, + f'--{v}', + metavar=f'<{v}>', dest=k, type=int, - help='New value for the %s quota' % v, + help=f'New value for the {v} quota', ) return parser @@ -111,11 +111,11 @@ class ResetQuotasCommand(command.Command): """Reset quotas""" 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) - parser.add_argument('--project-id', help="Project ID") + parser.add_argument('--project-id', help='Project ID') return parser diff --git a/designateclient/v2/cli/recordsets.py b/designateclient/v2/cli/recordsets.py index d79dfb8f..10caba68 100644 --- a/designateclient/v2/cli/recordsets.py +++ b/designateclient/v2/cli/recordsets.py @@ -48,19 +48,19 @@ class ListRecordSetsCommand(command.Lister): columns = ['id', 'name', 'type', 'records', 'status', 'action'] 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('--type', help="RecordSet Type", required=False) - parser.add_argument('--data', help="RecordSet Record Data", + parser.add_argument('--name', help='RecordSet Name', required=False) + parser.add_argument('--type', help='RecordSet Type', required=False) + parser.add_argument('--data', help='RecordSet Record Data', required=False) - parser.add_argument('--ttl', help="Time To Live (Seconds)", + parser.add_argument('--ttl', help='Time To Live (Seconds)', required=False) - parser.add_argument('--description', help="Description", + parser.add_argument('--description', help='Description', required=False) - parser.add_argument('--status', help="RecordSet Status", + parser.add_argument('--status', help='RecordSet Status', required=False) - parser.add_argument('--action', help="RecordSet Action", + parser.add_argument('--action', help='RecordSet Action', required=False) parser.add_argument('zone_id', help="Zone ID. To list all" @@ -76,25 +76,25 @@ class ListRecordSetsCommand(command.Lister): criterion = {} if parsed_args.type is not None: - criterion["type"] = parsed_args.type + criterion['type'] = parsed_args.type if parsed_args.name is not None: - criterion["name"] = parsed_args.name + criterion['name'] = parsed_args.name if parsed_args.data is not None: - criterion["data"] = parsed_args.data + criterion['data'] = parsed_args.data if parsed_args.ttl is not None: - criterion["ttl"] = parsed_args.ttl + criterion['ttl'] = parsed_args.ttl if parsed_args.description is not None: - criterion["description"] = parsed_args.description + criterion['description'] = parsed_args.description if parsed_args.status is not None: - criterion["status"] = parsed_args.status + criterion['status'] = parsed_args.status if parsed_args.action is not None: - criterion["action"] = parsed_args.action + criterion['action'] = parsed_args.action cols = list(self.columns) @@ -119,10 +119,10 @@ class ShowRecordSetCommand(command.ShowOne): """Show recordset details""" 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('id', help="RecordSet ID") + parser.add_argument('zone_id', help='Zone ID') + parser.add_argument('id', help='RecordSet ID') common.add_all_common_options(parser) @@ -143,10 +143,10 @@ class CreateRecordSetCommand(command.ShowOne): log = logging.getLogger('deprecated') 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('name', help="RecordSet Name") + parser.add_argument('zone_id', help='Zone ID') + parser.add_argument('name', help='RecordSet Name') req_group = parser.add_mutually_exclusive_group(required=True) req_group.add_argument( '--records', @@ -154,11 +154,11 @@ class CreateRecordSetCommand(command.ShowOne): nargs='+') req_group.add_argument( '--record', - help="RecordSet Record, repeat if necessary", + help='RecordSet Record, repeat if necessary', action='append') - parser.add_argument('--type', help="RecordSet Type", required=True) - parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)") - parser.add_argument('--description', help="Description") + parser.add_argument('--type', help='RecordSet Type', required=True) + parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)') + parser.add_argument('--description', help='Description') common.add_all_common_options(parser) @@ -171,7 +171,7 @@ class CreateRecordSetCommand(command.ShowOne): all_records = parsed_args.record or parsed_args.records if parsed_args.records: self.log.warning( - "Option --records is deprecated, use --record instead.") + 'Option --records is deprecated, use --record instead.') data = client.recordsets.create( parsed_args.zone_id, parsed_args.name, @@ -188,10 +188,10 @@ class SetRecordSetCommand(command.ShowOne): """Set recordset properties""" 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('id', help="RecordSet ID") + parser.add_argument('zone_id', help='Zone ID') + parser.add_argument('id', help='RecordSet ID') req_group = parser.add_mutually_exclusive_group() req_group.add_argument( '--records', @@ -199,15 +199,15 @@ class SetRecordSetCommand(command.ShowOne): nargs='+') req_group.add_argument( '--record', - help="RecordSet Record, repeat if necessary", + help='RecordSet Record, repeat if necessary', action='append') 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') 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') common.add_all_common_options(parser) @@ -231,7 +231,7 @@ class SetRecordSetCommand(command.ShowOne): all_records = parsed_args.record or parsed_args.records if parsed_args.records: self.log.warning( - "Option --records is deprecated, use --record instead.") + 'Option --records is deprecated, use --record instead.') if all_records: data['records'] = all_records @@ -253,10 +253,10 @@ class DeleteRecordSetCommand(command.ShowOne): """Delete recordset""" 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('id', help="RecordSet ID") + parser.add_argument('zone_id', help='Zone ID') + parser.add_argument('id', help='RecordSet ID') common.add_all_common_options(parser) common.add_edit_managed_option(parser) diff --git a/designateclient/v2/cli/reverse.py b/designateclient/v2/cli/reverse.py index 11d53832..668cdf14 100644 --- a/designateclient/v2/cli/reverse.py +++ b/designateclient/v2/cli/reverse.py @@ -37,7 +37,7 @@ class ListFloatingIPCommand(command.Lister): columns = ['id', 'ptrdname', 'description', 'ttl'] 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) @@ -56,10 +56,10 @@ class ShowFloatingIPCommand(command.ShowOne): """Show floatingip ptr record details""" 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 " - "region:floatingip_id") + parser.add_argument('floatingip_id', help='Floating IP ID in format ' + 'region:floatingip_id') common.add_all_common_options(parser) @@ -77,18 +77,18 @@ class SetFloatingIPCommand(command.ShowOne): """Set floatingip ptr record""" 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 " - "region:floatingip_id") - parser.add_argument('ptrdname', help="PTRD Name") + parser.add_argument('floatingip_id', help='Floating IP ID in format ' + 'region:floatingip_id') + parser.add_argument('ptrdname', help='PTRD Name') 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') 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') common.add_all_common_options(parser) @@ -125,10 +125,10 @@ class UnsetFloatingIPCommand(command.Command): """Unset floatingip ptr record""" 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 " - "region:floatingip_id") + parser.add_argument('floatingip_id', help='Floating IP ID in format ' + 'region:floatingip_id') common.add_all_common_options(parser) diff --git a/designateclient/v2/cli/service_statuses.py b/designateclient/v2/cli/service_statuses.py index c7b4179a..19222757 100644 --- a/designateclient/v2/cli/service_statuses.py +++ b/designateclient/v2/cli/service_statuses.py @@ -27,10 +27,10 @@ LOG = logging.getLogger(__name__) def _format_status(status): - status.pop("links", None) + status.pop('links', None) # Remove unneeded fields for display output formatting - for k in ("capabilities", "stats"): - status[k] = "\n".join(status[k]) if status[k] else "-" + for k in ('capabilities', 'stats'): + status[k] = '\n'.join(status[k]) if status[k] else '-' return status @@ -41,12 +41,12 @@ class ListServiceStatusesCommand(command.Lister): 'capabilities'] 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("--service_name", help="Service Name", + parser.add_argument('--hostname', help='Hostname', required=False) + parser.add_argument('--service_name', help='Service Name', required=False) - parser.add_argument("--status", help="Status", required=False) + parser.add_argument('--status', help='Status', required=False) common.add_all_common_options(parser) return parser @@ -58,7 +58,7 @@ class ListServiceStatusesCommand(command.Lister): cols = self.columns criterion = {} - for i in ["hostname", "service_name", "status"]: + for i in ['hostname', 'service_name', 'status']: v = getattr(parsed_args, i) if v is not None: criterion[i] = v @@ -76,9 +76,9 @@ class ShowServiceStatusCommand(command.ShowOne): """Show service status details""" 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) diff --git a/designateclient/v2/cli/tlds.py b/designateclient/v2/cli/tlds.py index 7ffe8847..227d710c 100644 --- a/designateclient/v2/cli/tlds.py +++ b/designateclient/v2/cli/tlds.py @@ -37,11 +37,11 @@ class ListTLDsCommand(command.Lister): columns = ['id', 'name', 'description'] 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) @@ -61,9 +61,9 @@ class ShowTLDCommand(command.ShowOne): """Show tld details""" 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) @@ -81,10 +81,10 @@ class CreateTLDCommand(command.ShowOne): """Create new tld""" 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('--description', help="Description") + parser.add_argument('--name', help='TLD Name', required=True) + parser.add_argument('--description', help='Description') common.add_all_common_options(parser) @@ -102,12 +102,12 @@ class SetTLDCommand(command.ShowOne): """Set tld properties""" 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('--name', help="TLD Name") + parser.add_argument('id', help='TLD name or ID') + parser.add_argument('--name', help='TLD Name') 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') common.add_all_common_options(parser) @@ -137,9 +137,9 @@ class DeleteTLDCommand(command.Command): """Delete tld""" 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) diff --git a/designateclient/v2/cli/tsigkeys.py b/designateclient/v2/cli/tsigkeys.py index 587dfe7e..9c046fcf 100644 --- a/designateclient/v2/cli/tsigkeys.py +++ b/designateclient/v2/cli/tsigkeys.py @@ -36,12 +36,12 @@ class ListTSIGKeysCommand(command.Lister): columns = ['id', 'name', 'algorithm', 'secret', 'scope', 'resource_id'] 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('--algorithm', help="TSIGKey algorithm", + parser.add_argument('--name', help='TSIGKey NAME', required=False) + parser.add_argument('--algorithm', help='TSIGKey algorithm', 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) @@ -53,11 +53,11 @@ class ListTSIGKeysCommand(command.Lister): criterion = {} if parsed_args.name is not None: - criterion["name"] = parsed_args.name + criterion['name'] = parsed_args.name if parsed_args.algorithm is not None: - criterion["algorithm"] = parsed_args.algorithm + criterion['algorithm'] = parsed_args.algorithm if parsed_args.scope is not None: - criterion["scope"] = parsed_args.scope + criterion['scope'] = parsed_args.scope data = get_all(client.tsigkeys.list, criterion) @@ -69,9 +69,9 @@ class ShowTSIGKeyCommand(command.ShowOne): """Show tsigkey details""" 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) @@ -89,14 +89,14 @@ class CreateTSIGKeyCommand(command.ShowOne): """Create new tsigkey""" 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('--algorithm', help="TSIGKey algorithm", + parser.add_argument('--name', help='TSIGKey Name', required=True) + parser.add_argument('--algorithm', help='TSIGKey algorithm', required=True) - parser.add_argument('--secret', help="TSIGKey secret", required=True) - parser.add_argument('--scope', help="TSIGKey scope", required=True) - parser.add_argument('--resource-id', help="TSIGKey resource_id", + parser.add_argument('--secret', help='TSIGKey secret', required=True) + parser.add_argument('--scope', help='TSIGKey scope', required=True) + parser.add_argument('--resource-id', help='TSIGKey resource_id', required=True) common.add_all_common_options(parser) @@ -117,13 +117,13 @@ class SetTSIGKeyCommand(command.ShowOne): """Set tsigkey properties""" 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('--name', help="TSIGKey Name") - parser.add_argument('--algorithm', help="TSIGKey algorithm") - parser.add_argument('--secret', help="TSIGKey secret") - parser.add_argument('--scope', help="TSIGKey scope") + parser.add_argument('id', help='TSIGKey ID') + parser.add_argument('--name', help='TSIGKey Name') + parser.add_argument('--algorithm', help='TSIGKey algorithm') + parser.add_argument('--secret', help='TSIGKey secret') + parser.add_argument('--scope', help='TSIGKey scope') common.add_all_common_options(parser) @@ -153,9 +153,9 @@ class DeleteTSIGKeyCommand(command.Command): """Delete tsigkey""" 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) diff --git a/designateclient/v2/cli/zones.py b/designateclient/v2/cli/zones.py index d23d7462..9e034445 100644 --- a/designateclient/v2/cli/zones.py +++ b/designateclient/v2/cli/zones.py @@ -29,10 +29,10 @@ LOG = logging.getLogger(__name__) def _format_zone(zone): zone.pop('links', None) - zone['masters'] = ", ".join(zone['masters']) + zone['masters'] = ', '.join(zone['masters']) attrib = '' for attr in zone['attributes']: - attrib += "%s:%s\n" % (attr, zone['attributes'][attr]) + attrib += '{}:{}\n'.format(attr, zone['attributes'][attr]) zone['attributes'] = attrib @@ -50,19 +50,19 @@ class ListZonesCommand(command.Lister): columns = ['id', 'name', 'type', 'serial', 'status', 'action'] 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('--email', help="Zone Email", required=False) - parser.add_argument('--type', help="Zone Type", - choices=["PRIMARY", "SECONDARY"], + parser.add_argument('--name', help='Zone Name', required=False) + parser.add_argument('--email', help='Zone Email', required=False) + parser.add_argument('--type', help='Zone Type', + choices=['PRIMARY', 'SECONDARY'], default=None, required=False) - parser.add_argument('--ttl', help="Time To Live (Seconds)", + parser.add_argument('--ttl', help='Time To Live (Seconds)', required=False) - parser.add_argument('--description', help="Description", + parser.add_argument('--description', help='Description', 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) @@ -74,22 +74,22 @@ class ListZonesCommand(command.Lister): criterion = {} if parsed_args.type is not None: - criterion["type"] = parsed_args.type + criterion['type'] = parsed_args.type if parsed_args.name is not None: - criterion["name"] = parsed_args.name + criterion['name'] = parsed_args.name if parsed_args.ttl is not None: - criterion["ttl"] = parsed_args.ttl + criterion['ttl'] = parsed_args.ttl if parsed_args.description is not None: - criterion["description"] = parsed_args.description + criterion['description'] = parsed_args.description if parsed_args.email is not None: - criterion["email"] = parsed_args.email + criterion['email'] = parsed_args.email if parsed_args.status is not None: - criterion["status"] = parsed_args.status + criterion['status'] = parsed_args.status data = get_all(client.zones.list, criterion) @@ -105,9 +105,9 @@ class ShowZoneCommand(command.ShowOne): """Show zone details""" 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) @@ -127,17 +127,17 @@ class CreateZoneCommand(command.ShowOne): """Create new zone""" 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('--email', help="Zone Email") - parser.add_argument('--type', help="Zone Type", - choices=["PRIMARY", "SECONDARY"], + parser.add_argument('name', help='Zone Name') + parser.add_argument('--email', help='Zone Email') + parser.add_argument('--type', help='Zone Type', + choices=['PRIMARY', 'SECONDARY'], default='PRIMARY') - parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)") - parser.add_argument('--description', help="Description") - parser.add_argument('--masters', help="Zone Masters", nargs='+') - parser.add_argument('--attributes', help="Zone Attributes", nargs='+') + parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)') + parser.add_argument('--description', help='Description') + parser.add_argument('--masters', help='Zone Masters', nargs='+') + parser.add_argument('--attributes', help='Zone Attributes', nargs='+') common.add_all_common_options(parser) @@ -150,36 +150,39 @@ class CreateZoneCommand(command.ShowOne): payload = {} if parsed_args.description: - payload["description"] = parsed_args.description + payload['description'] = parsed_args.description if parsed_args.attributes: - payload["attributes"] = {} + payload['attributes'] = {} for attr in parsed_args.attributes: try: k, v = attr.split(':') - payload["attributes"][k] = v + payload['attributes'][k] = v except ValueError: - msg = ("Attribute '%s' is in an incorrect format. " - "Attributes are : formated") - raise osc_exc.CommandError(msg % attr) + raise osc_exc.CommandError( + f"Attribute '{attr}' is in an incorrect format. " + "Attributes are : formated" + ) if parsed_args.type == 'PRIMARY': # email is just for PRIMARY. if not parsed_args.email: - msg = "Zone type PRIMARY requires --email." - raise osc_exc.CommandError(msg) + raise osc_exc.CommandError( + 'Zone type PRIMARY requires --email.' + ) - payload["email"] = parsed_args.email + payload['email'] = parsed_args.email # TTL is just valid for PRIMARY if parsed_args.ttl is not None: - payload["ttl"] = parsed_args.ttl + payload['ttl'] = parsed_args.ttl elif parsed_args.type == 'SECONDARY': - payload["masters"] = parsed_args.masters + payload['masters'] = parsed_args.masters else: - msg = ("Type %s is not supported. Please choose between " - "PRIMARY or SECONDARY") - raise osc_exc.CommandError(msg % parsed_args.type) + raise osc_exc.CommandError( + f'Type {parsed_args.type} is not supported. Please choose ' + 'between PRIMARY or SECONDARY' + ) data = client.zones.create( parsed_args.name, parsed_args.type, **payload) @@ -192,16 +195,16 @@ class SetZoneCommand(command.ShowOne): """Set zone properties""" 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('--email', help="Zone Email") - parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)") + parser.add_argument('id', help='Zone ID') + parser.add_argument('--email', help='Zone Email') + parser.add_argument('--ttl', type=int, help='Time To Live (Seconds)') 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') - parser.add_argument('--masters', help="Zone Masters", nargs='+') + parser.add_argument('--masters', help='Zone Masters', nargs='+') common.add_all_common_options(parser) @@ -237,9 +240,9 @@ class DeleteZoneCommand(command.ShowOne): """Delete zone""" 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, action='store_true', @@ -270,9 +273,9 @@ class DeleteZoneCommand(command.ShowOne): class AbandonZoneCommand(command.Command): """Abandon a zone""" 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) @@ -284,16 +287,16 @@ class AbandonZoneCommand(command.Command): client.zones.abandon(parsed_args.id) - LOG.info("Z %(zone_id)s abandoned", - {"zone_id": parsed_args.id}) + LOG.info('Z %(zone_id)s abandoned', + {'zone_id': parsed_args.id}) class AXFRZoneCommand(command.Command): """AXFR a zone""" 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) @@ -305,22 +308,22 @@ class AXFRZoneCommand(command.Command): client.zones.axfr(parsed_args.id) - LOG.info("Scheduled AXFR for zone %(zone_id)s", - {"zone_id": parsed_args.id}) + LOG.info('Scheduled AXFR for zone %(zone_id)s', + {'zone_id': parsed_args.id}) class CreateTransferRequestCommand(command.ShowOne): """Create new zone transfer request""" def get_parser(self, prog_name): - parser = super(CreateTransferRequestCommand, self).get_parser( + parser = super().get_parser( 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( '--target-project-id', - help="Target Project ID to transfer to.") - parser.add_argument('--description', help="Description") + help='Target Project ID to transfer to.') + parser.add_argument('--description', help='Description') common.add_all_common_options(parser) @@ -343,7 +346,7 @@ class ListTransferRequestsCommand(command.Lister): 'target_project_id', 'status', 'key'] def get_parser(self, prog_name): - parser = super(ListTransferRequestsCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -364,9 +367,9 @@ class ShowTransferRequestCommand(command.ShowOne): """Show Zone Transfer Request Details""" 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) @@ -385,16 +388,16 @@ class SetTransferRequestCommand(command.ShowOne): """Set a Zone Transfer Request""" 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.add_argument('--description', help="Description") + description_group.add_argument('--description', help='Description') description_group.add_argument('--no-description', action='store_true') parser.add_argument( '--target-project-id', - help="Target Project ID to transfer to.") + help='Target Project ID to transfer to.') common.add_all_common_options(parser) @@ -421,10 +424,10 @@ class SetTransferRequestCommand(command.ShowOne): class DeleteTransferRequestCommand(command.Command): """Delete a Zone Transfer Request""" def get_parser(self, prog_name): - parser = super(DeleteTransferRequestCommand, self).get_parser( + parser = super().get_parser( 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) @@ -443,12 +446,12 @@ class AcceptTransferRequestCommand(command.ShowOne): """Accept a Zone Transfer Request""" def get_parser(self, prog_name): - parser = super(AcceptTransferRequestCommand, self).get_parser( + parser = super().get_parser( prog_name) - parser.add_argument('--transfer-id', help="Transfer ID", type=str, + parser.add_argument('--transfer-id', help='Transfer ID', type=str, required=True) - parser.add_argument('--key', help="Transfer Key", type=str, + parser.add_argument('--key', help='Transfer Key', type=str, required=True) common.add_all_common_options(parser) @@ -471,7 +474,7 @@ class ListTransferAcceptsCommand(command.Lister): 'zone_transfer_request_id', 'status', 'key'] def get_parser(self, prog_name): - parser = super(ListTransferAcceptsCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -492,9 +495,9 @@ class ShowTransferAcceptCommand(command.ShowOne): """Show Zone Transfer Accept""" 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) @@ -513,12 +516,12 @@ class ExportZoneCommand(command.ShowOne): """Export a Zone""" def get_parser(self, prog_name): - parser = super(ExportZoneCommand, self).get_parser( + parser = super().get_parser( prog_name) 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 @@ -545,7 +548,7 @@ class ListZoneExportsCommand(command.Lister): ] def get_parser(self, prog_name): - parser = super(ListZoneExportsCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -567,10 +570,10 @@ class ShowZoneExportCommand(command.ShowOne): """Show a Zone Export""" def get_parser(self, prog_name): - parser = super(ShowZoneExportCommand, self).get_parser( + parser = super().get_parser( 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) @@ -591,10 +594,10 @@ class DeleteZoneExportCommand(command.Command): """Delete a Zone Export""" def get_parser(self, prog_name): - parser = super(DeleteZoneExportCommand, self).get_parser( + parser = super().get_parser( 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) @@ -613,10 +616,10 @@ class ShowZoneExportFileCommand(command.ShowOne): """Show the zone file for the Zone Export""" def get_parser(self, prog_name): - parser = super(ShowZoneExportFileCommand, self).get_parser( + parser = super().get_parser( 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) @@ -635,11 +638,11 @@ class ImportZoneCommand(command.ShowOne): """Import a Zone from a file on the filesystem""" def get_parser(self, prog_name): - parser = super(ImportZoneCommand, self).get_parser( + parser = super().get_parser( prog_name) 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) @@ -649,7 +652,7 @@ class ImportZoneCommand(command.ShowOne): client = self.app.client_manager.dns 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() data = client.zone_imports.create(zone_file_contents) @@ -672,7 +675,7 @@ class ListZoneImportsCommand(command.Lister): ] def get_parser(self, prog_name): - parser = super(ListZoneImportsCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -694,10 +697,10 @@ class ShowZoneImportCommand(command.ShowOne): """Show a Zone Import""" def get_parser(self, prog_name): - parser = super(ShowZoneImportCommand, self).get_parser( + parser = super().get_parser( 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) @@ -718,10 +721,10 @@ class DeleteZoneImportCommand(command.Command): """Delete a Zone Import""" def get_parser(self, prog_name): - parser = super(DeleteZoneImportCommand, self).get_parser( + parser = super().get_parser( 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) @@ -740,7 +743,7 @@ class ShareZoneCommand(command.ShowOne): """Share a Zone""" def get_parser(self, prog_name): - parser = super(ShareZoneCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -777,7 +780,7 @@ class ListSharedZonesCommand(command.Lister): ] def get_parser(self, prog_name): - parser = super(ListSharedZonesCommand, self).get_parser( + parser = super().get_parser( prog_name) common.add_all_common_options(parser) @@ -812,7 +815,7 @@ class ShowSharedZoneCommand(command.ShowOne): """Show Zone Share Details""" 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('shared_zone_id', @@ -837,7 +840,7 @@ class DeleteSharedZoneCommand(command.Command): """Delete a Zone Share""" def get_parser(self, prog_name): - parser = super(DeleteSharedZoneCommand, self).get_parser( + parser = super().get_parser( prog_name) parser.add_argument('zone', help='The zone name or ID to share.') diff --git a/designateclient/v2/client.py b/designateclient/v2/client.py index 053275ce..ebc2e26d 100644 --- a/designateclient/v2/client.py +++ b/designateclient/v2/client.py @@ -116,7 +116,7 @@ class DesignateAdapter(adapter.LegacyJsonAdapter): return response, body -class Client(object): +class Client: def __init__(self, region_name=None, endpoint_type='publicURL', extensions=None, service_type='dns', service_name=None, http_log_debug=False, session=None, auth=None, timeout=None, @@ -131,7 +131,7 @@ class Client(object): region_name=region_name, service_type=service_type, interface=endpoint_type.rstrip('URL'), - user_agent='python-designateclient-%s' % version.version_info, + user_agent=f'python-designateclient-{version.version_info}', version=('2'), endpoint_override=endpoint_override, timeout=timeout, diff --git a/designateclient/v2/nameservers.py b/designateclient/v2/nameservers.py index b35649d3..7b64b7b6 100644 --- a/designateclient/v2/nameservers.py +++ b/designateclient/v2/nameservers.py @@ -21,6 +21,6 @@ class NameServerController(V2Controller): def list(self, 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') diff --git a/designateclient/v2/quotas.py b/designateclient/v2/quotas.py index 6377a411..059529f2 100644 --- a/designateclient/v2/quotas.py +++ b/designateclient/v2/quotas.py @@ -18,10 +18,10 @@ from designateclient.v2.base import V2Controller class QuotasController(V2Controller): 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): - return self._patch('/quotas/%s' % project_id, data=values) + return self._patch(f'/quotas/{project_id}', data=values) def reset(self, project_id): - return self._delete('/quotas/%s' % project_id) + return self._delete(f'/quotas/{project_id}') diff --git a/designateclient/v2/recordsets.py b/designateclient/v2/recordsets.py index e6904fcd..93b5cb2f 100644 --- a/designateclient/v2/recordsets.py +++ b/designateclient/v2/recordsets.py @@ -32,11 +32,11 @@ class RecordSetController(V2Controller): # We where given a name like "www" vs www.i.io., attempt to fix it on # the behalf of the actor. - if not name.endswith("."): + if not name.endswith('.'): if not isinstance(zone_info, dict): zone_info = self.client.zones.get(zone) - name = "%s.%s" % (name, zone_info["name"]) + name = '{}.{}'.format(name, zone_info['name']) return name, zone_info @@ -57,24 +57,22 @@ class RecordSetController(V2Controller): data['description'] = description if zone_info is not None: - zone_id = zone_info["id"] + zone_id = zone_info['id'] else: zone_id = zone - url = '/zones/%s/recordsets' % zone_id - return self._post(url, data=data) + return self._post(f'/zones/{zone_id}/recordsets', data=data) def list(self, zone, criterion=None, marker=None, limit=None): zone = v2_utils.resolve_by_name(self.client.zones.list, zone) url = self.build_url( - '/zones/%s/recordsets' % zone, - criterion, marker, limit) + f'/zones/{zone}/recordsets', criterion, marker, limit + ) return self._get(url, response_key='recordsets') def list_all_zones(self, criterion=None, marker=None, limit=None): - url = self.build_url('/recordsets', criterion, marker, limit) 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) recordset = v2_utils.resolve_by_name(self.list, recordset, zone) - url = self.build_url('/zones/%s/recordsets/%s' % ( - zone, recordset)) + url = self.build_url(f'/zones/{zone}/recordsets/{recordset}') return self._get(url) @@ -92,7 +89,7 @@ class RecordSetController(V2Controller): zone = v2_utils.resolve_by_name(self.client.zones.list, 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) @@ -100,6 +97,6 @@ class RecordSetController(V2Controller): zone = v2_utils.resolve_by_name(self.client.zones.list, 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) diff --git a/designateclient/v2/reverse.py b/designateclient/v2/reverse.py index 3df78fa1..840844f6 100644 --- a/designateclient/v2/reverse.py +++ b/designateclient/v2/reverse.py @@ -23,12 +23,12 @@ class FloatingIPController(V2Controller): } if description is not None: - data["description"] = description + data['description'] = description 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) def list(self, criterion=None): @@ -37,13 +37,13 @@ class FloatingIPController(V2Controller): return self._get(url, response_key='floatingips') def get(self, floatingip_id): - url = '/reverse/floatingips/%s' % floatingip_id + url = f'/reverse/floatingips/{floatingip_id}' return self._get(url) 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) diff --git a/designateclient/v2/service_statuses.py b/designateclient/v2/service_statuses.py index 9477e97c..71cff9b3 100644 --- a/designateclient/v2/service_statuses.py +++ b/designateclient/v2/service_statuses.py @@ -20,9 +20,9 @@ class ServiceStatusesController(base.V2Controller): def list(self, criterion=None, marker=None, limit=None): 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): - url = '/service_statuses/%s' % service_status_id + url = f'/service_statuses/{service_status_id}' return self._get(url) diff --git a/designateclient/v2/tlds.py b/designateclient/v2/tlds.py index d70c88ab..cfeb4895 100644 --- a/designateclient/v2/tlds.py +++ b/designateclient/v2/tlds.py @@ -24,7 +24,7 @@ class TLDController(V2Controller): } if description is not None: - data["description"] = description + data['description'] = description return self._post('/tlds', data=data) @@ -36,14 +36,14 @@ class TLDController(V2Controller): def get(self, 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): 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): tld = v2_utils.resolve_by_name(self.list, tld) - return self._delete('/tlds/%s' % tld) + return self._delete(f'/tlds/{tld}') diff --git a/designateclient/v2/tsigkeys.py b/designateclient/v2/tsigkeys.py index 988700fb..e3162dae 100644 --- a/designateclient/v2/tsigkeys.py +++ b/designateclient/v2/tsigkeys.py @@ -37,14 +37,14 @@ class TSIGKeysController(V2Controller): def get(self, 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): 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): tsigkey = v2_utils.resolve_by_name(self.list, tsigkey) - return self._delete('/tsigkeys/%s' % tsigkey) + return self._delete(f'/tsigkeys/{tsigkey}') diff --git a/designateclient/v2/utils.py b/designateclient/v2/utils.py index 1c1b5afa..e741ff04 100644 --- a/designateclient/v2/utils.py +++ b/designateclient/v2/utils.py @@ -29,16 +29,17 @@ def resolve_by_name(func, name, *args): if uuidutils.is_uuid_like(name): return name - results = func(criterion={"name": "%s" % name}, *args) + results = func(criterion={"name": f"{name}"}, *args) length = len(results) if length == 1: return results[0]["id"] elif length == 0: - raise exceptions.NotFound("Name %s didn't resolve" % name) + raise exceptions.NotFound(f"Name {name} didn't resolve") else: - msg = "Multiple matches found for %s, please use ID instead." % name - raise exceptions.NoUniqueMatch(msg) + raise exceptions.NoUniqueMatch( + "Multiple matches found for {name}, please use ID instead." + ) def parse_query_from_url(url): diff --git a/designateclient/v2/zones.py b/designateclient/v2/zones.py index 209d4f08..cfec73f6 100644 --- a/designateclient/v2/zones.py +++ b/designateclient/v2/zones.py @@ -20,52 +20,52 @@ from designateclient.v2 import utils as v2_utils class ZoneController(V2Controller): def create(self, name, type_=None, email=None, description=None, ttl=None, masters=None, attributes=None): - type_ = type_ or "PRIMARY" + type_ = type_ or 'PRIMARY' data = { - "name": name, - "type": type_ + 'name': name, + 'type': type_ } - if type_ == "PRIMARY": + if type_ == 'PRIMARY': if email: - data["email"] = email + data['email'] = email if ttl is not None: - data["ttl"] = ttl + data['ttl'] = ttl - elif type_ == "SECONDARY" and masters: - data["masters"] = masters + elif type_ == 'SECONDARY' and masters: + data['masters'] = masters if description is not None: - data["description"] = description + data['description'] = description if attributes is not None: - data["attributes"] = attributes + data['attributes'] = attributes return self._post('/zones', data=data) def list(self, criterion=None, marker=None, limit=None): 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): 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): 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) def delete(self, zone, delete_shares=False): 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: headers = {'X-Designate-Delete-Shares': 'true'} @@ -78,14 +78,14 @@ class ZoneController(V2Controller): def abandon(self, 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) def axfr(self, 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) @@ -95,67 +95,67 @@ class ZoneTransfersController(V2Controller): zone = v2_utils.resolve_by_name(self.client.zones.list, zone) data = { - "target_project_id": target_project_id + 'target_project_id': target_project_id } 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) 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) def list_requests(self): 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): - url = '/zones/tasks/transfer_requests/%s' % transfer_id + url = f'/zones/tasks/transfer_requests/{transfer_id}' return self._patch(url, data=values) 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) def accept_request(self, transfer_id, key): url = '/zones/tasks/transfer_accepts' data = { - "key": key, - "zone_transfer_request_id": transfer_id + 'key': key, + 'zone_transfer_request_id': transfer_id } return self._post(url, data=data) 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) def list_accepts(self): url = '/zones/tasks/transfer_accepts' - return self._get(url, response_key="transfer_accepts") + return self._get(url, response_key='transfer_accepts') class ZoneExportsController(V2Controller): def create(self, 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): - return self._get('/zones/tasks/exports/%s' % zone_export_id) + return self._get(f'/zones/tasks/exports/{zone_export_id}') def list(self): return self._get('/zones/tasks/exports') 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): - 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'}) @@ -165,20 +165,20 @@ class ZoneImportsController(V2Controller): headers={'Content-Type': 'text/dns'}) 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): return self._get('/zones/tasks/imports') 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): def create(self, zone, target_project_id): 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) diff --git a/doc/examples/recordset_create.py b/doc/examples/recordset_create.py index bc12d4cc..62a3e519 100644 --- a/doc/examples/recordset_create.py +++ b/doc/examples/recordset_create.py @@ -31,7 +31,7 @@ client = client.Client(session=session) try: zone = client.zones.create('i.io.', email='i@i.io') 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...") for rs in client.recordsets.list(zone['id']): diff --git a/doc/examples/recordset_crud.py b/doc/examples/recordset_crud.py index 6b09197d..16007efa 100644 --- a/doc/examples/recordset_crud.py +++ b/doc/examples/recordset_crud.py @@ -24,7 +24,7 @@ client = client.Client(session=session) 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']) except exceptions.NotFound: pass @@ -40,7 +40,7 @@ for rrset in client.recordsets.list(zone['id']): # Make some A records www = client.recordsets.create( zone['id'], - 'www.%s' % zone['name'], + 'www.{}'.format(zone['name']), 'A', ['10.0.0.1']) @@ -52,7 +52,7 @@ client.recordsets.update(zone['id'], www['id'], values) cname = client.recordsets.create( zone['id'], - 'my-site.%s' % zone['name'], + 'my-site.{}'.format(zone['name']), 'CNAME', [www['name']]) diff --git a/doc/examples/zone_create_primary.py b/doc/examples/zone_create_primary.py index 65f8f44c..eb8419e3 100644 --- a/doc/examples/zone_create_primary.py +++ b/doc/examples/zone_create_primary.py @@ -1,4 +1,3 @@ - import logging import os @@ -27,6 +26,6 @@ client = client.Client(session=session) try: zone = client.zones.create('i.io.', email='i@i.io') 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'])) diff --git a/doc/examples/zone_create_secondary.py b/doc/examples/zone_create_secondary.py index febbe906..ae6d10d7 100644 --- a/doc/examples/zone_create_secondary.py +++ b/doc/examples/zone_create_secondary.py @@ -24,13 +24,13 @@ client = client.Client(session=session) # Primary Zone primary = client.zones.create( - 'primary-%s.io.' % str(uuid.uuid4()), + f'primary-{str(uuid.uuid4())}.io.', 'PRIMARY', 'root@x.com') # Secondary Zone slave = client.zones.create( - 'secondary-%s.io.' % str(uuid.uuid4()), + f'secondary-{str(uuid.uuid4())}.io.', 'SECONDARY', masters=["127.0.1.1"]) diff --git a/doc/examples/zone_list_nameservers.py b/doc/examples/zone_list_nameservers.py index b1136e7e..fc56ff8c 100644 --- a/doc/examples/zone_list_nameservers.py +++ b/doc/examples/zone_list_nameservers.py @@ -23,7 +23,7 @@ session = keystone_session.Session(auth=auth) client = client.Client(session=session) zone = client.zones.create( - 'primary-%s.io.' % str(uuid.uuid4()), + f'primary-{str(uuid.uuid4())}.io.', 'PRIMARY', 'root@x.com') diff --git a/doc/source/conf.py b/doc/source/conf.py index 34bbb5f2..1fc872e0 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # designateclient documentation build configuration file @@ -39,7 +38,7 @@ source_suffix = '.rst' master_doc = 'index' # 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 # directories to ignore when looking for source files. diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py index 67fb4704..d8461800 100644 --- a/releasenotes/source/conf.py +++ b/releasenotes/source/conf.py @@ -61,8 +61,8 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'Designate Client Release Notes' -copyright = u'2015, Designate Developers' +project = 'Designate Client Release Notes' +copyright = '2015, Designate Developers' # Release notes are version independent. # The full version, including alpha/beta/rc tags. @@ -212,9 +212,9 @@ latex_elements = { # author, documentclass [howto, manual, or own class]). latex_documents = [ ('index', 'DesignateClientReleaseNotes.tex', - u'Designate Client Release Notes ' - u'Documentation', - u'Designate Developers', 'manual'), + 'Designate Client Release Notes ' + 'Documentation', + 'Designate Developers', 'manual'), ] # 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 # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'designateclientreleasenotes', u'Designate Client Release Notes ' - u'Documentation', [u'Designate Developers'], 1) + ('index', 'designateclientreleasenotes', 'Designate Client Release Notes ' + 'Documentation', ['Designate Developers'], 1) ] # If true, show URL addresses after external links. @@ -258,9 +258,9 @@ man_pages = [ # dir menu entry, description, category) texinfo_documents = [ ('index', 'DesignateClientReleaseNotes', - u'Designate Client Release Notes ' - u'Documentation', - u'Designate Developers', 'DesignateClientReleaseNotes', + 'Designate Client Release Notes ' + 'Documentation', + 'Designate Developers', 'DesignateClientReleaseNotes', 'One line description of project.', 'Miscellaneous'), ]