%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/purefb.pyo

�
���^c@@scdZddlmZmZmZddlZddlmZddlmZddl	m
Z
yHddlmZm
Z
mZmZddlmZmZmZeZWnek
r�eZnXd	Zd
Zd�Zd�Zd
�Zd�Zd�Zdd�Zded�Z dd�Z!ddded�Z"ed�Z#d�Z$d�Z%ed�Z&dS(u)

Management of Pure Storage FlashBlade

Installation Prerequisites
--------------------------
- You will need the ``purity_fb`` python package in your python installation
  path that is running salt.

  .. code-block:: bash

      pip install purity_fb

- Configure Pure Storage FlashBlade authentication. Use one of the following
  three methods.

  1) From the minion config

  .. code-block:: yaml

        pure_tags:
          fb:
            san_ip: management vip or hostname for the FlashBlade
            api_token: A valid api token for the FlashBlade being managed

  2) From environment (PUREFB_IP and PUREFB_API)
  3) From the pillar (PUREFB_IP and PUREFB_API)

:maintainer: Simon Dodsley (simon@purestorage.com)
:maturity: new
:requires: purestorage
:platform: all

.. versionadded::  2019.2.0

i(tabsolute_importtprint_functiontunicode_literalsN(tdatetime(tsix(tCommandExecutionError(tPurityFbt
FileSystemtFileSystemSnapshottSnapshotSuffix(tresttNfsRuletProtocolRuleurestructuredtext enupurefbcC@str
tStdfS(u6
    Determine whether or not to load this module
    uKpurefb execution module not loaded: purity_fb python library not available.(t
HAS_PURITY_FBt__virtualname__tFalse(((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt__virtual__LscC@s[yWtddjd�}tddjd�}|rVtrVt|�}|j�nWn�tttfk
r%yGtj	jd�}tj	jd�}|r�t|�}|j�nWq&t
ttfk
r!y(td}ttd�}|j�Wq"ttfk
rtd��q"Xq&XnXy|j
|�Wntk
rVtd��nX|S(	ub
    Get Pure Storage FlasBlade configuration

    1) From the minion config
        pure_tags:
          fb:
            san_ip: management vip or hostname for the FlashBlade
            api_token: A valid api token for the FlashBlade being managed
    2) From environment (PUREFB_IP and PUREFB_API)
    3) From the pillar (PUREFB_IP and PUREFB_API)

  u	pure_tagsufbusan_ipu	api_tokenu	PUREFB_IPu
PUREFB_APIu-No Pure Storage FlashBlade credentials found.u.Pure Storage FlashBlade authentication failed.(t__opts__tgettapiRtdisable_verify_ssltKeyErrort	NameErrort	TypeErrortostenviront
ValueErrort
__pillar__Rtlogint	Exception(t
blade_namet	api_tokentblade((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt
_get_bladeUs2

cC@sSg}|j|�y$|jjd|�}|jdSWntjk
rNdSXdS(uE
    Private function to
    check for existance of a filesystem
    tnamesiN(tappendtfile_systemstlist_file_systemstitemsR
tApiExceptiontNone(tnameR t_fstres((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt_get_fs~s
cC@sRy6dj||�}|jjd|�}|jdSWntjk
rMdSXdS(u-
    Return name of Snapshot
    or None
    usource='{}' and suffix='{}'tfilteriN(tformattfile_system_snapshotstlist_file_system_snapshotsR&R
R'R((R)tsuffixR tfiltR+((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt
_get_snapshot�scC@sBy&t||�}|r%|jr%|SWntjk
r=dSXdS(uR
    Private function to check
    if a file systeem has already been deleted
    N(R,t	destroyedR
R'R((R)R R*((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt_get_deleted_fs�scC@s�t�}|d	kredtjtj�tddddddd�j��}|jdd�}nt||�d	k	r�y:g}|j	|�|j
jd|dt|��t
SWq�tjk
r�tSXntSd	S(
u�

    Create a filesystem snapshot on a Pure Storage FlashBlade.

    Will return False if filesystem selected to snap does not exist.

    .. versionadded::  2019.2.0

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

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.snap_create foo
        salt '*' purefb.snap_create foo suffix=bar

    usnap-i�iiu.utsourcesR1N(R!R(Rt	text_typeRtutcnowt
total_secondstreplaceR,R#R/tcreate_file_system_snapshotsR	tTrueR
R'R(R)R1R tsource((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pytsnap_create�s 	)

cC@s�t�}t|||�dk	r�y:|d|}tdt�}|jjd|d|�Wntjk
rrt	SX|tkr�y|jj
d|�tSWq�tjk
r�t	SXq�tSnt	SdS(u�

    Delete a filesystem snapshot on a Pure Storage FlashBlade.

    Will return False if selected snapshot does not exist.

    .. versionadded::  2019.2.0

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

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.snap_delete foo suffix=snap eradicate=True

    u.R4R)t
attributesN(R!R3R(RR<R/tupdate_file_system_snapshotsR
R'Rtdelete_file_system_snapshots(R)R1t	eradicateR tsnapnametnew_attr((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pytsnap_delete�s"	cC@smt�}t|||�dk	re|d|}y|jjd|�tSWqitjk
ratSXntSdS(uo

    Eradicate a deleted filesystem snapshot on a Pure Storage FlashBlade.

    Will return False if snapshot is not in a deleted state.

    .. versionadded::  2019.2.0

    name : string
        name of filesystem
    suffix : string
        name of snapshot

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.snap_eradicate foo suffix=snap

    u.R)N(	R!R3R(R/RAR<R
R'R(R)R1R RC((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pytsnap_eradicate�s	uNFSu*(rw,no_root_squash)cC@s�t|�dkr"|dd!}nt�}t|�t||�dkr�|dkritdd�}ntd|�}|j�dkr�td|d|dtd	|d
t	dtd|��}n�|j�d
kr	td|d|dtd	|dt
dt��}nI|j�dkrNtd|d|dtd	|dt
dt��}ntSy|jj
|�tSWq�tjk
r�tSXntSdS(u�

    Create a filesystem on a Pure Storage FlashBlade.

    Will return False if filesystem already exists.

    .. versionadded::  2019.2.0

    name : string
        name of filesystem (truncated to 63 characters)
    proto : string
        (Optional) Sharing protocol (NFS, CIFS or HTTP). If not specified default is NFS
    snapshot: boolean
        (Optional) Are snapshots enabled on the filesystem. Default is False
    nfs_rules : string
        (Optional) export rules for NFS. If not specified default is
        ``*(rw,no_root_squash)``. Refer to Pure Storage documentation for
        formatting rules.
    size : string
        if specified capacity of filesystem. If not specified default to 32G.
        Refer to Pure Storage documentation for formatting rules.

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.fs_create foo proto=CIFS
        salt '*' purefb.fs_create foo size=10T

    i?iustringutils.human_to_bytesu32GunfsR)tprovisionedtfast_remove_directory_enabledtsnapshot_directory_enabledtnfstenabledtrulesucifstsmbuhttpthttpN(tlenR!tprintR,R(t	__utils__tlowerRR<RRRR$tcreate_file_systemsR
R'(R)tsizetprotot	nfs_rulestsnapshotR tfs_obj((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt	fs_createsB	
c
C@s�t�}t||�dk	r�yS|jjd|dtdtdt�dtdt�dtdt�dt	��Wnt
jk
r�tSX|t	kr�y|jj|�t	SWq�t
jk
r�tSXq�t	SntSdS(	u�

    Delete a share on a Pure Storage FlashBlade.

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

    .. versionadded::  2019.2.0

    name : string
        name of filesystem
    eradicate : boolean
        (Optional) Eradicate filesystem after deletion if True. Default is False

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.fs_delete foo eradicate=True

    R)R?RJRKRMRNR4N(
R!R,R(R$tupdate_file_systemsRRRRR<R
R'tdelete_file_systems(R)RBR ((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt	fs_deleteds$	cC@sYt�}t||�dk	rQy|jj|�tSWqUtjk
rMtSXntSdS(u-

    Eradicate a deleted filesystem on a Pure Storage FlashBlade.

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

    .. versionadded::  2019.2.0

    name : string
        name of filesystem

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.fs_eradicate foo

    N(	R!R5R(R$R[R<R
R'R(R)R ((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pytfs_eradicate�s	cC@s�i}t�}t||�}|dk	r�td|�|jkr�yAtd|�|d<t|�}|jjd|d|�tSWq�t	j
k
r�tSXq�tSntSdS(u�

    Resize an existing filesystem on a Pure Storage FlashBlade.

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

    .. versionadded::  2019.2.0

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

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.fs_extend foo 10T

    ustringutils.human_to_bytesuprovisionedR)R?N(R!R,R(RQRGRR$RZR<R
R'R(R)RTtattrR R*tn_attr((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt	fs_extend�s	cC@s�t�}i}t||�}|dk	r�yY|jjrOtd|�|d<n||d<t|�}|jjd|d|�t	SWq�t
jk
r�tSXntSdS(u`

    Update filesystem on a Pure Storage FlashBlade.

    Allows for change of NFS export rules and enabling/disabled
    of snapshotting capability.

    .. versionadded::  2019.2.0

    name : string
        name of filesystem
    rules : string
        NFS export rules for filesystem
        Refer to Pure Storage documentation for formatting rules.
    snapshot: boolean
        (Optional) Enable/Disable snapshots on the filesystem. Default is False

    CLI Example:

    .. code-block:: bash

        salt '*' purefb.fs_nfs_update foo rules='10.234.112.23(ro), 10.234.112.24(rw)' snapshot=True

    RLunfsusnapshot_directory_enabledR)R?N(
R!R,R(RJRKRRR$RZR<R
R'R(R)RLRWR R^R*R_((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt	fs_update�s	
('t__doc__t
__future__RRRRRtsalt.extRtsalt.exceptionsRt	purity_fbRRRR	R
RRR<R
tImportErrorRt
__docformat__RRR!R,R3R5R(R>RERFRYR\R]R`Ra(((s7/usr/lib/python2.7/site-packages/salt/modules/purefb.pyt<module>4s4"


			)		
	
),!H,		(

Zerion Mini Shell 1.0