diff --git a/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py b/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py index 533aca898..d58b9f131 100644 --- a/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py +++ b/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py @@ -911,7 +911,6 @@ class TestExtractProvisionedNode(test_utils.TestCommand): 'parameters': { 'ComputeHostnameFormat': '%stackname%-novacompute-%index%', 'ControllerHostnameFormat': '%stackname%-controller-%index%', - 'ComputeNetworkConfigTemplate': 'templates/compute.j2', 'ControllerNetworkConfigTemplate': 'templates/controller.j2' }, 'outputs': [{ @@ -1085,7 +1084,7 @@ class TestExtractProvisionedNode(test_utils.TestCommand): 'network_config': {'network_config_update': False, 'physical_bridge_name': 'br-ex', 'public_interface_name': 'nic1', - 'template': 'templates/compute.j2'}, + 'template': None}, 'networks': [{'network': 'ctlplane', 'vif': True}, {'network': 'internal_api', @@ -1126,7 +1125,11 @@ class TestExtractProvisionedNode(test_utils.TestCommand): }], yaml.safe_load(result)) with open(self.extract_file.name) as f: - self.assertEqual(yaml.safe_load(result), yaml.safe_load(f)) + file_content = f.read() + self.assertEqual(yaml.safe_load(result), yaml.safe_load(file_content)) + self.assertIn('# WARNING: No network config found for role Compute. ' + 'Please edit the file and set the path to the correct ' + 'network config template.\n', file_content) def test_extract_ips_from_pool(self): stack = mock.Mock() @@ -1164,7 +1167,7 @@ class TestExtractProvisionedNode(test_utils.TestCommand): 'network_config': {'network_config_update': False, 'physical_bridge_name': 'br-ex', 'public_interface_name': 'nic1', - 'template': 'templates/compute.j2'}, + 'template': None}, 'networks': [{'network': 'ctlplane', 'vif': True}, {'network': 'internal_api', diff --git a/tripleoclient/v1/overcloud_node.py b/tripleoclient/v1/overcloud_node.py index e1d4dfe80..f4471457b 100644 --- a/tripleoclient/v1/overcloud_node.py +++ b/tripleoclient/v1/overcloud_node.py @@ -563,6 +563,7 @@ class ExtractProvisionedNode(command.Command): hostname_node_map[hostname] = node.name data = [] + warnings = [] for role_name, entries in host_vars.items(): role_count = len(entries) @@ -601,6 +602,11 @@ class ExtractProvisionedNode(command.Command): net_conf = defaults['network_config'] = {} net_conf['template'] = parameters.get( role_name + 'NetworkConfigTemplate') + if net_conf['template'] is None: + warnings.append( + 'WARNING: No network config found for role {}. Please ' + 'edit the file and set the path to the correct network ' + 'config template.'.format(role_name)) if parameters.get(role_name + 'NetworkDeploymentActions'): network_deployment_actions = parameters.get( @@ -662,6 +668,11 @@ class ExtractProvisionedNode(command.Command): datetime.datetime.now().isoformat()) file_data.write('# openstack %s\n#\n\n' % ' '.join(self.app.command_options)) + # Write any warnings in the file header + for warning in warnings: + file_data.write('# {}\n'.format(warning)) + if warnings: + file_data.write(('#\n\n')) # Write the data if data: yaml.dump(data, file_data, RoleDataDumper, width=120,