Collecting stats with enabled SSL fixed
In case of enabled SSL for cluster we should set 'https_proxy' environment variable. We can't validate SSL certificate due to: - https://bugs.launchpad.net/fuel/+bug/1491805 - https://bugs.launchpad.net/fuel/+bug/1491811 As temporary workaround SSL verification disabled for stats fetchers. Change-Id: If04d99d4293caab50f89fc51209a1e9ca071ab63 Closes-Bug: #1491015
This commit is contained in:
parent
0dfcf73deb
commit
974db6c544
@ -53,7 +53,8 @@ class ClientProvider(object):
|
||||
self._nova = nova_client.Client(
|
||||
settings.OPENSTACK_API_VERSION["nova"],
|
||||
*self.credentials,
|
||||
service_type=consts.NOVA_SERVICE_TYPE.compute
|
||||
service_type=consts.NOVA_SERVICE_TYPE.compute,
|
||||
insecure=True
|
||||
)
|
||||
|
||||
return self._nova
|
||||
@ -63,7 +64,8 @@ class ClientProvider(object):
|
||||
if self._cinder is None:
|
||||
self._cinder = cinder_client.Client(
|
||||
settings.OPENSTACK_API_VERSION["cinder"],
|
||||
*self.credentials
|
||||
*self.credentials,
|
||||
insecure=True
|
||||
)
|
||||
|
||||
return self._cinder
|
||||
@ -100,9 +102,9 @@ class ClientProvider(object):
|
||||
for version_data in discover.version_data():
|
||||
version = version_data["version"][0]
|
||||
if version <= 2:
|
||||
return keystone_client_v2.Client(**auth_creds)
|
||||
return keystone_client_v2.Client(insecure=True, **auth_creds)
|
||||
elif version == 3:
|
||||
return keystone_client_v3.Client(**auth_creds)
|
||||
return keystone_client_v3.Client(insecure=True, **auth_creds)
|
||||
|
||||
raise Exception("Failed to discover keystone version "
|
||||
"for auth_url {0}".format(
|
||||
|
@ -111,17 +111,18 @@ def set_proxy(proxy):
|
||||
|
||||
:param proxy: - proxy url
|
||||
"""
|
||||
proxy_old_value = None
|
||||
|
||||
if os.environ.get("http_proxy"):
|
||||
proxy_old_value = os.environ["http_proxy"]
|
||||
logger.warning("http_proxy variable is already set with "
|
||||
"value: {0}. Change to {1}. Old value "
|
||||
"will be restored after exit from script's "
|
||||
"execution context"
|
||||
.format(proxy_old_value, proxy))
|
||||
|
||||
os.environ["http_proxy"] = proxy
|
||||
variable_values = {
|
||||
'http_proxy': os.environ.get('http_proxy'),
|
||||
'https_proxy': os.environ.get('https_proxy')
|
||||
}
|
||||
for variable_name, variable_value in variable_values.items():
|
||||
if os.environ.get(variable_name):
|
||||
logger.warning("{0} variable is already set with "
|
||||
"value: {1}. Changing to {2}. Old value "
|
||||
"will be restored after exit from script's "
|
||||
"execution context"
|
||||
.format(variable_name, variable_value, proxy))
|
||||
os.environ[variable_name] = proxy
|
||||
|
||||
try:
|
||||
yield
|
||||
@ -129,12 +130,14 @@ def set_proxy(proxy):
|
||||
logger.exception("Error while talking to proxy. Details: {0}"
|
||||
.format(six.text_type(e)))
|
||||
finally:
|
||||
if proxy_old_value:
|
||||
logger.info("Restoring old value for http_proxy")
|
||||
os.environ["http_proxy"] = proxy_old_value
|
||||
else:
|
||||
logger.info("Deleting set http_proxy environment variable")
|
||||
del os.environ["http_proxy"]
|
||||
for variable_name, variable_value in variable_values.items():
|
||||
if variable_value:
|
||||
logger.info("Restoring old value for http_proxy")
|
||||
os.environ[variable_name] = variable_value
|
||||
else:
|
||||
logger.info("Deleting set {0} environment variable"
|
||||
.format(variable_name))
|
||||
del os.environ[variable_name]
|
||||
|
||||
|
||||
def dithered(medium, interval=(0.9, 1.1)):
|
||||
|
@ -64,7 +64,8 @@ class TestOpenStackClientProvider(BaseTestCase):
|
||||
nova_client_mock.assert_called_once_with(
|
||||
settings.OPENSTACK_API_VERSION["nova"],
|
||||
*fake_credentials,
|
||||
service_type=consts.NOVA_SERVICE_TYPE.compute
|
||||
service_type=consts.NOVA_SERVICE_TYPE.compute,
|
||||
insecure=True
|
||||
)
|
||||
|
||||
with patch(cinder_client_path,
|
||||
@ -76,7 +77,8 @@ class TestOpenStackClientProvider(BaseTestCase):
|
||||
|
||||
cinder_client_mock.assert_called_once_with(
|
||||
settings.OPENSTACK_API_VERSION["cinder"],
|
||||
*fake_credentials
|
||||
*fake_credentials,
|
||||
insecure=True
|
||||
)
|
||||
|
||||
with patch.object(client_provider, "_get_keystone_client",
|
||||
@ -129,7 +131,7 @@ class TestOpenStackClientProvider(BaseTestCase):
|
||||
|
||||
self.assertTrue(kc_client_inst is client_inst_mock)
|
||||
|
||||
client_class_mock.assert_called_with(**auth_creds)
|
||||
client_class_mock.assert_called_with(insecure=True, **auth_creds)
|
||||
|
||||
check_returned(version_data_v2, kc_v2_mock, kc_v2_inst_mock)
|
||||
check_returned(version_data_v3, kc_v3_mock, kc_v3_inst_mock)
|
||||
|
@ -28,12 +28,13 @@ class TestUtilsFunctions(BaseTestCase):
|
||||
def check_proxy():
|
||||
with utils.set_proxy(new_proxy):
|
||||
self.assertEqual(os.environ.get("http_proxy"), new_proxy)
|
||||
self.assertEqual(os.environ.get("https_proxy"), new_proxy)
|
||||
|
||||
def raise_inside_context():
|
||||
with utils.set_proxy(new_proxy):
|
||||
raise Exception("Just an error")
|
||||
|
||||
expected = {"http_proxy": "test"}
|
||||
expected = {"http_proxy": "test_http", "https_proxy": "test_https"}
|
||||
new_proxy = "fake_proxy"
|
||||
|
||||
# check that proxy old value is restored
|
||||
@ -42,18 +43,24 @@ class TestUtilsFunctions(BaseTestCase):
|
||||
check_proxy()
|
||||
self.assertEqual(os.environ.get("http_proxy"),
|
||||
expected["http_proxy"])
|
||||
self.assertEqual(os.environ.get("https_proxy"),
|
||||
expected["https_proxy"])
|
||||
|
||||
raise_inside_context()
|
||||
self.assertEqual(os.environ.get("http_proxy"),
|
||||
expected["http_proxy"])
|
||||
self.assertEqual(os.environ.get("https_proxy"),
|
||||
expected["https_proxy"])
|
||||
|
||||
# check that env variable is deleted
|
||||
# after exit from context manager w/ and w/o exception
|
||||
check_proxy()
|
||||
self.assertNotIn("http_proxy", os.environ)
|
||||
self.assertNotIn("https_proxy", os.environ)
|
||||
|
||||
raise_inside_context()
|
||||
self.assertNotIn("http_proxy", os.environ)
|
||||
self.assertNotIn("https_proxy", os.environ)
|
||||
|
||||
def test_get_attr_value(self):
|
||||
attributes = {
|
||||
|
Loading…
Reference in New Issue
Block a user