X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftest_apex_network_environment.py;h=b4d7e7178d46c05691d9d19951c7d9dc9c22ccf5;hb=605342b46095341c9301456c81e354c73e2197eb;hp=90c89073277be84c17c9e1b4a675c22b551b254b;hpb=5e590a06ad0d3d859b865e2cc2428cb6be679099;p=apex.git diff --git a/tests/test_apex_network_environment.py b/tests/test_apex_network_environment.py index 90c89073..b4d7e717 100644 --- a/tests/test_apex_network_environment.py +++ b/tests/test_apex_network_environment.py @@ -7,9 +7,24 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +import ipaddress + +from copy import copy + +from apex.common.constants import ( + EXTERNAL_NETWORK, + TENANT_NETWORK, + STORAGE_NETWORK, + API_NETWORK, + CONTROLLER) from apex.network_settings import NetworkSettings -from apex.network_environment import NetworkEnvironment -from apex.network_environment import NetworkEnvException +from apex.network_environment import ( + NetworkEnvironment, + NetworkEnvException, + EXTERNAL_RESOURCES, + TENANT_RESOURCES, + STORAGE_RESOURCES, + API_RESOURCES) from nose.tools import assert_equal from nose.tools import assert_raises @@ -21,6 +36,12 @@ class TestNetworkEnvironment(object): @classmethod def setup_class(klass): """This method is run once for each class before any tests are run""" + klass.ns = NetworkSettings( + '../config/network/network_settings.yaml') + klass.ns_vlans = NetworkSettings( + '../config/network/network_settings_vlans.yaml') + klass.ns_ipv6 = NetworkSettings( + '../config/network/network_settings_v6.yaml') @classmethod def teardown_class(klass): @@ -33,10 +54,117 @@ class TestNetworkEnvironment(object): """This method is run once after _each_ test method is executed""" def test_init(self): - assert_raises(NetworkEnvException, NetworkEnvironment, None, '../build/network-environment.yaml') + assert_raises(NetworkEnvException, NetworkEnvironment, + None, '../build/network-environment.yaml') + + def test_netenv_settings_external_network_vlans(self): + # test vlans + ne = NetworkEnvironment(self.ns_vlans, + '../build/network-environment.yaml') + assert_equal(ne['parameter_defaults']['NeutronExternalNetworkBridge'], + '""') + assert_equal(ne['parameter_defaults']['ExternalNetworkVlanID'], 501) - def test_get_netenv_settings(self): - ns = NetworkSettings('../config/network/network_settings.yaml', True) + def test_netenv_settings_external_network_ipv6(self): + # Test IPv6 + ne = NetworkEnvironment(self.ns_ipv6, + '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::External'] + assert_equal(regstr.split('/')[-1], 'external_v6.yaml') + + def test_netenv_settings_external_network_removed(self): + ns = copy(self.ns) + # Test removing EXTERNAL_NETWORK + ns.enabled_network_list.remove(EXTERNAL_NETWORK) ne = NetworkEnvironment(ns, '../build/network-environment.yaml') - assert_is_instance(ne.get_netenv_settings(), dict) - assert_not_equal(ne.get_netenv_settings(), {}) + regstr = ne['resource_registry']['OS::TripleO::Network::External'] + assert_equal(regstr.split('/')[-1], 'OS::Heat::None') + + def test_netenv_settings_tenant_network_vlans(self): + # test vlans + ne = NetworkEnvironment(self.ns_vlans, + '../build/network-environment.yaml') + assert_equal(ne['parameter_defaults']['TenantNetworkVlanID'], 401) + +# Apex is does not support v6 tenant networks +# Though there is code that would fire if a +# v6 cidr was passed in, just uncomment this to +# cover that code +# def test_netenv_settings_tenant_network_v6(self): +# # Test IPv6 +# ne = NetworkEnvironment(self.ns_ipv6, +# '../build/network-environment.yaml') +# regstr = ne['resource_registry'][next(iter(TENANT_RESOURCES.keys()))] +# assert_equal(regstr.split('/')[-1], 'tenant_v6.yaml') + + def test_netenv_settings_tenant_network_removed(self): + ns = copy(self.ns) + # Test removing TENANT_NETWORK + ns.enabled_network_list.remove(TENANT_NETWORK) + ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::Tenant'] + assert_equal(regstr.split('/')[-1], 'OS::Heat::None') + + def test_netenv_settings_storage_network_vlans(self): + # test vlans + ne = NetworkEnvironment(self.ns_vlans, + '../build/network-environment.yaml') + assert_equal(ne['parameter_defaults']['StorageNetworkVlanID'], 201) + + def test_netenv_settings_storage_network_v6(self): + # Test IPv6 + ne = NetworkEnvironment(self.ns_ipv6, + '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::Storage'] + assert_equal(regstr.split('/')[-1], 'storage_v6.yaml') + + def test_netenv_settings_storage_network_removed(self): + ns = copy(self.ns) + # Test removing STORAGE_NETWORK + ns.enabled_network_list.remove(STORAGE_NETWORK) + ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::Storage'] + assert_equal(regstr.split('/')[-1], 'OS::Heat::None') + + def test_netenv_settings_api_network_v4(self): + ns = copy(self.ns_vlans) + ns['networks'][API_NETWORK]['enabled'] = True + ns['networks'][API_NETWORK]['cidr'] = '10.11.12.0/24' + ns = NetworkSettings(ns) + # test vlans + ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + assert_equal(ne['parameter_defaults']['InternalApiNetworkVlanID'], 101) + + def test_netenv_settings_api_network_vlans(self): + ns = copy(self.ns_vlans) + ns['networks'][API_NETWORK]['enabled'] = True + ns = NetworkSettings(ns) + # test vlans + ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + assert_equal(ne['parameter_defaults']['InternalApiNetworkVlanID'], 101) + + def test_netenv_settings_api_network_v6(self): + # Test IPv6 + ne = NetworkEnvironment(self.ns_ipv6, + '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::InternalApi'] + assert_equal(regstr.split('/')[-1], 'internal_api_v6.yaml') + + def test_netenv_settings_api_network_removed(self): + ns = copy(self.ns) + # API_NETWORK is not in the default network settings file + ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + regstr = ne['resource_registry']['OS::TripleO::Network::InternalApi'] + assert_equal(regstr.split('/')[-1], 'OS::Heat::None') + + def test_numa_configs(self): + ne = NetworkEnvironment(self.ns, '../build/network-environment.yaml', + compute_pre_config=True, + controller_pre_config=True) + assert_is_instance(ne, dict) + assert_not_equal(ne, {}) + + def test_exception(self): + e = NetworkEnvException("test") + print(e) + assert_is_instance(e, NetworkEnvException)