From: Sebastian Wagner Date: Wed, 24 Jul 2019 11:55:03 +0000 (+0200) Subject: mgr/ansible: Moved RGW defaults to ansible X-Git-Tag: v15.1.0~1997^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1d72af6258e4da8889a8d36f4c559f4258140f30;p=ceph-ci.git mgr/ansible: Moved RGW defaults to ansible Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/ansible/module.py b/src/pybind/mgr/ansible/module.py index 9b00401b8b5..cb60dc7f818 100644 --- a/src/pybind/mgr/ansible/module.py +++ b/src/pybind/mgr/ansible/module.py @@ -711,7 +711,27 @@ class Module(MgrModule, orchestrator.Orchestrator): raise orchestrator.OrchestratorError("No hosts provided. " "At least one destination host is needed to install the RGW " "service") - spec.set_ansible_defaults() + + def set_rgwspec_defaults(spec): + spec.rgw_multisite = spec.rgw_multisite if spec.rgw_multisite is not None else True + spec.rgw_zonemaster = spec.rgw_zonemaster if spec.rgw_zonemaster is not None else True + spec.rgw_zonesecondary = spec.rgw_zonesecondary \ + if spec.rgw_zonesecondary is not None else False + spec.rgw_multisite_proto = spec.rgw_multisite_proto \ + if spec.rgw_multisite_proto is not None else "http" + spec.rgw_frontend_port = spec.rgw_frontend_port \ + if spec.rgw_frontend_port is not None else 8080 + + spec.rgw_zonegroup = spec.rgw_zonegroup if spec.rgw_zonegroup is not None else "Main" + spec.rgw_zone_user = spec.rgw_zone_user if spec.rgw_zone_user is not None else "zone.user" + spec.rgw_realm = spec.rgw_realm if spec.rgw_realm is not None else "RGW_Realm" + + spec.system_access_key = spec.system_access_key \ + if spec.system_access_key is not None else spec.genkey(20) + spec.system_secret_key = spec.system_secret_key \ + if spec.system_secret_key is not None else spec.genkey(40) + + set_rgwspec_defaults(spec) InventoryGroup("rgws", self.ar_client).update(hosts) # Limit playbook execution to certain hosts diff --git a/src/pybind/mgr/orchestrator.py b/src/pybind/mgr/orchestrator.py index 30dc36e2b3b..50740fb956c 100644 --- a/src/pybind/mgr/orchestrator.py +++ b/src/pybind/mgr/orchestrator.py @@ -692,21 +692,33 @@ class NFSServiceSpec(StatelessServiceSpec): class RGWSpec(StatelessServiceSpec): """ Settings to configure a (multisite) Ceph RGW + """ - # TODO: move all default values to a dedicated method. I don't want to overwrite - # Rook's default values. - def __init__(self, hosts=None, rgw_multisite=None, rgw_zone=None, - rgw_zonemaster=None, rgw_zonesecondary=None, - rgw_multisite_proto=None, rgw_frontend_port=None, - rgw_zonegroup=None, rgw_zone_user=None, - rgw_realm=None, system_access_key=None, - system_secret_key=None, count=None): + def __init__(self, + rgw_zone, # type: str + hosts=None, # type: Optional[List[str]] + rgw_multisite=None, # type: Optional[bool] + rgw_zonemaster=None, # type: Optional[bool] + rgw_zonesecondary=None, # type: Optional[bool] + rgw_multisite_proto=None, # type: Optional[str] + rgw_frontend_port=None, # type: Optional[int] + rgw_zonegroup=None, # type: Optional[str] + rgw_zone_user=None, # type: Optional[str] + rgw_realm=None, # type: Optional[str] + system_access_key=None, # type: Optional[str] + system_secret_key=None, # type: Optional[str] + count=None # type: Optional[int] + ): + # Regarding default values. Ansible has a `set_rgwspec_defaults` that sets + # default values that makes sense for Ansible. Rook has default values implemented + # in Rook itself. Thus we don't set any defaults here in this class. super(RGWSpec, self).__init__(name=rgw_zone, count=count) #: List of hosts where RGWs should run. Not for Rook. self.hosts = hosts + #: is multisite self.rgw_multisite = rgw_multisite self.rgw_zonemaster = rgw_zonemaster self.rgw_zonesecondary = rgw_zonesecondary @@ -720,25 +732,6 @@ class RGWSpec(StatelessServiceSpec): self.system_access_key = system_access_key self.system_secret_key = system_secret_key - def set_ansible_defaults(self): - self.rgw_multisite = self.rgw_multisite if self.rgw_multisite is not None else True - self.rgw_zonemaster = self.rgw_zonemaster if self.rgw_zonemaster is not None else True - self.rgw_zonesecondary = self.rgw_zonesecondary \ - if self.rgw_zonesecondary is not None else False - self.rgw_multisite_proto = self.rgw_multisite_proto \ - if self.rgw_multisite_proto is not None else "http" - self.rgw_frontend_port = self.rgw_frontend_port \ - if self.rgw_frontend_port is not None else 8080 - - self.rgw_zonegroup = self.rgw_zonegroup if self.rgw_zonegroup is not None else "Main" - self.rgw_zone_user = self.rgw_zone_user if self.rgw_zone_user is not None else "zone.user" - self.rgw_realm = self.rgw_realm if self.rgw_realm is not None else "RGW_Realm" - - self.system_access_key = self.system_access_key \ - if self.system_access_key is not None else self.genkey(20) - self.system_secret_key = self.system_secret_key \ - if self.system_secret_key is not None else self.genkey(40) - @property def rgw_multisite_endpoint_addr(self): """Returns the first host. Not supported for Rook.""" diff --git a/src/pybind/mgr/orchestrator_cli/test_orchestrator.py b/src/pybind/mgr/orchestrator_cli/test_orchestrator.py index 93bfc909aba..e372647d65d 100644 --- a/src/pybind/mgr/orchestrator_cli/test_orchestrator.py +++ b/src/pybind/mgr/orchestrator_cli/test_orchestrator.py @@ -1,4 +1,7 @@ from __future__ import absolute_import + +import json + import pytest