Add role specific information to the service template
[apex-tripleo-heat-templates.git] / puppet / services / services.yaml
index 80da535..b374dfb 100644 (file)
@@ -26,6 +26,14 @@ parameters:
     description: Mapping of service -> default password. Used to help
                  pass top level passwords managed by Heat into services.
     type: json
+  RoleName:
+    default: ''
+    description: Role name on which the service is applied
+    type: string
+  RoleParameters:
+    description: Role Specific parameters to be provided to service
+    default: {}
+    type: json
 
 resources:
 
@@ -38,6 +46,8 @@ resources:
         ServiceNetMap: {get_param: ServiceNetMap}
         EndpointMap: {get_param: EndpointMap}
         DefaultPasswords: {get_param: DefaultPasswords}
+        RoleName: {get_param: RoleName}
+        RoleParameters: {get_param: RoleParameters}
 
   LoggingConfiguration:
     type: OS::TripleO::LoggingConfiguration
@@ -52,11 +62,7 @@ outputs:
     description: Combined Role data for this set of services.
     value:
       service_names:
-        # Filter any null/None service_names which may be present due to mapping
-        # of services to OS::Heat::None
-        yaql:
-          expression: list($.data.s_names.where($ != null))
-          data: {s_names: {get_attr: [ServiceChain, role_data, service_name]}}
+        {get_attr: [ServiceChain, role_data, service_name]}
       monitoring_subscriptions:
         yaql:
           expression: list($.data.role_data.where($ != null).select($.get('monitoring_subscription')).where($ != null))
@@ -94,14 +100,11 @@ outputs:
         # fluentd user.
         yaql:
           expression: >
-            set($.data.groups.flatten()).where($)
+            set(($.data.default + $.data.extra + $.data.role_data.where($ != null).select($.get('logging_groups'))).flatten()).where($)
           data:
-            groups:
-              - [{get_attr: [LoggingConfiguration, LoggingDefaultGroups]}]
-              - yaql:
-                  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]}]
+            default: {get_attr: [LoggingConfiguration, LoggingDefaultGroups]}
+            extra: {get_attr: [LoggingConfiguration, LoggingExtraGroups]}
+            role_data: {get_attr: [ServiceChain, role_data]}
       config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
       global_config_settings:
         map_merge:
@@ -112,7 +115,7 @@ outputs:
         yaql:
           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]}]}
+      step_config: {get_attr: [ServiceChain, role_data, step_config]}
       upgrade_tasks:
         yaql:
           # Note we use distinct() here to filter any identical tasks, e.g yum update for all services