From f29aac19c4f1d16c8ebfed922d20dd84d757e51b Mon Sep 17 00:00:00 2001 From: David Ames Date: Fri, 18 Oct 2019 10:14:34 -0700 Subject: [PATCH] Handle OSCI environment variables Move to preferred TEST_* environment variables, while remaining backward compatible. --- .../utilities/test_zaza_utilities_generic.py | 25 +++++++++++- zaza/openstack/utilities/generic.py | 38 +++++++++++++------ 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/unit_tests/utilities/test_zaza_utilities_generic.py b/unit_tests/utilities/test_zaza_utilities_generic.py index 4aa73f6..1d9d686 100644 --- a/unit_tests/utilities/test_zaza_utilities_generic.py +++ b/unit_tests/utilities/test_zaza_utilities_generic.py @@ -141,7 +141,30 @@ class TestGenericUtils(ut_utils.BaseTestCase): self.assertEqual(generic_utils.get_undercloud_env_vars(), _expected_result) - # Overriding configure.network named variables + # Prefered OSCI TEST_ env vars + _env = {"NET_ID": "netid", + "NAMESERVER": "10.0.0.10", + "GATEWAY": "10.0.0.1", + "CIDR_EXT": "10.0.0.0/24", + "FIP_RANGE": "10.0.200.0:10.0.200.254", + "TEST_NET_ID": "test_netid", + "TEST_NAMESERVER": "10.9.0.10", + "TEST_GATEWAY": "10.9.0.1", + "TEST_CIDR_EXT": "10.9.0.0/24", + "TEST_FIP_RANGE": "10.9.200.0:10.0.200.254"} + _expected_result = {} + _expected_result["net_id"] = _env["TEST_NET_ID"] + _expected_result["external_dns"] = _env["TEST_NAMESERVER"] + _expected_result["default_gateway"] = _env["TEST_GATEWAY"] + _expected_result["external_net_cidr"] = _env["TEST_CIDR_EXT"] + _expected_result["start_floating_ip"] = _env[ + "TEST_FIP_RANGE"].split(":")[0] + _expected_result["end_floating_ip"] = _env[ + "TEST_FIP_RANGE"].split(":")[1] + self.assertEqual(generic_utils.get_undercloud_env_vars(), + _expected_result) + + # Overriding local configure.network named variables _override = {"start_floating_ip": "10.100.50.0", "end_floating_ip": "10.100.50.254", "default_gateway": "10.100.0.1", diff --git a/zaza/openstack/utilities/generic.py b/zaza/openstack/utilities/generic.py index 856e036..2c81b88 100644 --- a/zaza/openstack/utilities/generic.py +++ b/zaza/openstack/utilities/generic.py @@ -139,21 +139,35 @@ def get_undercloud_env_vars(): :returns: Network environment variables :rtype: dict """ - # Handle backward compatibile OSCI enviornment variables + # Handle OSCI environment variables + # Over time we have changed the names of prefixes. Try them all in + # ascending order of significance. + # Note: TEST_* is the preferred prefix + _prefixes = ["AMULET_", "MOJO_", "OS_", "", "TEST_"] _vars = {} - _vars['net_id'] = os.environ.get('NET_ID') - _vars['external_dns'] = os.environ.get('NAMESERVER') - _vars['default_gateway'] = os.environ.get('GATEWAY') - _vars['external_net_cidr'] = os.environ.get('CIDR_EXT') + for prefix in _prefixes: + if os.environ.get('{}NET_ID'.format(prefix)) is not None: + _vars['net_id'] = os.environ.get('{}NET_ID'.format(prefix)) + if os.environ.get('{}NAMESERVER'.format(prefix))is not None: + _vars['external_dns'] = os.environ.get( + '{}NAMESERVER'.format(prefix)) + if os.environ.get('{}GATEWAY'.format(prefix)) is not None: + _vars['default_gateway'] = os.environ.get( + '{}GATEWAY'.format(prefix)) + if os.environ.get('{}CIDR_EXT'.format(prefix)) is not None: + _vars['external_net_cidr'] = os.environ.get( + '{}CIDR_EXT'.format(prefix)) - # Take FIP_RANGE and create start and end floating ips - _fip_range = os.environ.get('FIP_RANGE') - if _fip_range and ':' in _fip_range: - _vars['start_floating_ip'] = os.environ.get('FIP_RANGE').split(':')[0] - _vars['end_floating_ip'] = os.environ.get('FIP_RANGE').split(':')[1] + # Take FIP_RANGE and create start and end floating ips + _fip_range = os.environ.get('{}FIP_RANGE'.format(prefix)) + if _fip_range is not None and ':' in _fip_range: + _vars['start_floating_ip'] = os.environ.get( + '{}FIP_RANGE'.format(prefix)).split(':')[0] + _vars['end_floating_ip'] = os.environ.get( + '{}FIP_RANGE'.format(prefix)).split(':')[1] - # Env var naming consistent with zaza.openstack.configure.network - # functions takes priority. Override backward compatible settings. + # zaza.openstack.configure.network functions variables still take priority + # for local testing. Override OSCI settings. _keys = ['default_gateway', 'start_floating_ip', 'end_floating_ip',