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
(cherry picked from commit 90ee1b3a72
)
This commit is contained in:
parent
d451aaa291
commit
930663240b
@ -751,7 +751,6 @@ class TestExtractProvisionedNode(test_utils.TestCommand):
|
|||||||
'parameters': {
|
'parameters': {
|
||||||
'ComputeHostnameFormat': '%stackname%-novacompute-%index%',
|
'ComputeHostnameFormat': '%stackname%-novacompute-%index%',
|
||||||
'ControllerHostnameFormat': '%stackname%-controller-%index%',
|
'ControllerHostnameFormat': '%stackname%-controller-%index%',
|
||||||
'ComputeNetworkConfigTemplate': 'templates/compute.j2',
|
|
||||||
'ControllerNetworkConfigTemplate': 'templates/controller.j2'
|
'ControllerNetworkConfigTemplate': 'templates/controller.j2'
|
||||||
},
|
},
|
||||||
'outputs': [{
|
'outputs': [{
|
||||||
@ -927,7 +926,7 @@ class TestExtractProvisionedNode(test_utils.TestCommand):
|
|||||||
'network_config': {'network_config_update': False,
|
'network_config': {'network_config_update': False,
|
||||||
'physical_bridge_name': 'br-ex',
|
'physical_bridge_name': 'br-ex',
|
||||||
'public_interface_name': 'nic1',
|
'public_interface_name': 'nic1',
|
||||||
'template': 'templates/compute.j2'},
|
'template': None},
|
||||||
'networks': [{'network': 'ctlplane',
|
'networks': [{'network': 'ctlplane',
|
||||||
'vif': True},
|
'vif': True},
|
||||||
{'network': 'internal_api',
|
{'network': 'internal_api',
|
||||||
@ -968,7 +967,11 @@ class TestExtractProvisionedNode(test_utils.TestCommand):
|
|||||||
}], yaml.safe_load(result))
|
}], yaml.safe_load(result))
|
||||||
|
|
||||||
with open(self.extract_file.name) as f:
|
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):
|
def test_extract_ips_from_pool(self):
|
||||||
stack = mock.Mock()
|
stack = mock.Mock()
|
||||||
@ -1006,7 +1009,7 @@ class TestExtractProvisionedNode(test_utils.TestCommand):
|
|||||||
'network_config': {'network_config_update': False,
|
'network_config': {'network_config_update': False,
|
||||||
'physical_bridge_name': 'br-ex',
|
'physical_bridge_name': 'br-ex',
|
||||||
'public_interface_name': 'nic1',
|
'public_interface_name': 'nic1',
|
||||||
'template': 'templates/compute.j2'},
|
'template': None},
|
||||||
'networks': [{'network': 'ctlplane',
|
'networks': [{'network': 'ctlplane',
|
||||||
'vif': True},
|
'vif': True},
|
||||||
{'network': 'internal_api',
|
{'network': 'internal_api',
|
||||||
|
@ -550,6 +550,7 @@ class ExtractProvisionedNode(command.Command):
|
|||||||
hostname_node_map[hostname] = node.name
|
hostname_node_map[hostname] = node.name
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
|
warnings = []
|
||||||
for role_name, entries in host_vars.items():
|
for role_name, entries in host_vars.items():
|
||||||
role_count = len(entries)
|
role_count = len(entries)
|
||||||
|
|
||||||
@ -588,6 +589,11 @@ class ExtractProvisionedNode(command.Command):
|
|||||||
net_conf = defaults['network_config'] = {}
|
net_conf = defaults['network_config'] = {}
|
||||||
net_conf['template'] = parameters.get(
|
net_conf['template'] = parameters.get(
|
||||||
role_name + 'NetworkConfigTemplate')
|
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'):
|
if parameters.get(role_name + 'NetworkDeploymentActions'):
|
||||||
network_deployment_actions = parameters.get(
|
network_deployment_actions = parameters.get(
|
||||||
@ -649,6 +655,11 @@ class ExtractProvisionedNode(command.Command):
|
|||||||
datetime.datetime.now().isoformat())
|
datetime.datetime.now().isoformat())
|
||||||
file_data.write('# openstack %s\n#\n\n' %
|
file_data.write('# openstack %s\n#\n\n' %
|
||||||
' '.join(self.app.command_options))
|
' '.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
|
# Write the data
|
||||||
if data:
|
if data:
|
||||||
yaml.dump(data, file_data, RoleDataDumper, width=120,
|
yaml.dump(data, file_data, RoleDataDumper, width=120,
|
||||||
|
Loading…
Reference in New Issue
Block a user