Handle null role_data in services

This patch updates the Yaql expressions that work on role_data
so that they evaluate properly when the get_attr for role_data
is null.

I hit issues using this for the heat undercloud installer and this
seems to resolve them.

Change-Id: I0493d0525cd3ad280339f26ef9d3aa311af9962e
This commit is contained in:
Dan Prince 2016-11-10 07:42:13 -05:00
parent 2ad72b7e96
commit 93b4d836ee

@ -54,8 +54,8 @@ outputs:
data: {s_names: {get_attr: [ServiceChain, role_data, service_name]}}
monitoring_subscriptions:
yaql:
expression: list($.data.where($ != null).select($.get('monitoring_subscription')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
expression: list($.data.role_data.where($ != null).select($.get('monitoring_subscription')).where($ != null))
data: {role_data: {get_attr: [ServiceChain, role_data]}}
logging_sources:
# Transform the individual logging_source configuration from
# each service in the chain into a global list, adding some
@ -78,8 +78,9 @@ outputs:
sources:
- {get_attr: [LoggingConfiguration, LoggingDefaultSources]}
- yaql:
expression: list($.data.where($ != null).select($.get('logging_source')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
expression: list($.data.role_data.where($ != null).select($.get('logging_source')).where($ != null))
data: {role_data: {get_attr: [ServiceChain, role_data]}}
- {get_attr: [LoggingConfiguration, LoggingExtraSources]}
default_format: {get_attr: [LoggingConfiguration, LoggingDefaultFormat]}
pos_file_path: {get_attr: [LoggingConfiguration, LoggingPosFilePath]}
@ -93,17 +94,17 @@ outputs:
groups:
- [{get_attr: [LoggingConfiguration, LoggingDefaultGroups]}]
- yaql:
expression: list($.data.where($ != null).select($.get('logging_groups')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
expression: list($.data.role_data.where($ != null).select($.get('logging_groups')).where($ != null))
data: {role_data: {get_attr: [ServiceChain, role_data]}}
- [{get_attr: [LoggingConfiguration, LoggingExtraGroups]}]
config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
global_config_settings:
map_merge:
yaql:
expression: list($.data.where($ != null).select($.get('global_config_settings')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
expression: list($.data.role_data.where($ != null).select($.get('global_config_settings')).where($ != null))
data: {role_data: {get_attr: [ServiceChain, role_data]}}
service_config_settings:
yaql:
expression: $.data.where($ != null).select($.get('service_config_settings')).where($ != null).reduce($1.mergeWith($2), {})
data: {get_attr: [ServiceChain, role_data]}
expression: $.data.role_data.where($ != null).select($.get('service_config_settings')).where($ != null).reduce($1.mergeWith($2), {})
data: {role_data: {get_attr: [ServiceChain, role_data]}}
step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}