heat_template_version: pike
description: 'Post-Puppet Config for Pacemaker deployments'

parameters:
  servers:
    type: json
  input_values:
     type: json
     description: input values for the software deployments

resources:

{%- for role in roles %}
  {%- if 'controller' in role.tags %}
  {{role.name}}PostPuppetMaintenanceModeConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config: |
        #!/bin/bash
        pacemaker_status=$(systemctl is-active pacemaker)

        if [ "$pacemaker_status" = "active" ]; then
            pcs property set maintenance-mode=false
        fi

  {{role.name}}PostPuppetMaintenanceModeDeployment:
    type: OS::Heat::SoftwareDeployments
    properties:
      name: {{role.name}}PostPuppetMaintenanceModeDeployment
      servers: {get_param: [servers, {{role.name}}]}
      config: {get_resource: {{role.name}}PostPuppetMaintenanceModeConfig}
      input_values: {get_param: input_values}

  {{role.name}}PostPuppetRestart:
    type: OS::TripleO::Tasks::{{role.name}}PostPuppetRestart
    depends_on: {{role.name}}PostPuppetMaintenanceModeDeployment
    properties:
      servers: {get_param: [servers, {{role.name}}]}
      input_values: {get_param: input_values}
  {%- endif %}
{%- endfor %}

