X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fpython%2Fapex%2Fnetwork_environment.py;h=dbe89b214cfc3074b8723d73bd17ca36815b7710;hb=a32ab67813d8e33c359a5205d221e71ca9409091;hp=5cb2d0cd95e41e3ed3be355042d31e55b8442eeb;hpb=71e6d415218ba10930752a0e241d670c6d5a8127;p=apex.git diff --git a/lib/python/apex/network_environment.py b/lib/python/apex/network_environment.py index 5cb2d0cd..dbe89b21 100644 --- a/lib/python/apex/network_environment.py +++ b/lib/python/apex/network_environment.py @@ -21,7 +21,9 @@ from .common.constants import ( COMPUTE_PRE, PRE_CONFIG_DIR ) +from .network_settings import NetworkSettings +HEAT_NONE = 'OS::Heat::None' PORTS = '/ports' # Resources defined by : EXTERNAL_RESOURCES = {'OS::TripleO::Network::External': None, @@ -62,15 +64,13 @@ class NetworkEnvironment(dict): Create Network Environment according to Network Settings """ init_dict = {} - if type(filename) is str: + if isinstance(filename, str): with open(filename, 'r') as net_env_fh: init_dict = yaml.safe_load(net_env_fh) super().__init__(init_dict) - try: - enabled_nets = net_settings.enabled_network_list - except: - raise NetworkEnvException('Invalid Network Setting object') + if not isinstance(net_settings, NetworkSettings): + raise NetworkEnvException('Invalid Network Settings object') self._set_tht_dir() @@ -85,19 +85,21 @@ class NetworkEnvironment(dict): nets[ADMIN_NETWORK]['installer_vm']['ip'] self[param_def]['DnsServers'] = net_settings['dns_servers'] - if EXTERNAL_NETWORK in enabled_nets: - external_cidr = nets[EXTERNAL_NETWORK][0]['cidr'] + if EXTERNAL_NETWORK in net_settings.enabled_network_list: + external_cidr = net_settings.get_network(EXTERNAL_NETWORK)['cidr'] self[param_def]['ExternalNetCidr'] = str(external_cidr) - if type(nets[EXTERNAL_NETWORK][0]['installer_vm']['vlan']) is int: + external_vlan = self._get_vlan(net_settings.get_network( + EXTERNAL_NETWORK)) + if isinstance(external_vlan, int): self[param_def]['NeutronExternalNetworkBridge'] = '""' - self[param_def]['ExternalNetworkVlanID'] = \ - nets[EXTERNAL_NETWORK][0]['installer_vm']['vlan'] - external_range = nets[EXTERNAL_NETWORK][0]['usable_ip_range'] + self[param_def]['ExternalNetworkVlanID'] = external_vlan + external_range = net_settings.get_network(EXTERNAL_NETWORK)[ + 'overcloud_ip_range'] self[param_def]['ExternalAllocationPools'] = \ [{'start': str(external_range[0]), 'end': str(external_range[1])}] self[param_def]['ExternalInterfaceDefaultRoute'] = \ - nets[EXTERNAL_NETWORK][0]['gateway'] + net_settings.get_network(EXTERNAL_NETWORK)['gateway'] if external_cidr.version == 6: postfix = '/external_v6.yaml' @@ -109,8 +111,8 @@ class NetworkEnvironment(dict): # apply resource registry update for EXTERNAL_RESOURCES self._config_resource_reg(EXTERNAL_RESOURCES, postfix) - if TENANT_NETWORK in enabled_nets: - tenant_range = nets[TENANT_NETWORK]['usable_ip_range'] + if TENANT_NETWORK in net_settings.enabled_network_list: + tenant_range = nets[TENANT_NETWORK]['overcloud_ip_range'] self[param_def]['TenantAllocationPools'] = \ [{'start': str(tenant_range[0]), 'end': str(tenant_range[1])}] @@ -122,7 +124,7 @@ class NetworkEnvironment(dict): postfix = '/tenant.yaml' tenant_vlan = self._get_vlan(nets[TENANT_NETWORK]) - if type(tenant_vlan) is int: + if isinstance(tenant_vlan, int): self[param_def]['TenantNetworkVlanID'] = tenant_vlan else: postfix = '/noop.yaml' @@ -130,8 +132,8 @@ class NetworkEnvironment(dict): # apply resource registry update for TENANT_RESOURCES self._config_resource_reg(TENANT_RESOURCES, postfix) - if STORAGE_NETWORK in enabled_nets: - storage_range = nets[STORAGE_NETWORK]['usable_ip_range'] + if STORAGE_NETWORK in net_settings.enabled_network_list: + storage_range = nets[STORAGE_NETWORK]['overcloud_ip_range'] self[param_def]['StorageAllocationPools'] = \ [{'start': str(storage_range[0]), 'end': str(storage_range[1])}] @@ -142,7 +144,7 @@ class NetworkEnvironment(dict): else: postfix = '/storage.yaml' storage_vlan = self._get_vlan(nets[STORAGE_NETWORK]) - if type(storage_vlan) is int: + if isinstance(storage_vlan, int): self[param_def]['StorageNetworkVlanID'] = storage_vlan else: postfix = '/noop.yaml' @@ -150,8 +152,8 @@ class NetworkEnvironment(dict): # apply resource registry update for STORAGE_RESOURCES self._config_resource_reg(STORAGE_RESOURCES, postfix) - if API_NETWORK in enabled_nets: - api_range = nets[API_NETWORK]['usable_ip_range'] + if API_NETWORK in net_settings.enabled_network_list: + api_range = nets[API_NETWORK]['overcloud_ip_range'] self[param_def]['InternalApiAllocationPools'] = \ [{'start': str(api_range[0]), 'end': str(api_range[1])}] @@ -162,7 +164,7 @@ class NetworkEnvironment(dict): else: postfix = '/internal_api.yaml' api_vlan = self._get_vlan(nets[API_NETWORK]) - if type(api_vlan) is int: + if isinstance(api_vlan, int): self[param_def]['InternalApiNetworkVlanID'] = api_vlan else: postfix = '/noop.yaml' @@ -170,11 +172,6 @@ class NetworkEnvironment(dict): # apply resource registry update for API_RESOURCES self._config_resource_reg(API_RESOURCES, postfix) - if compute_pre_config: - self[reg][COMPUTE_PRE] = PRE_CONFIG_DIR + "compute/numa.yaml" - if controller_pre_config: - self[reg][CONTROLLER_PRE] = PRE_CONFIG_DIR + "controller/numa.yaml" - # Set IPv6 related flags to True. Not that we do not set those to False # when IPv4 is configured, we'll use the default or whatever the user # may have set. @@ -183,9 +180,9 @@ class NetworkEnvironment(dict): self[param_def][flag] = True def _get_vlan(self, network): - if type(network['nic_mapping'][CONTROLLER]['vlan']) is int: + if isinstance(network['nic_mapping'][CONTROLLER]['vlan'], int): return network['nic_mapping'][CONTROLLER]['vlan'] - elif type(network['nic_mapping'][COMPUTE]['vlan']) is int: + elif isinstance(network['nic_mapping'][COMPUTE]['vlan'], int): return network['nic_mapping'][COMPUTE]['vlan'] else: return 'native' @@ -196,7 +193,7 @@ class NetworkEnvironment(dict): if prefix is None: prefix = '' m = re.split('%s/\w+\.yaml' % prefix, self[reg][key]) - if m is not None: + if m is not None and len(m) > 1: self.tht_dir = m[0] break if not self.tht_dir: @@ -205,6 +202,9 @@ class NetworkEnvironment(dict): def _config_resource_reg(self, resources, postfix): for key, prefix in resources.items(): if prefix is None: + if postfix == '/noop.yaml': + self[reg][key] = HEAT_NONE + continue prefix = '' self[reg][key] = self.tht_dir + prefix + postfix