# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import yaml
-import logging
import ipaddress
-
+import logging
from copy import copy
-from .common import utils
-from . import ip_utils
-from .common.constants import (
+
+import yaml
+
+from apex.common import utils
+from apex.common.constants import (
CONTROLLER,
COMPUTE,
ROLES,
EXTERNAL_NETWORK,
OPNFV_NETWORK_TYPES,
)
+from apex.network import ip_utils
class NetworkSettings(dict):
super().__init__(init_dict)
if 'apex' in self:
- # merge two dics Nondestructively
+ # merge two dicts Non-destructively
def merge(pri, sec):
for key, val in sec.items():
if key in pri:
if 'dns-domain' not in self:
self['domain_name'] = DOMAIN_NAME
+ else:
+ self['domain_name'] = self['dns-domain']
self['dns_servers'] = self.get('dns_nameservers', DNS_SERVERS)
self['ntp_servers'] = self.get('ntp', NTP_SERVER)
- gateway
"""
if network == ADMIN_NETWORK:
+ # FIXME: _config_ip function does not exist!
self._config_ip(network, None, 'provisioner_ip', 1)
self._config_ip_range(network=network,
ip_range='dhcp_range',
ip_range='introspection_range',
start_offset=11, count=9)
elif network == EXTERNAL_NETWORK:
+ # FIXME: _config_ip function does not exist!
self._config_ip(network, None, 'provisioner_ip', 1)
self._config_ip_range(network=network,
ip_range='floating_ip_range',
logging.info("Config Gateway: {} {}".format(network, gateway))
- def dump_bash(self, path=None):
- """
- Prints settings for bash consumption.
-
- If optional path is provided, bash string will be written to the file
- instead of stdout.
- """
- def flatten(name, obj, delim=','):
- """
- flatten lists to delim separated strings
- flatten dics to underscored key names and string values
- """
- if isinstance(obj, list):
- return "{}=\'{}\'\n".format(name,
- delim.join(map(lambda x: str(x),
- obj)))
- elif isinstance(obj, dict):
- flat_str = ''
- for k in obj:
- flat_str += flatten("{}_{}".format(name, k), obj[k])
- return flat_str
- elif isinstance(obj, str):
- return "{}='{}'\n".format(name, obj)
- else:
- return "{}={}\n".format(name, str(obj))
-
- bash_str = ''
- for network in self.enabled_network_list:
- _network = self.get_network(network)
- bash_str += flatten(network, _network)
- bash_str += flatten('enabled_network_list',
- self.enabled_network_list, ' ')
- bash_str += flatten('ip_addr_family', self.get_ip_addr_family())
- bash_str += flatten('dns_servers', self['dns_servers'], ' ')
- bash_str += flatten('domain_name', self['dns-domain'], ' ')
- bash_str += flatten('ntp_server', self['ntp_servers'][0], ' ')
- utils.write_str(bash_str, path)
-
def get_ip_addr_family(self,):
"""
Returns IP address family for current deployment.