�
�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
Wn e k
r� e Z n Xy d d l Z e
Z Wn e k
r� e Z n Xd d
l m Z d d l m Z m Z 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: 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
( t SubnetN( t
AnsibleModule( t get_bladet purefb_argument_specs 1.3c C` sW g } | j | j d � y$ | j j d | � } | j d SWn t k
rR d SXd S( s Return Subnet or Nonet namet namesi N( t appendt paramst subnetst list_subnetst itemst Exceptiont None( t modulet bladet subnett res( ( sU /usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
get_subnetx s
c C` s� g } | j | j d � yZ | j j d | d t d | j d d | j d d | j d d | j d � � t } Wn1 t k
r� | j d d j | j d � � n X| j d
| � d S( s
Create SubnetR
R R t prefixt vlant mtut gatewayt msgs8 Failed to create subnet {0}. Confirm supplied parameterst changedN(
R R R t create_subnetsR t TrueR t fail_jsont formatt exit_json( R R R R ( ( sU /usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/purefb_subnet.pyt
create_subnet� s
$c C` s� t } t | | � } g } | j | j d � | j d r� | j d | j k r� y3 | j j d | d t d | j d � � t } Wq� t k
r� | j
d d j | j d | j d � � q� Xq� n | j d rc| j d | j k rcy3 | j j d | d t d | j d � � t } Wq`t k
r\| j
d d j | j d | j d � � q`Xqcn | j d r�| j d | j
k r�y3 | j j d | d t d | j d � � t } Wq�t k
r�| j
d d
j | j d | j d � � q�Xq�n | j d r�| j d | j k r�y3 | j j d | d t d | j d � � t } Wq�t k
r�| j
d d j | j d | j d � � q�Xq�n | j d
| � d S( s Modify Subnet settingsR
R R R R s) Failed to change subnet {0} prefix to {1}R s'