�
�Udac @` s d d l m Z m Z m Z e Z i d d 6d g d 6d d 6Z d Z d Z d
Z e
Z y d d l m
Z
m Z m Z Wn e k
r� e Z n Xd d l m Z m Z d d
l m Z m Z d Z d Z d � Z d � Z d � Z d � Z d � Z d � Z e d k re � n d S( i ( t absolute_importt divisiont print_functions 1.1t metadata_versiont previewt statust communityt supported_bysH
---
module: purefb_fs
version_added: "2.6"
short_description: Manage filesystemon Pure Storage FlashBlade`
description:
- This module manages filesystems on Pure Storage FlashBlade.
author: Pure Storage Ansible Team (@sdodsley) <[email protected]>
options:
name:
description:
- Filesystem Name.
required: true
type: str
state:
description:
- Create, delete or modifies a filesystem.
required: false
default: present
type: str
choices: [ "present", "absent" ]
eradicate:
description:
- Define whether to eradicate the filesystem on delete or leave in trash.
required: false
type: bool
default: false
size:
description:
- Volume size in M, G, T or P units. See examples.
type: str
required: false
default: 32G
nfsv3:
description:
- Define whether to NFSv3 protocol is enabled for the filesystem.
required: false
type: bool
default: true
version_added: 2.9
nfsv4:
description:
- Define whether to NFSv4.1 protocol is enabled for the filesystem.
required: false
type: bool
default: true
version_added: 2.9
nfs:
description:
- (Deprecate) Define whether to NFSv3 protocol is enabled for the filesystem.
- This option will be deprecated in 2.10, use I(nfsv3) instead.
required: false
type: bool
default: true
nfs_rules:
description:
- Define the NFS rules in operation.
required: false
default: '*(rw,no_root_squash)'
type: str
smb:
description:
- Define whether to SMB protocol is enabled for the filesystem.
required: false
type: bool
default: false
http:
description:
- Define whether to HTTP/HTTPS protocol is enabled for the filesystem.
required: false
type: bool
default: false
snapshot:
description:
- Define whether a snapshot directory is enabled for the filesystem.
required: false
type: bool
default: false
fastremove:
description:
- Define whether the fast remove directory is enabled for the filesystem.
required: false
type: bool
default: false
hard_limit:
description:
- Define whether the capacity for a filesystem is a hard limit.
- CAUTION This will cause the filesystem to go Read-Only if the
capacity has already exceeded the logical size of the filesystem.
required: false
type: bool
default: false
version_added: 2.8
user_quota:
description:
- Default quota in M, G, T or P units for a user under this file system.
required: false
type: str
version_added: 2.9
group_quota:
description:
- Default quota in M, G, T or P units for a group under this file system.
required: false
type: str
version_added: 2.9
extends_documentation_fragment:
- purestorage.fb
s
- name: Create new filesystem named foo
purefb_fs:
name: foo
size: 1T
state: present
fb_url: 10.10.10.2
api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641
- name: Delete filesystem named foo
purefb_fs:
name: foo
state: absent
fb_url: 10.10.10.2
api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641
- name: Recover filesystem named foo
purefb_fs:
name: foo
state: present
fb_url: 10.10.10.2
api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641
- name: Eradicate filesystem named foo
purefb_fs:
name: foo
state: absent
eradicate: true
fb_url: 10.10.10.2
api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641
- name: Modify attributes of an existing filesystem named foo
purefb_fs:
name: foo
size: 2T
nfsv3 : false
nfsv4 : true
user_quota: 10K
group_quota: 25M
nfs_rules: '*(ro)'
snapshot: true
fastremove: true
hard_limit: true
smb: true
state: present
fb_url: 10.10.10.2
api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641t
( t
FileSystemt ProtocolRulet NfsRule( t
AnsibleModulet human_to_bytes( t get_bladet purefb_argument_specs 1.4s 1.6c C` sW g } | j | j d � y$ | j j d | � } | j d SWn t k
rR d SXd S( s Return Filesystem or Nonet namet namesi N( t appendt paramst file_systemst list_file_systemst itemst Exceptiont None( t modulet bladet fsyst res( ( sQ /usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_fs.pyt get_fs� s
c C` s t } | j s�y�| j d s/ d | j d <n t | j d � } | j d d k rb | j d n
| j d } | j d r� t | j d � } n d } | j d r� t | j d � } n d } | j j � j } t | k r t | k r�t
d | j d d | d | j d
d | j d d
| j d d t d | d | j d d | j d � d t d | j d � d t d | j d � d | d | �
} q�t
d | j d d | d | j d
d | j d d
| j d d t d | d | j d � d t d | j d � d t d | j d � � } n� t
d | j d d | d | j d
d
| j d d t d | j d d | j d � d t d | j d � d t d | j d � � } | j
j | � Wq�t k
r�| j d d j | j d � � q�Xn | j d | � d S( s Create Filesystemt sizet 32Gt nfsv3t nfst
user_quotat group_quotaR t provisionedt fast_remove_directory_enabledt
fastremovet hard_limit_enabledt
hard_limitt snapshot_directory_enabledt snapshott
v3_enabledt v4_1_enabledt nfsv4t rulest nfs_rulest smbt enabledt httpt default_user_quotat default_group_quotat msgs Failed to create filesystem {0}.t changedN( t Truet
check_modeR R
R t api_versiont
list_versionst versionst HARD_LIMIT_API_VERSIONt NFSV4_API_VERSIONR R R
R t create_file_systemsR t fail_jsont formatt exit_json( R R R6 R R R"