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/_purefa_facts.pyc

�
�Udac@`s|ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddlm
Z
mZd
ZdZdZd
ZdZdZdZdZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d �Z%d!�Z&d"�Z'd#�Z(d$�Z)d%�Z*d&�Z+e,d'krxe+�nd(S()i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiont
deprecatedtstatust	communitytsupported_bysY
---
module: purefa_facts
version_added: '2.6'
deprecated:
  removed_in: '2.13'
  why: Deprecated in favor of C(_info) module.
  alternative: Use M(purefa_info) instead.
short_description: Collect facts from Pure Storage FlashArray
description:
  - Collect facts information from a Pure Storage Flasharray running the
    Purity//FA operating system. By default, the module will collect basic
    fact information including hosts, host groups, protection
    groups and volume counts. Additional fact information can be collected
    based on the configured set of arguments.
author:
  - Pure Storage ansible Team (@sdodsley) <[email protected]>
options:
  gather_subset:
    description:
      - When supplied, this argument will define the facts to be collected.
        Possible values for this include all, minimum, config, performance,
        capacity, network, subnet, interfaces, hgroups, pgroups, hosts,
        admins, volumes, snapshots, pods, vgroups, offload, apps and arrays.
    type: list
    required: false
    default: minimum
extends_documentation_fragment:
  - purestorage.fa
s�
- name: collect default set of facts
  purefa_facts:
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: collect configuration and capacity facts
  purefa_facts:
    gather_subset:
      - config
      - capacity
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: collect all facts
  purefa_facts:
    gather_subset:
      - all
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
s� 
ansible_facts:
  description: Returns the facts collected from the FlashArray
  returned: always
  type: complex
  sample: {
        "capacity": {},
        "config": {
            "directory_service": {
                "array_admin_group": null,
                "base_dn": null,
                "bind_password": null,
                "bind_user": null,
                "check_peer": false,
                "enabled": false,
                "group_base": null,
                "readonly_group": null,
                "storage_admin_group": null,
                "uri": []
            },
            "dns": {
                "domain": "domain.com",
                "nameservers": [
                    "8.8.8.8",
                    "8.8.4.4"
                ]
            },
            "ntp": [
                "0.ntp.pool.org",
                "1.ntp.pool.org",
                "2.ntp.pool.org",
                "3.ntp.pool.org"
            ],
            "smtp": [
                {
                    "enabled": true,
                    "name": "[email protected]"
                },
                {
                    "enabled": true,
                    "name": "[email protected]"
                }
            ],
            "snmp": [
                {
                    "auth_passphrase": null,
                    "auth_protocol": null,
                    "community": null,
                    "host": "localhost",
                    "name": "localhost",
                    "privacy_passphrase": null,
                    "privacy_protocol": null,
                    "user": null,
                    "version": "v2c"
                }
            ],
            "ssl_certs": {
                "country": null,
                "email": null,
                "issued_by": "",
                "issued_to": "",
                "key_size": 2048,
                "locality": null,
                "organization": "Acme Storage, Inc.",
                "organizational_unit": "Acme Storage, Inc.",
                "state": null,
                "status": "self-signed",
                "valid_from": "2017-08-11T23:09:06Z",
                "valid_to": "2027-08-09T23:09:06Z"
            },
            "syslog": []
        },
        "default": {
            "array_name": "flasharray1",
            "connected_arrays": 1,
            "hostgroups": 0,
            "hosts": 10,
            "pods": 3,
            "protection_groups": 1,
            "purity_version": "5.0.4",
            "snapshots": 1,
            "volume_groups": 2
        },
        "hgroups": {},
        "hosts": {
            "host1": {
                "hgroup": null,
                "iqn": [
                    "iqn.1994-05.com.redhat:2f6f5715a533"
                ],
                "wwn": []
            },
            "host2": {
                "hgroup": null,
                "iqn": [
                    "iqn.1994-05.com.redhat:d17fb13fe0b"
                ],
                "wwn": []
            },
            "host3": {
                "hgroup": null,
                "iqn": [
                    "iqn.1994-05.com.redhat:97b1351bfb2"
                ],
                "wwn": []
            },
            "host4": {
                "hgroup": null,
                "iqn": [
                    "iqn.1994-05.com.redhat:dd84e9a7b2cb"
                ],
                "wwn": [
                    "10000000C96C48D1",
                    "10000000C96C48D2"
                ]
            }
        },
        "interfaces": {
            "CT0.ETH4": "iqn.2010-06.com.purestorage:flasharray.2111b767484e4682",
            "CT0.ETH5": "iqn.2010-06.com.purestorage:flasharray.2111b767484e4682",
            "CT1.ETH4": "iqn.2010-06.com.purestorage:flasharray.2111b767484e4682",
            "CT1.ETH5": "iqn.2010-06.com.purestorage:flasharray.2111b767484e4682"
        },
        "network": {
            "ct0.eth0": {
                "address": "10.10.10.10",
                "gateway": "10.10.10.1",
                "hwaddr": "ec:f4:bb:c8:8a:04",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "management"
                ],
                "speed": 1000000000
            },
            "ct0.eth2": {
                "address": "10.10.10.11",
                "gateway": null,
                "hwaddr": "ec:f4:bb:c8:8a:00",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "replication"
                ],
                "speed": 10000000000
            },
            "ct0.eth3": {
                "address": "10.10.10.12",
                "gateway": null,
                "hwaddr": "ec:f4:bb:c8:8a:02",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "replication"
                ],
                "speed": 10000000000
            },
            "ct0.eth4": {
                "address": "10.10.10.13",
                "gateway": null,
                "hwaddr": "90:e2:ba:83:79:0c",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "iscsi"
                ],
                "speed": 10000000000
            },
            "ct0.eth5": {
                "address": "10.10.10.14",
                "gateway": null,
                "hwaddr": "90:e2:ba:83:79:0d",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "iscsi"
                ],
                "speed": 10000000000
            },
            "vir0": {
                "address": "10.10.10.20",
                "gateway": "10.10.10.1",
                "hwaddr": "fe:ba:e9:e7:6b:0f",
                "mtu": 1500,
                "netmask": "255.255.255.0",
                "services": [
                    "management"
                ],
                "speed": 1000000000
            }
        },
        "offload": {
            "nfstarget": {
                "address": "10.0.2.53",
                "mount_options": null,
                "mount_point": "/offload",
                "protocol": "nfs",
                "status": "scanning"
            }
        },
        "performance": {
            "input_per_sec": 8191,
            "output_per_sec": 0,
            "queue_depth": 1,
            "reads_per_sec": 0,
            "san_usec_per_write_op": 15,
            "usec_per_read_op": 0,
            "usec_per_write_op": 642,
            "writes_per_sec": 2
        },
        "pgroups": {
            "consisgroup-07b6b983-986e-46f5-bdc3-deaa3dbb299e-cinder": {
                "hgroups": null,
                "hosts": null,
                "source": "host1",
                "targets": null,
                "volumes": [
                    "volume-1"
                ]
            }
        },
        "pods": {
            "srm-pod": {
                "arrays": [
                    {
                        "array_id": "52595f7e-b460-4b46-8851-a5defd2ac192",
                        "mediator_status": "online",
                        "name": "sn1-405-c09-37",
                        "status": "online"
                    },
                    {
                        "array_id": "a2c32301-f8a0-4382-949b-e69b552ce8ca",
                        "mediator_status": "online",
                        "name": "sn1-420-c11-31",
                        "status": "online"
                    }
                ],
                "source": null
            }
        },
        "snapshots": {
            "consisgroup.cgsnapshot": {
                "created": "2018-03-28T09:34:02Z",
                "size": 13958643712,
                "source": "volume-1"
            }
        },
        "subnet": {},
        "vgroups": {
            "vvol--vSphere-HA-0ffc7dd1-vg": {
                "volumes": [
                    "vvol--vSphere-HA-0ffc7dd1-vg/Config-aad5d7c6"
                ]
            }
        },
        "volumes": {
            "ansible_data": {
                "bandwidth": null,
                "hosts": [
                    [
                        "host1",
                        1
                    ]
                ],
                "serial": "43BE47C12334399B000114A6",
                "size": 1099511627776,
                "source": null
            }
        }
    }
(t
AnsibleModule(t
get_systemtpurefa_argument_specs1.14s1.16s1.6s1.10s1.15s1.17cC`s�i}|j�}|j�}t|kr�t|j��|d<t|j��|d<t|j��|d<|jdt�d|d<n|j�}|j	�}|j
dtdt�}|jdt�}|j�}|j
d�d}	|	r�|	}
n|j
d	�d}|}
|
|d
<|d|d<|d|d
<t|�|d<t|�|d<t|�|d<t|�|d<t|�|d<|S(Nt
volume_groupstconnected_arraystpodstconnection_keytsnaptpendingtCT0tmodeltCT1tarray_modelt
array_nametversiontpurity_versionthostst	snapshotstprotection_groupst
hostgroupstadmins(tgett_list_available_rest_versionstAC_REQUIRED_API_VERSIONtlentlist_vgroupstlist_array_connectionst	list_podstTruet
list_hoststlist_adminstlist_volumestlist_pgroupstlist_hgroupstget_hardware(tarrayt
default_factstdefaultstapi_versionRRtsnapstpgroupsthgroupst	ct0_modelRt	ct1_model((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_default_dictcs6	
cC`s*i}|j�}t|kr=|jdddt�d}n|jdd�d}|d|d<|d|d<|d|d<|d|d<t|kr�|d	|d	<|d
|d
<|d|d<|d|d<|d
|d
<|d|d<|d|d<n|d|d<|d|d<|d|d<|S(Ntactiontmonitortlatencyitwrites_per_sect
reads_per_sect
input_per_sectoutput_per_sectsan_usec_per_read_optsan_usec_per_write_optqueue_usec_per_read_optqueue_usec_per_write_optqos_rate_limit_usec_per_read_opt qos_rate_limit_usec_per_write_optlocal_queue_usec_per_optusec_per_read_optusec_per_write_optqueue_depth(RtLATENCY_REQUIRED_API_VERSIONRR$(R+t
perf_factsR.tlatency_infot	perf_info((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_perf_dict�s*cC`si}|j�}|j�|d<|j�|d<|j�|d<|j�d|d<|j�|d<t|kr�i|d<|j�}xwtdt	|��D]@}||d	}i||d
d
6||dd6|d|<q�Wn|dj
|jdt��|jd
t�d
|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|jdt�d|d<|j
�|d<t|kr|j�|d<n|S(Ntdnstsmtptsnmpt	engine_idtsnmp_v3_engine_idtdirectory_servicetdirectory_service_rolesitnametgroupt
group_basetgroupst	ntpservertntptsyslogservertsyslogt	phonehometproxyt	relayhosttsenderdomaintidle_timeouttscsi_timeoutt	ssl_certstglobal_admin(Rtget_dnstlist_alert_recipientstlist_snmp_managerstget_snmp_engine_idtget_directory_servicetS3_REQUIRED_API_VERSIONtlist_directory_service_rolestrangeR tupdateR$Rtget_certificatetget_global_admin_attributes(R+tconfig_factsR.trolestrolet	role_name((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_config_dict�s:
!cC`s�|j�}i}t|kr�|j�}xVtdt|��D]<}||d}i||dd6||dd6||<q@Wn|S(NiRRttypeRo(RtADMIN_API_VERSIONR&RiR (R+R.tadmin_factsRtadmint
admin_name((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_admin_dict�scC`s�i}|j�}x�tdt|��D]�}||d}||dr(i||dd6||dd6||dd6||dd6||dd6||d	d	6||<q(q(W|S(
NiRRtenabledtgatewaytmtutvlantprefixt
interfacestservices(tlist_subnetsRiR (R+t	sub_factstsubnetstsubtsub_name((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_subnet_dict�scC`s9i}|j�}x tdt|��D]	}||d}i	||dd6||dd6||dd6||dd6||dd6||dd6||d	d	6||d
d
6||dd6||<||dr(|j||d�}|dr1i|dd6|d
d
6|dd6||d<q1q(q(W|S(NiRRthwaddrRzRxtspeedtaddresstslavesR~RytnetmasktsubnetR|R{(tlist_network_interfacesRiR t
get_subnet(R+t	net_factstportstporttint_nameR�((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_network_dict�s,
 cC`si}|j�}t|kr|jdt�}td�|D��|d<|jdt�}|dd}|dd}|||d<||d	<|dd
|d
<|dd|d<|dd
|d<|dd|d<|dd|d<|dd|d<|dd|d<n|S(NRcs`s|]}|dVqdS(tsizeN((t.0titem((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pys	<genexpr>stprovisioned_spacetspaceitcapacityttotalt
free_spacettotal_capacitytdata_reductiontsystemtsystem_spacetvolumestvolume_spacetshared_spaceRtsnapshot_spacetthin_provisioningttotal_reduction(RtCAP_REQUIRED_API_VERSIONR'R$tsumR(R+tcapacity_factsR.R�R�R�t
used_space((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_capacity_dicts$
cC`s�i}|jdt�}xbtdt|��D]K}||d}i||dd6||dd6||dd6||<q.W|S(NRiRRR�tsourcetcreated(R'R$RiR (R+t
snap_factsR/Rtsnapshot((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_snap_dict!scC`s�i}|j�}xptdt|��D]Y}||d}i||dd6||dd6||dd6gd6dd6||<q(W|j�}t|krk|jd	t�}xGtdt|��D]0}||d}||d
}|||d<q�W|jdt�}	x]tdt|	��D]C}
|	|
d}i|	|
dd6|	|
dd6gd6||<q!Wn|jdt�}x\tdt|��D]E}||d}||d
||dg}
||dj|
�q�W|S(NiRRR�R�tserialRtt	bandwidthtqostbandwidth_limittprotocol_endpointtconnectthosttlun(R'RiR RRR$tappend(R+tvolume_factstvolstvoltvolumeR.tqvolstqvolR�tvvolstvvoltcvolstcvoltvoldict((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_vol_dict.s<cC`sd|j�}i}|j�}x�tdt|��D]�}||d}g}|j|dt�}|rz|dd}ni||dd6||dd6||dd6|j|dt�dd6|d6||<t|kr4||d	||d	<q4q4Wt|kr`|jd
t�}xDtdt|��D]*}||d}||d
||d
<q/Wn|S(NiRRtallttarget_portthgrouptiqntwwntpersonalitytnqntpreferred_array(RR%RiR tget_hostR$tNVME_API_VERSIONtPREFERRED_API_VERSION(R+R.t
host_factsRR�thostnamettportst
host_all_info((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_host_dictQs0c
C`s�i}|j�}x}tdt|��D]f}||d}i||dd6||dd6||dd6||dd6||dd6||<|j|dt�}|j|d	t�}|d
s�|dr�|d||d
<|d||d<|d
||d
<|d||d<|d||d<|d||d<|d||d<|d||d<|d||d<|d||d<|d||d<|d||d<|d||d<nd|kr(|j|dtdt�}i||d<x�tdt|��D]�}||d}	i||dd6||dd6||dd6||d d 6||d!d!6||d"d"6||d|	<qWq(q(W|S(#NiRRR1RR�ttargetsR�tschedulet	retentiontsnap_enabledtreplicate_enabledtsnap_frequencytsnap_freqyencytreplicate_frequencytreplicate_freqyencytsnap_attreplicate_attreplicate_blackouttper_dayttarget_per_dayttarget_daystdaystall_forttarget_all_fort:RttransferR/R�tstartedt	completedtphysical_bytes_writtentdata_transferredtprogress(R(RiR t
get_pgroupR$(
R+t
pgroups_factsR0tpgroupt	protgroupt
prot_schedt
prot_retentsnap_transferst
snap_transferR((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_pgroups_dictmsN)cC`s�i}|j�}t|kr�|j�}xVtdt|��D]<}||d}i||dd6||dd6||<q@Wn|S(NiRRR�tarrays(RRR#RiR (R+t
pods_factsR.R
tpodtacpod((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_pods_dict�scC`s�i}|j�}t|kr�|j�}x�tdt|��D]�}||d}i||dd6||dd6||dd6||dd6||dd	6||d
d6||<t|kr@||d||d<q@q@Wn|S(
NiRtidtarray_idtthrotledRRrtmanagement_addresstmgmt_iptreplication_addresstrepl_ipR(RtCONN_STATUS_API_VERSIONtlist_connected_arraysRiR (R+tconn_array_factsR.tcarraystcarrayt	arrayname((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_conn_array_dict�s  cC`s�i}|j�}t|kr�|j�}xetdt|��D]K}||d}i||dd6||dd6||dd6||<q@Wn|S(NiRRRRtdescription(RtSAN_REQUIRED_API_VERSIONt	list_appsRiR (R+t
apps_factsR.tappstapptappname((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_apps_dict�scC`sxi}|j�}t|krt|j�}xGtdt|��D]-}||d}i||dd6||<q@Wn|S(NiRRR�(RRR!RiR (R+t
vgroups_factsR.tvgroupstvgroupt	virtgroup((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_vgroups_dict�scC`s�i}|j�}t|kr�|j�}x�tdt|��D]i}||d}i||dd6||dd6||dd6||dd6||dd6||<q@Wn|S(NiRRRtmount_pointtprotocolt
mount_optionsR�(RRtlist_nfs_offloadRiR (R+t
offload_factsR.toffloadttargettoffloadt((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_nfs_offload_dict�scC`s�i}|j�}t|kr�|j�}xttdt|��D]Z}||d}i||dd6||dd6||dd6||dd6||<q@Wn|S(NiRRRtbucketRt
access_key_id(RRgtlist_s3_offloadRiR (R+RR.RRR((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_s3_offload_dict�scC`s9i}|j�}xRtdt|��D];}||d}i||dd6gd6gd6||<q(W|jdt�}xHtdt|��D]1}||d}||dj||d�q�W|jdt�}x\tdt|��D]E}	||	d}||	d	||	d
g}
||dj|
�q�W|S(NiRRRtpgsR�tprotecttprotection_groupR�R�R�(R)RiR R$R�(R+t
hgroups_factsR1R�t	hostgroupt	pghgroupstpghgtpgnamet
volhgroupstpgvolt	volpgdict((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_hgroups_dict�s$!cC`s�|j�}i}|j�}x�tdt|��D]�}||d}||drk||d||<n||dr�||d||<nt|kr4||dr�||d||<q�q4q4W|S(NiRRR�R�R�(Rt
list_portsRiR R�(R+R.t	int_factsR�R�R�((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytgenerate_interfaces_dictsc`st�}|jtdtdddd���t|dt�}t|�}g|jdD]}|j�^qZ}d!��fd�|D�}t|�s�|j	dddj
��dj
|�f�ni}d|ks�d|kr�t|�|d<nd	|ksd|kr%t|�|d	<nd|ks=d|krPt
|�|d<nd
|kshd|kr{t|�|d
<nd|ks�d|kr�t|�|d<nd|ks�d|kr�t|�|d<nd
|ks�d|kr�t|�|d
<nd|ksd|kr't|�|d<nd|ks?d|krRt|�|d<nd|ksjd|kr}t|�|d<nd|ks�d|kr�t|�|d<nd|ks�d|kr�t|�|d<nd|ks�d|kr�t|�|d<nd|ksd|kr)t|�|d<nd|ksAd|krTt|�|d<nd|ksld|kr�t|�|d<t|�|d<nd|ks�d|kr�t|�|d<nd|ks�d|kr�t|�|d<n|jdi|d 6�dS("Nt
gather_subsettdefaulttminimumRrtlisttsupports_check_modeR�tconfigtperformanceR�tnetworkR�R}R1R0RRR�RR
RRR
R�c3`s|]}|�kVqdS(N((R�ttest(t
valid_subsets(sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pys	<genexpr>-stmsgs<value must gather_subset must be one or more of: %s, got: %st,tnfs_offloadt
s3_offloadt
ansible_factstansible_purefa_facts(sallR4sconfigR8scapacityR9ssubnets
interfacesshgroupsspgroupsshostssadminssvolumess	snapshotsspodssvgroupssoffloadsappssarrays(R
RjtdictRtFalseR	tparamstlowerR�t	fail_jsontjoinR4RJRqR�R�R�R1R�R�R�R.R�R�RwRRR"RRt	exit_json(t
argument_spectmoduleR+R:tsubsettsubset_testtfacts((R;sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pytmainsj	&#t__main__N(-t
__future__RRRRrt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNtansible.module_utils.basicRtansible.module_utils.pureR	R
RsRgRFRR�R
R�R�RR4RJRqRwR�R�R�R�R�R�R�R�RRRRR"R.R1RNt__name__(((sU/usr/lib/python2.7/site-packages/ansible/modules/storage/purestorage/_purefa_facts.pyt<module>sR


�	 		1					
	#		,				
					?

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