node extract provisioned - warning no net_conf tpl
Add a warning to the baremetal_deployment.yaml generated with the node extract provisioned command in case no network config was found for a role in the deployed stack. This is always true if the current stack is pre-Victoria, since the command looks for Ansible J2 template. pre-Victoria used Heat template so the template parameter won't be set. Change-Id: I6789799480a1391b92336e2518a2ac2b800288e5
This commit is contained in:
parent
e3c66d6a20
commit
90ee1b3a72
@ -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',
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user