heat_template_version: rocky

description: >
  Openstack Manila netapp backend.

parameters:
  ManilaNetappDriverHandlesShareServers:
    type: string
    default: true
  ManilaNetappBackendName:
    type: string
    default: tripleo_netapp
  ManilaNetappLogin:
    type: string
    default: ''
  ManilaNetappPassword:
    type: string
    default: ''
  ManilaNetappServerHostname:
    type: string
    default: ''
  ManilaNetappTransportType:
    type: string
    default: 'http'
  ManilaNetappStorageFamily:
    type: string
    default: 'ontap_cluster'
  ManilaNetappServerPort:
    type: number
    default: 80
  ManilaNetappVolumeNameTemplate:
    type: string
    default: 'share_%(share_id)s'
  ManilaNetappVserver:
    type: string
    default: ''
  ManilaNetappVserverNameTemplate:
    type: string
    default: 'os_%s'
  ManilaNetappLifNameTemplate:
    type: string
    default: 'os_%(net_allocation_id)s'
  ManilaNetappAggrNameSearchPattern:
    type: string
    default: '(.*)'
  ManilaNetappRootVolumeAggr:
    type: string
    default: ''
  ManilaNetappRootVolume:
    type: string
    default: 'root'
  ManilaNetappPortNameSearchPattern:
    type: string
    default: '(.*)'
  ManilaNetappTraceFlags:
    type: string
    default: ''
  ManilaNetappEnabledShareProtocols:
    type: string
    default: 'nfs3, nfs4.0'
  ManilaNetappVolumeSnapshotReservePercent:
    type: number
    default: 5
  ManilaNetappSnapmirrorQuiesceTimeout:
    type: number
    default: 3600
  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.  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: {}
    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 Netapp backend.
    value:
      service_name: manila_backend_netapp
      config_settings:
        manila::backend::netapp::title: {get_param: ManilaNetappBackendName}
        manila::backend::netapp::netapp_login: {get_param: ManilaNetappLogin}
        manila::backend::netapp::driver_handles_share_servers: {get_param: ManilaNetappDriverHandlesShareServers}
        manila::backend::netapp::netapp_password: {get_param: ManilaNetappPassword}
        manila::backend::netapp::netapp_server_hostname: {get_param: ManilaNetappServerHostname}
        manila::backend::netapp::netapp_transport_type: {get_param: ManilaNetappTransportType}
        manila::backend::netapp::netapp_storage_family: {get_param: ManilaNetappStorageFamily}
        manila::backend::netapp::netapp_server_port: {get_param: ManilaNetappServerPort}
        manila::backend::netapp::netapp_volume_name_template: {get_param: ManilaNetappVolumeNameTemplate}
        manila::backend::netapp::netapp_vserver: {get_param: ManilaNetappVserver}
        manila::backend::netapp::netapp_vserver_name_template: {get_param: ManilaNetappVserverNameTemplate}
        manila::backend::netapp::netapp_lif_name_template: {get_param: ManilaNetappLifNameTemplate}
        manila::backend::netapp::netapp_aggregate_name_search_pattern: {get_param: ManilaNetappAggrNameSearchPattern}
        manila::backend::netapp::netapp_root_volume_aggregate: {get_param: ManilaNetappRootVolumeAggr}
        manila::backend::netapp::netapp_root_volume: {get_param: ManilaNetappRootVolume}
        manila::backend::netapp::netapp_port_name_search_pattern: {get_param: ManilaNetappPortNameSearchPattern}
        manila::backend::netapp::netapp_trace_flags: {get_param: ManilaNetappTraceFlags}
        manila::backend::netapp::netapp_enabled_share_protocols: {get_param: ManilaNetappEnabledShareProtocols}
        manila::backend::netapp::netapp_volume_snapshot_reserve_percent: {get_param: ManilaNetappVolumeSnapshotReservePercent}
        manila::backend::netapp::netapp_snapmirror_quiesce_timeout: {get_param: ManilaNetappSnapmirrorQuiesceTimeout}
      step_config:
