Pick dynamically the first node for stack validation

When replacing the controller node with resource id 0,
AllNodesValidation will fail because there is an hardcoded reference
to resource.0. With this commit the id for validation is extracted
dynamically with yaql query, picking the first available.
Thanks to Steven Hardy for pointing to the right direction.

Change-Id: I8f2bfacbc005d948bd31ebd51c3d3df3182d5a3c
Closes-Bug: #1673439
This commit is contained in:
Luca Lorenzetto 2017-03-17 09:29:41 +01:00
parent f9e5887dee
commit fd15a091f7

View File

@ -579,12 +579,24 @@ resources:
PingTestIps: PingTestIps:
list_join: list_join:
- ' ' - ' '
- - {get_attr: [{{primary_role_name}}, resource.0.external_ip_address]} - - yaql:
- {get_attr: [{{primary_role_name}}, resource.0.internal_api_ip_address]} expression: coalesce($.data, []).first(null)
- {get_attr: [{{primary_role_name}}, resource.0.storage_ip_address]} data: {get_attr: [Controller, external_ip_address]}
- {get_attr: [{{primary_role_name}}, resource.0.storage_mgmt_ip_address]} - yaql:
- {get_attr: [{{primary_role_name}}, resource.0.tenant_ip_address]} expression: coalesce($.data, []).first(null)
- {get_attr: [{{primary_role_name}}, resource.0.management_ip_address]} data: {get_attr: [Controller, internal_api_ip_address]}
- yaql:
expression: coalesce($.data, []).first(null)
data: {get_attr: [Controller, storage_ip_address]}
- yaql:
expression: coalesce($.data, []).first(null)
data: {get_attr: [Controller, storage_mgmt_ip_address]}
- yaql:
expression: coalesce($.data, []).first(null)
data: {get_attr: [Controller, tenant_ip_address]}
- yaql:
expression: coalesce($.data, []).first(null)
data: {get_attr: [Controller, management_ip_address]}
UpdateWorkflow: UpdateWorkflow:
type: OS::TripleO::Tasks::UpdateWorkflow type: OS::TripleO::Tasks::UpdateWorkflow