�
�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 d d l
Z
d d l m Z d d
l
m Z d d l m Z m Z d Z e
j d � Z d � Z d � Z d � Z d � Z d � Z e d k r� e � n d S( i ( t absolute_importt divisiont print_functions 1.1t metadata_versiont previewt statust communityt supported_bys
---
module: purefa_offload
version_added: '2.8'
short_description: Create, modify and delete NFS or S3 offload targets
description:
- Create, modify and delete NFS or S3 offload targets.
- Only supported on Purity v5.2.0 or higher.
- You must have a correctly configured offload network for offload to work.
author:
- Pure Storage Ansible Team (@sdodsley) <[email protected]>
options:
state:
description:
- Define state of offload
default: present
choices: [ absent, present ]
type: str
name:
description:
- The name of the offload target
required: true
type: str
protocol:
description:
- Define which protocol the offload engine uses
default: nfs
choices: [ nfs, s3 ]
type: str
address:
description:
- The IP or FQDN address of the NFS server
type: str
share:
description:
- NFS export on the NFS server
type: str
options:
description:
- Additional mount options for the NFS share
- Supported mount options include I(port), I(rsize),
I(wsize), I(nfsvers), and I(tcp) or I(udp)
required: false
default: ""
type: str
access_key:
description:
- Access Key ID of the S3 target
type: str
bucket:
description:
- Name of the bucket for the S3 target
type: str
secret:
description:
- Secret Access Key for the S3 target
type: str
initialize:
description:
- Define whether to initialize the S3 bucket
type: bool
default: true
extends_documentation_fragment:
- purestorage.fa
s�
- name: Create NFS offload target
purefa_offload:
name: nfs-offload
protocol: nfs
address: 10.21.200.4
share: "/offload_target"
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
- name: Create S3 offload target
purefa_offload:
name: s3-offload
protocol: s3
access_key: "3794fb12c6204e19195f"
bucket: offload-bucket
secret: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
- name: Delete offload target
purefa_offload:
name: nfs-offload
protocol: nfs
state: absent
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
t
N( t LooseVersion( t
AnsibleModule( t
get_systemt purefa_argument_specs 1.16s ^[a-zA-Z0-9\-]*$c C` s1 y | j | j d � SWn t k
r, d SXd S( s Return target or Nonet nameN( t get_offloadt paramst Exceptiont None( t modulet array( ( sV /usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_offload.pyt
get_target} s
c C` s� t } y* | j d � d s/ | j d d � n Wn! t k
rS | j d d � n X| j d d k r� yE | j | j d d | j d
d | j d d | j d
�t } Wq� t k
r� | j d d j | j d � � q� Xn | j d d k ryR | j | j d d | j d d | j d d | j d d | j d �t } Wqt k
r{| j d d j | j d � � qXn | j d | � d S( s Create offload targets
@offload.datat enabledt msgs6 Offload Network interface not enabled. Please resolve.sC Offload Network interface not correctly configured. Please resolve.t protocolt nfsR
t mount_pointt sharet addresst
mount_optionst optionssC Failed to create NFS offload {0}. Please perform diagnostic checks.t s3t
access_key_idt
access_keyt secret_access_keyt secrett buckett
initializesB Failed to create S3 offload {0}. Please perform diagnostic checks.t changedN(
t Falset get_network_interfacet fail_jsonR R t connect_nfs_offloadt Truet formatt connect_s3_offloadt exit_json( R R R% ( ( sV /usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefa_offload.pyt create_offload� s8
c C` s t } | j d | � d S( s Update offload targetR% N( R&