]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Display comma separated ports for RGW services 61587/head
authorKushal Deb <Kushal.Deb@ibm.com>
Wed, 29 Jan 2025 11:13:31 +0000 (16:43 +0530)
committerKushal Deb <Kushal.Deb@ibm.com>
Tue, 4 Feb 2025 05:35:41 +0000 (11:05 +0530)
Signed-off-by: Kushal Deb <Kushal.Deb@ibm.com>
src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/services/cephadmservice.py
src/pybind/mgr/rook/rook_cluster.py
src/python-common/ceph/deployment/service_spec.py

index e42b9fe3b56d7f1632a0f7cd5a70c4bcf5824a17..eef13c75193d21f2e4333313a7de3cc9ff8b773c 100644 (file)
@@ -2375,6 +2375,7 @@ Then run the following:
                 virtual_ip=spec.get_virtual_ip(),
                 ports=spec.get_port_start(),
             )
+
             if spec.service_type == 'ingress':
                 # ingress has 2 daemons running per host
                 # but only if it's the full ingress service, not for keepalive-only
index 607e1bd9019e6d770b2ec728fce73d238eb9cc99..bc1de8c064ede9f116b507e79a0ca2bf0caaa6db 100644 (file)
@@ -1067,7 +1067,11 @@ class RgwService(CephService):
             # this is a redeploy of older instance that doesn't have an explicitly
             # assigned port, in which case we can assume there is only 1 per host
             # and it matches the spec.
-            port = spec.get_port()
+            ports = spec.get_port()
+            if spec.ssl:
+                port = ports[1] if len(ports) > 1 else ports[0]
+            else:
+                port = ports[0]
 
         if spec.generate_cert:
             cert, key = self.mgr.cert_mgr.generate_cert(
index be1b637a30942ab43624d6bf90cbc90346befa4e..54d595d3a2260690dda849753b60ae9a6797dfc8 100644 (file)
@@ -749,9 +749,13 @@ class RookCluster(object):
             port = None
             secure_port = None
             if spec.ssl:
-                secure_port = spec.get_port()
+                _secure_port = spec.get_port()
+                if len(_secure_port) > 1:
+                    secure_port = _secure_port[1]
+                else:
+                    secure_port = _secure_port[0]
             else:
-                port = spec.get_port()
+                port = spec.get_port()[0]
             object_store = cos.CephObjectStore(
                     apiVersion=self.rook_env.api_name,
                     metadata=dict(
index 61eddbed5c2ecd551135952f1331c670958f60d9..9a9217c50cae355706425ddf57bdcf5b05088137 100644 (file)
@@ -1288,15 +1288,29 @@ class RGWSpec(ServiceSpec):
         self.disable_multisite_sync_traffic = disable_multisite_sync_traffic
 
     def get_port_start(self) -> List[int]:
-        return [self.get_port()]
+        ports = self.get_port()
+        return ports
 
-    def get_port(self) -> int:
+    def get_port(self) -> List[int]:
+        ports = []
         if self.rgw_frontend_port:
-            return self.rgw_frontend_port
-        if self.ssl:
-            return 443
-        else:
-            return 80
+            ports.append(self.rgw_frontend_port)
+
+        ssl_port = next(
+            (
+                int(arg.split('=')[1])
+                for arg in (self.rgw_frontend_extra_args or [])
+                if arg.startswith("ssl_port=")
+            ),
+            None,
+        )
+
+        if self.ssl and ssl_port:
+            ports.append(ssl_port)
+        if not ports:
+            ports.append(443 if self.ssl else 80)
+
+        return ports
 
     def validate(self) -> None:
         super(RGWSpec, self).validate()