attributes: metadata: group: 'storage' multibackend: value: true label: 'Multi-backend enabled' description: 'Pure Storage will be used in a multi-backend environment' weight: 10 type: "checkbox" pure_cg: value: "false" values: - data: "true" label: "True" description: "Enables Cinder Consistency Groups for all users and all backends (where supported)" - data: "false" label: "False" description: "Disables Cinder Consistency Groups for all users and all backends" label: "Cinder Consistency Groups" description: 'Enable/Disable consistency groups for ALL tenants and users.' weight: 13 type: "radio" pure_san_ip: value: "" label: 'Pure Storage Management IP (san_ip)' description: 'The hostname (or IP address) for the Pure Storage Management VIP.' weight: 15 type: "text" regex: source: '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' error: "Error: Enter in regular IP address dot notation" pure_api: value: "" label: 'API Token for Pure Storage (pure_api_token)' description: 'Purity API token used to perform actions on the FlashArray.' weight: 20 type: "text" regex: source: '^(?!\s*$).+' error: "Error: API token field cannot be empty" pure_multipath: value: "true" values: - data: "true" label: "True" description: "Enables multipathing for image transfers" - data: "false" label: "False" description: "Disables multipathing for image transfers" label: "Pure Storage Multipath for Image Transfers (use_multipath_for_image_xfer)" description: 'Enable/Disable multipathing for image transfers.' weight: 24 type: "radio" pure_nova_multipath: value: "false" values: - data: "true" label: "True" description: "Enables multipathing for Nova compute servers - applies to both iSCSI and FC" - data: "false" label: "False" description: "Disables multipathing for Nova compute servers - applies to both iSCSI and FC" label: "Multipathing for iSCSI and FC in Nova Compute servers (iscsi_use_multipath)" description: 'Enable/Disable multipathing for Nova compute servers.' weight: 25 type: "radio" pure_replication: value: "false" values: - data: "false" label: "False" description: 'Disable replicaton to remote Pure Storage array' - data: "true" label: "True" description: 'Enable replicaton to remote Pure Storage array' label: 'Replication to Remote Pure Storage array' description: 'Configure replication to a remote array - remote array connection must be created manually' weight: 26 type: "radio" pure_replication_name: value: '' label: 'Name of array to replicate data to' description: 'Name of remote replication target array' weight: 27 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true'" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: remote array name field cannot be empty" pure_replication_ip: value: '' label: 'IP address of remote array' description: 'IP address of remote Pure Storage array' weight: 28 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true'" action: "hide" regex: source: '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' error: "Error: Enter in regular IP address dot notation" pure_replication_api: value: '' label: 'API Token for remote Pure Storage' description: 'Purity API token used to perform actions on the remote array.' weight: 29 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true'" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: API token field cannot be empty" pure_replication_default: value: "true" values: - data: "true" label: "Default" description: 'Use default replication retention vlaues (see documentation)' - data: "false" label: "Manual" description: 'Manually define replication retention settings' label: 'Replication Retention Configuration' description: 'Configure the remote replication retention parameters or leave as default' weight: 30 type: "radio" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true'" action: "hide" pure_interval: value: "900" label: "Replication internal (in seconds)" description: "(pure_replica_interval_default)" weight: 31 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true' or (settings:fuel-plugin-purestorage-cinder.pure_replication.value == 'true' and settings:fuel-plugin-purestorage-cinder.pure_replication_default.value == 'true')" action: "hide" regex: source: '^(34560000|[1-3][0-4][0-5][0-5][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[3-9][0-9][0-9])$' error: "Error: Range for snapshot replication interval is 300 - 34560000 seconds" pure_retention_short: value: "14400" label: "Retention period for snapshots on target(in seconds)" description: "(pure_replica_retention_short_term_default)" weight: 32 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true' or (settings:fuel-plugin-purestorage-cinder.pure_replication.value == 'true' and settings:fuel-plugin-purestorage-cinder.pure_replication_default.value == 'true')" action: "hide" regex: source: '^(34560000|[1-3][0-4][0-5][0-5][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9]|[6-9][0-9])$' error: "Error: Range for maximum time all snapshots can be retained for is 60 - 34560000 seconds" pure_retention_long_day: value: "3" label: "Number of snapshots to keep per day" description: "(pure_replica_retention_long_term_per_day_default)" weight: 34 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true' or (settings:fuel-plugin-purestorage-cinder.pure_replication.value == 'true' and settings:fuel-plugin-purestorage-cinder.pure_replication_default.value == 'true')" action: "hide" regex: source: '^(1440|1[0-4][0-3][0-9]|[1-9][0-9][0-9]|[1-9][0-9]|[1-9])$' error: "Error: Maximum number of snapshots per day is 1440" pure_retention_long: value: "7" label: "Number of days to keep snapshots" description: "(pure_replica_retention_long_term_default)" weight: 33 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_replication.value != 'true' or (settings:fuel-plugin-purestorage-cinder.pure_replication.value == 'true' and settings:fuel-plugin-purestorage-cinder.pure_replication_default.value == 'true')" action: "hide" regex: source: '^(4000|[1-3][0-9][0-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9]|[1-9])$' error: "Error: Maximum number of days to keep snapshots is 4000" pure_glance_image_cache: value: "false" values: - data: "false" label: "False" description: 'Disable the Glance Image-Cache for Cinder backend' - data: "true" label: "True" description: 'Enable the Glance Image-Cache for Cinder backend' label: 'Glance Image-Cache (image_volume_cache_enabled)' description: 'Configure the Glance Image-Cache for Cinder' weight: 35 type: "radio" pure_glance_cache_count: value: '0' label: 'Glance Image Cache Max Count (image_volume_cache_max_count)' description: 'Maximum number of images in Glance Image Cache (0 = no limit)' weight: 36 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_glance_image_cache.value != 'true'" action: "hide" regex: source: '^[0-9]+$' error: "Error: Only numbers are permitted" pure_glance_cache_size: value: '0' label: 'Glance Image Cache Size (image_volume_cache_max_size_gb)' description: 'Maximum size for Glance Image Cache [GB] 90 = no limit)' weight: 37 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_glance_image_cache.value != 'true'" action: "hide" regex: source: '^[0-9]+$' error: "Error: Only numbers are permitted" pure_eradicate: value: "false" values: - data: "false" label: "False" description: "Disables auto-eradication of deleted volumes" - data: "true" label: "True" description: "Enables auto-eradication of deleted volumes" label: "Auto-Eradication of Deleted Volumes" description: 'Select whether to auto-eradicate volumes on deletion or leave as default' weight: 38 type: "radio" pure_protocol: value: "iSCSI" values: - data: "iSCSI" label: "iSCSI" description: "Enables iSCSI protocol for block storage volumes" - data: "FC" label: "Fibre Channel" description: "Enables Fibre Channel protocol for block storage volumes" label: "Protocol for Pure Storage block access" description: 'Select block storage protocol for FlashArray.' weight: 39 type: "radio" pure_fczm_config: value: "manual" values: - data: "automatic" label: "Automatic" description: "Use automated Fibre Channel Zone Manager for zoning" - data: "manual" label: "Manual" description: "Use manual fibre channel zoning" label: "Fibre Channel Zoning Manager" description: "Method for configuring fibre channel zones" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC'" action: "hide" weight: 40 type: "radio" pure_chap: value: "false" values: - data: "true" label: "True" description: "Enables CHAP on iSCSI connections to FlashArray" - data: "false" label: "False" description: "Disables CHAP on iSCSI connections to FlashArray" label: "Pure Storage iSCSI CHAP (use_chap_auth)" description: 'Enable/Disable CHAP on iSCSI connections to the FlashArray.' restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'iSCSI'" action: "hide" weight: 40 type: "radio" pure_switch_vendor: value: "Brocade" values: - data: "Brocade" label: "Brocade" - data: "Cisco" label: "Cisco" label: "Fibre Channel SAN Switch Provider" description: "FC Vendor" weight: 40 type: "select" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" pure_fabric_count: value: '2' type: "select" weight: 41 values: - data: '1' label: "1" - data: '2' label: "2" label: "Number of SAN fabrics" description: "Number of SAN fabrics connected to compute and controller nodes" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" pure_fabric_name_1: value: "" label: "Name of Fabric 1" description: "Name of the active zone set for the zoning VSAN if your switch vendor is Cisco, or name of active zone configuration if Brocade. Used in definition of 'zone_name_prefix'." weight: 42 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Fabric name cannot be blank" pure_fabric_ip_1: value: "" type: "text" weight: 43 label: "IP address of Fabric 1 switch" description: "Management IP address of SAN switch for fabric number 1" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" regex: source: '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' error: "Error: Enter in regular IP address dot notation" pure_username_1: value: "" type: "text" weight: 44 label: "User ID for Fabric 1 switch" description: "Fabric switch username (with admin privilages)" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Username cannot be blank" pure_password_1: value: "" type: "password" weight: 45 label: "Password for Fabric 1 switch" description: "Fabric switch password for username above" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Password cannot be blank" pure_vsan_1: value: "" label: "VSAN for Fabric 1" description: "Number of zoning VSAN with active zone set which is the same as the name of Fabric 1" weight: 46 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_switch_vendor.value != 'Cisco')" action: "hide" regex: source: '^(409[0-3]|40[1-8][0-9]|[1-3][0-9][0-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9]|[1-9])$' error: "Error: VSAN must be in range 1-4093" pure_zone_prefix_1: value: "" label: "Zoning prefix for Fabric 1" description: "Prefix for zone name created by FCZM (Blank field will use default of 'openstack')" weight: 47 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value == 'manual')" action: "hide" pure_fabric_name_2: value: "" label: "Name of Fabric 2" description: "Name of the active zone set for the zoning VSAN if your switch vendor is Cisco, or name of active zone configuration if Brocade. Used in definition of 'zone_name_prefix'." weight: 51 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Fabric name cannot be blank" pure_fabric_ip_2: value: "" type: "text" weight: 52 label: "IP address of Fabric 2 switch" description: "Management IP address of SAN switch for fabric number 2" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2')" action: "hide" regex: source: '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' error: "Error: Enter in regular IP address dot notation" pure_username_2: value: "" type: "text" weight: 53 label: "User ID for Fabric 2 switch" description: "Fabric switch username (with admin privilages)" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Username cannot be blank" pure_password_2: value: "" type: "password" weight: 54 label: "Password for fabric 2 switch" description: "Fabric switch password for username above" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2')" action: "hide" regex: source: '^(?!\s*$).+' error: "Error: Password cannot be blank" pure_vsan_2: value: "" label: "VSAN for Fabric 2" description: "Number of zoning VSAN with active zone set which is the same as the name of Fabric 2" weight: 56 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2' or (settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value == '2' and settings:fuel-plugin-purestorage-cinder.pure_switch_vendor.value == 'Brocade'))" action: "hide" regex: source: '^(409[0-3]|40[1-8][0-9]|[1-3][0-9][0-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9]|[1-9])$' error: "Error: VSAN must be in range 1-4093" pure_zone_prefix_2: value: "" label: "Zoning prefix for Fabric 2" description: "Prefix for zone name created by FCZM (Blank field will use default of 'openstack')" weight: 57 type: "text" restrictions: - condition: "settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'automatic' or settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'iSCSI' or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value != 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual') or (settings:fuel-plugin-purestorage-cinder.pure_protocol.value == 'FC' and settings:fuel-plugin-purestorage-cinder.pure_fczm_config.value != 'manual' and settings:fuel-plugin-purestorage-cinder.pure_fabric_count.value != '2')" action: "hide"