Add option to set template paths in env population
Overcloud node and network provisioning plays currently
write environment files with a hard coded THT-root path.
Add 'templates' parameter to the modules so that the user
can specify the templates path.
Related-Bug: #1932079
Change-Id: I9decd8fb9860cd17dc9e69b9970d9f9dabf11428
(cherry picked from commit af92fbc650
)
This commit is contained in:
parent
fdfd13bbd9
commit
c7136d06fc
|
@ -15,6 +15,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from copy import deepcopy as dcopy
|
from copy import deepcopy as dcopy
|
||||||
|
import os
|
||||||
|
|
||||||
import jsonschema
|
import jsonschema
|
||||||
|
|
||||||
import metalsmith
|
import metalsmith
|
||||||
|
@ -492,14 +494,13 @@ def check_existing(instances, provisioner, baremetal):
|
||||||
|
|
||||||
|
|
||||||
def populate_environment(instance_uuids, provisioner, environment,
|
def populate_environment(instance_uuids, provisioner, environment,
|
||||||
ctlplane_network):
|
ctlplane_network, templates):
|
||||||
|
|
||||||
resource_registry = environment.setdefault(
|
resource_registry = environment.setdefault(
|
||||||
'resource_registry', {})
|
'resource_registry', {})
|
||||||
resource_registry.setdefault(
|
resource_registry.setdefault(
|
||||||
'OS::TripleO::DeployedServer::ControlPlanePort',
|
'OS::TripleO::DeployedServer::ControlPlanePort',
|
||||||
'/usr/share/openstack-tripleo-heat-templates'
|
os.path.join(templates, 'deployed-server/deployed-neutron-port.yaml'))
|
||||||
'/deployed-server/deployed-neutron-port.yaml')
|
|
||||||
port_map = (environment.setdefault('parameter_defaults', {})
|
port_map = (environment.setdefault('parameter_defaults', {})
|
||||||
.setdefault('DeployedServerPortMap', {}))
|
.setdefault('DeployedServerPortMap', {}))
|
||||||
for uuid in instance_uuids:
|
for uuid in instance_uuids:
|
||||||
|
|
|
@ -64,6 +64,11 @@ options:
|
||||||
description:
|
description:
|
||||||
- Name of control plane network
|
- Name of control plane network
|
||||||
default: ctlplane
|
default: ctlplane
|
||||||
|
templates:
|
||||||
|
description:
|
||||||
|
- The path to tripleo-heat-templates root directory
|
||||||
|
type: path
|
||||||
|
default: /usr/share/openstack-tripleo-heat-templates
|
||||||
'''
|
'''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
|
@ -117,7 +122,8 @@ def main():
|
||||||
instance_uuids=instance_uuids,
|
instance_uuids=instance_uuids,
|
||||||
provisioner=provisioner,
|
provisioner=provisioner,
|
||||||
environment=module.params['environment'],
|
environment=module.params['environment'],
|
||||||
ctlplane_network=module.params['ctlplane_network']
|
ctlplane_network=module.params['ctlplane_network'],
|
||||||
|
templates=module.params['templates']
|
||||||
)
|
)
|
||||||
module.exit_json(
|
module.exit_json(
|
||||||
changed=False,
|
changed=False,
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import ipaddress
|
import os
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
@ -45,6 +45,12 @@ options:
|
||||||
description:
|
description:
|
||||||
- Structure describing a TripleO composable network
|
- Structure describing a TripleO composable network
|
||||||
type: list
|
type: list
|
||||||
|
templates:
|
||||||
|
description:
|
||||||
|
- The path to tripleo-heat-templates root directory
|
||||||
|
type: path
|
||||||
|
default: /usr/share/openstack-tripleo-heat-templates
|
||||||
|
|
||||||
author:
|
author:
|
||||||
- Harald Jensås <hjensas@redhat.com>
|
- Harald Jensås <hjensas@redhat.com>
|
||||||
'''
|
'''
|
||||||
|
@ -70,12 +76,12 @@ EXAMPLES = '''
|
||||||
- name: External
|
- name: External
|
||||||
- name: InternalApi
|
- name: InternalApi
|
||||||
name_lower: internal_api
|
name_lower: internal_api
|
||||||
|
templates: /home/stack/tripleo-heat-templates
|
||||||
register: network_environment
|
register: network_environment
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
def get_net_ip_version(subnets, net_data):
|
def get_net_ip_version(subnets, net_data):
|
||||||
|
|
||||||
ip_versions = {subnet.ip_version for subnet in subnets}
|
ip_versions = {subnet.ip_version for subnet in subnets}
|
||||||
|
|
||||||
if {4, 6} == ip_versions:
|
if {4, 6} == ip_versions:
|
||||||
|
@ -121,7 +127,8 @@ def get_subnets_attrs(subnets):
|
||||||
return subnets_map
|
return subnets_map
|
||||||
|
|
||||||
|
|
||||||
def set_composable_network_attrs(module, conn, name_lower, net_data, attrs=None,
|
def set_composable_network_attrs(module, conn, name_lower, net_data,
|
||||||
|
attrs=None,
|
||||||
cidr_map=None, ip_version_map=None):
|
cidr_map=None, ip_version_map=None):
|
||||||
net = conn.network.find_network(name_lower)
|
net = conn.network.find_network(name_lower)
|
||||||
if net is None:
|
if net is None:
|
||||||
|
@ -157,6 +164,7 @@ def run_module():
|
||||||
)
|
)
|
||||||
|
|
||||||
networks_data = module.params['net_data']
|
networks_data = module.params['net_data']
|
||||||
|
templates = module.params['templates']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
|
@ -175,9 +183,8 @@ def run_module():
|
||||||
|
|
||||||
result['environment'] = {
|
result['environment'] = {
|
||||||
'resource_registry': {
|
'resource_registry': {
|
||||||
'OS::TripleO::Network': (
|
'OS::TripleO::Network':
|
||||||
'/usr/share/openstack-tripleo-heat-templates'
|
os.path.join(templates, 'network/deployed_networks.yaml'),
|
||||||
'/network/deployed_networks.yaml'),
|
|
||||||
},
|
},
|
||||||
'parameter_defaults': {
|
'parameter_defaults': {
|
||||||
'DeployedNetworkEnvironment': {
|
'DeployedNetworkEnvironment': {
|
||||||
|
@ -193,7 +200,7 @@ def run_module():
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
result['error'] = str(err)
|
result['error'] = str(err)
|
||||||
result['msg'] = ("Error overcloud network provision failed!")
|
result['msg'] = "Error overcloud network provision failed!"
|
||||||
module.fail_json(**result)
|
module.fail_json(**result)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,11 @@ options:
|
||||||
- Structure with port data mapped by node and network
|
- Structure with port data mapped by node and network
|
||||||
type: dict
|
type: dict
|
||||||
default: {}
|
default: {}
|
||||||
|
templates:
|
||||||
|
description:
|
||||||
|
- The path to tripleo-heat-templates root directory
|
||||||
|
type: path
|
||||||
|
default: /usr/share/openstack-tripleo-heat-templates
|
||||||
|
|
||||||
author:
|
author:
|
||||||
- Harald Jensås <hjensas@redhat.com>
|
- Harald Jensås <hjensas@redhat.com>
|
||||||
|
@ -102,7 +107,6 @@ EXAMPLES = '''
|
||||||
|
|
||||||
|
|
||||||
CTLPLANE_NETWORK = 'ctlplane'
|
CTLPLANE_NETWORK = 'ctlplane'
|
||||||
DEFAULT_THT_DIR = '/usr/share/openstack-tripleo-heat-templates'
|
|
||||||
REGISTRY_KEY_TPL = 'OS::TripleO::{role}::Ports::{net_name}Port'
|
REGISTRY_KEY_TPL = 'OS::TripleO::{role}::Ports::{net_name}Port'
|
||||||
PORT_PATH_TPL = 'network/ports/deployed_{net_name_lower}.yaml'
|
PORT_PATH_TPL = 'network/ports/deployed_{net_name_lower}.yaml'
|
||||||
|
|
||||||
|
@ -137,7 +141,8 @@ def get_net_name_map(conn, role_net_map):
|
||||||
return _map
|
return _map
|
||||||
|
|
||||||
|
|
||||||
def update_environment(environment, node_port_map, role_net_map, net_name_map):
|
def update_environment(environment, node_port_map, role_net_map, net_name_map,
|
||||||
|
templates):
|
||||||
resource_registry = environment.setdefault('resource_registry', {})
|
resource_registry = environment.setdefault('resource_registry', {})
|
||||||
parameter_defaults = environment.setdefault('parameter_defaults', {})
|
parameter_defaults = environment.setdefault('parameter_defaults', {})
|
||||||
|
|
||||||
|
@ -149,7 +154,7 @@ def update_environment(environment, node_port_map, role_net_map, net_name_map):
|
||||||
registry_key = REGISTRY_KEY_TPL.format(role=role,
|
registry_key = REGISTRY_KEY_TPL.format(role=role,
|
||||||
net_name=net_name_map[net])
|
net_name=net_name_map[net])
|
||||||
template_path = os.path.join(
|
template_path = os.path.join(
|
||||||
DEFAULT_THT_DIR, PORT_PATH_TPL.format(net_name_lower=net))
|
templates, PORT_PATH_TPL.format(net_name_lower=net))
|
||||||
resource_registry.update({registry_key: template_path})
|
resource_registry.update({registry_key: template_path})
|
||||||
|
|
||||||
_map = parameter_defaults.setdefault('NodePortMap', {})
|
_map = parameter_defaults.setdefault('NodePortMap', {})
|
||||||
|
@ -177,13 +182,14 @@ def run_module():
|
||||||
environment = result['environment'] = module.params['environment']
|
environment = result['environment'] = module.params['environment']
|
||||||
role_net_map = module.params['role_net_map']
|
role_net_map = module.params['role_net_map']
|
||||||
node_port_map = module.params['node_port_map']
|
node_port_map = module.params['node_port_map']
|
||||||
|
templates = module.params['templates']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
|
|
||||||
net_name_map = get_net_name_map(conn, role_net_map)
|
net_name_map = get_net_name_map(conn, role_net_map)
|
||||||
update_environment(environment, node_port_map, role_net_map,
|
update_environment(environment, node_port_map, role_net_map,
|
||||||
net_name_map)
|
net_name_map, templates)
|
||||||
|
|
||||||
result['success'] = True
|
result['success'] = True
|
||||||
|
|
||||||
|
@ -191,7 +197,7 @@ def run_module():
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
result['error'] = str(err)
|
result['error'] = str(err)
|
||||||
result['msg'] = ("Error overcloud network provision failed!")
|
result['msg'] = "Error overcloud network provision failed!"
|
||||||
module.fail_json(**result)
|
module.fail_json(**result)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,12 @@ options:
|
||||||
- Dns Name (Optional)
|
- Dns Name (Optional)
|
||||||
type: str
|
type: str
|
||||||
required: True
|
required: True
|
||||||
|
templates:
|
||||||
|
description:
|
||||||
|
- The path to tripleo-heat-templates root directory
|
||||||
|
type: path
|
||||||
|
default: /usr/share/openstack-tripleo-heat-templates
|
||||||
|
|
||||||
author:
|
author:
|
||||||
- Harald Jensås <hjensas@redhat.com>
|
- Harald Jensås <hjensas@redhat.com>
|
||||||
'''
|
'''
|
||||||
|
@ -118,7 +124,6 @@ EXAMPLES = '''
|
||||||
dest: /path/overcloud_vip_env.yaml
|
dest: /path/overcloud_vip_env.yaml
|
||||||
'''
|
'''
|
||||||
|
|
||||||
DEFAULT_THT_DIR = '/usr/share/openstack-tripleo-heat-templates'
|
|
||||||
REGISTRY_KEY_TPL = 'OS::TripleO::Network::Ports::{net_name}VipPort'
|
REGISTRY_KEY_TPL = 'OS::TripleO::Network::Ports::{net_name}VipPort'
|
||||||
PORT_PATH_TPL = 'network/ports/deployed_vip_{net_name_lower}.yaml'
|
PORT_PATH_TPL = 'network/ports/deployed_vip_{net_name_lower}.yaml'
|
||||||
|
|
||||||
|
@ -166,7 +171,7 @@ def add_vip_to_env(conn, vip_port_map, port, net_name_lower):
|
||||||
subnet.cidr.split('/')[1]])
|
subnet.cidr.split('/')[1]])
|
||||||
|
|
||||||
|
|
||||||
def populate_net_vip_env(conn, stack, net_maps, vip_data, env):
|
def populate_net_vip_env(conn, stack, net_maps, vip_data, env, templates):
|
||||||
low_up_map = get_net_name_map(conn)
|
low_up_map = get_net_name_map(conn)
|
||||||
|
|
||||||
resource_reg = env['resource_registry'] = {}
|
resource_reg = env['resource_registry'] = {}
|
||||||
|
@ -186,8 +191,7 @@ def populate_net_vip_env(conn, stack, net_maps, vip_data, env):
|
||||||
|
|
||||||
resource_reg[REGISTRY_KEY_TPL.format(
|
resource_reg[REGISTRY_KEY_TPL.format(
|
||||||
net_name=low_up_map[net_name_lower])] = os.path.join(
|
net_name=low_up_map[net_name_lower])] = os.path.join(
|
||||||
DEFAULT_THT_DIR, PORT_PATH_TPL.format(
|
templates, PORT_PATH_TPL.format(net_name_lower=net_name_lower))
|
||||||
net_name_lower=net_name_lower))
|
|
||||||
|
|
||||||
if net_name_lower == 'ctlplane':
|
if net_name_lower == 'ctlplane':
|
||||||
add_ctlplane_vip_to_env(conn, ctlplane_vip_data, port)
|
add_ctlplane_vip_to_env(conn, ctlplane_vip_data, port)
|
||||||
|
@ -215,11 +219,13 @@ def run_module():
|
||||||
|
|
||||||
stack = module.params['stack_name']
|
stack = module.params['stack_name']
|
||||||
vip_data = module.params['vip_data']
|
vip_data = module.params['vip_data']
|
||||||
|
templates = module.params['templates']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
net_maps = n_utils.create_name_id_maps(conn)
|
net_maps = n_utils.create_name_id_maps(conn)
|
||||||
populate_net_vip_env(conn, stack, net_maps, vip_data, result['env'])
|
populate_net_vip_env(conn, stack, net_maps, vip_data, result['env'],
|
||||||
|
templates)
|
||||||
|
|
||||||
result['changed'] = True if result['env'] else False
|
result['changed'] = True if result['env'] else False
|
||||||
result['success'] = True if result['env'] else False
|
result['success'] = True if result['env'] else False
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
any_errors_fatal: true
|
any_errors_fatal: true
|
||||||
vars:
|
vars:
|
||||||
overwrite: false
|
overwrite: false
|
||||||
|
templates: /usr/share/openstack-tripleo-heat-templates
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- fail:
|
- fail:
|
||||||
msg: network_data_path is a required input
|
msg: network_data_path is a required input
|
||||||
|
@ -60,6 +61,7 @@
|
||||||
- name: Populate environment
|
- name: Populate environment
|
||||||
tripleo_network_populate_environment:
|
tripleo_network_populate_environment:
|
||||||
net_data: "{{ network_data }}"
|
net_data: "{{ network_data }}"
|
||||||
|
templates: "{{ templates }}"
|
||||||
register: network_environment
|
register: network_environment
|
||||||
|
|
||||||
- name: Write deployed networks environment file
|
- name: Write deployed networks environment file
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
any_errors_fatal: true
|
any_errors_fatal: true
|
||||||
vars:
|
vars:
|
||||||
overwrite: false
|
overwrite: false
|
||||||
|
templates: /usr/share/openstack-tripleo-heat-templates
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- fail:
|
- fail:
|
||||||
msg: stack_name is a required input
|
msg: stack_name is a required input
|
||||||
|
@ -61,6 +62,7 @@
|
||||||
tripleo_overcloud_network_vip_populate_environment:
|
tripleo_overcloud_network_vip_populate_environment:
|
||||||
stack_name: "{{ stack_name | default('overcloud') }}"
|
stack_name: "{{ stack_name | default('overcloud') }}"
|
||||||
vip_data: "{{ vip_data | default([]) }}"
|
vip_data: "{{ vip_data | default([]) }}"
|
||||||
|
templates: "{{ templates }}"
|
||||||
register: vip_environment
|
register: vip_environment
|
||||||
|
|
||||||
- name: Write deployed Virtual IPs environment file
|
- name: Write deployed Virtual IPs environment file
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
ssh_network: ctlplane
|
ssh_network: ctlplane
|
||||||
python_interpreter: null
|
python_interpreter: null
|
||||||
ssh_private_key_file: /home/stack/.ssh/id_rsa
|
ssh_private_key_file: /home/stack/.ssh/id_rsa
|
||||||
|
templates: /usr/share/openstack-tripleo-heat-templates
|
||||||
|
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- fail:
|
- fail:
|
||||||
|
@ -146,6 +147,7 @@
|
||||||
tripleo_baremetal_populate_environment:
|
tripleo_baremetal_populate_environment:
|
||||||
environment: "{{ baremetal_instances.environment }}"
|
environment: "{{ baremetal_instances.environment }}"
|
||||||
instances: "{{ baremetal_provisioned.instances + baremetal_existing.instances }}"
|
instances: "{{ baremetal_provisioned.instances + baremetal_existing.instances }}"
|
||||||
|
templates: "{{ templates }}"
|
||||||
register: baremetal_environment
|
register: baremetal_environment
|
||||||
|
|
||||||
- name: Populate environment with unmanaged nodes
|
- name: Populate environment with unmanaged nodes
|
||||||
|
@ -161,6 +163,7 @@
|
||||||
environment: "{{ unmanaged_environment.environment }}"
|
environment: "{{ unmanaged_environment.environment }}"
|
||||||
role_net_map: "{{ baremetal_instances.role_net_map }}"
|
role_net_map: "{{ baremetal_instances.role_net_map }}"
|
||||||
node_port_map: "{{ instance_network_ports.node_port_map }}"
|
node_port_map: "{{ instance_network_ports.node_port_map }}"
|
||||||
|
templates: "{{ templates }}"
|
||||||
register: network_ports_environment
|
register: network_ports_environment
|
||||||
when: manage_network_ports|default(false)
|
when: manage_network_ports|default(false)
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,9 @@ class TestTripleoNetworkPortsPopulateEnvironment(tests_base.TestCase):
|
||||||
'RoleB': ['ctlplane', 'foo', 'bar']
|
'RoleB': ['ctlplane', 'foo', 'bar']
|
||||||
}
|
}
|
||||||
net_name_map = {'foo': 'Foo', 'bar': 'Bar', 'baz': 'Baz'}
|
net_name_map = {'foo': 'Foo', 'bar': 'Bar', 'baz': 'Baz'}
|
||||||
|
templates = '/foo/tht_root'
|
||||||
plugin.update_environment(env, node_port_map, role_net_map,
|
plugin.update_environment(env, node_port_map, role_net_map,
|
||||||
net_name_map)
|
net_name_map, templates)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
{'FooParam': 'foo',
|
{'FooParam': 'foo',
|
||||||
'BarParam': 'bar',
|
'BarParam': 'bar',
|
||||||
|
@ -59,20 +60,16 @@ class TestTripleoNetworkPortsPopulateEnvironment(tests_base.TestCase):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
{'OS::Some::Existing::Resource': '/foo/bar/some_resource.yaml',
|
{'OS::Some::Existing::Resource': '/foo/bar/some_resource.yaml',
|
||||||
'OS::TripleO::RoleA::Ports::BarPort':
|
'OS::TripleO::RoleA::Ports::BarPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/foo/tht_root/network/ports/deployed_bar.yaml',
|
||||||
'network/ports/deployed_bar.yaml',
|
|
||||||
'OS::TripleO::RoleA::Ports::BazPort':
|
'OS::TripleO::RoleA::Ports::BazPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/foo/tht_root/network/ports/deployed_baz.yaml',
|
||||||
'network/ports/deployed_baz.yaml',
|
|
||||||
'OS::TripleO::RoleA::Ports::FooPort':
|
'OS::TripleO::RoleA::Ports::FooPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/foo/tht_root/network/ports/deployed_foo.yaml',
|
||||||
'network/ports/deployed_foo.yaml',
|
|
||||||
'OS::TripleO::RoleB::Ports::BarPort':
|
'OS::TripleO::RoleB::Ports::BarPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/foo/tht_root/network/ports/deployed_bar.yaml',
|
||||||
'network/ports/deployed_bar.yaml',
|
|
||||||
'OS::TripleO::RoleB::Ports::FooPort':
|
'OS::TripleO::RoleB::Ports::FooPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/foo/tht_root/network/ports/deployed_foo.yaml'},
|
||||||
'network/ports/deployed_foo.yaml'}, env['resource_registry'])
|
env['resource_registry'])
|
||||||
|
|
||||||
@mock.patch.object(openstack.connection, 'Connection', autospec=True)
|
@mock.patch.object(openstack.connection, 'Connection', autospec=True)
|
||||||
def test_get_net_name_map(self, mock_conn):
|
def test_get_net_name_map(self, mock_conn):
|
||||||
|
|
|
@ -148,8 +148,9 @@ class TestTripleoOvercloudVipProvision(tests_base.TestCase):
|
||||||
{'name': 'storage_mgmt_virtual_ip', 'network': 'storage_mgmt'},
|
{'name': 'storage_mgmt_virtual_ip', 'network': 'storage_mgmt'},
|
||||||
{'name': 'external_virtual_ip', 'network': 'external'}]
|
{'name': 'external_virtual_ip', 'network': 'external'}]
|
||||||
env = {}
|
env = {}
|
||||||
|
templates = '/foo/tht_root'
|
||||||
plugin.populate_net_vip_env(mock_conn, 'stack', NET_MAPS, vip_data,
|
plugin.populate_net_vip_env(mock_conn, 'stack', NET_MAPS, vip_data,
|
||||||
env)
|
env, templates)
|
||||||
self.assertEqual({
|
self.assertEqual({
|
||||||
'ControlPlaneVipData': {
|
'ControlPlaneVipData': {
|
||||||
'name': 'control_virtual_ip',
|
'name': 'control_virtual_ip',
|
||||||
|
@ -167,17 +168,13 @@ class TestTripleoOvercloudVipProvision(tests_base.TestCase):
|
||||||
'ip_address_uri': '10.0.3.1',
|
'ip_address_uri': '10.0.3.1',
|
||||||
'ip_subnet': '10.0.3.1/24'}}},
|
'ip_subnet': '10.0.3.1/24'}}},
|
||||||
env['parameter_defaults'])
|
env['parameter_defaults'])
|
||||||
self.assertEqual(
|
self.assertEqual({
|
||||||
{'OS::TripleO::Network::Ports::ControlPlaneVipPort': (
|
'OS::TripleO::Network::Ports::ControlPlaneVipPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/network/ports'
|
'/foo/tht_root/network/ports/deployed_vip_ctlplane.yaml',
|
||||||
'/deployed_vip_ctlplane.yaml'),
|
'OS::TripleO::Network::Ports::ExternalVipPort':
|
||||||
'OS::TripleO::Network::Ports::ExternalVipPort': (
|
'/foo/tht_root/network/ports/deployed_vip_external.yaml',
|
||||||
'/usr/share/openstack-tripleo-heat-templates/network/ports/'
|
'OS::TripleO::Network::Ports::InternalApiVipPort':
|
||||||
'deployed_vip_external.yaml'),
|
'/foo/tht_root/network/ports/deployed_vip_internal_api.yaml',
|
||||||
'OS::TripleO::Network::Ports::InternalApiVipPort': (
|
'OS::TripleO::Network::Ports::StorageMgmtVipPort':
|
||||||
'/usr/share/openstack-tripleo-heat-templates/network/ports/'
|
'/foo/tht_root/network/ports/deployed_vip_storage_mgmt.yaml'},
|
||||||
'deployed_vip_internal_api.yaml'),
|
|
||||||
'OS::TripleO::Network::Ports::StorageMgmtVipPort': (
|
|
||||||
'/usr/share/openstack-tripleo-heat-templates/network/ports/'
|
|
||||||
'deployed_vip_storage_mgmt.yaml')},
|
|
||||||
env['resource_registry'])
|
env['resource_registry'])
|
||||||
|
|
Loading…
Reference in New Issue