heat_template_version: pike

description: Openstack Cinder Netapp backend

parameters:
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    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: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  CinderEnableNetappBackend:
    type: boolean
    default: true
  CinderNetappBackendName:
    type: string
    default: 'tripleo_netapp'
  CinderNetappLogin:
    type: string
  CinderNetappPassword:
    type: string
    hidden: true
  CinderNetappServerHostname:
    type: string
  CinderNetappServerPort:
    type: string
    default: '80'
  CinderNetappSizeMultiplier:
    type: string
    default: '1.2'
  CinderNetappStorageFamily:
    type: string
    default: 'ontap_cluster'
  CinderNetappStorageProtocol:
    type: string
    default: 'nfs'
  CinderNetappTransportType:
    type: string
    default: 'http'
  CinderNetappVfiler:
    type: string
    default: ''
  CinderNetappVolumeList:
    type: string
    default: ''
  CinderNetappVserver:
    type: string
    default: ''
  CinderNetappPartnerBackendName:
    type: string
    default: ''
  CinderNetappNfsShares:
    type: string
    default: ''
  CinderNetappNfsSharesConfig:
    type: string
    default: '/etc/cinder/shares.conf'
  CinderNetappNfsMountOptions:
    type: string
    default: ''
  CinderNetappCopyOffloadToolPath:
    type: string
    default: ''
  CinderNetappControllerIps:
    type: string
    default: ''
  CinderNetappSaPassword:
    type: string
    default: ''
    hidden: true
  CinderNetappStoragePools:
    type: string
    default: ''
  CinderNetappHostType:
    type: string
    default: ''
  CinderNetappWebservicePath:
    type: string
    default: '/devmgr/v2'
  # DEPRECATED options for compatibility with older versions
  CinderNetappEseriesHostType:
    type: string
    default: 'linux_dm_mp'

parameter_groups:
- label: deprecated
  description: Do not use deprecated params, they will be removed.
  parameters:
  - CinderNetappEseriesHostType

outputs:
  role_data:
    description: Role data for the Cinder NetApp backend.
    value:
      service_name: cinder_backend_netapp
      config_settings:
        tripleo::profile::base::cinder::volume::cinder_enable_netapp_backend: {get_param: CinderEnableNetappBackend}
        cinder::backend::netapp::title: {get_param: CinderNetappBackendName}
        cinder::backend::netapp::netapp_login: {get_param: CinderNetappLogin}
        cinder::backend::netapp::netapp_password: {get_param: CinderNetappPassword}
        cinder::backend::netapp::netapp_server_hostname: {get_param: CinderNetappServerHostname}
        cinder::backend::netapp::netapp_server_port: {get_param: CinderNetappServerPort}
        cinder::backend::netapp::netapp_size_multiplier: {get_param: CinderNetappSizeMultiplier}
        cinder::backend::netapp::netapp_storage_family: {get_param: CinderNetappStorageFamily}
        cinder::backend::netapp::netapp_storage_protocol: {get_param: CinderNetappStorageProtocol}
        cinder::backend::netapp::netapp_transport_type: {get_param: CinderNetappTransportType}
        cinder::backend::netapp::netapp_vfiler: {get_param: CinderNetappVfiler}
        cinder::backend::netapp::netapp_volume_list: {get_param: CinderNetappVolumeList}
        cinder::backend::netapp::netapp_vserver: {get_param: CinderNetappVserver}
        cinder::backend::netapp::netapp_partner_backend_name: {get_param: CinderNetappPartnerBackendName}
        cinder::backend::netapp::nfs_shares: {get_param: CinderNetappNfsShares}
        cinder::backend::netapp::nfs_shares_config: {get_param: CinderNetappNfsSharesConfig}
        cinder::backend::netapp::nfs_mount_options: {get_param: CinderNetappNfsMountOptions}
        cinder::backend::netapp::netapp_copyoffload_tool_path: {get_param: CinderNetappCopyOffloadToolPath}
        cinder::backend::netapp::netapp_controller_ips: {get_param: CinderNetappControllerIps}
        cinder::backend::netapp::netapp_sa_password: {get_param: CinderNetappSaPassword}
        cinder::backend::netapp::netapp_storage_pools: {get_param: CinderNetappStoragePools}
        cinder::backend::netapp::netapp_host_type: {get_param: CinderNetappHostType}
        cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath}
      step_config: |
        include ::tripleo::profile::base::cinder::volume