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/purefb_subnet.pyo

�
�Udac@`s)ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	e
Zyddlm
Z
Wnek
r�eZnXyddlZe
ZWnek
r�eZnXdd
lmZddlmZmZdZd�Zd�Zd�Zd�Zd�Zedkr%e�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bys�
---
module: purefb_subnet
version_added: "2.8"
short_description:  Manage network subnets in a Pure Storage FlashBlade
description:
    - This module manages network subnets on Pure Storage FlashBlade.
author: Pure Storage Ansible Team (@sdodsley) <[email protected]>
options:
  name:
    description:
      - Subnet Name.
    required: true
    type: str
  state:
    description:
      - Create, delete or modifies a subnet.
    required: false
    default: present
    choices: [ "present", "absent" ]
    type: str
  gateway:
    description:
      - IPv4 or IPv6 address of subnet gateway.
    required: false
    type: str
  mtu:
    description:
      - MTU size of the subnet. Range is 1280 to 9216.
    required: false
    default: 1500
    type: int
  prefix:
    description:
      - IPv4 or IPv6 address associated with the subnet.
      - Supply the prefix length (CIDR) as well as the IP address.
    required: false
    type: str
  vlan:
    description:
      - VLAN ID of the subnet.
    required: false
    default: 0
    type: int
extends_documentation_fragment:
    - purestorage.fb
notes:
    - Requires the netaddr Python package on the host.
requirements:
    - netaddr
s�
- name: Create new network subnet named foo
  purefb_subnet:
    name: foo
    prefix: "10.21.200.3/24"
    gateway: 10.21.200.1
    mtu: 9000
    vlan: 2200
    state: present
    fb_url: 10.10.10.2
    api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641

- name: Change configuration of existing subnet foo
  purefb_network:
    name: foo
    state: present
    prefix: "10.21.100.3/24"
    gateway: 10.21.100.1
    mtu: 1500
    address: 10.21.200.123
    fb_url: 10.10.10.2
    api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641

- name: Delete network subnet named foo
  purefb_subnet:
    name: foo
    state: absent
    fb_url: 10.10.10.2
    api_token: T-55a68eb5-c785-4720-a2ca-8b03903bf641t
(tSubnetN(t
AnsibleModule(t	get_bladetpurefb_argument_specs1.3cC`sWg}|j|jd�y$|jjd|�}|jdSWntk
rRdSXdS(sReturn Subnet or NonetnametnamesiN(tappendtparamstsubnetstlist_subnetstitemst	ExceptiontNone(tmoduletbladetsubnettres((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
get_subnetxs
cC`s�g}|j|jd�yZ|jjd|dtd|jdd|jdd|jdd|jd��t}Wn1tk
r�|jdd	j|jd��nX|j	d
|�dS(s
Create SubnetR
RRtprefixtvlantmtutgatewaytmsgs8Failed to create subnet {0}. Confirm supplied parameterstchangedN(
RRRtcreate_subnetsR	tTrueRt	fail_jsontformatt	exit_json(RRRR ((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
create_subnet�s



$cC`s�t}t||�}g}|j|jd�|jdr�|jd|jkr�y3|jjd|dtd|jd��t}Wq�t	k
r�|j
ddj|jd|jd��q�Xq�n|jdrc|jd|jkrcy3|jjd|dtd|jd��t}Wq`t	k
r\|j
ddj|jd|jd��q`Xqcn|jd	r�|jd	|j
kr�y3|jjd|dtd	|jd	��t}Wq�t	k
r�|j
dd
j|jd|jd	��q�Xq�n|jdr�|jd|jkr�y3|jjd|dtd|jd��t}Wq�t	k
r�|j
ddj|jd|jd��q�Xq�n|jd
|�dS(sModify Subnet settingsR
RRRRs)Failed to change subnet {0} prefix to {1}Rs'Failed to change subnet {0} VLAN to {1}Rs*Failed to change subnet {0} gateway to {1}Rs&Failed to change subnet {0} MTU to {1}R N(tFalseRRRRRtupdate_subnetsR	R"RR#R$RRRR%(RRR Rt
subnet_new((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
modify_subnet�sR











cC`seg}|j|jd�y|jjd|�t}Wntk
rPt}nX|jd|�dS(s Delete SubnetR
RR N(RRRtdelete_subnetsR"RR'R%(RRRR ((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
delete_subnet�s


c
C`s�t�}|jtdtdt�dtdddddg�dt�d	td
ddd�d
t�dtd
ddd���dddd
ggg}t|d|dt�}ts�|jdd�nts�|jdd�n|j	d}t
|�}|jj�j
}t|kr+|jdd�nt||�}|dkrd|j	d	koddkns�|jddj|j	d	��nd|j	dko�dkns�|jddj|j	d��ntj|j	d�tj|j	d
�kr|jdd�n|jj�}tj|j	d
g�}x�tdt|j��D]�}	|j|	j|j	dkr�|j|	j|j	dkr�|jddj|j	d��n|tj|j|	jg�@rR|j|	j|j	dkrR|jdd�qRqRWn|dkr/|r/t||�nj|dkrQ|rQt||�nH|dkrs|rst||�n&|dkr�|r�|j dt�ndS(NR
trequiredtstatetdefaulttpresenttchoicestabsentRRttypetinti�RRitrequired_iftsupports_check_modeRs)purity_fb sdk is required for this modulesnetaddr module is requireds(Upgrade Purity//FB to enable this moduleii$s&MTU {0} is out of range (1280 to 9216)i�s'VLAN ID {0} is out of range (0 to 4094)s&Gateway and subnet are not compatible.sVLAN ID {0} is already in use.s*Prefix CIDR overlaps with existing subnet.R (!RtupdatetdictR"R
R't
HAS_PURITY_FBR#tHAS_NETADDRRRtapi_versiont
list_versionstversionstMINIMUM_API_VERSIONRR$tnetaddrt	IPAddresst	IPNetworkRRtIPSettrangetlenRRR
RR&R*R,R%(
t
argument_specR5RR.RR;RRtnrangetsub((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pytmain�sZ					
####,:#=t__main__(t
__future__RRRR3t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR"R9t	purity_fbR	tImportErrorR'R?R:tansible.module_utils.basicR
tansible.module_utils.pureRRR>RR&R*R,RHt__name__(((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt<module>s6


5




			-		8

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