salt.modules.purefa

Management of Pure Storage FlashArray

Installation Prerequisites

  • You will need the purestorage python package in your python installation path that is running salt.

    pip install purestorage
    
  • Configure Pure Storage FlashArray authentication. Use one of the following three methods.

    1. From the minion config
    pure_tags:
      fa:
        san_ip: management vip or hostname for the FlashArray
        api_token: A valid api token for the FlashArray being managed
    
    1. From environment (PUREFA_IP and PUREFA_API)
    2. From the pillar (PUREFA_IP and PUREFA_API)
maintainer:Simon Dodsley (simon@purestorage.com)
maturity:new
requires:purestorage
platform:all

New in version Oxygen.

salt.modules.purefa.hg_create(name, host=None, volume=None)

Create a hostgroup on a Pure Storage FlashArray.

Will return False if hostgroup already exists, or if named host or volume do not exist.

New in version Oxygen.

name
: string
name of hostgroup (truncated to 63 characters)
host
: string
name of host to add to hostgroup
volume
: string
name of volume to add to hostgroup

CLI Example:

salt '*' purefa.hg_create foo host=bar volume=vol
salt.modules.purefa.hg_delete(name)

Delete a hostgroup on a Pure Storage FlashArray (removes all volumes and hosts).

Will return False is hostgroup is already in a deleted state.

New in version Oxygen.

name
: string
name of hostgroup

CLI Example:

salt '*' purefa.hg_delete foo
salt.modules.purefa.hg_remove(name, volume=None, host=None)

Remove a host and/or volume from a hostgroup on a Pure Storage FlashArray.

Will return False is hostgroup does not exist, or named host or volume are not in the hostgroup.

New in version Oxygen.

name
: string
name of hostgroup
volume
: string
name of volume to remove from hostgroup
host
: string
name of host to remove from hostgroup

CLI Example:

salt '*' purefa.hg_remove foo volume=test host=bar
salt.modules.purefa.hg_update(name, host=None, volume=None)

Adds entries to a hostgroup on a Pure Storage FlashArray.

Will return False is hostgroup doesn't exist, or host or volume do not exist.

New in version Oxygen.

name
: string
name of hostgroup
host
: string
name of host to add to hostgroup
volume
: string
name of volume to add to hostgroup

CLI Example:

salt '*' purefa.hg_update foo host=bar volume=vol
salt.modules.purefa.host_create(name, iqn=None, wwn=None)

Add a host on a Pure Storage FlashArray.

Will return False if host already exists, or the iSCSI or Fibre Channel parameters are not in a valid format. See Pure Storage FlashArray documentation.

New in version Oxygen.

name
: string
name of host (truncated to 63 characters)
iqn
: string
iSCSI IQN of host
wwn
: string
Fibre Channel WWN of host

CLI Example:

salt '*' purefa.host_create foo iqn='<Valid iSCSI IQN>' wwn='<Valid WWN>'
salt.modules.purefa.host_delete(name)

Delete a host on a Pure Storage FlashArray (detaches all volumes).

Will return False if the host doesn't exist.

New in version Oxygen.

name
: string
name of host

CLI Example:

salt '*' purefa.host_delete foo
salt.modules.purefa.host_update(name, iqn=None, wwn=None)

Update a hosts port definitions on a Pure Storage FlashArray.

Will return False if new port definitions are already in use by another host, or are not in a valid format. See Pure Storage FlashArray documentation.

New in version Oxygen.

name
: string
name of host
iqn
: string
Additional iSCSI IQN of host
wwn
: string
Additional Fibre Channel WWN of host

CLI Example:

salt '*' purefa.host_update foo iqn='<Valid iSCSI IQN>' wwn='<Valid WWN>'
salt.modules.purefa.pg_create(name, hostgroup=None, host=None, volume=None, enabled=True)

Create a protection group on a Pure Storage FlashArray.

Will return False is the following cases:
  • Protection Grop already exists
  • Protection Group in a deleted state
  • More than one type is specified - protection groups are for only hostgroups, hosts or volumes
  • Named type for protection group does not exist

New in version Oxygen.

name
: string
name of protection group
hostgroup
: string
name of hostgroup to add to protection group
host
: string
name of host to add to protection group
volume
: string
name of volume to add to protection group

CLI Example:

salt '*' purefa.pg_create foo [hostgroup=foo | host=bar | volume=vol] enabled=[true | false]
salt.modules.purefa.pg_delete(name, eradicate=False)

Delete a protecton group on a Pure Storage FlashArray.

Will return False if protection group is already in a deleted state.

New in version Oxygen.

name
: string
name of protection group

CLI Example:

salt '*' purefa.pg_delete foo
salt.modules.purefa.pg_eradicate(name)

Eradicate a deleted protecton group on a Pure Storage FlashArray.

Will return False if protection group is not in a deleted state.

New in version Oxygen.

name
: string
name of protection group

CLI Example:

salt '*' purefa.pg_eradicate foo
salt.modules.purefa.pg_remove(name, hostgroup=None, host=None, volume=None)

Remove a hostgroup, host or volume from a protection group on a Pure Storage FlashArray.

Will return False in the following cases:
  • Protection group does not exist
  • Specified type is not currently associated with the protection group

New in version Oxygen.

name
: string
name of hostgroup
hostgroup
: string
name of hostgroup to remove from protection group
host
: string
name of host to remove from hostgroup
volume
: string
name of volume to remove from hostgroup

CLI Example:

salt '*' purefa.pg_remove foo [hostgroup=bar | host=test | volume=bar]
salt.modules.purefa.pg_update(name, hostgroup=None, host=None, volume=None)

Update a protection group on a Pure Storage FlashArray.

Will return False in the following cases:
  • Protection group does not exist
  • Incorrect type selected for current protection group type
  • Specified type does not exist

New in version Oxygen.

name
: string
name of protection group
hostgroup
: string
name of hostgroup to add to protection group
host
: string
name of host to add to protection group
volume
: string
name of volume to add to protection group

CLI Example:

salt '*' purefa.pg_update foo [hostgroup=foo | host=bar | volume=vol]
salt.modules.purefa.snap_create(name, suffix=None)

Create a volume snapshot on a Pure Storage FlashArray.

Will return False is volume selected to snap does not exist.

New in version Oxygen.

name
: string
name of volume to snapshot
suffix
: string
if specificed forces snapshot name suffix. If not specified defaults to timestamp.

CLI Example:

salt '*' purefa.snap_create foo
salt '*' purefa.snap_create foo suffix=bar
salt.modules.purefa.snap_delete(name, suffix=None, eradicate=False)

Delete a volume snapshot on a Pure Storage FlashArray.

Will return False if selected snapshot does not exist.

New in version Oxygen.

name
: string
name of volume
suffix
: string
name of snapshot
eradicate
: boolean
Eradicate snapshot after deletion if True. Default is False

CLI Example:

salt '*' purefa.snap_delete foo suffix=snap eradicate=True
salt.modules.purefa.snap_eradicate(name, suffix=None)

Eradicate a deleted volume snapshot on a Pure Storage FlashArray.

Will retunr False is snapshot is not in a deleted state.

New in version Oxygen.

name
: string
name of volume
suffix
: string
name of snapshot

CLI Example:

salt '*' purefa.snap_delete foo suffix=snap eradicate=True
salt.modules.purefa.snap_volume_create(name, target, overwrite=False)

Create R/W volume from snapshot on a Pure Storage FlashArray.

Will return False if target volume already exists and overwrite is not specified, or selected snapshot doesn't exist.

New in version Oxygen.

name
: string
name of volume snapshot
target
: string
name of clone volume
overwrite
: boolean
overwrite clone if already exists (default: False)

CLI Example:

salt '*' purefa.snap_volume_create foo.bar clone overwrite=True
salt.modules.purefa.volume_attach(name, host)

Attach a volume to a host on a Pure Storage FlashArray.

Host and volume must exist or else will return False.

New in version Oxygen.

name
: string
name of volume
host
: string
name of host

CLI Example:

salt '*' purefa.volume_attach foo bar
salt.modules.purefa.volume_clone(name, target, overwrite=False)

Clone an existing volume on a Pure Storage FlashArray.

Will return False if source volume doesn't exist, or target volume already exists and overwrite not specified.

New in version Oxygen.

name
: string
name of volume
target
: string
name of clone volume
overwrite
: boolean
overwrite clone if already exists (default: False)

CLI Example:

salt '*' purefa.volume_clone foo bar overwrite=True
salt.modules.purefa.volume_create(name, size=None)

Create a volume on a Pure Storage FlashArray.

Will return False if volume already exists.

New in version Oxygen.

name
: string
name of volume (truncated to 63 characters)
size
: string
if specificed capacity of volume. If not specified default to 1G. Refer to Pure Storage documentation for formatting rules.

CLI Example:

salt '*' purefa.volume_create foo
salt '*' purefa.volume_create foo size=10T
salt.modules.purefa.volume_delete(name, eradicate=False)

Delete a volume on a Pure Storage FlashArray.

Will return False if volume doesn't exist is already in a deleted state.

New in version Oxygen.

name
: string
name of volume
eradicate
: boolean
Eradicate volume after deletion if True. Default is False

CLI Example:

salt '*' purefa.volume_delete foo eradicate=True
salt.modules.purefa.volume_detach(name, host)

Detach a volume from a host on a Pure Storage FlashArray.

Will return False if either host or volume do not exist, or if selected volume isn't already connected to the host.

New in version Oxygen.

name
: string
name of volume
host
: string
name of host

CLI Example:

salt '*' purefa.volume_detach foo bar
salt.modules.purefa.volume_eradicate(name)

Eradicate a deleted volume on a Pure Storage FlashArray.

Will return False is volume is not in a deleted state.

New in version Oxygen.

name
: string
name of volume

CLI Example:

salt '*' purefa.volume_eradicate foo
salt.modules.purefa.volume_extend(name, size)

Extend an existing volume on a Pure Storage FlashArray.

Will return False if new size is less than or equal to existing size.

New in version Oxygen.

name
: string
name of volume
size
: string
New capacity of volume. Refer to Pure Storage documentation for formatting rules.

CLI Example:

salt '*' purefa.volume_extend foo 10T