heat_template_version: pike

parameters:
  ContrailRepo:
    type: string
    default: ''

resources:
  userdata:
    type: OS::Heat::MultipartMime
    properties:
      parts:
      - config: {get_resource: EnableContrailRepoConfig}

  EnableContrailRepoConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      config:
        str_replace:
          template: |
            #!/bin/bash
            contrail_repo=$contrail_repo
            if [[ ${contrail_repo} ]]; then
               cat <<EOF > /etc/yum.repos.d/contrail.repo
            [Contrail]
            name=Contrail Repo
            baseurl=${contrail_repo}
            enabled=1
            gpgcheck=0
            protect=1
            metadata_expire=30
            EOF
            fi
          params:
            $contrail_repo: {get_param: ContrailRepo}

outputs:
  # This means get_resource from the parent template will get the userdata, see:
  # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent
  # Note this is new-for-kilo, an alternative is returning a value then using
  # get_attr in the parent template instead.
  OS::stack_id:
    value: {get_resource: userdata}
