Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/storage/purestorage/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pyo

�
�Udac@`sddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddlm
Z
mZdd
lmZyddlmZeZWnek
r�eZnXd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zedkre�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bys
---
module: purefa_snap
version_added: '2.4'
short_description: Manage volume snapshots on Pure Storage FlashArrays
description:
- Create or delete volumes and volume snapshots on Pure Storage FlashArray.
author:
- Pure Storage Ansible Team (@sdodsley) <[email protected]>
options:
  name:
    description:
    - The name of the source volume.
    type: str
    required: true
  suffix:
    description:
    - Suffix of snapshot name.
    type: str
  target:
    description:
    - Name of target volume if creating from snapshot.
    type: str
  overwrite:
    description:
    - Define whether to overwrite existing volume when creating from snapshot.
    type: bool
    default: 'no'
  state:
    description:
    - Define whether the volume snapshot should exist or not.
    choices: [ absent, copy, present ]
    type: str
    default: present
  eradicate:
    description:
    - Define whether to eradicate the snapshot on delete or leave in trash.
    type: bool
    default: 'no'
extends_documentation_fragment:
- purestorage.fa
sZ
- name: Create snapshot foo.ansible
  purefa_snap:
    name: foo
    suffix: ansible
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: present

- name: Create R/W clone foo_clone from snapshot foo.snap
  purefa_snap:
    name: foo
    suffix: snap
    target: foo_clone
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: copy

- name: Overwrite existing volume foo_clone with snapshot foo.snap
  purefa_snap:
    name: foo
    suffix: snap
    target: foo_clone
    overwrite: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: copy

- name: Delete and eradicate snapshot named foo.snap
  purefa_snap:
    name: foo
    suffix: snap
    eradicate: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: absent
t
(t
AnsibleModule(t
get_systemtpurefa_argument_spec(tdatetime(tpurestoragecC`s1y|j|jd�SWntk
r,dSXdS(sReturn Volume or NonetnameN(t
get_volumetparamst	ExceptiontNone(tmoduletarray((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pyRns
cC`s1y|j|jd�SWntk
r,dSXdS(sReturn Volume or NonettargetN(RRRR(RR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pyt
get_targetvs
cC`sty[|jdd|jd}x8|j|jddd�D]}|d|kr<|Sq<WWntk
rodSXdS(sReturn Snapshot or NoneRt.tsuffixtsnapttrueN(RRRR(RRtsnapnamets((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pytget_snapshot~s#
cC`set}|jsQy%|j|jdd|jd�WqQtk
rMt}qQXn|jd|�dS(sCreate SnapshotRRtchangedN(tTruet
check_modetcreate_snapshotRRtFalset	exit_json(RRR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pyR!�s	%

cC`s�|jdd|jd}t||�}|dkrct}|js�|j||jd�q�nu|dk	r�|jdr�t}|js�|j||jdd|jd�q�n#|dk	r�|jdr�t}n|jd|�dS(sCreate Volume from SnapshotRRRRt	overwriteRN(RRRRR tcopy_volumeR"R#(RRtsourcettgtR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pytcreate_from_snapshot�s 				
	cC`st}|jd|�dS(sUpdate SnapshotRN(R"R#(RRR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pytupdate_snapshot�scC`s�t}|js�|jdd|jd}yL|j|�|jdrvy|j|�Wqvtk
rrt}qvXnWq�tk
r�t}q�Xn|jd|�dS(s Delete SnapshotRRRt	eradicateRN(RR Rtdestroy_volumeteradicate_volumeRR"R#(RRRR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pytdelete_snapshot�s	




c	C`s�t�}|jtdtdddt�dtdd�dtdd�dtddd	t�d
tddd	t�dtddd	dd
dddg���ddddgfg}t|d|dt�}ts�|jdd�n|jddkrJdt
tj�tddddddd�j
��}|jdd�|jd<n|jd}t|�}t||�}t||�}t||�}|dkr�|r�|r�t||�n�|dkr�|r�|r�t||�n�|dkr|rt||�n�|dkr&|r&t||�nk|dkrI|rIt||�nH|dkrk|rkt||�n&|dkr�|r�|jdt�ndS(NRttypetstrtrequiredRRR$tbooltdefaultR*tstatetpresenttchoicestabsenttcopytrequired_iftsupports_check_modetmsgs5purestorage sdk is required for this module in volumessnap-i�iiRtR(RtupdatetdictRR"R	tHAS_PURESTORAGEt	fail_jsonRRR/Rtutcnowt
total_secondstreplaceR
RRRR!R)R(R-R#(	t
argument_specR8RRR3RtvolumeRR((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pytmain�sH	(		8
t__main__N(t
__future__RRRR.t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNtansible.module_utils.basicR	tansible.module_utils.pureR
RRR
RR>tImportErrorR"RRRR!R(R)R-REt__name__(((sS/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_snap.pyt<module>s2


+&


								.

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]