heat_template_version: wallaby

description: >
  Openstack Manila unity backend.

parameters:
  ManilaUnityDriverHandlesShareServers:
    type: string
    default: true
  ManilaUnityBackendName:
    type: string
    default: tripleo_manila_unity
  ManilaUnityAvailabilityZone:
    default: ''
    description: >
      The availability zone of the Unity backend.
      When set, it overrides the default ManilaStorageAvailabilityZone.
    type: string
  ManilaUnityNasLogin:
    type: string
    default: ''
  ManilaUnityNasPassword:
    type: string
    default: ''
    hidden: true
  ManilaUnityNasServer:
    type: string
    default: ''
  ManilaUnityServerMetaPool:
    type: string
    default: ''
  ManilaUnityShareDataPools:
    type: string
    default: ''
  ManilaUnityEthernetPorts:
    type: string
    default: ''
  ManilaUnityEmcSslCertVerify:
    type: string
    default: false
  ManilaUnityEmcSslCertPath:
    type: string
    default: ''
  ManilaIPv6:
    default: false
    description: Set to True to enable IPv6 access in manila.
    type: boolean
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry. Use
                 parameter_merge_strategies to merge it with the defaults.
    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: {}
    type: json
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.

outputs:
  role_data:
    description: Role data for the Manila Unity backend.
    value:
      service_name: manila_backend_unity
      config_settings:
        map_merge:
          - manila::backend::dellemc_unity::title: {get_param: ManilaUnityBackendName}
            manila::backend::dellemc_unity::emc_nas_login: {get_param: ManilaUnityNasLogin}
            manila::backend::dellemc_unity::driver_handles_share_servers: {get_param: ManilaUnityDriverHandlesShareServers}
            manila::backend::dellemc_unity::emc_nas_password: {get_param: ManilaUnityNasPassword}
            manila::backend::dellemc_unity::emc_nas_server: {get_param: ManilaUnityNasServer}
            manila::backend::dellemc_unity::emc_share_backend: unity
            manila::backend::dellemc_unity::unity_server_meta_pool: {get_param: ManilaUnityServerMetaPool}
            manila::backend::dellemc_unity::unity_share_data_pools: {get_param: ManilaUnityShareDataPools}
            manila::backend::dellemc_unity::unity_ethernet_ports: {get_param: ManilaUnityEthernetPorts}
            manila::backend::dellemc_unity::network_plugin_ipv6_enabled: {get_param: ManilaIPv6}
            manila::backend::dellemc_unity::emc_ssl_cert_verify: {get_param: ManilaUnityEmcSslCertVerify}
            manila::backend::dellemc_unity::emc_ssl_cert_path: {get_param: ManilaUnityEmcSslCertPath}
          - if:
              - { equals: [ { get_param: ManilaUnityAvailabilityZone }, '' ] }
              - { }
              - manila::backend::dellemc_unity::backend_availability_zone: { get_param: ManilaUnityAvailabilityZone }