From 56f11c015ad323bb31e9fa372d30541b4b54de41 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Tue, 25 Aug 2020 15:33:06 +0200 Subject: [PATCH] mgr/cephadm: PEP8tify cephadmservice.py Signed-off-by: Sebastian Wagner --- .../mgr/cephadm/services/cephadmservice.py | 97 +++++++++---------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index c42cc121d61..1de8b56d51a 100644 --- a/src/pybind/mgr/cephadm/services/cephadmservice.py +++ b/src/pybind/mgr/cephadm/services/cephadmservice.py @@ -22,13 +22,13 @@ ServiceSpecs = TypeVar('ServiceSpecs', bound=ServiceSpec) class CephadmDaemonSpec(Generic[ServiceSpecs]): # typing.NamedTuple + Generic is broken in py36 def __init__(self, host: str, daemon_id, - spec: Optional[ServiceSpecs]=None, - network: Optional[str]=None, - keyring: Optional[str]=None, - extra_args: Optional[List[str]]=None, - extra_config: Optional[Dict[str, Any]]=None, - daemon_type: Optional[str]=None, - ports: Optional[List[int]]=None,): + spec: Optional[ServiceSpecs] = None, + network: Optional[str] = None, + keyring: Optional[str] = None, + extra_args: Optional[List[str]] = None, + extra_config: Optional[Dict[str, Any]] = None, + daemon_type: Optional[str] = None, + ports: Optional[List[int]] = None,): """ Used for * deploying new daemons. then everything is set @@ -58,7 +58,6 @@ class CephadmDaemonSpec(Generic[ServiceSpecs]): # TCP ports used by the daemon self.ports: List[int] = ports or [] - def name(self) -> str: return '%s.%s' % (self.daemon_type, self.daemon_id) @@ -96,7 +95,6 @@ class CephadmService(metaclass=ABCMeta): keyring=daemon_spec.keyring, extra_ceph_config=daemon_spec.extra_config.pop('config', '')) - if daemon_spec.extra_config: cephadm_config.update({'files': daemon_spec.extra_config}) @@ -199,8 +197,6 @@ class CephadmService(metaclass=ABCMeta): except MonCommandFailed as e: logger.warning('Failed to set Dashboard config for %s: %s', service_name, e) - - def ok_to_stop(self, daemon_ids: List[str]) -> HandleCommandResult: names = [f'{self.TYPE}.{d_id}' for d_id in daemon_ids] out = f'It is presumed safe to stop {names}' @@ -230,6 +226,7 @@ class CephadmService(metaclass=ABCMeta): """ pass + class MonService(CephadmService): TYPE = 'mon' @@ -256,7 +253,8 @@ class MonService(CephadmService): elif ':' not in network: extra_config += 'public addr = %s\n' % network else: - raise OrchestratorError('Must specify a CIDR network, ceph addrvec, or plain IP: \'%s\'' % network) + raise OrchestratorError( + 'Must specify a CIDR network, ceph addrvec, or plain IP: \'%s\'' % network) else: # try to get the public_network from the config ret, network, err = self.mgr.check_mon_command({ @@ -266,13 +264,15 @@ class MonService(CephadmService): }) network = network.strip() if network else network if not network: - raise OrchestratorError('Must set public_network config option or specify a CIDR network, ceph addrvec, or plain IP') + raise OrchestratorError( + 'Must set public_network config option or specify a CIDR network, ceph addrvec, or plain IP') if '/' not in network: - raise OrchestratorError('public_network is set but does not look like a CIDR network: \'%s\'' % network) + raise OrchestratorError( + 'public_network is set but does not look like a CIDR network: \'%s\'' % network) extra_config += 'public network = %s\n' % network - daemon_spec.extra_config={'config': extra_config} - daemon_spec.keyring=keyring + daemon_spec.extra_config = {'config': extra_config} + daemon_spec.keyring = keyring return self.mgr._create_daemon(daemon_spec) @@ -293,10 +293,11 @@ class MonService(CephadmService): new_mons = [m for m in mons if m != mon_id] new_quorum = [m for m in j['quorum_names'] if m != mon_id] if len(new_quorum) > len(new_mons) / 2: - logger.info('Safe to remove mon.%s: new quorum should be %s (from %s)' % (mon_id, new_quorum, new_mons)) + logger.info('Safe to remove mon.%s: new quorum should be %s (from %s)' % + (mon_id, new_quorum, new_mons)) return - raise OrchestratorError('Removing %s would break mon quorum (new quorum %s, new mons %s)' % (mon_id, new_quorum, new_mons)) - + raise OrchestratorError( + 'Removing %s would break mon quorum (new quorum %s, new mons %s)' % (mon_id, new_quorum, new_mons)) def pre_remove(self, daemon_id: str) -> None: self._check_safe_to_destroy(daemon_id) @@ -328,7 +329,6 @@ class MgrService(CephadmService): 'mds', 'allow *'], }) - # Retrieve ports used by manager modules # In the case of the dashboard port and with several manager daemons # running in different hosts, it exists the possibility that the @@ -338,7 +338,7 @@ class MgrService(CephadmService): ports = [] config_ports = '' ret, mgr_services, err = self.mgr.check_mon_command({ - 'prefix': 'mgr services', + 'prefix': 'mgr services', }) if mgr_services: mgr_endpoints = json.loads(mgr_services) @@ -353,7 +353,7 @@ class MgrService(CephadmService): daemon_spec.keyring = keyring return self.mgr._create_daemon(daemon_spec) - + def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription: active_mgr_str = self.mgr.get('mgr_map')['active_name'] for daemon in daemon_descrs: @@ -393,7 +393,7 @@ class MdsService(CephadmService): daemon_spec.keyring = keyring return self.mgr._create_daemon(daemon_spec) - + def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription: active_mds_strs = list() for fs in self.mgr.get('fs_map')['filesystems']: @@ -446,8 +446,8 @@ class RgwService(CephadmService): cert_data = spec.rgw_frontend_ssl_certificate else: raise OrchestratorError( - 'Invalid rgw_frontend_ssl_certificate: %s' - % spec.rgw_frontend_ssl_certificate) + 'Invalid rgw_frontend_ssl_certificate: %s' + % spec.rgw_frontend_ssl_certificate) ret, out, err = self.mgr.check_mon_command({ 'prefix': 'config-key set', 'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.crt', @@ -461,8 +461,8 @@ class RgwService(CephadmService): key_data = spec.rgw_frontend_ssl_key else: raise OrchestratorError( - 'Invalid rgw_frontend_ssl_key: %s' - % spec.rgw_frontend_ssl_key) + 'Invalid rgw_frontend_ssl_key: %s' + % spec.rgw_frontend_ssl_key) ret, out, err = self.mgr.check_mon_command({ 'prefix': 'config-key set', 'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.key', @@ -497,15 +497,15 @@ class RgwService(CephadmService): if utils.get_cluster_health(self.mgr) != 'HEALTH_OK': raise OrchestratorError('Health not ok, will try agin when health ok') - #get keyring needed to run rados commands and strip out just the keyring - keyring = self.get_keyring(rgw_id).split('key = ',1)[1].rstrip() + # get keyring needed to run rados commands and strip out just the keyring + keyring = self.get_keyring(rgw_id).split('key = ', 1)[1].rstrip() # We can call radosgw-admin within the container, cause cephadm gives the MGR the required keyring permissions def get_realms() -> List[str]: cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'realm', 'list', '--format=json'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -520,18 +520,18 @@ class RgwService(CephadmService): def create_realm(): cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'realm', 'create', - '--rgw-realm=%s'%spec.rgw_realm, + '--rgw-realm=%s' % spec.rgw_realm, '--default'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - self.mgr.log.info('created realm: %s'%spec.rgw_realm) + self.mgr.log.info('created realm: %s' % spec.rgw_realm) def get_zonegroups() -> List[str]: cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'zonegroup', 'list', '--format=json'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -546,8 +546,8 @@ class RgwService(CephadmService): def create_zonegroup(): cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'zonegroup', 'create', '--rgw-zonegroup=default', '--master', '--default'] @@ -561,8 +561,8 @@ class RgwService(CephadmService): def get_zones() -> List[str]: cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'zone', 'list', '--format=json'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -577,15 +577,14 @@ class RgwService(CephadmService): def create_zone(): cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'zone', 'create', '--rgw-zonegroup=default', - '--rgw-zone=%s'%spec.rgw_zone, + '--rgw-zone=%s' % spec.rgw_zone, '--master', '--default'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - self.mgr.log.info('created zone: %s'%spec.rgw_zone) - + self.mgr.log.info('created zone: %s' % spec.rgw_zone) changes = False realms = get_realms() @@ -602,10 +601,10 @@ class RgwService(CephadmService): # update period if changes were made if changes: cmd = ['radosgw-admin', - '--key=%s'%keyring, - '--user', 'rgw.%s'%rgw_id, + '--key=%s' % keyring, + '--user', 'rgw.%s' % rgw_id, 'period', 'update', - '--rgw-realm=%s'%spec.rgw_realm, + '--rgw-realm=%s' % spec.rgw_realm, '--commit'] result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.mgr.log.info('updated period') -- 2.39.5