]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/ansible: Moved RGW defaults to ansible
authorSebastian Wagner <sebastian.wagner@suse.com>
Wed, 24 Jul 2019 11:55:03 +0000 (13:55 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Wed, 31 Jul 2019 07:49:03 +0000 (09:49 +0200)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/ansible/module.py
src/pybind/mgr/orchestrator.py
src/pybind/mgr/orchestrator_cli/test_orchestrator.py

index 9b00401b8b537ae6824734326519da16070e2495..cb60dc7f818ace51bfe9c4f7b8cd1bca66f3663b 100644 (file)
@@ -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
index 30dc36e2b3b10117d8b217a2969662973dd58860..50740fb956cadec55564c2ae0f140b0adffd2879 100644 (file)
@@ -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."""
index 93bfc909aba51fd1104331ad0d8376f0e7e517a8..e372647d65dd9c3643ec564feb60ee1074aedfdf 100644 (file)
@@ -1,4 +1,7 @@
 from __future__ import absolute_import
+
+import json
+
 import pytest