diff options
author | Steven Hardy <shardy@redhat.com> | 2016-09-21 14:42:52 +0100 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2016-09-22 14:21:24 +0100 |
commit | a99c06aa9600c2da548e46ece251fd0181f0283b (patch) | |
tree | ab7531f177e71d07dce0063fd7b1370df1d8ebc4 | |
parent | 75c20d5b5dabed936f86096829377b01f1c3d4b2 (diff) |
Tolerate missing keys from role_data in service templates
Currently we have a few keys which may be considered optional,
such as monitoring_subscription, logging* and global_config_settings.
Currently we dereference these directly via get_attr, but this will
break when heat output validation is fixed, ref bug #1599114 is fixed
(patches are up for this, so it may be soon).
Change-Id: If4eed1ca39c10ace9b1cb5ce2dc4b9c70a3dd2f4
Partial-Bug: #1620829
-rw-r--r-- | puppet/services/services.yaml | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/puppet/services/services.yaml b/puppet/services/services.yaml index c8d5642c..6a9bab71 100644 --- a/puppet/services/services.yaml +++ b/puppet/services/services.yaml @@ -54,8 +54,8 @@ outputs: data: {s_names: {get_attr: [ServiceChain, role_data, service_name]}} monitoring_subscriptions: yaql: - expression: list($.data.subscriptions.where($ != null)) - data: {subscriptions: {get_attr: [ServiceChain, role_data, monitoring_subscription]}} + expression: list($.data.where($ != null).select($.get('monitoring_subscription')).where($ != null)) + 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 @@ -77,7 +77,9 @@ outputs: data: sources: - {get_attr: [LoggingConfiguration, LoggingDefaultSources]} - - {get_attr: [ServiceChain, role_data, logging_source]} + - yaql: + expression: list($.data.where($ != null).select($.get('logging_sources')).where($ != null)) + data: {get_attr: [ServiceChain, role_data]} - {get_attr: [LoggingConfiguration, LoggingExtraSources]} default_format: {get_attr: [LoggingConfiguration, LoggingDefaultFormat]} pos_file_path: {get_attr: [LoggingConfiguration, LoggingPosFilePath]} @@ -90,12 +92,14 @@ outputs: data: groups: - [{get_attr: [LoggingConfiguration, LoggingDefaultGroups]}] - - {get_attr: [ServiceChain, role_data, logging_groups]} + - yaql: + expression: list($.data.where($ != null).select($.get('logging_groups')).where($ != null)) + 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.configs.where($ != null)) - data: {configs: {get_attr: [ServiceChain, role_data, global_config_settings]}} + expression: list($.data.where($ != null).select($.get('global_config_settings')).where($ != null)) + data: {get_attr: [ServiceChain, role_data]} step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]} |