heat_template_version: 2015-04-30
description: 'Swift Devices and Proxy Config for Puppet'

parameters:
  controller_swift_devices:
    type: comma_delimited_list
  object_store_swift_devices:
    type: comma_delimited_list
  controller_swift_proxy_memcaches:
    type: comma_delimited_list

resources:

  SwiftDevicesAndProxyConfigImpl:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config:
        hiera:
          datafiles:
            swift_devices_and_proxy:
              mapped_data:
                tripleo::ringbuilder::devices:
                  list_join:
                  - ", "
                  - - list_join:
                      - ", "
                      - {get_param: controller_swift_devices}
                    - list_join:
                      - ", "
                      - {get_param: object_store_swift_devices}
                swift::proxy::cache::memcache_servers:
                  str_replace:
                    template: "['SERVERS_LIST']"
                    params:
                      SERVERS_LIST:
                        list_join:
                        - "','"
                        - {get_param: controller_swift_proxy_memcaches}

outputs:
  config_id:
    description: The ID of the SwiftDevicesAndProxyConfigImpl resource.
    value:
      {get_resource: SwiftDevicesAndProxyConfigImpl}