]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/prometheus: Fix url generation for IPv6 hosts
authorSebastian Wagner <sewagner@redhat.com>
Tue, 17 Aug 2021 10:29:58 +0000 (12:29 +0200)
committerSebastian Wagner <sewagner@redhat.com>
Wed, 18 Aug 2021 10:08:51 +0000 (12:08 +0200)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
src/pybind/mgr/prometheus/module.py

index b99aeb752dee51f57ddc6e2ce7d0d3631d5581c7..8b6fe9d31e0348e8862e10030ebae73daeb5d251 100644 (file)
@@ -8,13 +8,11 @@ import re
 import threading
 import time
 from mgr_module import CLIReadCommand, MgrModule, MgrStandbyModule, PG_STATES, Option, ServiceInfoT
-from mgr_util import get_default_addr, profile_method
+from mgr_util import get_default_addr, profile_method, build_url
 from rbd import RBD
 from collections import namedtuple
-try:
-    from typing import DefaultDict, Optional, Dict, Any, Set, cast, Tuple, Union, List
-except ImportError:
-    pass
+
+from typing import DefaultDict, Optional, Dict, Any, Set, cast, Tuple, Union, List
 
 # Defaults for the Prometheus HTTP server.  Can also set in config-key
 # see https://github.com/prometheus/prometheus/wiki/Default-port-allocations
@@ -1369,10 +1367,10 @@ class Module(MgrModule):
                                              self.STALE_CACHE_RETURN]:
             self.stale_cache_strategy = self.STALE_CACHE_FAIL
 
-        server_addr = self.get_localized_module_option(
-            'server_addr', get_default_addr())
-        server_port = self.get_localized_module_option(
-            'server_port', DEFAULT_PORT)
+        server_addr = cast(str, self.get_localized_module_option(
+            'server_addr', get_default_addr()))
+        server_port = cast(int, self.get_localized_module_option(
+            'server_port', DEFAULT_PORT))
         self.log.info(
             "server_addr: %s server_port: %s" %
             (server_addr, server_port)
@@ -1384,7 +1382,7 @@ class Module(MgrModule):
         # about to start serving
         if server_addr in ['::', '0.0.0.0']:
             server_addr = self.get_mgr_ip()
-        self.set_uri('http://{0}:{1}/'.format(server_addr, server_port))
+        self.set_uri(build_url(scheme='http', host=server_addr, port=server_port))
 
         cherrypy.config.update({
             'server.socket_host': server_addr,