2018-11-06 14:35:48 +01:00
|
|
|
diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py
|
2019-06-14 12:46:07 +02:00
|
|
|
index a8a3ec07c1..bcc9b86c37 100644
|
2018-11-06 14:35:48 +01:00
|
|
|
--- a/src/pybind/mgr/dashboard/module.py
|
|
|
|
+++ b/src/pybind/mgr/dashboard/module.py
|
2019-06-14 12:46:07 +02:00
|
|
|
@@ -25,40 +25,6 @@ except ImportError:
|
|
|
|
|
|
|
|
from .services.sso import load_sso_db
|
2018-11-06 14:35:48 +01:00
|
|
|
|
|
|
|
-# The SSL code in CherryPy 3.5.0 is buggy. It was fixed long ago,
|
|
|
|
-# but 3.5.0 is still shipping in major linux distributions
|
|
|
|
-# (Fedora 27, Ubuntu Xenial), so we must monkey patch it to get SSL working.
|
|
|
|
-if cherrypy is not None:
|
|
|
|
- v = StrictVersion(cherrypy.__version__)
|
|
|
|
- # It was fixed in 3.7.0. Exact lower bound version is probably earlier,
|
|
|
|
- # but 3.5.0 is what this monkey patch is tested on.
|
2019-06-14 12:46:07 +02:00
|
|
|
- if StrictVersion("3.5.0") <= v < StrictVersion("3.7.0"):
|
2018-11-06 14:35:48 +01:00
|
|
|
- from cherrypy.wsgiserver.wsgiserver2 import HTTPConnection,\
|
|
|
|
- CP_fileobject
|
|
|
|
-
|
|
|
|
- def fixed_init(hc_self, server, sock, makefile=CP_fileobject):
|
|
|
|
- hc_self.server = server
|
|
|
|
- hc_self.socket = sock
|
|
|
|
- hc_self.rfile = makefile(sock, "rb", hc_self.rbufsize)
|
|
|
|
- hc_self.wfile = makefile(sock, "wb", hc_self.wbufsize)
|
|
|
|
- hc_self.requests_seen = 0
|
|
|
|
-
|
|
|
|
- HTTPConnection.__init__ = fixed_init
|
|
|
|
-
|
2019-06-14 12:46:07 +02:00
|
|
|
-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify
|
|
|
|
-# that the ports its listening on are in fact bound. When using the any address
|
|
|
|
-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes)
|
|
|
|
-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught
|
|
|
|
-# exception.
|
|
|
|
-if cherrypy is not None:
|
|
|
|
- v = StrictVersion(cherrypy.__version__)
|
|
|
|
- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on
|
|
|
|
- # centos:7) and back to at least 3.0.0.
|
|
|
|
- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"):
|
|
|
|
- # https://github.com/cherrypy/cherrypy/issues/1100
|
|
|
|
- from cherrypy.process import servers
|
|
|
|
- servers.wait_for_occupied_port = lambda host, port: None
|
2018-11-06 14:35:48 +01:00
|
|
|
-
|
|
|
|
if 'COVERAGE_ENABLED' in os.environ:
|
|
|
|
import coverage
|
2019-06-14 12:46:07 +02:00
|
|
|
__cov = coverage.Coverage(config_file="{}/.coveragerc".format(os.path.dirname(__file__)),
|
|
|
|
diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py
|
|
|
|
index b7fecf8d85..dfd4160591 100644
|
|
|
|
--- a/src/pybind/mgr/prometheus/module.py
|
|
|
|
+++ b/src/pybind/mgr/prometheus/module.py
|
|
|
|
@@ -18,20 +18,6 @@ from rbd import RBD
|
|
|
|
DEFAULT_ADDR = '::'
|
|
|
|
DEFAULT_PORT = 9283
|
|
|
|
|
|
|
|
-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify
|
|
|
|
-# that the ports its listening on are in fact bound. When using the any address
|
|
|
|
-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes)
|
|
|
|
-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught
|
|
|
|
-# exception.
|
|
|
|
-if cherrypy is not None:
|
|
|
|
- v = StrictVersion(cherrypy.__version__)
|
|
|
|
- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on
|
|
|
|
- # centos:7) and back to at least 3.0.0.
|
|
|
|
- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"):
|
|
|
|
- # https://github.com/cherrypy/cherrypy/issues/1100
|
|
|
|
- from cherrypy.process import servers
|
|
|
|
- servers.wait_for_occupied_port = lambda host, port: None
|
|
|
|
-
|
|
|
|
# cherrypy likes to sys.exit on error. don't let it take us down too!
|
|
|
|
def os_exit_noop(*args, **kwargs):
|
|
|
|
pass
|