diff --git a/tox.ini b/tox.ini index c8224cad44..fee859cd7d 100644 --- a/tox.ini +++ b/tox.ini @@ -37,7 +37,7 @@ commands = {posargs} [flake8] show-source = True -ignore = F403,F821,H301,H306,H402,H403,H404,H702 +ignore = F403,F821,H301,H306,H402,H404 builtins = _ exclude=.venv,.tox,dist,doc,openstack,*egg,rsdns,tools,etc,build filename=*.py,trove-* diff --git a/trove/common/template.py b/trove/common/template.py index 3b898ed0bf..79475f8601 100644 --- a/trove/common/template.py +++ b/trove/common/template.py @@ -28,7 +28,8 @@ ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([ class SingleInstanceConfigTemplate(object): """This class selects a single configuration file by database type for - rendering on the guest """ + rendering on the guest + """ def __init__(self, datastore_manager, flavor_dict, instance_id): """Constructor diff --git a/trove/extensions/mgmt/instances/service.py b/trove/extensions/mgmt/instances/service.py index 3a2a97be7f..9b84663ea3 100644 --- a/trove/extensions/mgmt/instances/service.py +++ b/trove/extensions/mgmt/instances/service.py @@ -146,7 +146,8 @@ class MgmtInstanceController(InstanceController): @admin_context def root(self, req, tenant_id, id): """Return the date and time root was enabled on an instance, - if ever.""" + if ever. + """ LOG.info(_("req : '%s'\n\n") % req) LOG.info(_("Showing root history for tenant '%s'") % tenant_id) LOG.info(_("id : '%s'\n\n") % id) diff --git a/trove/extensions/mysql/service.py b/trove/extensions/mysql/service.py index 2969b6d238..f9f64035c5 100644 --- a/trove/extensions/mysql/service.py +++ b/trove/extensions/mysql/service.py @@ -40,7 +40,8 @@ class RootController(wsgi.Controller): def index(self, req, tenant_id, instance_id): """Returns True if root is enabled for the given instance; - False otherwise. """ + False otherwise. + """ LOG.info(_("Getting root enabled for instance '%s'") % instance_id) LOG.info(_("req : '%s'\n\n") % req) context = req.environ[wsgi.CONTEXT_KEY] @@ -209,7 +210,7 @@ class UserAccessController(wsgi.Controller): user_id = correct_id_with_req(user_id, req) user = self._get_user(context, instance_id, user_id) if not user: - LOG.error(_("No such user: %(user)s " % {'user': user})) + LOG.error(_("No such user: %(user)s ") % {'user': user}) raise exception.UserNotFound(uuid=user) username, hostname = unquote_user_host(user_id) access = models.User.access(context, instance_id, username, hostname) @@ -224,7 +225,7 @@ class UserAccessController(wsgi.Controller): user_id = correct_id_with_req(user_id, req) user = self._get_user(context, instance_id, user_id) if not user: - LOG.error(_("No such user: %(user)s " % {'user': user})) + LOG.error(_("No such user: %(user)s ") % {'user': user}) raise exception.UserNotFound(uuid=user) username, hostname = unquote_user_host(user_id) databases = [db['name'] for db in body['databases']] @@ -239,7 +240,7 @@ class UserAccessController(wsgi.Controller): user_id = correct_id_with_req(user_id, req) user = self._get_user(context, instance_id, user_id) if not user: - LOG.error(_("No such user: %(user)s " % {'user': user})) + LOG.error(_("No such user: %(user)s ") % {'user': user}) raise exception.UserNotFound(uuid=user) username, hostname = unquote_user_host(user_id) access = models.User.access(context, instance_id, username, hostname) diff --git a/trove/guestagent/api.py b/trove/guestagent/api.py index 051a4fe4cb..f6e233cc22 100644 --- a/trove/guestagent/api.py +++ b/trove/guestagent/api.py @@ -111,7 +111,8 @@ class API(proxy.RpcProxy): def change_passwords(self, users): """Make an asynchronous call to change the passwords of one or more - users.""" + users. + """ LOG.debug(_("Changing passwords for users on Instance %s"), self.id) self._cast("change_passwords", users=users) @@ -166,7 +167,8 @@ class API(proxy.RpcProxy): def create_database(self, databases): """Make an asynchronous call to create a new database - within the specified container""" + within the specified container + """ LOG.debug(_("Creating databases for Instance %s"), self.id) self._cast("create_database", databases=databases) @@ -178,7 +180,8 @@ class API(proxy.RpcProxy): def delete_database(self, database): """Make an asynchronous call to delete an existing database - within the specified container""" + within the specified container + """ LOG.debug(_("Deleting database %(database)s for " "Instance %(instance_id)s") % {'database': database, 'instance_id': self.id}) @@ -186,19 +189,22 @@ class API(proxy.RpcProxy): def enable_root(self): """Make a synchronous call to enable the root user for - access from anywhere""" + access from anywhere + """ LOG.debug(_("Enable root user for Instance %s"), self.id) return self._call("enable_root", AGENT_LOW_TIMEOUT) def disable_root(self): """Make a synchronous call to disable the root user for - access from anywhere""" + access from anywhere + """ LOG.debug(_("Disable root user for Instance %s"), self.id) return self._call("disable_root", AGENT_LOW_TIMEOUT) def is_root_enabled(self): """Make a synchronous call to check if root access is - available for the container""" + available for the container + """ LOG.debug(_("Check root access for Instance %s"), self.id) return self._call("is_root_enabled", AGENT_LOW_TIMEOUT) @@ -239,7 +245,8 @@ class API(proxy.RpcProxy): def reset_configuration(self, configuration): """Ignore running state of MySQL, and just change the config file - to a new flavor.""" + to a new flavor. + """ LOG.debug(_("Sending the call to change MySQL conf file on the Guest " "with a timeout of %s.") % AGENT_HIGH_TIMEOUT) self._call("reset_configuration", AGENT_HIGH_TIMEOUT, diff --git a/trove/guestagent/datastore/mysql/service.py b/trove/guestagent/datastore/mysql/service.py index c66955005d..0543bfe691 100644 --- a/trove/guestagent/datastore/mysql/service.py +++ b/trove/guestagent/datastore/mysql/service.py @@ -304,7 +304,8 @@ class MySqlAdmin(object): def create_user(self, users): """Create users and grant them privileges for the - specified databases.""" + specified databases. + """ with LocalSqlClient(get_engine()) as client: for item in users: user = models.MySQLUser() @@ -392,7 +393,8 @@ class MySqlAdmin(object): def enable_root(self, root_password=None): """Enable the root user global access and/or - reset the root password.""" + reset the root password. + """ return MySqlRootAccess.enable_root(root_password) def report_root_enabled(self, context=None): @@ -519,7 +521,8 @@ class MySqlAdmin(object): def list_access(self, username, hostname): """Show all the databases to which the user has more than - USAGE granted.""" + USAGE granted. + """ user = self._get_user(username, hostname) return user.databases @@ -577,7 +580,8 @@ class MySqlApp(object): def install_if_needed(self, packages): """Prepare the guest machine with a secure - mysql server installation.""" + mysql server installation. + """ LOG.info(_("Preparing Guest as MySQL Server")) if not packager.pkg_is_installed(packages): LOG.debug(_("Installing mysql server")) @@ -827,7 +831,8 @@ class MySqlRootAccess(object): @classmethod def enable_root(cls, root_password=None): """Enable the root user global access and/or - reset the root password.""" + reset the root password. + """ user = models.RootUser() user.name = "root" user.host = "%" diff --git a/trove/taskmanager/models.py b/trove/taskmanager/models.py index 9b353e87f6..01f014058c 100644 --- a/trove/taskmanager/models.py +++ b/trove/taskmanager/models.py @@ -121,8 +121,8 @@ class NotifyMixin(object): # Update payload with all other kwargs payload.update(kwargs) - LOG.debug(_('Sending event: %(event_type)s, %(payload)s' % - {'event_type': event_type, 'payload': payload})) + LOG.debug(_('Sending event: %(event_type)s, %(payload)s') % + {'event_type': event_type, 'payload': payload}) notifier.notify(self.context, publisher_id, event_type, 'INFO', payload) @@ -661,9 +661,9 @@ class BuiltInstanceTasks(BuiltInstance, NotifyMixin, ConfigurationMixin): LOG.debug(_("end _resize_active_volume for id: %s") % self.server.id) LOG.exception(_("Failed to detach volume %(volume_id)s " - "instance %(id)s: %(e)s" % + "instance %(id)s: %(e)s") % {'volume_id': self.volume_id, 'id': - self.server.id, 'e': str(e)})) + self.server.id, 'e': str(e)}) self.restart() raise diff --git a/trove/tests/api/flavors.py b/trove/tests/api/flavors.py index bd9549fd92..de7dba9ce0 100644 --- a/trove/tests/api/flavors.py +++ b/trove/tests/api/flavors.py @@ -42,7 +42,8 @@ user = None def assert_attributes_equal(name, os_flavor, dbaas_flavor): """Given an attribute name and two objects, - ensures the attribute is equal.""" + ensures the attribute is equal. + """ assert_true(hasattr(os_flavor, name), "open stack flavor did not have attribute %s" % name) assert_true(hasattr(dbaas_flavor, name), diff --git a/trove/tests/api/root.py b/trove/tests/api/root.py index d79efa7f6f..6f396021e9 100644 --- a/trove/tests/api/root.py +++ b/trove/tests/api/root.py @@ -163,7 +163,8 @@ class TestRoot(object): enabled=not test_config.values['root_removed_from_instance_api']) def test_root_still_enabled_details(self): """Use instance details to test that after root was reset, - it's still enabled.""" + it's still enabled. + """ instance = self.dbaas.instances.get(instance_info.id) assert_true(hasattr(instance, 'rootEnabled'), "Instance has no rootEnabled property.") diff --git a/trove/tests/api/user_access.py b/trove/tests/api/user_access.py index cc9116084a..6a8a5424aa 100644 --- a/trove/tests/api/user_access.py +++ b/trove/tests/api/user_access.py @@ -53,7 +53,8 @@ class UserAccessBase(object): def _grant_access_singular(self, user, databases, expected_response=202): """Grant a single user access to the databases listed. - Potentially, expect an exception in the process.""" + Potentially, expect an exception in the process. + """ try: self.dbaas.users.grant(instance_info.id, user, databases) except exceptions.BadRequest: @@ -67,13 +68,15 @@ class UserAccessBase(object): def _grant_access_plural(self, users, databases, expected_response=202): """Grant each user in the list access to all the databases listed. - Potentially, expect an exception in the process.""" + Potentially, expect an exception in the process. + """ for user in users: self._grant_access_singular(user, databases, expected_response) def _revoke_access_singular(self, user, database, expected_response=202): """Revoke from a user access to the given database . - Potentially, expect an exception in the process.""" + Potentially, expect an exception in the process. + """ try: self.dbaas.users.revoke(instance_info.id, user, database) assert_true(expected_response, self.dbaas.last_http_code) @@ -84,7 +87,8 @@ class UserAccessBase(object): def _revoke_access_plural(self, users, databases, expected_response=202): """Revoke from each user access to each database. - Potentially, expect an exception in the process.""" + Potentially, expect an exception in the process. + """ for user in users: for database in databases: self._revoke_access_singular(user, @@ -93,7 +97,8 @@ class UserAccessBase(object): def _test_access(self, users, databases, expected_response=200): """Verify that each user in the list has access to each database in - the list.""" + the list. + """ for user in users: access = self.dbaas.users.list_access(instance_info.id, user) assert_equal(expected_response, self.dbaas.last_http_code) diff --git a/trove/tests/unittests/api/common/test_limits.py b/trove/tests/unittests/api/common/test_limits.py index a53dc9f87f..216e520d03 100644 --- a/trove/tests/unittests/api/common/test_limits.py +++ b/trove/tests/unittests/api/common/test_limits.py @@ -636,7 +636,8 @@ def wire_HTTPConnection_to_WSGI(host, app): class HTTPConnectionDecorator(object): """Wraps the real HTTPConnection class so that when you instantiate - the class you might instead get a fake instance.""" + the class you might instead get a fake instance. + """ def __init__(self, wrapped): self.wrapped = wrapped diff --git a/trove/tests/unittests/backup/test_storage.py b/trove/tests/unittests/backup/test_storage.py index da21a53f09..7f7707bc47 100644 --- a/trove/tests/unittests/backup/test_storage.py +++ b/trove/tests/unittests/backup/test_storage.py @@ -75,7 +75,8 @@ class SwiftStorageSaveChecksumTests(testtools.TestCase): def test_swift_segment_checksum_etag_mismatch(self): """This tests that when etag doesn't match segment uploaded checksum - False is returned and None for checksum and location""" + False is returned and None for checksum and location + """ context = TroveContext() # this backup_id will trigger fake swift client with calculate_etag # enabled to spit out a bad etag when a segment object is uploaded @@ -106,7 +107,8 @@ class SwiftStorageSaveChecksumTests(testtools.TestCase): def test_swift_checksum_etag_mismatch(self): """This tests that when etag doesn't match swift checksum False is - returned and None for checksum and location""" + returned and None for checksum and location + """ context = TroveContext() # this backup_id will trigger fake swift client with calculate_etag # enabled to spit out a bad etag when a segment object is uploaded @@ -138,7 +140,8 @@ class SwiftStorageSaveChecksumTests(testtools.TestCase): class SwiftStorageLoad(testtools.TestCase): """SwiftStorage.load is used to return SwiftDownloadStream which is used - to download a backup object from Swift""" + to download a backup object from Swift + """ def setUp(self): super(SwiftStorageLoad, self).setUp() @@ -149,7 +152,8 @@ class SwiftStorageLoad(testtools.TestCase): def test_run_verify_checksum(self): """This tests that swift download cmd runs if original backup checksum - matches swift object etag""" + matches swift object etag + """ context = TroveContext() location = "/backup/location/123" @@ -185,8 +189,9 @@ class SwiftStorageLoad(testtools.TestCase): def test_run_verify_checksum_mismatch(self): """This tests that SwiftDownloadIntegrityError is raised and swift - download cmd does not run when original backup checksum does not match - swift object etag""" + download cmd does not run when original backup checksum + does not match swift object etag + """ context = TroveContext() location = "/backup/location/123"