diff options
author | Michal Skalski <mskalski@mirantis.com> | 2016-09-15 05:09:53 +0200 |
---|---|---|
committer | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2016-09-17 13:32:15 +0200 |
commit | 983af0184b9c0fbf6deecb2a851f4f89cc362c25 (patch) | |
tree | 21debbb89be2f44f9f6398b84b5289df56c3546c /deploy/cloud/configure_nodes.py | |
parent | 1cead5571d504f5e0525eac22e9b4831867d7c18 (diff) |
Stop using network transformation
Due the bug in code we did not apply network transformation to created
environments, but still Fuel base on chosen segmentation type and
networks to NICs assigment has been generated network schema itself.
Since we don't use custom network schema we can remove transformation
defintions from dea pod overrides files. However there is a need to
configure NIC properties in case of dpdk deployment.
JIRA: FUEL-192
Change-Id: Ib7dab4d61910ac8c44b6d91e0c486c9693034823
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Diffstat (limited to 'deploy/cloud/configure_nodes.py')
-rw-r--r-- | deploy/cloud/configure_nodes.py | 60 |
1 files changed, 44 insertions, 16 deletions
diff --git a/deploy/cloud/configure_nodes.py b/deploy/cloud/configure_nodes.py index 20ecc1724..ea50307b1 100644 --- a/deploy/cloud/configure_nodes.py +++ b/deploy/cloud/configure_nodes.py @@ -45,9 +45,6 @@ class ConfigureNodes(object): exec_cmd('fuel node set --node-id %s --role %s --env %s' % (node_id, roles_blade[0], self.env_id)) - # Download the unmodified default deployment configuration, because we - # need it for the network config. - self.download_deployment_config() for node_id, roles_blade in self.node_id_roles_dict.iteritems(): # Modify node attributes self.download_attributes(node_id) @@ -56,13 +53,18 @@ class ConfigureNodes(object): # Modify interfaces configuration self.download_interface_config(node_id) self.modify_node_interface(node_id, roles_blade) - self.modify_node_network_schemes(node_id, roles_blade) self.upload_interface_config(node_id) + # Currently not used, we use default deployment facts + # which are generated by fuel based on type segmentation + # and network to nic assignment + # # Download our modified deployment configuration, which includes our # changes to network topology etc. - self.download_deployment_config() - self.upload_deployment_config() + #self.download_deployment_config() + #for node_id, roles_blade in self.node_id_roles_dict.iteritems(): + # self.modify_node_network_schemes(node_id, roles_blade) + #self.upload_deployment_config() def modify_node_network_schemes(self, node_id, roles_blade): log('Modify network transformations for node %s' % node_id) @@ -71,14 +73,14 @@ class ConfigureNodes(object): deployment_dir = '%s/deployment_%s' % ( self.yaml_config_dir, self.env_id) backup(deployment_dir) - for node_file in glob.glob(deployment_dir + '/*_%s.yaml' % node_id): - with io.open(node_file) as stream: - node = yaml.load(stream) + node_file = ('%s/%s.yaml' % (deployment_dir, node_id)) + with io.open(node_file) as stream: + node = yaml.load(stream) - node['network_scheme'].update(transformations) + node['network_scheme'].update(transformations) - with io.open(node_file, 'w') as stream: - yaml.dump(node, stream, default_flow_style=False) + with io.open(node_file, 'w') as stream: + yaml.dump(node, stream, default_flow_style=False) def download_deployment_config(self): log('Download deployment config for environment %s' % self.env_id) @@ -129,6 +131,22 @@ class ConfigureNodes(object): with open(attributes_yaml, 'w') as stream: yaml.dump(result_attributes, stream, default_flow_style=False) + # interface configuration can + # looks like this: + # + # interfaces_dpdk: + # ens3: + # - fuelweb_admin + # ens4: + # - storage + # - management + # ens5: + # - interface_properties: + # dpdk: + # enabled: true + # - private + # ens6: + # - public def modify_node_interface(self, node_id, roles_blade): log('Modify interface config for node %s' % node_id) interface_yaml = ('%s/node_%s/interfaces.yaml' @@ -150,11 +168,21 @@ class ConfigureNodes(object): for interface in interfaces: interface['assigned_networks'] = [] if interface['name'] in interface_config: - for net_name in interface_config[interface['name']]: + for prop in interface_config[interface['name']]: net = {} - net['id'] = net_name_id[net_name] - net['name'] = net_name - interface['assigned_networks'].append(net) + #net name + if isinstance(prop, six.string_types): + net['id'] = net_name_id[prop] + net['name'] = prop + interface['assigned_networks'].append(net) + #network properties + elif isinstance(prop, dict): + if not 'interface_properties' in prop: + log('Interface configuration contain unknow dict: %s' % prop) + continue + interface['interface_properties'] = \ + self._merge_dicts(interface.get('interface_properties', {}), + prop.get('interface_properties', {})) with io.open(interface_yaml, 'w') as stream: yaml.dump(interfaces, stream, default_flow_style=False) |