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 2018.3.0.

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 2018.3.0.

namestring

name of hostgroup (truncated to 63 characters)

hoststring

name of host to add to hostgroup

volumestring

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 2018.3.0.

namestring

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 2018.3.0.

namestring

name of hostgroup

volumestring

name of volume to remove from hostgroup

hoststring

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 2018.3.0.

namestring

name of hostgroup

hoststring

name of host to add to hostgroup

volumestring

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, nqn=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 2018.3.0.

namestring

name of host (truncated to 63 characters)

iqnstring

iSCSI IQN of host

nqnstring

NVMeF NQN of host .. versionadded:: 3006.0

wwnstring

Fibre Channel WWN of host

CLI Example:

salt '*' purefa.host_create foo iqn='<Valid iSCSI IQN>' wwn='<Valid WWN>' nqn='<Valid NQN>'
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 2018.3.0.

namestring

name of host

CLI Example:

salt '*' purefa.host_delete foo
salt.modules.purefa.host_update(name, iqn=None, wwn=None, nqn=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 2018.3.0.

namestring

name of host

nqnstring

Additional NVMeF NQN of host .. versionadded:: 3006.0

iqnstring

Additional iSCSI IQN of host

wwnstring

Additional Fibre Channel WWN of host

CLI Example:

salt '*' purefa.host_update foo iqn='<Valid iSCSI IQN>' wwn='<Valid WWN>' nqn='<Valid NQN>'
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 2018.3.0.

namestring

name of protection group

hostgroupstring

name of hostgroup to add to protection group

hoststring

name of host to add to protection group

volumestring

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 2018.3.0.

namestring

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 2018.3.0.

namestring

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 2018.3.0.

namestring

name of hostgroup

hostgroupstring

name of hostgroup to remove from protection group

hoststring

name of host to remove from hostgroup

volumestring

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 2018.3.0.

namestring

name of protection group

hostgroupstring

name of hostgroup to add to protection group

hoststring

name of host to add to protection group

volumestring

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 2018.3.0.

namestring

name of volume to snapshot

suffixstring

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 2018.3.0.

namestring

name of volume

suffixstring

name of snapshot

eradicateboolean

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 return False if snapshot is not in a deleted state.

New in version 2018.3.0.

namestring

name of volume

suffixstring

name of snapshot

CLI Example:

salt '*' purefa.snap_eradicate foo suffix=snap
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 2018.3.0.

namestring

name of volume snapshot

targetstring

name of clone volume

overwriteboolean

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 2018.3.0.

namestring

name of volume

hoststring

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 2018.3.0.

namestring

name of volume

targetstring

name of clone volume

overwriteboolean

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 2018.3.0.

namestring

name of volume (truncated to 63 characters)

sizestring

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 2018.3.0.

namestring

name of volume

eradicateboolean

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 2018.3.0.

namestring

name of volume

hoststring

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 2018.3.0.

namestring

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 2018.3.0.

namestring

name of volume

sizestring

New capacity of volume. Refer to Pure Storage documentation for formatting rules.

CLI Example:

salt '*' purefa.volume_extend foo 10T