From c213a3832dac31cbde1585ee0da8477a10bf64f2 Mon Sep 17 00:00:00 2001 From: Thiago Brito Date: Wed, 22 Jun 2022 18:55:26 -0300 Subject: [PATCH] Add flake8-import-order and use python3.9 on tox Improving the code quality of utilities by adding the flake8 check on zuul and adding the flake8-import-order plugin to standardize imports. Also, defaults testenv to python3.9 configuration that should be used for now on with the debian migration. Story: 2010100 Task: 45671 Signed-off-by: Thiago Brito Change-Id: I007302bdfb873aed4ebb7b9023db2461282b9fba --- .zuul.yaml | 56 +- .../ceph-manager/ceph_manager/ceph.py | 5 +- .../ceph-manager/ceph_manager/constants.py | 4 +- .../ceph-manager/ceph_manager/exception.py | 5 +- .../ceph-manager/ceph_manager/monitor.py | 18 +- .../ceph-manager/ceph_manager/server.py | 24 +- .../ceph-manager/test-requirements.txt | 1 + ceph/ceph-manager/ceph-manager/tox.ini | 12 +- .../python-cephclient/cephclient/client.py | 1431 +++++++++-------- .../python-cephclient/cephclient/exception.py | 3 +- .../python-cephclient/cephclient/wrapper.py | 24 +- .../python-cephclient/test-requirements.txt | 1 + .../python-cephclient/tox.ini | 12 +- test-requirements.txt | 2 +- tools/collect_filesystem/app/app.py | 57 +- tools/collector/report/execution_engine.py | 7 +- tools/collector/report/plugin.py | 3 +- tools/collector/report/report.py | 4 +- .../hostdata-collectors/scripts/buddyinfo.py | 4 +- .../scripts/live_stream.py | 21 +- tox.ini | 17 +- utilities/logmgmt/logmgmt/logmgmt/logmgmt.py | 7 +- .../logmgmt/logmgmt/logmgmt/prepostrotate.py | 2 +- .../pci_irq_affinity/affinity.py | 5 +- .../pci_irq_affinity/agent.py | 10 +- .../pci_irq_affinity/config.py | 2 +- .../pci_irq_affinity/driver.py | 6 +- .../pci_irq_affinity/guest.py | 6 +- .../pci_irq_affinity/nova_provider.py | 4 +- .../tests/test_nova_provider.py | 5 +- .../pci_irq_affinity/utils.py | 4 +- .../pci_irq_affinity/test-requirements.txt | 1 + .../pci_irq_affinity/tox.ini | 7 +- .../platform_util/license/base.py | 1 + .../worker-utils/worker-utils/topology.py | 7 +- 35 files changed, 1008 insertions(+), 770 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 5b2cd3be..e304ca65 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,29 +2,42 @@ - project: check: jobs: - - openstack-tox-linters - - stx-tox-pylint - - utilities-ceph-manager-tox-bandit - - utilities-ceph-client-tox-bandit - - utilities-pci-irq-affinity-agent-tox-py27 - - utilities-pci-irq-affinity-agent-tox-py39 - - utilities-pci-irq-affinity-agent-tox-flake8 + - stx-utilities-tox-linters + - stx-utilities-tox-pep8 + - stx-utilities-tox-pylint + - stx-utilities-ceph-manager-tox-bandit + - stx-utilities-ceph-client-tox-bandit + - stx-utilities-pci-irq-affinity-agent-tox-py27 + - stx-utilities-pci-irq-affinity-agent-tox-py39 + - stx-utilities-pci-irq-affinity-agent-tox-pep8 gate: jobs: - - openstack-tox-linters - - stx-tox-pylint - - utilities-ceph-manager-tox-bandit - - utilities-ceph-client-tox-bandit - - utilities-pci-irq-affinity-agent-tox-py27 - - utilities-pci-irq-affinity-agent-tox-py39 - - utilities-pci-irq-affinity-agent-tox-flake8 + - stx-utilities-tox-linters + - stx-utilities-tox-pep8 + - stx-utilities-tox-pylint + - stx-utilities-ceph-manager-tox-bandit + - stx-utilities-ceph-client-tox-bandit + - stx-utilities-pci-irq-affinity-agent-tox-py27 + - stx-utilities-pci-irq-affinity-agent-tox-py39 + - stx-utilities-pci-irq-affinity-agent-tox-pep8 post: jobs: - stx-utilities-upload-git-mirror - job: - name: stx-tox-pylint + name: stx-utilities-tox-linters + parent: openstack-tox-linters + nodeset: debian-bullseye + +- job: + name: stx-utilities-tox-pep8 + parent: openstack-tox-pep8 + nodeset: debian-bullseye + +- job: + name: stx-utilities-tox-pylint parent: tox + nodeset: debian-bullseye description: | Run pylint tests required-projects: @@ -32,6 +45,7 @@ - starlingx/config vars: tox_envlist: pylint + - job: name: stx-utilities-upload-git-mirror parent: upload-git-mirror @@ -46,7 +60,7 @@ pass-to-parent: true - job: - name: utilities-ceph-manager-tox-bandit + name: stx-utilities-ceph-manager-tox-bandit parent: tox description: | Run bandit test for utilities ceph-mananger @@ -58,7 +72,7 @@ tox_extra_args: -c ./ceph/ceph-manager/ceph-manager/tox.ini - job: - name: utilities-ceph-client-tox-bandit + name: stx-utilities-ceph-client-tox-bandit parent: tox description: | Run bandit test for utilities python-cephclient @@ -70,7 +84,7 @@ tox_extra_args: -c ./ceph/python-cephclient/python-cephclient/tox.ini - job: - name: utilities-pci-irq-affinity-agent-tox-py27 + name: stx-utilities-pci-irq-affinity-agent-tox-py27 parent: tox description: | Run py27 unittests for utilities/pci-irq-affinity-agent @@ -82,7 +96,7 @@ tox_extra_args: -c ./utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini - job: - name: utilities-pci-irq-affinity-agent-tox-py39 + name: stx-utilities-pci-irq-affinity-agent-tox-py39 voting: false parent: tox description: | @@ -96,7 +110,7 @@ tox_extra_args: -c ./utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini - job: - name: utilities-pci-irq-affinity-agent-tox-flake8 + name: stx-utilities-pci-irq-affinity-agent-tox-pep8 parent: tox description: | Run flake8 checks for utilities/pci-irq-affinity-agent @@ -104,7 +118,7 @@ files: - ./utilities/pci-irq-affinity-agent/* vars: - tox_envlist: flake8 + tox_envlist: pep8 tox_extra_args: -c ./utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini - secret: diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/ceph.py b/ceph/ceph-manager/ceph-manager/ceph_manager/ceph.py index 12078df9..603ea135 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/ceph.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/ceph.py @@ -4,11 +4,12 @@ # SPDX-License-Identifier: Apache-2.0 # -from ceph_manager import exception -from ceph_manager.i18n import _LI # noinspection PyUnresolvedReferences from oslo_log import log as logging +from ceph_manager import exception +from ceph_manager.i18n import _LI + LOG = logging.getLogger(__name__) diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/constants.py b/ceph/ceph-manager/ceph-manager/ceph_manager/constants.py index 0a090aac..6670c96a 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/constants.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/constants.py @@ -4,10 +4,12 @@ # SPDX-License-Identifier: Apache-2.0 # -from ceph_manager.i18n import _ # noinspection PyUnresolvedReferences from sysinv.common import constants as sysinv_constants +from ceph_manager.i18n import _ + + CEPH_POOL_OBJECT_GATEWAY_NAME_JEWEL = \ sysinv_constants.CEPH_POOL_OBJECT_GATEWAY_NAME_JEWEL CEPH_POOL_OBJECT_GATEWAY_NAME_HAMMER = \ diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py b/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py index c9099014..aaa6b47e 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py @@ -4,11 +4,12 @@ # SPDX-License-Identifier: Apache-2.0 # +# noinspection PyUnresolvedReferences +from oslo_log import log as logging + # noinspection PyUnresolvedReferences from ceph_manager.i18n import _ from ceph_manager.i18n import _LW -# noinspection PyUnresolvedReferences -from oslo_log import log as logging LOG = logging.getLogger(__name__) diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py b/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py index 1fa23b4b..e71ba790 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py @@ -6,23 +6,22 @@ import time -# noinspection PyUnresolvedReferences -from fm_api import fm_api # noinspection PyUnresolvedReferences from fm_api import constants as fm_constants # noinspection PyUnresolvedReferences +from fm_api import fm_api +# noinspection PyUnresolvedReferences from oslo_log import log as logging - -# noinspection PyProtectedMember -from ceph_manager.i18n import _ -from ceph_manager.i18n import _LI -from ceph_manager.i18n import _LW -from ceph_manager.i18n import _LE +from tsconfig import tsconfig from ceph_manager import constants from ceph_manager import exception +# noinspection PyProtectedMember +from ceph_manager.i18n import _ +from ceph_manager.i18n import _LE +from ceph_manager.i18n import _LI +from ceph_manager.i18n import _LW -from tsconfig import tsconfig LOG = logging.getLogger(__name__) @@ -721,4 +720,3 @@ class Monitor(HandleUpgradesMixin): self.current_health_alarm = self.service.fm_api.get_fault( fm_constants.FM_ALARM_ID_STORAGE_CEPH, self.service.entity_instance_id) - diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/server.py b/ceph/ceph-manager/ceph-manager/ceph_manager/server.py index 16b61ae4..28531a2f 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/server.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/server.py @@ -12,28 +12,27 @@ import sys # noinspection PyUnresolvedReferences import eventlet # noinspection PyUnresolvedReferences -import oslo_messaging as messaging -# noinspection PyUnresolvedReferences from fm_api import fm_api # noinspection PyUnresolvedReferences from oslo_config import cfg # noinspection PyUnresolvedReferences from oslo_log import log as logging # noinspection PyUnresolvedReferences +import oslo_messaging as messaging +# noinspection PyUnresolvedReferences from oslo_service import service # noinspection PyUnresolvedReferences from oslo_service.periodic_task import PeriodicTasks - # noinspection PyUnresolvedReferences -from cephclient import wrapper +from retrying import retry -from ceph_manager.monitor import Monitor from ceph_manager import constants from ceph_manager import utils - from ceph_manager.i18n import _LI from ceph_manager.i18n import _LW -from retrying import retry +from ceph_manager.monitor import Monitor +from cephclient import wrapper + eventlet.monkey_patch(all=True) @@ -136,11 +135,12 @@ class Service(SysinvConductorUpgradeApi, service.Service): # pylint: disable=protected-access sysinv_conf = self.conf._namespace._normalized[0]['DEFAULT'] - url = "rabbit://{user}:{password}@{host}:{port}"\ - "".format(user=sysinv_conf['rabbit_userid'][0], - password=sysinv_conf['rabbit_password'][0], - host=utils.ipv6_bracketed(sysinv_conf['rabbit_host'][0]), - port=sysinv_conf['rabbit_port'][0]) + url = "rabbit://{user}:{password}@{host}:{port}".format( + user=sysinv_conf['rabbit_userid'][0], + password=sysinv_conf['rabbit_password'][0], + host=utils.ipv6_bracketed(sysinv_conf['rabbit_host'][0]), + port=sysinv_conf['rabbit_port'][0] + ) transport = messaging.get_transport(self.conf, url=url) self.sysinv_conductor = messaging.RPCClient( transport, diff --git a/ceph/ceph-manager/ceph-manager/test-requirements.txt b/ceph/ceph-manager/ceph-manager/test-requirements.txt index 92f7ee41..98738d01 100644 --- a/ceph/ceph-manager/ceph-manager/test-requirements.txt +++ b/ceph/ceph-manager/ceph-manager/test-requirements.txt @@ -9,3 +9,4 @@ eventlet pytest oslo.log oslo.i18n +flake8-import-order diff --git a/ceph/ceph-manager/ceph-manager/tox.ini b/ceph/ceph-manager/ceph-manager/tox.ini index 9863c9e5..8c4854a3 100644 --- a/ceph/ceph-manager/ceph-manager/tox.ini +++ b/ceph/ceph-manager/ceph-manager/tox.ini @@ -2,26 +2,32 @@ [tox] minversion = 1.6 -envlist = py27,pep8 +envlist = py27,pep8,bandit skipsdist = True # tox does not work if the path to the workdir is too long, so move it to /tmp -toxworkdir = /tmp/{env:USER}_ceph_manager_tox +toxworkdir = /tmp/{env:USER}_utilities_ceph_manager_tox [testenv] +basepython = python3.9 setenv = VIRTUAL_ENV={envdir} usedevelop = True install_command = pip install -U --force-reinstall {opts} {packages} deps = -r{toxinidir}/test-requirements.txt -commands = py.test {posargs} +commands = pytest {posargs} whitelist_externals = bash passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY +[testenv:py27] +basepython = python2.7 + [testenv:pep8] commands = flake8 {posargs} [flake8] exclude = .venv,.git,.tox,dist,doc,etc,*glance/locale*,*lib/python*,*egg,build +import-order-style = google +application-import-names = ceph_manager,cephclient [bandit] # The following bandit tests are being skipped: diff --git a/ceph/python-cephclient/python-cephclient/cephclient/client.py b/ceph/python-cephclient/python-cephclient/cephclient/client.py index 6d9e5d00..336983fc 100644 --- a/ceph/python-cephclient/python-cephclient/cephclient/client.py +++ b/ceph/python-cephclient/python-cephclient/cephclient/client.py @@ -9,30 +9,16 @@ import ipaddress import json import logging import os -from six.moves.urllib.parse import urlparse import re -import requests -import six import subprocess import tempfile import time -from cephclient.exception import CephMonRestfulListKeysError -from cephclient.exception import CephMonRestfulJsonError -from cephclient.exception import CephMonRestfulMissingUserCredentials -from cephclient.exception import CephMgrDumpError -from cephclient.exception import CephMgrJsonError -from cephclient.exception import CephMgrMissingRestfulService -from cephclient.exception import CephClientFormatNotSupported -from cephclient.exception import CephClientResponseFormatNotImplemented -from cephclient.exception import CephClientInvalidChoice -from cephclient.exception import CephClientTypeError -from cephclient.exception import CephClientValueOutOfBounds -from cephclient.exception import CephClientInvalidPgid -from cephclient.exception import CephClientInvalidIPAddr -from cephclient.exception import CephClientInvalidOsdIdValue -from cephclient.exception import CephClientNoSuchUser -from cephclient.exception import CephClientIncorrectPassword +import requests +import six +from six.moves.urllib.parse import urlparse + +from cephclient import exception CEPH_MON_RESTFUL_USER = 'admin' @@ -87,15 +73,15 @@ class CephClient(object): CEPH_CLI_TIMEOUT_SEC), shell=True) except subprocess.CalledProcessError as e: - raise CephMonRestfulListKeysError(str(e)) + raise exception.CephMonRestfulListKeysError(str(e)) try: keys = json.loads(output) except (KeyError, ValueError): - raise CephMonRestfulJsonError(output) + raise exception.CephMonRestfulJsonError(output) try: self.password = keys[self.username] except KeyError: - raise CephMonRestfulMissingUserCredentials(self.username) + raise exception.CephMonRestfulMissingUserCredentials(self.username) def _get_service_url(self): try: @@ -105,15 +91,15 @@ class CephClient(object): CEPH_CLI_TIMEOUT_SEC), shell=True) except subprocess.CalledProcessError as e: - raise CephMgrDumpError(str(e)) + raise exception.CephMgrDumpError(str(e)) try: status = json.loads(output) except (KeyError, ValueError): - raise CephMgrJsonError(output) + raise exception.CephMgrJsonError(output) try: self.service_url = status["services"][CEPH_MON_RESTFUL_SERVICE] except (KeyError, TypeError): - raise CephMgrMissingRestfulService( + raise exception.CephMgrMissingRestfulService( status.get('services', '')) def _get_certificate(self): @@ -183,7 +169,7 @@ class CephClient(object): status=result['finished'][0]['outs'], output=json.loads(outb or 'null')) except (ValueError, TypeError): - raise CephMgrJsonError(outb) + raise exception.CephMgrJsonError(outb) def _request(self, prefix, *args, **kwargs): if not self.password: @@ -194,7 +180,7 @@ class CephClient(object): self._refresh_session() format = kwargs.get('body', 'json').lower() if format not in API_SUPPORTED_RESPONSE_FORMATS: - raise CephClientFormatNotSupported( + raise exception.CephClientFormatNotSupported( prefix=prefix, format=format) del kwargs['body'] req_json = dict(kwargs) @@ -223,12 +209,13 @@ class CephClient(object): else: assert('message' in result) if 'auth: No such user' in result['message']: - raise CephClientNoSuchUser(user=self.username) + raise exception.CephClientNoSuchUser( + user=self.username) elif 'auth: Incorrect password' in result['message']: - raise CephClientIncorrectPassword( + raise exception.CephClientIncorrectPassword( user=self.username) break - except CephClientIncorrectPassword: + except exception.CephClientIncorrectPassword: if not credit: raise LOG.warning('Incorrect password for user \'{}\'. ' @@ -260,7 +247,7 @@ class CephClient(object): elif format == 'text': return self._make_text_result(prefix, result) else: - raise CephClientResponseFormatNotImplemented( + raise exception.CephClientResponseFormatNotImplemented( format=format, reason=result["finished"][0]["outb"]) def pg_stat(self, body='json', timeout=None): @@ -276,17 +263,18 @@ class CephClient(object): 'osds', 'pgs', 'pgs_brief'] def pg_dump(self, dumpcontents=None, body='json', timeout=None): - """show human-readable versions of pg map (only 'all' valid with plain)""" + """Show human-readable versions of pg map (only 'all' valid with plain) + """ kwargs = dict(body=body, timeout=timeout) if dumpcontents is not None: if not isinstance(dumpcontents, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dumpcontents', actual=type(dumpcontents), expected=six.string_types) supported = CephClient.PG_DUMP_DUMPCONTENTS_VALUES if dumpcontents not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='pg_dump', option='dumpcontents', value=dumpcontents, @@ -304,13 +292,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if dumpcontents is not None: if not isinstance(dumpcontents, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dumpcontents', actual=type(dumpcontents), expected=six.string_types) supported = CephClient.PG_DUMP_JSON_DUMPCONTENTS_VALUES if dumpcontents not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='pg_dump_json', option='dumpcontents', value=dumpcontents, @@ -330,7 +318,7 @@ class CephClient(object): """list pg with pool = [poolname]""" kwargs = dict(body=body, timeout=timeout) if not isinstance(poolstr, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='poolstr', actual=type(poolstr), expected=six.string_types) @@ -340,13 +328,13 @@ class CephClient(object): if isinstance(states, list): for item in states: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=item, expected='list of strings') else: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) @@ -365,10 +353,10 @@ class CephClient(object): osd = osd.lower() prefix = 'osd.' if not osd.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=osd) + raise exception.CephClientInvalidOsdIdValue(osdid=osd) osd = int(osd[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='osd', actual=type(osd), expected='int or string') @@ -376,7 +364,7 @@ class CephClient(object): kwargs['osd'] = osd if pool is not None: if not isinstance(pool, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=int) @@ -385,13 +373,13 @@ class CephClient(object): if isinstance(states, list): for item in states: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=item, expected='list of strings') else: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) @@ -410,10 +398,10 @@ class CephClient(object): osd = osd.lower() prefix = 'osd.' if not osd.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=osd) + raise exception.CephClientInvalidOsdIdValue(osdid=osd) osd = int(osd[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='osd', actual=type(osd), expected='int or string') @@ -421,7 +409,7 @@ class CephClient(object): kwargs['osd'] = osd if pool is not None: if not isinstance(pool, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=int) @@ -430,13 +418,13 @@ class CephClient(object): if isinstance(states, list): for item in states: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=item, expected='list of strings') else: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) @@ -450,7 +438,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if pool is not None: if not isinstance(pool, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=int) @@ -459,13 +447,13 @@ class CephClient(object): if isinstance(states, list): for item in states: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=item, expected='list of strings') else: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) @@ -484,13 +472,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if stuckops is not None: if not isinstance(stuckops, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='stuckops', actual=type(stuckops), expected=six.string_types) supported = CephClient.PG_DUMP_STUCK_STUCKOPS_VALUES if stuckops not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='pg_dump_stuck', option='stuckops', value=stuckops, @@ -500,7 +488,7 @@ class CephClient(object): kwargs['stuckops'] = stuckops if threshold is not None: if not isinstance(threshold, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='threshold', actual=type(threshold), expected=int) @@ -514,13 +502,13 @@ class CephClient(object): """show debug info about pgs""" kwargs = dict(body=body, timeout=timeout) if not isinstance(debugop, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='debugop', actual=type(debugop), expected=six.string_types) supported = CephClient.PG_DEBUG_DEBUGOP_VALUES if debugop not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='pg_debug', option='debugop', value=debugop, @@ -533,12 +521,12 @@ class CephClient(object): """start scrub on """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -549,12 +537,12 @@ class CephClient(object): """start deep-scrub on """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -565,12 +553,12 @@ class CephClient(object): """start repair on """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -581,12 +569,12 @@ class CephClient(object): """force recovery of first""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -599,12 +587,12 @@ class CephClient(object): """force backfill of first""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -617,12 +605,12 @@ class CephClient(object): """restore normal recovery priority of """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -635,12 +623,12 @@ class CephClient(object): """restore normal backfill priority of """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -660,13 +648,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if output_method is not None: if not isinstance(output_method, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='output_method', actual=type(output_method), expected=six.string_types) supported = CephClient.OSD_DF_OUTPUT_METHOD_VALUES if output_method not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_df', option='output_method', value=output_method, @@ -683,7 +671,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if pool_name is not None: if not isinstance(pool_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool_name', actual=type(pool_name), expected=six.string_types) @@ -695,38 +683,42 @@ class CephClient(object): def osd_reweight_by_utilization( self, oload=None, max_change=None, max_osds=None, no_increasing=None, body='json', timeout=None): - """reweight OSDs by utilization [overload-percentage-for-consideration,default 120] """ + """Reweight OSD by utilization + + reweight OSDs by utilization [overload-percentage-for-consideration, + default 120]. + """ kwargs = dict(body=body, timeout=timeout) if oload is not None: if not isinstance(oload, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='oload', actual=type(oload), expected=int) kwargs['oload'] = oload if max_change is not None: if not isinstance(max_change, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_change', actual=type(max_change), expected=int) kwargs['max_change'] = max_change if max_osds is not None: if not isinstance(max_osds, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_osds', actual=type(max_osds), expected=int) kwargs['max_osds'] = max_osds if no_increasing is not None: if not isinstance(no_increasing, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='no_increasing', actual=type(no_increasing), expected=six.string_types) supported = CephClient.OSD_REWEIGHT_BY_UTILIZATION_NO_INCREASING_VALUES # noqa E501 if no_increasing not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_reweight_by_utilization', option='no_increasing', value=no_increasing, @@ -740,38 +732,42 @@ class CephClient(object): def osd_test_reweight_by_utilization( self, oload=None, max_change=None, max_osds=None, no_increasing=None, body='json', timeout=None): - """dry run of reweight OSDs by utilization [overload-percentage-for-consideration, default 120] """ + """Dry run of reweight OSDs by utilization + + Dry run of reweight OSDs by utilization + [overload-percentage-for-consideration, default 120] + """ kwargs = dict(body=body, timeout=timeout) if oload is not None: if not isinstance(oload, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='oload', actual=type(oload), expected=int) kwargs['oload'] = oload if max_change is not None: if not isinstance(max_change, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_change', actual=type(max_change), expected=int) kwargs['max_change'] = max_change if max_osds is not None: if not isinstance(max_osds, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_osds', actual=type(max_osds), expected=int) kwargs['max_osds'] = max_osds if no_increasing is not None: if not isinstance(no_increasing, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='no_increasing', actual=type(no_increasing), expected=six.string_types) supported = CephClient.OSD_TEST_REWEIGHT_BY_UTILIZATION_NO_INCREASING_VALUES # noqa E501 if no_increasing not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_test_reweight_by_utilization', option='no_increasing', value=no_increasing, @@ -782,25 +778,28 @@ class CephClient(object): def osd_reweight_by_pg( self, oload=None, max_change=None, max_osds=None, pools=None, body='json', timeout=None): - """reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120] """ + """Reweight OSDs by PG distribution + + [overload-percentage-for-consideration, default 120] + """ kwargs = dict(body=body, timeout=timeout) if oload is not None: if not isinstance(oload, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='oload', actual=type(oload), expected=int) kwargs['oload'] = oload if max_change is not None: if not isinstance(max_change, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_change', actual=type(max_change), expected=int) kwargs['max_change'] = max_change if max_osds is not None: if not isinstance(max_osds, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_osds', actual=type(max_osds), expected=int) @@ -809,13 +808,13 @@ class CephClient(object): if isinstance(pools, list): for item in pools: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pools', actual=item, expected='list of strings') else: if not isinstance(pools, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pools', actual=type(pools), expected=six.string_types) @@ -827,25 +826,28 @@ class CephClient(object): def osd_test_reweight_by_pg( self, oload=None, max_change=None, max_osds=None, pools=None, body='json', timeout=None): - """dry run of reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120] """ + """Dry run of reweight OSDs by PG distribution + + [overload-percentage-for-consideration, default 120] + """ kwargs = dict(body=body, timeout=timeout) if oload is not None: if not isinstance(oload, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='oload', actual=type(oload), expected=int) kwargs['oload'] = oload if max_change is not None: if not isinstance(max_change, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_change', actual=type(max_change), expected=int) kwargs['max_change'] = max_change if max_osds is not None: if not isinstance(max_osds, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='max_osds', actual=type(max_osds), expected=int) @@ -854,13 +856,13 @@ class CephClient(object): if isinstance(pools, list): for item in pools: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pools', actual=item, expected='list of strings') else: if not isinstance(pools, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pools', actual=type(pools), expected=six.string_types) @@ -870,18 +872,22 @@ class CephClient(object): return self._request('osd test-reweight-by-pg', **kwargs) def osd_safe_to_destroy(self, ids, body='json', timeout=None): - """check whether osd(s) can be safely destroyed without reducing datadurability """ + """Check whether osd(s) can be safely destroyed + + check whether osd(s) can be safely destroyed without reducing + data durability. + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -892,18 +898,22 @@ class CephClient(object): return self._request('osd safe-to-destroy', **kwargs) def osd_ok_to_stop(self, ids, body='json', timeout=None): - """check whether osd(s) can be safely stopped without reducing immediatedata availability """ + """Check whether osd(s) can be safely stopped + + Checks whether osd(s) can be safely stopped without reducing immediate + data availability + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -917,7 +927,7 @@ class CephClient(object): """initiate scrub on osd , or use to scrub all""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -926,10 +936,11 @@ class CephClient(object): return self._request('osd scrub', **kwargs) def osd_deep_scrub(self, who, body='json', timeout=None): - """initiate deep scrub on osd , or use to deep scrub all""" + """initiate deep scrub on osd , or use to deep scrub all + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -941,7 +952,7 @@ class CephClient(object): """initiate repair on osd , or use to repair all""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -961,14 +972,14 @@ class CephClient(object): """Show running configuration""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) kwargs['who'] = who if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -980,7 +991,7 @@ class CephClient(object): """Show running configuration (including compiled-in defaults)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -992,12 +1003,12 @@ class CephClient(object): """show mapping of pg to osds""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -1013,10 +1024,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -1025,11 +1036,12 @@ class CephClient(object): return self._request('osd last-stat-seq', **kwargs) def auth_export(self, entity=None, body='json', timeout=None): - """write keyring for requested entity, or master keyring if none given""" + """write keyring for requested entity, or master keyring if none given + """ kwargs = dict(body=body, timeout=timeout) if entity is not None: if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1040,7 +1052,7 @@ class CephClient(object): """write keyring file with requested key""" kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1052,7 +1064,7 @@ class CephClient(object): """display requested key""" kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1064,7 +1076,7 @@ class CephClient(object): """display requested key""" kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1085,10 +1097,14 @@ class CephClient(object): return self._request('auth import', body=body, timeout=timeout) def auth_add(self, entity, caps=None, body='json', timeout=None): - """add auth info for from input file, or random key if no inputis given, and/or any caps specified in the command """ + """Add auth info for from input file + + Adds auth info for from input file, or random key if no + inputs given, and/or any caps specified in the command + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1098,13 +1114,13 @@ class CephClient(object): if isinstance(caps, list): for item in caps: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=item, expected='list of strings') else: if not isinstance(caps, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=type(caps), expected=six.string_types) @@ -1115,10 +1131,15 @@ class CephClient(object): def auth_get_or_create_key( self, entity, caps=None, body='json', timeout=None): - """get, or add, key for from system/caps pairs specified in thecommand. If key already exists, any given caps must match the existing caps for that key. """ + """Get, or add, key for + + Get, or add, key for from system/caps pairs specified in + thecommand. If key already exists, any given caps must match the + existing caps for that key. + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1128,13 +1149,13 @@ class CephClient(object): if isinstance(caps, list): for item in caps: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=item, expected='list of strings') else: if not isinstance(caps, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=type(caps), expected=six.string_types) @@ -1145,10 +1166,14 @@ class CephClient(object): def auth_get_or_create(self, entity, caps=None, body='json', timeout=None): - """add auth info for from input file, or random key if no inputgiven, and/or any caps specified in the command """ + """Add auth info for from input file + + add auth info for from input file, or random key if no + input given, and/or any caps specified in the command + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1158,13 +1183,13 @@ class CephClient(object): if isinstance(caps, list): for item in caps: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=item, expected='list of strings') else: if not isinstance(caps, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=type(caps), expected=six.string_types) @@ -1175,17 +1200,21 @@ class CephClient(object): def fs_authorize(self, filesystem, entity, caps, body='json', timeout=None): - """add auth for to access file system based onfollowing directory and permissions pairs """ + """Add auth for to access file system + + Add auth for to access file system based on + following directory and permissions pairs + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(filesystem, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='filesystem', actual=type(filesystem), expected=six.string_types) kwargs['filesystem'] = filesystem if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1194,13 +1223,13 @@ class CephClient(object): if isinstance(caps, list): for item in caps: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=item, expected='list of strings') else: if not isinstance(caps, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=type(caps), expected=six.string_types) @@ -1214,7 +1243,7 @@ class CephClient(object): """update caps for from caps specified in the command""" kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1223,13 +1252,13 @@ class CephClient(object): if isinstance(caps, list): for item in caps: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=item, expected='list of strings') else: if not isinstance(caps, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='caps', actual=type(caps), expected=six.string_types) @@ -1243,7 +1272,7 @@ class CephClient(object): """delete all caps for """ kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1255,7 +1284,7 @@ class CephClient(object): """remove all caps for """ kwargs = dict(body=body, timeout=timeout) if not isinstance(entity, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='entity', actual=type(entity), expected=six.string_types) @@ -1281,13 +1310,13 @@ class CephClient(object): if isinstance(logtext, list): for item in logtext: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='logtext', actual=item, expected='list of strings') else: if not isinstance(logtext, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='logtext', actual=type(logtext), expected=six.string_types) @@ -1308,12 +1337,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if num is not None: if not isinstance(num, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='num', actual=type(num), expected=int) if num < 1: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='num', actual=num, min=1, @@ -1321,13 +1350,13 @@ class CephClient(object): kwargs['num'] = num if level is not None: if not isinstance(level, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='level', actual=type(level), expected=six.string_types) supported = CephClient.LOG_LAST_LEVEL_VALUES if level not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='log_last', option='level', value=level, @@ -1335,13 +1364,13 @@ class CephClient(object): kwargs['level'] = level if channel is not None: if not isinstance(channel, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='channel', actual=type(channel), expected=six.string_types) supported = CephClient.LOG_LAST_CHANNEL_VALUES if channel not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='log_last', option='channel', value=channel, @@ -1355,13 +1384,13 @@ class CephClient(object): if isinstance(injected_args, list): for item in injected_args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='injected_args', actual=item, expected='list of strings') else: if not isinstance(injected_args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='injected_args', actual=type(injected_args), expected=six.string_types) @@ -1382,13 +1411,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if detail is not None: if not isinstance(detail, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='detail', actual=type(detail), expected=six.string_types) supported = CephClient.HEALTH_DETAIL_VALUES if detail not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='health', option='detail', value=detail, @@ -1408,13 +1437,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if detail is not None: if not isinstance(detail, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='detail', actual=type(detail), expected=six.string_types) supported = CephClient.DF_DETAIL_VALUES if detail not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='df', option='detail', value=detail, @@ -1429,13 +1458,13 @@ class CephClient(object): if isinstance(tags, list): for item in tags: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tags', actual=item, expected='list of strings') else: if not isinstance(tags, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tags', actual=type(tags), expected=six.string_types) @@ -1467,13 +1496,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if validate1 is not None: if not isinstance(validate1, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='validate1', actual=type(validate1), expected=six.string_types) supported = CephClient.SYNC_FORCE_VALIDATE1_VALUES if validate1 not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='sync_force', option='validate1', value=validate1, @@ -1481,13 +1510,13 @@ class CephClient(object): kwargs['validate1'] = validate1 if validate2 is not None: if not isinstance(validate2, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='validate2', actual=type(validate2), expected=six.string_types) supported = CephClient.SYNC_FORCE_VALIDATE2_VALUES if validate2 not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='sync_force', option='validate2', value=validate2, @@ -1503,13 +1532,13 @@ class CephClient(object): """show heap usage info (available only if compiled with tcmalloc)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(heapcmd, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='heapcmd', actual=type(heapcmd), expected=six.string_types) supported = CephClient.HEAP_HEAPCMD_VALUES if heapcmd not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='heap', option='heapcmd', value=heapcmd, @@ -1524,13 +1553,13 @@ class CephClient(object): """enter or exit quorum""" kwargs = dict(body=body, timeout=timeout) if not isinstance(quorumcmd, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='quorumcmd', actual=type(quorumcmd), expected=six.string_types) supported = CephClient.QUORUM_QUORUMCMD_VALUES if quorumcmd not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='quorum', option='quorumcmd', value=quorumcmd, @@ -1547,13 +1576,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -1574,13 +1603,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if _type is not None: if not isinstance(_type, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_type', actual=type(_type), expected=six.string_types) supported = CephClient.NODE_LS__TYPE_VALUES if _type not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='node_ls', option='_type', value=_type, @@ -1607,13 +1636,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if validate1 is not None: if not isinstance(validate1, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='validate1', actual=type(validate1), expected=six.string_types) supported = CephClient.MON_SYNC_FORCE_VALIDATE1_VALUES if validate1 not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mon_sync_force', option='validate1', value=validate1, @@ -1621,13 +1650,13 @@ class CephClient(object): kwargs['validate1'] = validate1 if validate2 is not None: if not isinstance(validate2, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='validate2', actual=type(validate2), expected=six.string_types) supported = CephClient.MON_SYNC_FORCE_VALIDATE2_VALUES if validate2 not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mon_sync_force', option='validate2', value=validate2, @@ -1640,7 +1669,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if _id is not None: if not isinstance(_id, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected=six.string_types) @@ -1651,7 +1680,7 @@ class CephClient(object): """count mons by metadata field property""" kwargs = dict(body=body, timeout=timeout) if not isinstance(_property, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_property', actual=type(_property), expected=six.string_types) @@ -1676,12 +1705,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -1694,12 +1723,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -1712,12 +1741,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -1730,7 +1759,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if who is not None: if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -1741,7 +1770,7 @@ class CephClient(object): """count MDSs by metadata field property""" kwargs = dict(body=body, timeout=timeout) if not isinstance(_property, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_property', actual=type(_property), expected=six.string_types) @@ -1757,7 +1786,7 @@ class CephClient(object): """send command to particular mds""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -1766,13 +1795,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -1790,7 +1819,7 @@ class CephClient(object): """stop mds""" kwargs = dict(body=body, timeout=timeout) if not isinstance(role, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='role', actual=type(role), expected=six.string_types) @@ -1799,10 +1828,13 @@ class CephClient(object): return self._request('mds stop', **kwargs) def mds_deactivate(self, role, body='json', timeout=None): - """clean up specified MDS rank (use with `set max_mds` to shrink cluster)""" + """Clean up specified MDS rank + + clean up specified MDS rank (use with `set max_mds` to shrink cluster) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(role, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='role', actual=type(role), expected=six.string_types) @@ -1814,12 +1846,12 @@ class CephClient(object): """set max MDS index""" kwargs = dict(body=body, timeout=timeout) if not isinstance(maxmds, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='maxmds', actual=type(maxmds), expected=int) if maxmds < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='maxmds', actual=maxmds, min=0, @@ -1837,13 +1869,13 @@ class CephClient(object): """set mds parameter to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(var, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='var', actual=type(var), expected=six.string_types) supported = CephClient.MDS_SET_VAR_VALUES if var not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mds_set', option='var', value=var, @@ -1851,7 +1883,7 @@ class CephClient(object): kwargs['var'] = var if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -1859,7 +1891,7 @@ class CephClient(object): kwargs['val'] = val if confirm is not None: if not isinstance(confirm, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='confirm', actual=type(confirm), expected=six.string_types) @@ -1870,12 +1902,12 @@ class CephClient(object): """set mds state of to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(gid, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='gid', actual=type(gid), expected=int) if gid < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='gid', actual=gid, min=0, @@ -1883,12 +1915,12 @@ class CephClient(object): kwargs['gid'] = gid if not isinstance(state, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='state', actual=type(state), expected=int) if state < 0 or state > 20: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='state', actual=state, min=0, @@ -1901,7 +1933,7 @@ class CephClient(object): """Mark MDS failed: trigger a failover if a standby is available""" kwargs = dict(body=body, timeout=timeout) if not isinstance(role_or_gid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='role_or_gid', actual=type(role_or_gid), expected=six.string_types) @@ -1913,7 +1945,7 @@ class CephClient(object): """mark a damaged MDS rank as no longer damaged""" kwargs = dict(body=body, timeout=timeout) if not isinstance(role, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='role', actual=type(role), expected=six.string_types) @@ -1925,12 +1957,12 @@ class CephClient(object): """remove nonactive mds""" kwargs = dict(body=body, timeout=timeout) if not isinstance(gid, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='gid', actual=type(gid), expected=int) if gid < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='gid', actual=gid, min=0, @@ -1943,7 +1975,7 @@ class CephClient(object): """remove failed mds""" kwargs = dict(body=body, timeout=timeout) if not isinstance(role, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='role', actual=type(role), expected=six.string_types) @@ -1951,7 +1983,7 @@ class CephClient(object): kwargs['role'] = role if confirm is not None: if not isinstance(confirm, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='confirm', actual=type(confirm), expected=six.string_types) @@ -1971,12 +2003,12 @@ class CephClient(object): """remove compatible feature""" kwargs = dict(body=body, timeout=timeout) if not isinstance(feature, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='feature', actual=type(feature), expected=int) if feature < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='feature', actual=feature, min=0, @@ -1989,12 +2021,12 @@ class CephClient(object): """remove incompatible feature""" kwargs = dict(body=body, timeout=timeout) if not isinstance(feature, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='feature', actual=type(feature), expected=int) if feature < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='feature', actual=feature, min=0, @@ -2007,7 +2039,7 @@ class CephClient(object): """add data pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2019,7 +2051,7 @@ class CephClient(object): """remove data pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2031,7 +2063,7 @@ class CephClient(object): """remove data pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2046,12 +2078,12 @@ class CephClient(object): """make new filesystem using pools and """ kwargs = dict(body=body, timeout=timeout) if not isinstance(metadata, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='metadata', actual=type(metadata), expected=int) if metadata < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='metadata', actual=metadata, min=0, @@ -2059,12 +2091,12 @@ class CephClient(object): kwargs['metadata'] = metadata if not isinstance(data, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='data', actual=type(data), expected=int) if data < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='data', actual=data, min=0, @@ -2073,13 +2105,13 @@ class CephClient(object): kwargs['data'] = data if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.MDS_NEWFS_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mds_newfs', option='sure', value=sure, @@ -2096,21 +2128,21 @@ class CephClient(object): """make new filesystem using named pools and """ kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) kwargs['fs_name'] = fs_name if not isinstance(metadata, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='metadata', actual=type(metadata), expected=six.string_types) kwargs['metadata'] = metadata if not isinstance(data, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='data', actual=type(data), expected=six.string_types) @@ -2118,13 +2150,13 @@ class CephClient(object): kwargs['data'] = data if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.FS_NEW_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_new', option='force', value=force, @@ -2132,13 +2164,13 @@ class CephClient(object): kwargs['force'] = force if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.FS_NEW_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_new', option='sure', value=sure, @@ -2152,7 +2184,7 @@ class CephClient(object): """disable the named filesystem""" kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) @@ -2160,13 +2192,13 @@ class CephClient(object): kwargs['fs_name'] = fs_name if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.FS_RM_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_rm', option='sure', value=sure, @@ -2180,7 +2212,7 @@ class CephClient(object): """disaster recovery only: reset to a single-MDS map""" kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) @@ -2188,13 +2220,13 @@ class CephClient(object): kwargs['fs_name'] = fs_name if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.FS_RESET_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_reset', option='sure', value=sure, @@ -2210,7 +2242,7 @@ class CephClient(object): """get info about one filesystem""" kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) @@ -2231,20 +2263,20 @@ class CephClient(object): """set fs parameter to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) kwargs['fs_name'] = fs_name if not isinstance(var, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='var', actual=type(var), expected=six.string_types) supported = CephClient.FS_SET_VAR_VALUES if var not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_set', option='var', value=var, @@ -2252,7 +2284,7 @@ class CephClient(object): kwargs['var'] = var if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -2260,7 +2292,7 @@ class CephClient(object): kwargs['val'] = val if confirm is not None: if not isinstance(confirm, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='confirm', actual=type(confirm), expected=six.string_types) @@ -2276,13 +2308,13 @@ class CephClient(object): """Set a global CephFS flag""" kwargs = dict(body=body, timeout=timeout) if not isinstance(flag_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='flag_name', actual=type(flag_name), expected=six.string_types) supported = CephClient.FS_FLAG_SET_FLAG_NAME_VALUES if flag_name not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_flag_set', option='flag_name', value=flag_name, @@ -2290,7 +2322,7 @@ class CephClient(object): kwargs['flag_name'] = flag_name if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -2298,13 +2330,13 @@ class CephClient(object): kwargs['val'] = val if confirm is not None: if not isinstance(confirm, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='confirm', actual=type(confirm), expected=six.string_types) supported = CephClient.FS_FLAG_SET_CONFIRM_VALUES if confirm not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='fs_flag_set', option='confirm', value=confirm, @@ -2316,14 +2348,14 @@ class CephClient(object): """add data pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) kwargs['fs_name'] = fs_name if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2335,14 +2367,14 @@ class CephClient(object): """remove data pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) kwargs['fs_name'] = fs_name if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2354,7 +2386,7 @@ class CephClient(object): """set the default to the named filesystem""" kwargs = dict(body=body, timeout=timeout) if not isinstance(fs_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='fs_name', actual=type(fs_name), expected=six.string_types) @@ -2367,12 +2399,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2389,12 +2421,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2406,7 +2438,7 @@ class CephClient(object): """add new monitor named at """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -2415,7 +2447,7 @@ class CephClient(object): try: ipaddress.ip_address(addr) except ValueError: - raise CephClientInvalidIPAddr( + raise exception.CephClientInvalidIPAddr( name='addr', actual=addr) @@ -2426,7 +2458,7 @@ class CephClient(object): """remove monitor named """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -2438,7 +2470,7 @@ class CephClient(object): """remove monitor named """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -2453,13 +2485,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if with_value is not None: if not isinstance(with_value, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='with_value', actual=type(with_value), expected=six.string_types) supported = CephClient.MON_FEATURE_LS_WITH_VALUE_VALUES if with_value not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mon_feature_ls', option='with_value', value=with_value, @@ -2474,7 +2506,7 @@ class CephClient(object): """set provided feature on mon map""" kwargs = dict(body=body, timeout=timeout) if not isinstance(feature_name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='feature_name', actual=type(feature_name), expected=six.string_types) @@ -2482,13 +2514,13 @@ class CephClient(object): kwargs['feature_name'] = feature_name if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.MON_FEATURE_SET_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mon_feature_set', option='sure', value=sure, @@ -2505,12 +2537,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2525,12 +2557,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2538,13 +2570,13 @@ class CephClient(object): kwargs['epoch'] = epoch if states is not None: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) supported = CephClient.OSD_TREE_STATES_VALUES if states not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_tree', option='states', value=states, @@ -2563,7 +2595,7 @@ class CephClient(object): """print OSD tree in bucket""" kwargs = dict(body=body, timeout=timeout) if not isinstance(bucket, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='bucket', actual=type(bucket), expected=six.string_types) @@ -2571,12 +2603,12 @@ class CephClient(object): kwargs['bucket'] = bucket if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2584,13 +2616,13 @@ class CephClient(object): kwargs['epoch'] = epoch if states is not None: if not isinstance(states, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='states', actual=type(states), expected=six.string_types) supported = CephClient.OSD_TREE_FROM_STATES_VALUES if states not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_tree_from', option='states', value=states, @@ -2605,12 +2637,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2623,12 +2655,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2641,12 +2673,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2662,7 +2694,7 @@ class CephClient(object): """show OSD ids under bucket in the CRUSH map""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -2670,12 +2702,12 @@ class CephClient(object): kwargs['name'] = name if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -2692,10 +2724,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -2713,10 +2745,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -2727,7 +2759,7 @@ class CephClient(object): """count OSDs by metadata field property""" kwargs = dict(body=body, timeout=timeout) if not isinstance(_property, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_property', actual=type(_property), expected=six.string_types) @@ -2744,7 +2776,7 @@ class CephClient(object): """find pg for in with [namespace]""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -2754,7 +2786,7 @@ class CephClient(object): kwargs['object'] = _object if nspace is not None: if not isinstance(nspace, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='nspace', actual=type(nspace), expected=six.string_types) @@ -2766,7 +2798,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if auid is not None: if not isinstance(auid, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='auid', actual=type(auid), expected=int) @@ -2788,7 +2820,7 @@ class CephClient(object): """list all crush rules that reference the same """ kwargs = dict(body=body, timeout=timeout) if not isinstance(_class, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_class', actual=type(_class), expected=six.string_types) @@ -2801,7 +2833,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if name is not None: if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -2814,17 +2846,21 @@ class CephClient(object): def osd_crush_add_bucket( self, name, _type, args=None, body='json', timeout=None): - """add no-parent (probably root) crush bucket of type tolocation """ + """Adds no-parent crush bucket to location + + Adds no-parent (probably root) crush bucket of type to + location + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(_type, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_type', actual=type(_type), expected=six.string_types) @@ -2834,13 +2870,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -2854,14 +2890,14 @@ class CephClient(object): """rename bucket to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(srcname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='srcname', actual=type(srcname), expected=six.string_types) kwargs['srcname'] = srcname if not isinstance(dstname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dstname', actual=type(dstname), expected=six.string_types) @@ -2870,7 +2906,11 @@ class CephClient(object): return self._request('osd crush rename-bucket', **kwargs) def osd_crush_set(self, _id, weight, args, body='json', timeout=None): - """update crushmap position and weight for to withlocation """ + """Update crushmap position and weight + + Updates crushmap position and weight for to with + location + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -2878,22 +2918,22 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') kwargs['id'] = _id if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -2903,13 +2943,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -2920,7 +2960,11 @@ class CephClient(object): return self._request('osd crush set', **kwargs) def osd_crush_add(self, _id, weight, args, body='json', timeout=None): - """add or update crushmap position and weight for with and location """ + """Add or update crushmap position and weight + + Adds or update crushmap position and weight for with + and location + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -2928,22 +2972,22 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') kwargs['id'] = _id if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -2953,13 +2997,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -2971,17 +3015,21 @@ class CephClient(object): def osd_crush_set_all_straw_buckets_to_straw2( self, body='json', timeout=None): - """convert all CRUSH current straw buckets to use the straw2 algorithm""" + """Convert all CRUSH current straw buckets to use the straw2 algorithm + """ return self._request( 'osd crush set-all-straw-buckets-to-straw2', body=body, timeout=timeout) def osd_crush_set_device_class( self, _class, ids, body='json', timeout=None): - """set the of the osd(s) [...],or use to setall. """ + """Set the class of the osd(s) + + Set the of the osd(s) [..],or use to set all + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(_class, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_class', actual=type(_class), expected=six.string_types) @@ -2990,13 +3038,13 @@ class CephClient(object): if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -3007,18 +3055,21 @@ class CephClient(object): return self._request('osd crush set-device-class', **kwargs) def osd_crush_rm_device_class(self, ids, body='json', timeout=None): - """remove class of the osd(s) [...],or use to removeall. """ + """Remove class of the osd(s) + + Remove class of the osd(s) [..],or use to remove all + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -3033,14 +3084,14 @@ class CephClient(object): """rename crush device class to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(srcname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='srcname', actual=type(srcname), expected=six.string_types) kwargs['srcname'] = srcname if not isinstance(dstname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dstname', actual=type(dstname), expected=six.string_types) @@ -3050,7 +3101,11 @@ class CephClient(object): def osd_crush_create_or_move( self, _id, weight, args, body='json', timeout=None): - """create entry or move existing entry for at/to location """ + """Create entry or move existing entry + + Create entry or move existing entry for at/to + location + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -3058,22 +3113,22 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') kwargs['id'] = _id if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -3083,13 +3138,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -3103,7 +3158,7 @@ class CephClient(object): """move existing entry for to location """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3112,13 +3167,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -3132,17 +3187,20 @@ class CephClient(object): def osd_crush_swap_bucket( self, source, dest, force=None, body='json', timeout=None): - """swap existing bucket contents from (orphan) bucket and """ + """Swap existing bucket contents + + Swap existing bucket contents from (orphan) bucket and + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(source, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='source', actual=type(source), expected=six.string_types) kwargs['source'] = source if not isinstance(dest, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dest', actual=type(dest), expected=six.string_types) @@ -3150,13 +3208,13 @@ class CephClient(object): kwargs['dest'] = dest if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.OSD_CRUSH_SWAP_BUCKET_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_swap_bucket', option='force', value=force, @@ -3168,7 +3226,7 @@ class CephClient(object): """link existing entry for under location """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3177,13 +3235,13 @@ class CephClient(object): if isinstance(args, list): for item in args: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=item, expected='list of strings') else: if not isinstance(args, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='args', actual=type(args), expected=six.string_types) @@ -3197,7 +3255,7 @@ class CephClient(object): """remove from crush map (everywhere, or just at )""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3205,7 +3263,7 @@ class CephClient(object): kwargs['name'] = name if ancestor is not None: if not isinstance(ancestor, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ancestor', actual=type(ancestor), expected=six.string_types) @@ -3217,7 +3275,7 @@ class CephClient(object): """remove from crush map (everywhere, or just at )""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3225,7 +3283,7 @@ class CephClient(object): kwargs['name'] = name if ancestor is not None: if not isinstance(ancestor, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ancestor', actual=type(ancestor), expected=six.string_types) @@ -3237,7 +3295,7 @@ class CephClient(object): """unlink from crush map (everywhere, or just at )""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3245,7 +3303,7 @@ class CephClient(object): kwargs['name'] = name if ancestor is not None: if not isinstance(ancestor, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ancestor', actual=type(ancestor), expected=six.string_types) @@ -3261,19 +3319,19 @@ class CephClient(object): """change 's weight to in crush map""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -3287,19 +3345,19 @@ class CephClient(object): """change all leaf items beneath to in crush map""" kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -3316,13 +3374,13 @@ class CephClient(object): """set crush tunables values to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(profile, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='profile', actual=type(profile), expected=six.string_types) supported = CephClient.OSD_CRUSH_TUNABLES_PROFILE_VALUES if profile not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_tunables', option='profile', value=profile, @@ -3338,13 +3396,13 @@ class CephClient(object): """set crush tunable to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(tunable, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tunable', actual=type(tunable), expected=six.string_types) supported = CephClient.OSD_CRUSH_SET_TUNABLE_TUNABLE_VALUES if tunable not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_set_tunable', option='tunable', value=tunable, @@ -3352,7 +3410,7 @@ class CephClient(object): kwargs['tunable'] = tunable if not isinstance(value, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='value', actual=type(value), expected=int) @@ -3366,13 +3424,13 @@ class CephClient(object): """get crush tunable """ kwargs = dict(body=body, timeout=timeout) if not isinstance(tunable, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tunable', actual=type(tunable), expected=six.string_types) supported = CephClient.OSD_CRUSH_GET_TUNABLE_TUNABLE_VALUES if tunable not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_get_tunable', option='tunable', value=tunable, @@ -3390,24 +3448,29 @@ class CephClient(object): def osd_crush_rule_create_simple( self, name, root, _type, mode=None, body='json', timeout=None): - """create crush rule to start from , replicate acrossbuckets of type , using a choose mode of (default firstn; indep best for erasure pools) """ + """Create crush rule + + Creates crush rule to start from , replicates across + buckets of type , using a choose mode of + (default firstn; indep best for erasure pools) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(root, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='root', actual=type(root), expected=six.string_types) kwargs['root'] = root if not isinstance(_type, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_type', actual=type(_type), expected=six.string_types) @@ -3415,13 +3478,13 @@ class CephClient(object): kwargs['type'] = _type if mode is not None: if not isinstance(mode, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='mode', actual=type(mode), expected=six.string_types) supported = CephClient.OSD_CRUSH_RULE_CREATE_SIMPLE_MODE_VALUES if mode not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_rule_create_simple', option='mode', value=mode, @@ -3432,24 +3495,29 @@ class CephClient(object): def osd_crush_rule_create_replicated( self, name, root, _type, _class=None, body='json', timeout=None): - """create crush rule for replicated pool to start from ,replicate across buckets of type , using a choose mode of (default firstn; indep best for erasure pools) """ + """Create crush rule for replicated pool + + Creates crush rule for replicated pool to start from , + replicate across buckets of type , using a choose mode of + (default firstn; indep best for erasure pools) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(root, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='root', actual=type(root), expected=six.string_types) kwargs['root'] = root if not isinstance(_type, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_type', actual=type(_type), expected=six.string_types) @@ -3457,7 +3525,7 @@ class CephClient(object): kwargs['type'] = _type if _class is not None: if not isinstance(_class, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_class', actual=type(_class), expected=six.string_types) @@ -3466,10 +3534,14 @@ class CephClient(object): def osd_crush_rule_create_erasure( self, name, profile=None, body='json', timeout=None): - """create crush rule for erasure coded pool created with (default default) """ + """Create crush rule for erasure coded pool + + Creates crush rule for erasure coded pool created with + (default default) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3477,7 +3549,7 @@ class CephClient(object): kwargs['name'] = name if profile is not None: if not isinstance(profile, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='profile', actual=type(profile), expected=six.string_types) @@ -3488,7 +3560,7 @@ class CephClient(object): """remove crush rule """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3501,14 +3573,14 @@ class CephClient(object): """rename crush rule to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(srcname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='srcname', actual=type(srcname), expected=six.string_types) kwargs['srcname'] = srcname if not isinstance(dstname, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='dstname', actual=type(dstname), expected=six.string_types) @@ -3523,13 +3595,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if shadow is not None: if not isinstance(shadow, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='shadow', actual=type(shadow), expected=six.string_types) supported = CephClient.OSD_CRUSH_TREE_SHADOW_VALUES if shadow not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_tree', option='shadow', value=shadow, @@ -3541,7 +3613,7 @@ class CephClient(object): """list items beneath a node in the CRUSH tree""" kwargs = dict(body=body, timeout=timeout) if not isinstance(node, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='node', actual=type(node), expected=six.string_types) @@ -3558,7 +3630,7 @@ class CephClient(object): """list all osds belonging to the specific """ kwargs = dict(body=body, timeout=timeout) if not isinstance(_class, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_class', actual=type(_class), expected=six.string_types) @@ -3590,20 +3662,20 @@ class CephClient(object): """create a weight-set for a given pool""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(mode, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='mode', actual=type(mode), expected=six.string_types) supported = CephClient.OSD_CRUSH_WEIGHT_SET_CREATE_MODE_VALUES if mode not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_crush_weight_set_create', option='mode', value=mode, @@ -3616,7 +3688,7 @@ class CephClient(object): """remove the weight-set for a given pool""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -3634,26 +3706,26 @@ class CephClient(object): """set weight for an item (bucket or osd) in a pool's weight-set""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='item', actual=type(item), expected=six.string_types) kwargs['item'] = item if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -3666,22 +3738,26 @@ class CephClient(object): def osd_crush_weight_set_reweight_compat( self, item, weight, body='json', timeout=None): - """set weight for an item (bucket or osd) in the backward-compatibleweight-set """ + """Set weight for an item (bucket or osd) + + Set weight for an item (bucket or osd) in the backward-compatible + weight-set + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='item', actual=type(item), expected=six.string_types) kwargs['item'] = item if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -3697,12 +3773,12 @@ class CephClient(object): """set new maximum osd value""" kwargs = dict(body=body, timeout=timeout) if not isinstance(newmax, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='newmax', actual=type(newmax), expected=int) if newmax < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='newmax', actual=newmax, min=0, @@ -3715,12 +3791,12 @@ class CephClient(object): """set usage ratio at which OSDs are marked full""" kwargs = dict(body=body, timeout=timeout) if not isinstance(ratio, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ratio', actual=type(ratio), expected=int) if ratio < 0.0 or ratio > 1.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='ratio', actual=ratio, min=0.0, @@ -3733,12 +3809,12 @@ class CephClient(object): """set usage ratio at which OSDs are marked too full to backfill""" kwargs = dict(body=body, timeout=timeout) if not isinstance(ratio, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ratio', actual=type(ratio), expected=int) if ratio < 0.0 or ratio > 1.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='ratio', actual=ratio, min=0.0, @@ -3751,12 +3827,12 @@ class CephClient(object): """set usage ratio at which OSDs are marked near-full""" kwargs = dict(body=body, timeout=timeout) if not isinstance(ratio, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ratio', actual=type(ratio), expected=int) if ratio < 0.0 or ratio > 1.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='ratio', actual=ratio, min=0.0, @@ -3766,7 +3842,8 @@ class CephClient(object): return self._request('osd set-nearfull-ratio', **kwargs) def osd_get_require_min_compat_client(self, body='json', timeout=None): - """get the minimum client version we will maintain compatibility with""" + """Get the minimum client version we will maintain compatibility with + """ return self._request( 'osd get-require-min-compat-client', body=body, timeout=timeout) @@ -3776,10 +3853,11 @@ class CephClient(object): def osd_set_require_min_compat_client( self, version, sure=None, body='json', timeout=None): - """set the minimum client version we will maintain compatibility with""" + """Set the minimum client version we will maintain compatibility with + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(version, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='version', actual=type(version), expected=six.string_types) @@ -3787,13 +3865,13 @@ class CephClient(object): kwargs['version'] = version if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_SET_REQUIRE_MIN_COMPAT_CLIENT_SURE_VALUES # noqa E501 if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_set_require_min_compat_client', option='sure', value=sure, @@ -3811,10 +3889,15 @@ class CephClient(object): def osd_erasure_code_profile_set( self, name, profile=None, body='json', timeout=None): - """create erasure code profile with [ ...] pairs. Adda --force at the end to override an existing profile (VERY DANGEROUS) """ + """Create erasure code profile with [ ...] pairs + + Creates erasure code profile with [ ...] pairs. + Adds --force at the end to override an existing profile + (VERY DANGEROUS) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3824,13 +3907,13 @@ class CephClient(object): if isinstance(profile, list): for item in profile: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='profile', actual=item, expected='list of strings') else: if not isinstance(profile, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='profile', actual=type(profile), expected=six.string_types) @@ -3844,7 +3927,7 @@ class CephClient(object): """get erasure code profile """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3856,7 +3939,7 @@ class CephClient(object): """remove erasure code profile """ kwargs = dict(body=body, timeout=timeout) if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -3883,13 +3966,13 @@ class CephClient(object): """set """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) supported = CephClient.OSD_SET_KEY_VALUES if key not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_set', option='key', value=key, @@ -3898,13 +3981,13 @@ class CephClient(object): kwargs['key'] = key if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_SET_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_set', option='sure', value=sure, @@ -3922,13 +4005,13 @@ class CephClient(object): """unset """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) supported = CephClient.OSD_UNSET_KEY_VALUES if key not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_unset', option='key', value=key, @@ -3946,13 +4029,13 @@ class CephClient(object): """set the minimum allowed OSD release to participate in the cluster""" kwargs = dict(body=body, timeout=timeout) if not isinstance(release, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='release', actual=type(release), expected=six.string_types) supported = CephClient.OSD_REQUIRE_OSD_RELEASE_RELEASE_VALUES if release not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_require_osd_release', option='release', value=release, @@ -3961,13 +4044,13 @@ class CephClient(object): kwargs['release'] = release if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_REQUIRE_OSD_RELEASE_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_require_osd_release', option='sure', value=sure, @@ -3976,18 +4059,21 @@ class CephClient(object): return self._request('osd require-osd-release', **kwargs) def osd_down(self, ids, body='json', timeout=None): - """set osd(s) [...] down, or use to set all osds down""" + """Set osd(s) down + + Set osd(s) [...] down, or use to set all osds down + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -3998,18 +4084,19 @@ class CephClient(object): return self._request('osd down', **kwargs) def osd_out(self, ids, body='json', timeout=None): - """set osd(s) [...] out, or use to set all osds out""" + """Set osd(s) [...] out, or use to set all osds out + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4020,18 +4107,22 @@ class CephClient(object): return self._request('osd out', **kwargs) def osd_in(self, ids, body='json', timeout=None): - """set osd(s) [...] in, can use to automatically setall previously out osds in """ + """Set osd(s) [...] in + + Sets osd(s) [...] in, can use to automatically + set all previously out osds in + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4047,13 +4138,13 @@ class CephClient(object): if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4064,18 +4155,22 @@ class CephClient(object): return self._request('osd rm', **kwargs) def osd_add_noup(self, ids, body='json', timeout=None): - """mark osd(s) [...] as noup, or use to mark all osdsas noup """ + """Mark osd(s) as noup + + Mark osd(s) [...] as noup, or use to mark all + osds as noup + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4086,18 +4181,22 @@ class CephClient(object): return self._request('osd add-noup', **kwargs) def osd_add_nodown(self, ids, body='json', timeout=None): - """mark osd(s) [...] as nodown, or use to mark allosds as nodown """ + """Mark osd(s) as nodown + + Marks osd(s) [...] as nodown, or use to mark + all osds as nodown + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4108,18 +4207,22 @@ class CephClient(object): return self._request('osd add-nodown', **kwargs) def osd_add_noin(self, ids, body='json', timeout=None): - """mark osd(s) [...] as noin, or use to mark all osdsas noin """ + """Mark osd(s) as noin + + Marks osd(s) [...] as noin, or use to mark + all osds as noin + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4130,18 +4233,22 @@ class CephClient(object): return self._request('osd add-noin', **kwargs) def osd_add_noout(self, ids, body='json', timeout=None): - """mark osd(s) [...] as noout, or use to mark all osdsas noout """ + """Mark osd(s) as noout + + Marks osd(s) [...] as noout, or use to mark + all osds as noout + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4152,18 +4259,23 @@ class CephClient(object): return self._request('osd add-noout', **kwargs) def osd_rm_noup(self, ids, body='json', timeout=None): - """allow osd(s) [...] to be marked up (if they are currentlymarked as noup), can use to automatically filter out all noup osds """ + """Allow osd(s) to be marked up + + Allows osd(s) [...] to be marked up (if they are currently + marked as noup), can use to automatically filter out all + noup osds + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4174,18 +4286,23 @@ class CephClient(object): return self._request('osd rm-noup', **kwargs) def osd_rm_nodown(self, ids, body='json', timeout=None): - """allow osd(s) [...] to be marked down (if they are currentlymarked as nodown), can use to automatically filter out all nodown osds """ + """Allow osd(s) to be marked down + + Allows osd(s) [...] to be marked down (if they are currently + marked as nodown), can use to automatically filter out all + nodown osds + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4196,18 +4313,23 @@ class CephClient(object): return self._request('osd rm-nodown', **kwargs) def osd_rm_noin(self, ids, body='json', timeout=None): - """allow osd(s) [...] to be marked in (if they are currentlymarked as noin), can use to automatically filter out all noin osds """ + """Allow osd(s) to be marked in + + Allows osd(s) [...] to be marked in (if they are currently + marked as noin), can use to automatically filter out all + noin osds + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4218,18 +4340,23 @@ class CephClient(object): return self._request('osd rm-noin', **kwargs) def osd_rm_noout(self, ids, body='json', timeout=None): - """allow osd(s) [...] to be marked out (if they are currentlymarked as noout), can use to automatically filter out all noout osds """ + """Allow osd(s) to be marked out + + Allows osd(s) [...] to be marked out (if they are currently + marked as noout), can use to automatically filter out all + noout osds + """ kwargs = dict(body=body, timeout=timeout) if isinstance(ids, list): for item in ids: if not isinstance(item, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=item, expected='list of strings') else: if not isinstance(ids, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='ids', actual=type(ids), expected=six.string_types) @@ -4248,22 +4375,22 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') kwargs['id'] = _id if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0 or weight > 1.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -4276,7 +4403,7 @@ class CephClient(object): """reweight osds with {: ,...})""" kwargs = dict(body=body, timeout=timeout) if not isinstance(weights, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weights', actual=type(weights), expected=six.string_types) @@ -4291,25 +4418,25 @@ class CephClient(object): """force creation of pg """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) kwargs['pgid'] = pgid if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_FORCE_CREATE_PG_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_force_create_pg', option='sure', value=sure, @@ -4321,12 +4448,12 @@ class CephClient(object): """set pg_temp mapping pgid:[ [...]] (developers only)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4338,10 +4465,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4354,12 +4481,12 @@ class CephClient(object): """set pg_upmap mapping :[ [...]] (developers only)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4370,10 +4497,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4387,12 +4514,12 @@ class CephClient(object): """clear pg_upmap mapping for (developers only)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4400,15 +4527,18 @@ class CephClient(object): return self._request('osd rm-pg-upmap', **kwargs) def osd_pg_upmap_items(self, pgid, _id, body='json', timeout=None): - """set pg_upmap_items mapping :{ to , [...]} (developersonly) """ + """Set pg_upmap_items mapping :{ to , [...]} + + (developersonly) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4419,10 +4549,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4436,12 +4566,12 @@ class CephClient(object): """clear pg_upmap_items mapping for (developers only)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4452,12 +4582,12 @@ class CephClient(object): """set primary_temp mapping pgid:|-1 (developers only)""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pgid, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgid', actual=type(pgid), expected=six.string_types) if not re.match(r'[0-9]+\.[0-9a-fA-F]+', pgid): - raise CephClientInvalidPgid( + raise exception.CephClientInvalidPgid( name='pgid', actual=pgid) @@ -4468,10 +4598,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4488,22 +4618,22 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') kwargs['id'] = _id if not isinstance(weight, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='weight', actual=type(weight), expected=int) if weight < 0.0 or weight > 1.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='weight', actual=weight, min=0.0, @@ -4515,7 +4645,12 @@ class CephClient(object): OSD_DESTROY_SURE_VALUES = ['--yes-i-really-mean-it'] def osd_destroy(self, _id, sure=None, body='json', timeout=None): - """mark osd as being destroyed. Keeps the ID intact (allowing reuse), butremoves cephx keys, config-key data and lockbox keys, rendering data permanently unreadable. """ + """Mark osd as being destroyed + + Marks osd as being destroyed. Keeps the ID intact (allowing reuse), + but removes cephx keys, config-key data and lockbox keys, rendering + data permanently unreadable. + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -4523,10 +4658,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4534,13 +4669,13 @@ class CephClient(object): kwargs['id'] = _id if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_DESTROY_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_destroy', option='sure', value=sure, @@ -4551,7 +4686,10 @@ class CephClient(object): OSD_PURGE_NEW_SURE_VALUES = ['--yes-i-really-mean-it'] def osd_purge_new(self, _id, sure=None, body='json', timeout=None): - """purge all traces of an OSD that was partially created but neverstarted """ + """Purge all traces of an OSD + + Purge all traces of an OSD that was partially created but never started + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -4559,10 +4697,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4570,13 +4708,13 @@ class CephClient(object): kwargs['id'] = _id if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_PURGE_NEW_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_purge_new', option='sure', value=sure, @@ -4587,7 +4725,11 @@ class CephClient(object): OSD_PURGE_SURE_VALUES = ['--yes-i-really-mean-it'] def osd_purge(self, _id, sure=None, body='json', timeout=None): - """purge all osd data from the monitors. Combines `osd destroy`, `osdrm`, and `osd crush rm`. """ + """Purge all osd data from the monitors + + Purges all osd data from the monitors. Combines `osd destroy`, + `osdrm`, and `osd crush rm`. + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -4595,10 +4737,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4606,13 +4748,13 @@ class CephClient(object): kwargs['id'] = _id if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_PURGE_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_purge', option='sure', value=sure, @@ -4623,7 +4765,11 @@ class CephClient(object): OSD_LOST_SURE_VALUES = ['--yes-i-really-mean-it'] def osd_lost(self, _id, sure=None, body='json', timeout=None): - """mark osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS EXIST, BE CAREFUL """ + """Mark osd as permanently lost + + Mark osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS + EXIST, BE CAREFUL + """ kwargs = dict(body=body, timeout=timeout) if isinstance(_id, six.integer_types): pass @@ -4631,10 +4777,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4642,13 +4788,13 @@ class CephClient(object): kwargs['id'] = _id if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_LOST_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_lost', option='sure', value=sure, @@ -4669,10 +4815,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4680,7 +4826,12 @@ class CephClient(object): return self._request('osd create', **kwargs) def osd_new(self, uuid, _id=None, body='json', timeout=None): - """Create a new OSD. If supplied, the `id` to be replaced needs to existand have been previously destroyed. Reads secrets from JSON file via `-i ` (see man page). """ + """Create a new OSD + + Creates a new OSD. If supplied, the `id` to be replaced needs to + exist and have been previously destroyed. Reads secrets from JSON + file via `-i ` (see man page). + """ kwargs = dict(body=body, timeout=timeout) kwargs['uuid'] = uuid if _id is not None: @@ -4690,10 +4841,10 @@ class CephClient(object): _id = _id.lower() prefix = 'osd.' if not _id.startswith(prefix): - raise CephClientInvalidOsdIdValue(osdid=_id) + raise exception.CephClientInvalidOsdIdValue(osdid=_id) _id = int(_id[len(prefix):]) else: - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_id', actual=type(_id), expected='int or string') @@ -4705,16 +4856,20 @@ class CephClient(object): def osd_blacklist( self, blacklistop, addr, expire=None, body='json', timeout=None): - """add (optionally until seconds from now) or remove fromblacklist """ + """Add or remove addr from blacklist + + Adds (optionally until seconds from now) or remove + from blacklist + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(blacklistop, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='blacklistop', actual=type(blacklistop), expected=six.string_types) supported = CephClient.OSD_BLACKLIST_BLACKLISTOP_VALUES if blacklistop not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_blacklist', option='blacklistop', value=blacklistop, @@ -4725,12 +4880,12 @@ class CephClient(object): kwargs['addr'] = addr if expire is not None: if not isinstance(expire, (six.integer_types, float)): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='expire', actual=type(expire), expected=int) if expire < 0.0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='expire', actual=expire, min=0.0, @@ -4752,14 +4907,14 @@ class CephClient(object): """make snapshot in """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(snap, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='snap', actual=type(snap), expected=six.string_types) @@ -4771,14 +4926,14 @@ class CephClient(object): """remove snapshot from """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(snap, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='snap', actual=type(snap), expected=six.string_types) @@ -4793,13 +4948,13 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if detail is not None: if not isinstance(detail, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='detail', actual=type(detail), expected=six.string_types) supported = CephClient.OSD_POOL_LS_DETAIL_VALUES if detail not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_ls', option='detail', value=detail, @@ -4816,19 +4971,19 @@ class CephClient(object): """create pool""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(pg_num, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pg_num', actual=type(pg_num), expected=int) if pg_num < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='pg_num', actual=pg_num, min=0, @@ -4837,12 +4992,12 @@ class CephClient(object): kwargs['pg_num'] = pg_num if pgp_num is not None: if not isinstance(pgp_num, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pgp_num', actual=type(pgp_num), expected=int) if pgp_num < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='pgp_num', actual=pgp_num, min=0, @@ -4850,13 +5005,13 @@ class CephClient(object): kwargs['pgp_num'] = pgp_num if pool_type is not None: if not isinstance(pool_type, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool_type', actual=type(pool_type), expected=six.string_types) supported = CephClient.OSD_POOL_CREATE_POOL_TYPE_VALUES if pool_type not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_create', option='pool_type', value=pool_type, @@ -4864,21 +5019,21 @@ class CephClient(object): kwargs['pool_type'] = pool_type if erasure_code_profile is not None: if not isinstance(erasure_code_profile, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='erasure_code_profile', actual=type(erasure_code_profile), expected=six.string_types) kwargs['erasure_code_profile'] = erasure_code_profile if rule is not None: if not isinstance(rule, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='rule', actual=type(rule), expected=six.string_types) kwargs['rule'] = rule if expected_num_objects is not None: if not isinstance(expected_num_objects, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='expected_num_objects', actual=type(expected_num_objects), expected=int) @@ -4890,7 +5045,7 @@ class CephClient(object): """delete pool""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -4898,14 +5053,14 @@ class CephClient(object): kwargs['pool'] = pool if pool2 is not None: if not isinstance(pool2, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool2', actual=type(pool2), expected=six.string_types) kwargs['pool2'] = pool2 if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) @@ -4917,7 +5072,7 @@ class CephClient(object): """remove pool""" kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -4925,14 +5080,14 @@ class CephClient(object): kwargs['pool'] = pool if pool2 is not None: if not isinstance(pool2, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool2', actual=type(pool2), expected=six.string_types) kwargs['pool2'] = pool2 if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) @@ -4944,14 +5099,14 @@ class CephClient(object): """rename to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(srcpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='srcpool', actual=type(srcpool), expected=six.string_types) kwargs['srcpool'] = srcpool if not isinstance(destpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='destpool', actual=type(destpool), expected=six.string_types) @@ -4991,20 +5146,20 @@ class CephClient(object): """get pool parameter """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(var, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='var', actual=type(var), expected=six.string_types) supported = CephClient.OSD_POOL_GET_VAR_VALUES if var not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_get', option='var', value=var, @@ -5047,20 +5202,20 @@ class CephClient(object): """set pool parameter to """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(var, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='var', actual=type(var), expected=six.string_types) supported = CephClient.OSD_POOL_SET_VAR_VALUES if var not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_set', option='var', value=var, @@ -5068,7 +5223,7 @@ class CephClient(object): kwargs['var'] = var if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -5076,13 +5231,13 @@ class CephClient(object): kwargs['val'] = val if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.OSD_POOL_SET_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_set', option='force', value=force, @@ -5094,17 +5249,20 @@ class CephClient(object): def osd_pool_application_enable( self, pool, app, force=None, body='json', timeout=None): - """enable use of an application [cephfs,rbd,rgw] on pool """ + """Enable use of an application on pool + + Enable use of an application [cephfs,rbd,rgw] on pool + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(app, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='app', actual=type(app), expected=six.string_types) @@ -5112,13 +5270,13 @@ class CephClient(object): kwargs['app'] = app if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.OSD_POOL_APPLICATION_ENABLE_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_application_enable', option='force', value=force, @@ -5133,14 +5291,14 @@ class CephClient(object): """disables use of an application on pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(app, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='app', actual=type(app), expected=six.string_types) @@ -5148,13 +5306,13 @@ class CephClient(object): kwargs['app'] = app if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.OSD_POOL_APPLICATION_DISABLE_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_pool_application_disable', option='force', value=force, @@ -5164,31 +5322,34 @@ class CephClient(object): def osd_pool_application_set( self, pool, app, key, value, body='json', timeout=None): - """sets application metadata key to on pool """ + """Set application metadata on pool + + Sets application metadata key to on pool + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(app, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='app', actual=type(app), expected=six.string_types) kwargs['app'] = app if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) kwargs['key'] = key if not isinstance(value, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='value', actual=type(value), expected=six.string_types) @@ -5201,21 +5362,21 @@ class CephClient(object): """removes application metadata key on pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(app, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='app', actual=type(app), expected=six.string_types) kwargs['app'] = app if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5228,7 +5389,7 @@ class CephClient(object): """get value of key of application on pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -5236,14 +5397,14 @@ class CephClient(object): kwargs['pool'] = pool if app is not None: if not isinstance(app, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='app', actual=type(app), expected=six.string_types) kwargs['app'] = app if key is not None: if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5259,17 +5420,20 @@ class CephClient(object): def osd_tier_add( self, pool, tierpool, force_nonempty=None, body='json', timeout=None): - """add the tier (the second one) to base pool (thefirst one)""" + """Add the tier (the first one) to base pool + + (the first one) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(tierpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tierpool', actual=type(tierpool), expected=six.string_types) @@ -5277,13 +5441,13 @@ class CephClient(object): kwargs['tierpool'] = tierpool if force_nonempty is not None: if not isinstance(force_nonempty, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force_nonempty', actual=type(force_nonempty), expected=six.string_types) supported = CephClient.OSD_TIER_ADD_FORCE_NONEMPTY_VALUES if force_nonempty not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_tier_add', option='force_nonempty', value=force_nonempty, @@ -5292,17 +5456,21 @@ class CephClient(object): return self._request('osd tier add', **kwargs) def osd_tier_rm(self, pool, tierpool, body='json', timeout=None): - """remove the tier (the second one) from base pool (thefirst one)""" + """Remove the tier (thefirst one) from base pool + + Removes the tier (the second one) from base pool + (thefirst one) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(tierpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tierpool', actual=type(tierpool), expected=six.string_types) @@ -5311,17 +5479,21 @@ class CephClient(object): return self._request('osd tier rm', **kwargs) def osd_tier_remove(self, pool, tierpool, body='json', timeout=None): - """remove the tier (the second one) from base pool (thefirst one)""" + """Remove the tier (the second one) from base pool + + Remove the tier (the second one) from base pool + (thefirst one) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(tierpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tierpool', actual=type(tierpool), expected=six.string_types) @@ -5340,20 +5512,20 @@ class CephClient(object): """specify the caching mode for cache tier """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(mode, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='mode', actual=type(mode), expected=six.string_types) supported = CephClient.OSD_TIER_CACHE_MODE_MODE_VALUES if mode not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_tier_cache_mode', option='mode', value=mode, @@ -5362,13 +5534,13 @@ class CephClient(object): kwargs['mode'] = mode if sure is not None: if not isinstance(sure, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='sure', actual=type(sure), expected=six.string_types) supported = CephClient.OSD_TIER_CACHE_MODE_SURE_VALUES if sure not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='osd_tier_cache_mode', option='sure', value=sure, @@ -5381,14 +5553,14 @@ class CephClient(object): """set the overlay pool for base pool to be """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(overlaypool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='overlaypool', actual=type(overlaypool), expected=six.string_types) @@ -5400,7 +5572,7 @@ class CephClient(object): """remove the overlay pool for base pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -5412,7 +5584,7 @@ class CephClient(object): """remove the overlay pool for base pool """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) @@ -5423,29 +5595,33 @@ class CephClient(object): def osd_tier_add_cache(self, pool, tierpool, size, body='json', timeout=None): - """add a cache (the second one) of size to existingpool (the first one) """ + """Add a cache (the second one) of size to existing pool + + Adds a cache (the second one) of size to + existing pool (the first one) + """ kwargs = dict(body=body, timeout=timeout) if not isinstance(pool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='pool', actual=type(pool), expected=six.string_types) kwargs['pool'] = pool if not isinstance(tierpool, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='tierpool', actual=type(tierpool), expected=six.string_types) kwargs['tierpool'] = tierpool if not isinstance(size, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='size', actual=type(size), expected=int) if size < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='size', actual=size, min=0, @@ -5458,7 +5634,7 @@ class CephClient(object): """get """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5470,7 +5646,7 @@ class CephClient(object): """set to value """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5478,7 +5654,7 @@ class CephClient(object): kwargs['key'] = key if val is not None: if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -5489,7 +5665,7 @@ class CephClient(object): """put , value """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5497,7 +5673,7 @@ class CephClient(object): kwargs['key'] = key if val is not None: if not isinstance(val, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='val', actual=type(val), expected=six.string_types) @@ -5508,7 +5684,7 @@ class CephClient(object): """delete """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5520,7 +5696,7 @@ class CephClient(object): """rm """ kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5532,7 +5708,7 @@ class CephClient(object): """check for 's existence""" kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5553,7 +5729,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if key is not None: if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5565,12 +5741,12 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if epoch is not None: if not isinstance(epoch, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='epoch', actual=type(epoch), expected=int) if epoch < 0: - raise CephClientValueOutOfBounds( + raise exception.CephClientValueOutOfBounds( name='epoch', actual=epoch, min=0, @@ -5582,7 +5758,7 @@ class CephClient(object): """treat the named manager daemon as failed""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -5605,7 +5781,7 @@ class CephClient(object): """enable mgr module""" kwargs = dict(body=body, timeout=timeout) if not isinstance(module, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='module', actual=type(module), expected=six.string_types) @@ -5613,13 +5789,13 @@ class CephClient(object): kwargs['module'] = module if force is not None: if not isinstance(force, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='force', actual=type(force), expected=six.string_types) supported = CephClient.MGR_MODULE_ENABLE_FORCE_VALUES if force not in supported: - raise CephClientInvalidChoice( + raise exception.CephClientInvalidChoice( function='mgr_module_enable', option='force', value=force, @@ -5631,7 +5807,7 @@ class CephClient(object): """disable mgr module""" kwargs = dict(body=body, timeout=timeout) if not isinstance(module, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='module', actual=type(module), expected=six.string_types) @@ -5644,7 +5820,7 @@ class CephClient(object): kwargs = dict(body=body, timeout=timeout) if who is not None: if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) @@ -5655,7 +5831,7 @@ class CephClient(object): """count ceph-mgr daemons by metadata field property""" kwargs = dict(body=body, timeout=timeout) if not isinstance(_property, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='_property', actual=type(_property), expected=six.string_types) @@ -5671,21 +5847,21 @@ class CephClient(object): """Set a configuration option for one or more entities""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) kwargs['who'] = who if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) kwargs['name'] = name if not isinstance(value, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='value', actual=type(value), expected=six.string_types) @@ -5697,14 +5873,14 @@ class CephClient(object): """Clear a configuration option for one or more entities""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) kwargs['who'] = who if not isinstance(name, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='name', actual=type(name), expected=six.string_types) @@ -5716,14 +5892,14 @@ class CephClient(object): """Show configuration option(s) for an entity""" kwargs = dict(body=body, timeout=timeout) if not isinstance(who, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='who', actual=type(who), expected=six.string_types) kwargs['who'] = who if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5739,7 +5915,7 @@ class CephClient(object): """Describe a configuration option""" kwargs = dict(body=body, timeout=timeout) if not isinstance(key, six.string_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='key', actual=type(key), expected=six.string_types) @@ -5748,7 +5924,8 @@ class CephClient(object): return self._request('config help', **kwargs) def config_assimilate_conf(self, body='json', timeout=None): - """Assimilate options from a conf, and return a new, minimal conf file""" + """Assimilate options from a conf, and return a new, minimal conf file + """ return self._request('config assimilate-conf', body=body, timeout=timeout) @@ -5756,7 +5933,7 @@ class CephClient(object): """Show recent history of config changes""" kwargs = dict(body=body, timeout=timeout) if not isinstance(num, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='num', actual=type(num), expected=int) @@ -5768,7 +5945,7 @@ class CephClient(object): """Revert configuration to previous state""" kwargs = dict(body=body, timeout=timeout) if not isinstance(num, six.integer_types): - raise CephClientTypeError( + raise exception.CephClientTypeError( name='num', actual=type(num), expected=int) diff --git a/ceph/python-cephclient/python-cephclient/cephclient/exception.py b/ceph/python-cephclient/python-cephclient/cephclient/exception.py index 58a13f28..c1d754dd 100644 --- a/ceph/python-cephclient/python-cephclient/cephclient/exception.py +++ b/ceph/python-cephclient/python-cephclient/cephclient/exception.py @@ -11,7 +11,8 @@ class CephClientException(Exception): def __init__(self, *args, **kwargs): if "message" not in kwargs: try: - message = self.message.format(*args, **kwargs) # pylint: disable=W1645 + # pylint: disable=W1645 + message = self.message.format(*args, **kwargs) except Exception: # noqa message = '{}, args:{}, kwargs: {}'.format( self.message, args, kwargs) # pylint: disable=W1645 diff --git a/ceph/python-cephclient/python-cephclient/cephclient/wrapper.py b/ceph/python-cephclient/python-cephclient/cephclient/wrapper.py index 44eb01ed..f3a3c432 100644 --- a/ceph/python-cephclient/python-cephclient/cephclient/wrapper.py +++ b/ceph/python-cephclient/python-cephclient/cephclient/wrapper.py @@ -69,7 +69,8 @@ class CephWrapper(CephClient): return self._request('osd create', **kwargs) def osd_rm(self, ids, body='json', timeout=None): - """remove osd(s) [...], or use to remove all osds """ + """remove osd(s) [...], or use to remove all osds + """ if isinstance(ids, list): ids = [self._sanitize_osdid_to_str(_id) for _id in ids] @@ -82,7 +83,8 @@ class CephWrapper(CephClient): return self.osd_rm(ids, body=body, timeout=timeout) def osd_down(self, ids, body='json', timeout=None): - """set osd(s) [...] down, or use to set all osds down """ + """set osd(s) [...] down, or use to set all osds down + """ if isinstance(ids, list): ids = [self._sanitize_osdid_to_str(_id) for _id in ids] @@ -219,7 +221,11 @@ class CephWrapper(CephClient): return caps def auth_add(self, entity, caps=None, body='json', timeout=None): - """add auth info for from input file, or random key if no input is given, and/or any caps specified in the command """ + """Add auth info + + Adds auth info for from input file, or random key if no input + is given, and/or any caps specified in the command + """ caps = self._auth_convert_caps(caps) return super(CephWrapper, self).auth_add( entity, caps=caps, body=body, timeout=timeout) @@ -231,15 +237,23 @@ class CephWrapper(CephClient): entity, caps=caps, body=body, timeout=timeout) def auth_get_or_create(self, entity, caps=None, body='json', timeout=None): - """add auth info for from input file, or random key if no input given, and/or any caps specified in the command """ + """Get or create auth info + + Adds auth info for from input file, or random key if no input + given, and/or any caps specified in the command + """ caps = self._auth_convert_caps(caps) return super(CephWrapper, self).auth_get_or_create( entity, caps, body=body, timeout=timeout) def auth_get_or_create_key(self, entity, caps=None, body='json', timeout=None): + """Get or add auth key - """get, or add, key for from system/caps pairs specified in the command. If key already exists, any given caps must match the existing caps for that key. """ + Gets, or adds, key for from system/caps pairs specified in the + command. If key already exists, any given caps must match the + existing caps for that key. + """ caps = self._auth_convert_caps(caps) response, _body = super(CephWrapper, self).auth_get_or_create_key( entity, caps, body=body, timeout=timeout) diff --git a/ceph/python-cephclient/python-cephclient/test-requirements.txt b/ceph/python-cephclient/python-cephclient/test-requirements.txt index b0f91765..218468dd 100644 --- a/ceph/python-cephclient/python-cephclient/test-requirements.txt +++ b/ceph/python-cephclient/python-cephclient/test-requirements.txt @@ -5,3 +5,4 @@ bandit;python_version>="3.0" flake8 pytest +flake8-import-order \ No newline at end of file diff --git a/ceph/python-cephclient/python-cephclient/tox.ini b/ceph/python-cephclient/python-cephclient/tox.ini index 8be67d0d..4bb4c6f2 100644 --- a/ceph/python-cephclient/python-cephclient/tox.ini +++ b/ceph/python-cephclient/python-cephclient/tox.ini @@ -1,22 +1,28 @@ [tox] -envlist = py27,pep8 +envlist = py27,pep8,bandit skipsdist = True -toxworkdir = /tmp/{env:USER}_python_cephclient_tox +toxworkdir = /tmp/{env:USER}_utilities_python_cephclient_tox [testenv] +basepython = python3.9 setenv = VIRTUAL_ENV={envdir} usedevelop = True install_command = pip install -U --force-reinstall {opts} {packages} deps = -r{toxinidir}/test-requirements.txt -commands = py.test {posargs} +commands = pytest {posargs} whitelist_externals = bash +[testenv:py27] +basepython = python2.7 + [testenv:pep8] commands = flake8 {posargs} [flake8] exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build +import-order-style = google +application-import-names = cephclient [bandit] # The following bandit tests are being skipped: diff --git a/test-requirements.txt b/test-requirements.txt index ce78d98c..d8285da7 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,5 +4,5 @@ bashate >= 0.2 isort<5;python_version>="3.0" pylint<2.1.0;python_version<"3.0" # GPLv2 pylint<2.3.0;python_version>="3.0" # GPLv2 -python-ldap<3.4.0 +flake8-import-order diff --git a/tools/collect_filesystem/app/app.py b/tools/collect_filesystem/app/app.py index c46ef569..151a419c 100644 --- a/tools/collect_filesystem/app/app.py +++ b/tools/collect_filesystem/app/app.py @@ -1,44 +1,43 @@ -import os -import shutil -import logging -import zipfile +import atexit from datetime import datetime from datetime import timedelta from functools import wraps +import logging +import os +import shutil import tarfile +from urllib.parse import quote +from urllib.parse import unquote +import zipfile + +from apscheduler.schedulers.background import BackgroundScheduler +from flask import abort +from flask import after_this_request +from flask import flash +from flask import Flask +from flask import g +from flask import jsonify +from flask import make_response +from flask import redirect +from flask import render_template +from flask import request +from flask import send_file +from flask import session +from flask import url_for +from flask_mail import Mail +from flask_mail import Message +import flask_openid +from launchpadlib.launchpad import Launchpad +import magic from mail_config import custom_mail_password from mail_config import custom_mail_server from mail_config import custom_mail_username from mail_config import custom_server_admins - -import magic -from flask_mail import Mail -from flask_mail import Message -from urllib.parse import quote -from urllib.parse import unquote - -from flask import Flask -from flask import flash -from flask import request -from flask import redirect -from flask import render_template -from flask import g -from flask import session -from flask import url_for -from flask import abort -from flask import send_file -from flask import make_response -from flask import jsonify -from flask import after_this_request -import flask_openid from openid.extensions import pape +import pymysql.cursors from werkzeug.exceptions import RequestEntityTooLarge from werkzeug.utils import secure_filename -import pymysql.cursors -from launchpadlib.launchpad import Launchpad -import atexit -from apscheduler.schedulers.background import BackgroundScheduler logging.basicConfig(filename='collect.log', level=logging.INFO, format='%(asctime)s:%(levelname)s:%(message)s') diff --git a/tools/collector/report/execution_engine.py b/tools/collector/report/execution_engine.py index 7e385e3e..3e12abc4 100755 --- a/tools/collector/report/execution_engine.py +++ b/tools/collector/report/execution_engine.py @@ -14,15 +14,16 @@ # ######################################################################## -import shutil -import algorithms +from datetime import datetime import gzip import logging import os import re +import shutil import subprocess -from datetime import datetime +import algorithms + logger = logging.getLogger(__name__) diff --git a/tools/collector/report/plugin.py b/tools/collector/report/plugin.py index a6fe3016..1ecf40e0 100755 --- a/tools/collector/report/plugin.py +++ b/tools/collector/report/plugin.py @@ -16,11 +16,12 @@ from datetime import datetime -import algorithms import json import logging import os +import algorithms + logger = logging.getLogger(__name__) diff --git a/tools/collector/report/report.py b/tools/collector/report/report.py index d55ac53d..520771cf 100755 --- a/tools/collector/report/report.py +++ b/tools/collector/report/report.py @@ -38,12 +38,12 @@ import argparse from cmath import log +from datetime import datetime +from datetime import timezone import logging import os import time -from datetime import datetime -from datetime import timezone from execution_engine import ExecutionEngine from plugin import Plugin diff --git a/tools/engtools/hostdata-collectors/scripts/buddyinfo.py b/tools/engtools/hostdata-collectors/scripts/buddyinfo.py index 3cf3427d..34464e6d 100644 --- a/tools/engtools/hostdata-collectors/scripts/buddyinfo.py +++ b/tools/engtools/hostdata-collectors/scripts/buddyinfo.py @@ -10,11 +10,11 @@ by querying /proc/buddyinfo Example: # python3 buddyinfo.py """ +from collections import defaultdict +import logging import optparse import os import re -from collections import defaultdict -import logging class Logger: diff --git a/tools/engtools/hostdata-collectors/scripts/live_stream.py b/tools/engtools/hostdata-collectors/scripts/live_stream.py index c32dd745..32fe5085 100644 --- a/tools/engtools/hostdata-collectors/scripts/live_stream.py +++ b/tools/engtools/hostdata-collectors/scripts/live_stream.py @@ -1,26 +1,25 @@ #!/usr/bin/python3 """ -Copyright (c) 2017 Wind River Systems, Inc. +Copyright (c) 2017-2022 Wind River Systems, Inc. SPDX-License-Identifier: Apache-2.0 """ -import os -import sys -import time +from collections import OrderedDict import datetime -import psutil import fcntl import logging -from six.moves import configparser -import itertools -import six -from multiprocessing import Process from multiprocessing import cpu_count -from subprocess import Popen +from multiprocessing import Process +import os from subprocess import PIPE -from collections import OrderedDict +from subprocess import Popen +import sys +import time + +import psutil +from six.moves import configparser from six.moves import input diff --git a/tox.ini b/tox.ini index c120deed..1e0492a2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,18 @@ [tox] -envlist = linters,pylint +envlist = linters,pylint,pep8 minversion = 2.3 skipsdist = True - +toxworkdir = /tmp/{env:USER}_python_utilities_tox stxdir = {toxinidir}/.. [testenv] sitepackages = False -basepython = python3 -install_command = pip install {opts} {packages} +basepython = python3.9 +install_command = pip install \ + -v -v -v \ + -U \ + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \ + {opts} {packages} setenv = VIRTUAL_ENV={envdir} OS_STDOUT_CAPTURE=1 @@ -75,8 +79,10 @@ commands = ignore = F401,F841,W291,W391,W503,W504,W605,E128,E221,E226,E227,E241,E265,E302,E305,E501,E502,E702,E722,H101,H104,H201,H238,H306,H401,H405 # max-line-length is not referenced if E501 is suppressed max-line-length=80 +import-order-style = google +application-import-names = cephclient,ceph_manager,logmgmt,pci_irq_affinity,platform_util -[testenv:flake8] +[testenv:pep8] commands = flake8 @@ -99,7 +105,6 @@ commands = pylint {posargs} \ [testenv:linters] commands = {[testenv:bashate]commands} - {[testenv:flake8]commands} [testenv:bandit] basepython = python3 diff --git a/utilities/logmgmt/logmgmt/logmgmt/logmgmt.py b/utilities/logmgmt/logmgmt/logmgmt/logmgmt.py index c85a51a0..ebd9f82c 100644 --- a/utilities/logmgmt/logmgmt/logmgmt/logmgmt.py +++ b/utilities/logmgmt/logmgmt/logmgmt/logmgmt.py @@ -9,14 +9,15 @@ SPDX-License-Identifier: Apache-2.0 # IMPORTS ################### from __future__ import absolute_import + +import glob import logging import logging.handlers -import time import os -import subprocess -import glob import re +import subprocess import sys +import time from daemon import runner diff --git a/utilities/logmgmt/logmgmt/logmgmt/prepostrotate.py b/utilities/logmgmt/logmgmt/logmgmt/prepostrotate.py index 242c7954..4f5aa096 100644 --- a/utilities/logmgmt/logmgmt/logmgmt/prepostrotate.py +++ b/utilities/logmgmt/logmgmt/logmgmt/prepostrotate.py @@ -11,8 +11,8 @@ SPDX-License-Identifier: Apache-2.0 import array import fcntl -import struct import glob +import struct EXT2_APPEND_FL = 0x00000020 EXT4_EXTENTS_FL = 0x00080000 diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/affinity.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/affinity.py index 26071a4b..d10cabaa 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/affinity.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/affinity.py @@ -12,10 +12,11 @@ """ Define pci_irq_affinity_provider class""" import os -from pci_irq_affinity.driver import AffinePciIrqDriver -from pci_irq_affinity.log import LOG from pci_irq_affinity import nova_provider from pci_irq_affinity import utils as pci_utils +from pci_irq_affinity.driver import AffinePciIrqDriver +from pci_irq_affinity.log import LOG + COMPUTE_IRQ = os.getenv("COMPUTE_IRQ", default="/proc/irq/") diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/agent.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/agent.py index c6cdf56d..595a5ea1 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/agent.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/agent.py @@ -12,22 +12,22 @@ """ Pci interrupt affinity agent daemon entry""" import os -import sys import signal import socket -import eventlet +import sys import threading import time +import eventlet +import oslo_messaging from oslo_service import periodic_task from oslo_service import service -import oslo_messaging from pci_irq_affinity import affinity -from pci_irq_affinity.config import CONF -from pci_irq_affinity.log import LOG from pci_irq_affinity import nova_provider from pci_irq_affinity import utils as pci_utils +from pci_irq_affinity.config import CONF +from pci_irq_affinity.log import LOG stay_on = True diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/config.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/config.py index c8d1130d..f5d4c1a4 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/config.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/config.py @@ -11,8 +11,8 @@ """ Define configuration info for pci-irq-affinity-agent""" -import sys from os import path +import sys from oslo_config import cfg diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/driver.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/driver.py index e7fe373b..06f55204 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/driver.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/driver.py @@ -11,13 +11,13 @@ """ Define AffinePciIrqDriver class""" -from oslo_service import loopingcall from oslo_concurrency import lockutils +from oslo_service import loopingcall -from pci_irq_affinity.config import CONF -from pci_irq_affinity.log import LOG from pci_irq_affinity import nova_provider from pci_irq_affinity import utils as pci_utils +from pci_irq_affinity.config import CONF +from pci_irq_affinity.log import LOG synchronized = lockutils.synchronized_with_prefix('pci_irq_affinity-') diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/guest.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/guest.py index d47c98f2..2f5076e7 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/guest.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/guest.py @@ -11,14 +11,16 @@ """ Encapsulate libvirt related interfaces""" -import libvirt import os -import sys import signal from xml.dom import minidom from xml.etree import ElementTree + +import libvirt + from pci_irq_affinity.log import LOG + debug = 0 # libvirt timeout parameters LIBVIRT_TIMEOUT_SEC = 5.0 diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/nova_provider.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/nova_provider.py index 4f45cad2..2b994e44 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/nova_provider.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/nova_provider.py @@ -14,17 +14,17 @@ This class wraps novaclient access interface and expose get_instance() and get_instances() to other agent classes. """ -import keyring import os import socket +import keyring from keystoneauth1 import loading from keystoneauth1 import session from novaclient import client -from pci_irq_affinity.config import CONF from pci_irq_affinity import guest from pci_irq_affinity import instance +from pci_irq_affinity.config import CONF from pci_irq_affinity.log import LOG diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/tests/test_nova_provider.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/tests/test_nova_provider.py index ff8c662c..f93be7a2 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/tests/test_nova_provider.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/tests/test_nova_provider.py @@ -6,11 +6,12 @@ # All Rights Reserved. # -import mock import unittest -from pci_irq_affinity.config import CONF +import mock + from pci_irq_affinity import nova_provider +from pci_irq_affinity.config import CONF class TestNovaProvider(unittest.TestCase): diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/utils.py b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/utils.py index bfb189d0..856402c4 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/utils.py +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity/utils.py @@ -11,12 +11,12 @@ """ Define utility functions for this agent""" -import os import errno from itertools import groupby +import os + from pci_irq_affinity.log import LOG -import pci_irq_affinity.instance COMPUTE_PCI_DEVICES = os.getenv("COMPUTE_PCI_DEVICES", default="/sys/bus/pci/devices") diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/test-requirements.txt b/utilities/pci-irq-affinity-agent/pci_irq_affinity/test-requirements.txt index 4b743b38..7e5c0ac8 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/test-requirements.txt +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/test-requirements.txt @@ -6,3 +6,4 @@ pylint<2.1.0;python_version<"3.0" # GPLv2 pylint<2.3.0;python_version>="3.0" # GPLv2 pytest mock +flake8-import-order diff --git a/utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini b/utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini index aa4490ff..73d0b88c 100644 --- a/utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini +++ b/utilities/pci-irq-affinity-agent/pci_irq_affinity/tox.ini @@ -1,7 +1,8 @@ [tox] -envlist = py27,flake8 +envlist = py39,py27,pep8 minversion = 2.3 skipsdist = True +toxworkdir = /tmp/{env:USER}_utilities_pci_irq_affinity_agent_tox [testenv] sitepackages = False @@ -59,8 +60,10 @@ basepython = python3.9 ignore = F401,F841,W291,W391,W503,W504,W605,E128,E221,E226,E227,E241,E265,E302,E305,E501,E502,E702,E722,H101,H104,H201,H238,H306,H401,H405 # max-line-length is not referenced if E501 is suppressed max-line-length=80 +import-order-style = google +application-import-names = pci_irq_affinity -[testenv:flake8] +[testenv:pep8] commands = flake8 diff --git a/utilities/platform-util/platform-util/platform_util/license/base.py b/utilities/platform-util/platform-util/platform_util/license/base.py index 0b9fcecd..d4a48d62 100644 --- a/utilities/platform-util/platform-util/platform_util/license/base.py +++ b/utilities/platform-util/platform-util/platform_util/license/base.py @@ -5,6 +5,7 @@ # import abc + import six diff --git a/utilities/worker-utils/worker-utils/topology.py b/utilities/worker-utils/worker-utils/topology.py index b6968f7c..7b74f169 100755 --- a/utilities/worker-utils/worker-utils/topology.py +++ b/utilities/worker-utils/worker-utils/topology.py @@ -1,6 +1,6 @@ #!/usr/bin/python ################################################################################ -# Copyright (c) 2013 Wind River Systems, Inc. +# Copyright (c) 2013-2022 Wind River Systems, Inc. # # SPDX-License-Identifier: Apache-2.0 # @@ -11,9 +11,10 @@ # total memory, and numa nodes from __future__ import print_function -import os -import sys + import re +import sys + class Topology(object): """ Build up topology information.