heat_template_version: pike

description: >
  Software Config to drive validations that occur on all nodes.
  Note, you need the heat-config-script element built into your
  images, due to the script group below.

parameters:
  PingTestIps:
    default: ''
    description: A string containing a space separated list of IP addresses used to ping test each available network interface.
    type: string
  ValidateFqdn:
    default: false
    description: Optional validation to ensure FQDN as set by Nova matches the name set in /etc/hosts.
    type: boolean
  ValidateNtp:
    default: true
    description: Validation to ensure at least one time source is accessible.
    type: boolean

resources:
  AllNodesValidationsImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      inputs:
        - name: ping_test_ips
          default: {get_param: PingTestIps}
        - name: validate_fqdn
          default: {get_param: ValidateFqdn}
        - name: validate_ntp
          default: {get_param: ValidateNtp}
      config: {get_file: ./validation-scripts/all-nodes.sh}

outputs:
  OS::stack_id:
    description: The ID of the AllNodesValidationsImpl resource.
    value: {get_resource: AllNodesValidationsImpl}
