Management of Pure Storage FlashArray
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.
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
From environment (PUREFA_IP and PUREFA_API)
From the pillar (PUREFA_IP and PUREFA_API)
Simon Dodsley (simon@purestorage.com)
new
purestorage
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.
name of hostgroup (truncated to 63 characters)
name of host to add to hostgroup
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.
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.
name of hostgroup
name of volume to remove from hostgroup
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.
name of hostgroup
name of host to add to hostgroup
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 2018.3.0.
name of host (truncated to 63 characters)
iSCSI IQN of host
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 2018.3.0.
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 2018.3.0.
name of host
Additional iSCSI IQN of host
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.
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.
name of protection group
name of hostgroup to add to protection group
name of host to add to protection group
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.
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.
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.
Protection group does not exist
Specified type is not currently associated with the protection group
New in version 2018.3.0.
name of hostgroup
name of hostgroup to remove from protection group
name of host to remove from hostgroup
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.
Protection group does not exist
Incorrect type selected for current protection group type
Specified type does not exist
New in version 2018.3.0.
name of protection group
name of hostgroup to add to protection group
name of host to add to protection group
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.
name of volume to snapshot
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.
name of volume
name of snapshot
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.
name of volume
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.
name of volume snapshot
name of clone volume
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.
name of volume
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.
name of volume
name of clone volume
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.
name of volume (truncated to 63 characters)
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.
name of volume
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.
name of volume
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.
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.
name of volume
New capacity of volume. Refer to Pure Storage documentation for formatting rules.
CLI Example:
salt '*' purefa.volume_extend foo 10T