From: Steven Hardy Date: Wed, 28 Jun 2017 20:41:29 +0000 (+0100) Subject: Add ServerIdMap output X-Git-Tag: opnfv-6.0.0~446^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=afbbbdc894da2f9ce18d62fd457b2077745b4b3b;p=apex-tripleo-heat-templates.git Add ServerIdMap output This exposes the nova server IDs for each role, and the bootstrap node so that we can add this data to the tripleo dynamic ansible inventory Change-Id: I2fc48eec77210805c0139fa4abcbf4dd721e7c37 --- diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 1848e09a..56a10a52 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -462,6 +462,21 @@ resources: servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]} {% endfor %} + # This is a different format to *Servers, as it creates a map of lists + # whereas *Servers creates a map of maps with keys of the nested resource names + ServerIdMap: + type: OS::Heat::Value + properties: + value: + server_ids: +{% for role in roles %} + {{role.name}}: {get_attr: [{{role.name}}, nova_server_resource]} +{% endfor %} + bootstrap_server_id: + yaql: + expression: coalesce($.data, []).first(null) + data: {get_attr: [{{primary_role_name}}, nova_server_resource]} + # This resource just creates a dict out of the DeploymentServerBlacklist, # which is a list. The dict is used in the role templates to set a condition # on whether to create the deployment resources. We can't use the list @@ -825,3 +840,6 @@ outputs: map_merge: - {get_attr: [VipMap, net_ip_map]} - redis: {get_attr: [RedisVirtualIP, ip_address]} + ServerIdData: + description: Mapping of each role to a list of nova server IDs and the bootstrap ID + value: {get_attr: [ServerIdMap, value]}