Merge "Add a new role for ComputeOvsDpdk and clean-up parameters"
[apex-tripleo-heat-templates.git] / puppet / services / monitoring / sensu-client.yaml
index 3f37e75..f2b062e 100644 (file)
@@ -1,8 +1,12 @@
-heat_template_version: 2016-04-08
+heat_template_version: pike
 
 description: Sensu client configured with Puppet
 
 parameters:
+  ServiceData:
+    default: {}
+    description: Dictionary packing service data
+    type: json
   ServiceNetMap:
     default: {}
     description: Mapping of service_name -> network name. Typically set
@@ -12,12 +16,27 @@ parameters:
   DefaultPasswords:
     default: {}
     type: json
+  RoleName:
+    default: ''
+    description: Role name on which the service is applied
+    type: string
+  RoleParameters:
+    default: {}
+    description: Parameters specific to the role
+    type: json
   EndpointMap:
     default: {}
     description: >
       Mapping of service endpoint -> protocol. Typically set
       via parameter_defaults in the resource registry.
     type: json
+  AdminPassword:
+    description: Keystone admin user password
+    type: string
+  KeystoneRegion:
+    default: 'regionOne'
+    description: Keystone region for endpoint
+    type: string
   SensuClientCustomConfig:
     default: {}
     description: Hash containing custom sensu-client variables.
@@ -28,9 +47,12 @@ resources:
   SensuBase:
     type: ./sensu-base.yaml
     properties:
+      ServiceData: {get_param: ServiceData}
       ServiceNetMap: {get_param: ServiceNetMap}
       DefaultPasswords: {get_param: DefaultPasswords}
       EndpointMap: {get_param: EndpointMap}
+      RoleName: {get_param: RoleName}
+      RoleParameters: {get_param: RoleParameters}
 
 outputs:
   role_data:
@@ -44,6 +66,34 @@ outputs:
           - sensu::api: false
             sensu::client: true
             sensu::server: false
-            sensu::client_custom: {get_param: SensuClientCustomConfig}
+            sensu::client_custom:
+              map_merge:
+                - {get_param: SensuClientCustomConfig}
+                - openstack:
+                    username: 'admin'
+                    password: {get_param: AdminPassword}
+                    auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
+                    tenant_name: 'admin'
+                    region: {get_param: KeystoneRegion}
       step_config: |
         include ::tripleo::profile::base::monitoring::sensu
+      upgrade_tasks:
+        - name: Check if sensu_client is deployed
+          command: systemctl is-enabled sensu-client
+          tags: common
+          ignore_errors: True
+          register: sensu_client_enabled
+        - name: Check status of sensu-client service
+          shell: >
+            /usr/bin/systemctl show sensu-client --property ActiveState |
+            grep '\bactive\b'
+          when: sensu_client_enabled.rc == 0
+          tags: step0,validation
+        - name: Stop sensu-client service
+          tags: step1
+          when: sensu_client_enabled.rc == 0
+          service: name=sensu-client state=stopped
+        - name: Install sensu package if it was disabled
+          tags: step3
+          yum: name=sensu state=latest
+          when: sensu_client_enabled.rc != 0