# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from apex.common.constants import (
- EXTERNAL_NETWORK,
- STORAGE_NETWORK,
- ADMIN_NETWORK,
-)
-
-from apex.network_settings import (
- NetworkSettings,
- NetworkSettingsException,
-)
+import os
from nose.tools import (
assert_equal,
assert_raises
)
-files_dir = '../config/network/'
+from apex.common.constants import (
+ EXTERNAL_NETWORK,
+ STORAGE_NETWORK,
+ ADMIN_NETWORK,
+)
+from apex import NetworkSettings
+from apex.settings.network_settings import NetworkSettingsException
+from apex.tests.constants import TEST_CONFIG_DIR
+
+files_dir = os.path.join(TEST_CONFIG_DIR, 'network')
class TestNetworkSettings(object):
def test_init(self):
assert_is_instance(
- NetworkSettings(files_dir+'network_settings.yaml'),
+ NetworkSettings(os.path.join(files_dir, 'network_settings.yaml')),
NetworkSettings)
def test_init_vlans(self):
assert_is_instance(
- NetworkSettings(files_dir+'network_settings_vlans.yaml'),
+ NetworkSettings(os.path.join(files_dir,
+ 'network_settings_vlans.yaml')),
NetworkSettings)
# TODO, v6 test is stuck
# NetworkSettings)
def test_init_admin_disabled_or_missing(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# remove admin, apex section will re-add it
ns['networks'].pop('admin', None)
assert_raises(NetworkSettingsException, NetworkSettings, ns)
assert_raises(NetworkSettingsException, NetworkSettings, ns)
def test_init_collapse_storage(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# remove storage
ns['networks'].pop('storage', None)
assert_is_instance(NetworkSettings(ns), NetworkSettings)
def test_init_missing_dns_domain(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# remove storage
ns.pop('dns-domain', None)
assert_is_instance(NetworkSettings(ns), NetworkSettings)
- def test_dump_bash(self):
- ns = NetworkSettings('../config/network/network_settings.yaml')
- assert_equal(ns.dump_bash(), None)
- assert_equal(ns.dump_bash(path='/dev/null'), None)
-
def test_get_network_settings(self):
- ns = NetworkSettings('../config/network/network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
assert_is_instance(ns, NetworkSettings)
for role in ['controller', 'compute']:
nic_index = 0
nic_index += 1
def test_get_enabled_networks(self):
- ns = NetworkSettings('../config/network/network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
assert_is_instance(ns.enabled_network_list, list)
def test_invalid_nic_members(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
storage_net_nicmap = ns['networks'][STORAGE_NETWORK]['nic_mapping']
# set duplicate nic
storage_net_nicmap['controller']['members'][0] = 'eth0'
assert_raises(NetworkSettingsException, NetworkSettings, ns)
def test_missing_vlan(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
storage_net_nicmap = ns['networks'][STORAGE_NETWORK]['nic_mapping']
# remove vlan from storage net
storage_net_nicmap['compute'].pop('vlan', None)
# assert_is_instance(NetworkSettings(ns), NetworkSettings)
def test_admin_fail_auto_detect(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# remove cidr and installer_vm to fail autodetect
ns['networks'][ADMIN_NETWORK].pop('cidr', None)
ns['networks'][ADMIN_NETWORK].pop('installer_vm', None)
assert_is_instance(e, NetworkSettingsException)
def test_config_ip(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# set the provisioner ip to None to force _gen_ip to generate one
ns['networks'][ADMIN_NETWORK]['installer_vm']['ip'] = None
ns['networks'][EXTERNAL_NETWORK][0]['installer_vm']['ip'] = None
'192.168.37.1')
def test_config_gateway(self):
- ns = NetworkSettings(files_dir+'network_settings.yaml')
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
# set the gateway ip to None to force _config_gateway to generate one
ns['networks'][EXTERNAL_NETWORK][0]['gateway'] = None
# Now rebuild network settings object and check for a repopulated value