Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/f5/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyc

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlZddlZddl
Z
ddlmZdd
lmZddlmZddlmZy�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!Wn�e"k
r�ddl#mZddl$mZddl$mZddl$mZddl$mZddl$mZddl%mZddl$mZddl&m!Z!nXd�Z'de(fd��YZ)defd��YZ*de*fd��YZ+d e+fd!��YZ,d"e)fd#��YZ-d$e+fd%��YZ.d&e)fd'��YZ/d(e+fd)��YZ0d*e)fd+��YZ1d,e+fd-��YZ2d.e+fd/��YZ3d0e)fd1��YZ4d2e+fd3��YZ5d4e)fd5��YZ6d6e+fd7��YZ7d8e)fd9��YZ8d:e(fd;��YZ9d<e(fd=��YZ:d>�Z;e<d?kr�e;�ndS(@i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	certifiedtsupported_bys�
---
module: bigiq_device_info
short_description: Collect information from F5 BIG-IQ devices
description:
  - Collect information from F5 BIG-IQ devices.
  - This module was called C(bigiq_device_facts) before Ansible 2.9. The usage did not change.
version_added: 2.8
options:
  gather_subset:
    description:
      - When supplied, this argument will restrict the information returned to a given subset.
      - Can specify a list of values to include a larger subset.
      - Values can also be used with an initial C(!) to specify that a specific subset
        should not be collected.
    type: list
    required: True
    choices:
      - all
      - applications
      - managed-devices
      - purchased-pool-licenses
      - regkey-pools
      - system-info
      - vlans
      - "!all"
      - "!applications"
      - "!managed-devices"
      - "!purchased-pool-licenses"
      - "!regkey-pools"
      - "!system-info"
      - "!vlans"
extends_documentation_fragment: f5
notes:
  - With BIGIQ 7.0 and later, a few metadata fields not included/supported (for example, uptime, product_changelist, product_jobid)
author:
  - Tim Rupp (@caphrim007)
s�
- name: Collect BIG-IQ information
  bigiq_device_info:
    gather_subset:
      - system-info
      - vlans
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Collect all BIG-IQ information
  bigiq_device_info:
    gather_subset:
      - all
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Collect all BIG-IP information except trunks
  bigiq_device_info:
    gather_subset:
      - all
      - "!trunks"
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost
s�Q
applications:
  description: Application related information
  returned: When C(managed-devices) is specified in C(gather_subset).
  type: complex
  contains:
    protection_mode:
      description:
        - The type of F5 Web Application Security Service protection on the application.
      returned: changed
      type: str
      sample: Not Protected
    id:
      description:
        - ID of the application as known to the BIG-IQ.
      returned: changed
      type: str
      sample: 996baae8-5d1d-3662-8a2d-3612fa2aceae
    name:
      description:
        - Name of the application.
      returned: changed
      type: str
      sample: site12http.example.com
    status:
      description:
        - Current state of the application.
      returned: changed
      type: str
      sample: DEPLOYED
    transactions_per_second:
      description:
        - Current measurement of Transactions Per second being handled by the application.
      returned: changed
      type: float
      sample: 0.87
    connections:
      description:
        - Current number of connections established to the application.
      returned: changed
      type: float
      sample: 3.06
    new_connections:
      description:
        - Number of new connections being established per second.
      returned: changed
      type: float
      sample: 0.35
    response_time:
      description:
        - Measured response time of the application in milliseconds.
      returned: changed
      type: float
      sample: 0.02
    health:
      description:
        - Health of the application.
      returned: changed
      type: str
      sample: Good
    active_alerts:
      description:
        - Number of alerts active on the application.
      returned: changed
      type: int
      sample: 0
    bad_traffic:
      description:
        - Percent of traffic to application that is determined to be 'bad'.
        - This value is dependent on C(protection_mode) being enabled.
      returned: changed
      type: float
      sample: 1.7498
    enhanced_analytics:
      description:
        - Whether enhanced analytics is enabled for the application or not.
      returned: changed
      type: bool
      sample: yes
    bad_traffic_growth:
      description:
        - Whether or not Bad Traffic Growth alerts are configured to be triggered or not.
      returned: changed
      type: bool
      sample: no
  sample: hash/dictionary of values
managed_devices:
  description: Managed device related information.
  returned: When C(managed-devices) is specified in C(gather_subset).
  type: complex
  contains:
    address:
      description:
        - Address where the device was discovered.
      returned: changed
      type: str
      sample: 10.10.10.10
    build:
      description:
        - Build of the version.
      returned: changed
      type: str
      sample: 0.0.4
    device_uri:
      description:
        - URI to reach the management interface of the device.
      returned: changed
      type: str
      sample: "https://10.10.10.10:443"
    edition:
      description:
        - Edition string of the product version.
      returned: changed
      type: str
      sample: Final
    group_name:
      description:
        - BIG-IQ group that the device is a member of.
      returned: changed
      type: str
      sample: cm-bigip-allBigIpDevices
    hostname:
      description:
        - Discovered hostname of the device.
      returned: changed
      type: str
      sample: tier2labB1.lab.fp.foo.com
    https_port:
      description:
        - HTTPS port available on the management interface of the device.
      returned: changed
      type: int
      sample: 443
    is_clustered:
      description:
        - Whether the device is clustered or not.
      returned: changed
      type: bool
      sample: no
    is_license_expired:
      description:
        - Whether the license on the device is expired or not.
      returned: changed
      type: bool
      sample: yes
    is_virtual:
      description:
        - Whether the device is a virtual edition or not.
      returned: changed
      type: bool
      sample: yes
    machine_id:
      description:
        - Machine specific ID assigned to this device by BIG-IQ.
      returned: changed
      type: str
      sample: c141bc88-f734-4434-be64-a3e9ea98356e
    management_address:
      description:
        - IP address of the management interface on the device.
      returned: changed
      type: str
      sample: 10.10.10.10
    mcp_device_name:
      description:
        - Device name as known by MCPD on the BIG-IP.
      returned: changed
      type: str
      sample: /Common/tier2labB1.lab.fp.foo.com
    product:
      description:
        - Product that the managed device is identified as.
      returned: changed
      type: str
      sample: BIG-IP
    rest_framework_version:
      description:
        - REST framework version running on the device
      returned: changed
      type: str
      sample: 13.1.1-0.0.4
    self_link:
      description:
        - Internal reference to the managed device in BIG-IQ.
      returned: changed
      type: str
      sample: "https://localhost/mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devices/c141bc88-f734-4434-be64-a3e9ea98356e"
    slots:
      description:
        - Volumes on the device and versions of software installed in those volumes.
      returned: changed
      type: complex
      sample: {"volume": "HD1.1", "product": "BIG-IP", "version": "13.1.1", "build": "0.0.4", "isActive": "yes"}
    state:
      description:
        - State of the device.
      returned: changed
      type: str
      sample: ACTIVE
    tags:
      description:
        - Misc tags that are assigned to the device.
      returned: changed
      type: complex
      sample: {'BIGIQ_tier_2_device': '2018-08-22T13:30:47.693-07:00', 'BIGIQ_SSG_name': 'tim-ssg'}
    trust_domain_guid:
      description:
        - GUID of the trust domain the device is part of.
      returned: changed
      type: str
      sample: 40ddf541-e604-4905-bde3005056813e36
    uuid:
      description:
        - UUID of the device in BIG-IQ.
      returned: changed
      type: str
      sample: c141bc88-f734-4434-be64-a3e9ea98356e
    version:
      description:
        - Version of TMOS installed on the device.
      returned: changed
      type: str
      sample: 13.1.1
  sample: hash/dictionary of values
purchased_pool_licenses:
  description: Purchased Pool License related information.
  returned: When C(purchased-pool-licenses) is specified in C(gather_subset).
  type: complex
  contains:
    base_reg_key:
      description:
        - Base registration key of the purchased pool
      returned: changed
      type: str
      sample: XXXXX-XXXXX-XXXXX-XXXXX-XXXXXXX
    dossier:
      description:
        - Dossier of the purchased pool license
      returned: changed
      type: str
      sample: d6bd4b8ba5...e9a1a1199b73af9932948a
    free_device_licenses:
      description:
        - Number of free licenses remaining.
      returned: changed
      type: int
      sample: 34
    name:
      description:
        - Name of the purchased pool
      returned: changed
      type: str
      sample: my-pool1
    state:
      description:
        - State of the purchased pool license
      returned: changed
      type: str
      sample: LICENSED
    total_device_licenses:
      description:
        - Total number of licenses in the pool.
      returned: changed
      type: int
      sample: 40
    uuid:
      description:
        - UUID of the purchased pool license
      returned: changed
      type: str
      sample: b2112329-cba7-4f1f-9a26-fab9be416d60
    vendor:
      description:
        - Vendor who provided the license
      returned: changed
      type: str
      sample: F5 Networks, Inc
    licensed_date_time:
      description:
        - Timestamp that the pool was licensed.
      returned: changed
      type: str
      sample: "2018-09-10T00:00:00-07:00"
    licensed_version:
      description:
        - Version of BIG-IQ that is licensed.
      returned: changed
      type: str
      sample: 6.0.1
    evaluation_start_date_time:
      description:
        - Date that evaluation license starts.
      returned: changed
      type: str
      sample: "2018-09-09T00:00:00-07:00"
    evaluation_end_date_time:
      description:
        - Date that evaluation license ends.
      returned: changed
      type: str
      sample: "2018-10-11T00:00:00-07:00"
    license_end_date_time:
      description:
        - Date that the license expires.
      returned: changed
      type: str
      sample: "2018-10-11T00:00:00-07:00"
    license_start_date_time:
      description:
        - Date that the license starts.
      returned: changed
      type: str
      sample: "2018-09-09T00:00:00-07:00"
    registration_key:
      description:
        - Purchased pool license key.
      returned: changed
      type: str
      sample: XXXXX-XXXXX-XXXXX-XXXXX-XXXXXXX
  sample: hash/dictionary of values
regkey_pools:
  description: Regkey Pool related information.
  returned: When C(regkey-pools) is specified in C(gather_subset).
  type: complex
  contains:
    name:
      description:
        - Name of the regkey pool.
      returned: changed
      type: str
      sample: pool1
    id:
      description:
        - ID of the regkey pool.
      returned: changed
      type: str
      sample: 4f9b565c-0831-4657-b6c2-6dde6182a502
    total_offerings:
      description:
        - Total number of offerings in the pool
      returned: changed
      type: int
      sample: 10
    offerings:
      description: List of the offerings in the pool.
      type: complex
      contains:
        dossier:
          description:
            - Dossier of the license.
          returned: changed
          type: str
          sample: d6bd4b8ba5...e9a1a1199b73af9932948a
        name:
          description:
            - Name of the regkey.
          returned: changed
          type: str
          sample: regkey1
        state:
          description:
            - State of the regkey license
          returned: changed
          type: str
          sample: LICENSED
        licensed_date_time:
          description:
            - Timestamp that the regkey was licensed.
          returned: changed
          type: str
          sample: "2018-09-10T00:00:00-07:00"
        licensed_version:
          description:
            - Version of BIG-IQ that is licensed.
          returned: changed
          type: str
          sample: 6.0.1
        evaluation_start_date_time:
          description:
            - Date that evaluation license starts.
          returned: changed
          type: str
          sample: "2018-09-09T00:00:00-07:00"
        evaluation_end_date_time:
          description:
            - Date that evaluation license ends.
          returned: changed
          type: str
          sample: "2018-10-11T00:00:00-07:00"
        license_end_date_time:
          description:
            - Date that the license expires.
          returned: changed
          type: str
          sample: "2018-10-11T00:00:00-07:00"
        license_start_date_time:
          description:
            - Date that the license starts.
          returned: changed
          type: str
          sample: "2018-09-09T00:00:00-07:00"
        registration_key:
          description:
            - Registration license key.
          returned: changed
          type: str
          sample: XXXXX-XXXXX-XXXXX-XXXXX-XXXXXXX
      sample: hash/dictionary of values
  sample: hash/dictionary of values
system_info:
  description: System info related information.
  returned: When C(system-info) is specified in C(gather_subset).
  type: complex
  contains:
    base_mac_address:
      description:
        - Media Access Control address (MAC address) of the device.
      returned: changed
      type: str
      sample: "fa:16:3e:c3:42:6f"
    marketing_name:
      description:
        - Marketing name of the device platform.
      returned: changed
      type: str
      sample: BIG-IQ Virtual Edition
    time:
      description:
        - Mapping of the current time information to specific time-named keys.
      returned: changed
      type: complex
      contains:
        day:
          description:
            - The current day of the month, in numeric form.
          returned: changed
          type: int
          sample: 7
        hour:
          description:
            - The current hour of the day in 24-hour form.
          returned: changed
          type: int
          sample: 18
        minute:
          description:
            - The current minute of the hour.
          returned: changed
          type: int
          sample: 16
        month:
          description:
            - The current month, in numeric form.
          returned: changed
          type: int
          sample: 6
        second:
          description:
            - The current second of the minute.
          returned: changed
          type: int
          sample: 51
        year:
          description:
            - The current year in 4-digit form.
          returned: changed
          type: int
          sample: 2018
    hardware_information:
      description:
        - Information related to the hardware (drives and CPUs) of the system.
      type: complex
      returned: changed
      contains:
        model:
          description:
            - The model of the hardware.
          type: str
          sample: Virtual Disk
        name:
          description:
            - The name of the hardware.
          type: str
          sample: HD1
        type:
          description:
            - The type of hardware.
          type: str
          sample: physical-disk
        versions:
          description:
            - Hardware specific properties
          type: complex
          contains:
            name:
              description:
                - Name of the property
              type: str
              sample: Size
            version:
              description:
                - Value of the property
              type: str
              sample: 154.00G
    is_admin_password_changed:
      description:
        - Whether the admin password was changed from its default or not.
      returned: changed
      type: bool
      sample: yes
    is_root_password_changed:
      description:
        - Whether the root password was changed from its default or not.
      returned: changed
      type: bool
      sample: no
    is_system_setup:
      description:
        - Whether the system has been setup or not.
      returned: changed
      type: bool
      sample: yes
    package_edition:
      description:
        - Displays the software edition.
      returned: changed
      type: str
      sample: Point Release 7
    package_version:
      description:
        - A string combining the C(product_build) and C(product_build_date).
      type: str
      sample: "Build 0.0.1 - Tue May 15 15:26:30 PDT 2018"
    product_code:
      description:
        - Code identifying the product.
      type: str
      sample: BIG-IQ
    product_build:
      description:
        - Build version of the release version.
      type: str
      sample: 0.0.1
    product_version:
      description:
        - Major product version of the running software.
      type: str
      sample: 6.0.0
    product_built:
      description:
        - Unix timestamp of when the product was built.
      type: int
      sample: 180515152630
    product_build_date:
      description:
        - Human readable build date.
      type: str
      sample: "Tue May 15 15:26:30 PDT 2018"
    product_changelist:
      description:
        - Changelist that product branches from.
        - Not supported with BIGIQ 7.0 and later versions.
      type: int
      sample: 2557198
    product_jobid:
      description:
        - ID of the job that built the product version.
        - Not supported with BIGIQ 7.0 and later versions.
      type: int
      sample: 1012030
    chassis_serial:
      description:
        - Serial of the chassis
      type: str
      sample: 11111111-2222-3333-444444444444
    host_board_part_revision:
      description:
        - Revision of the host board.
      type: str
    host_board_serial:
      description:
        - Serial of the host board.
      type: str
    platform:
      description:
        - Platform identifier.
      type: str
      sample: Z100
    switch_board_part_revision:
      description:
        - Switch board revision.
      type: str
    switch_board_serial:
      description:
        - Serial of the switch board.
      type: str
    uptime:
      description:
        - Time, in seconds, since the system booted.
        - Not supported with BIGIQ 7.0 and later versions.
      type: int
      sample: 603202
  sample: hash/dictionary of values
vlans:
  description: List of VLAN information.
  returned: When C(vlans) is specified in C(gather_subset).
  type: complex
  contains:
    auto_lasthop:
      description:
        - Allows the system to send return traffic to the MAC address that transmitted the
          request, even if the routing table points to a different network or interface.
      returned: changed
      type: str
      sample: enabled
    cmp_hash_algorithm:
      description:
        - Specifies how the traffic on the VLAN will be disaggregated.
      returned: changed
      type: str
      sample: default
    description:
      description:
        - Description of the VLAN.
      returned: changed
      type: str
      sample: My vlan
    failsafe_action:
      description:
        - Action for the system to take when the fail-safe mechanism is triggered.
      returned: changed
      type: str
      sample: reboot
    failsafe_enabled:
      description:
        - Whether failsafe is enabled or not.
      returned: changed
      type: bool
      sample: yes
    failsafe_timeout:
      description:
        - Number of seconds that an active unit can run without detecting network traffic
          on this VLAN before it starts a failover.
      returned: changed
      type: int
      sample: 90
    if_index:
      description:
        - Index assigned to this VLAN. It is a unique identifier assigned for all objects
          displayed in the SNMP IF-MIB.
      returned: changed
      type: int
      sample: 176
    learning_mode:
      description:
        - Whether switch ports placed in the VLAN are configured for switch learning,
          forwarding only, or dropped.
      returned: changed
      type: str
      sample: enable-forward
    interfaces:
      description:
        - List of tagged or untagged interfaces and trunks that you want to configure for the VLAN.
      returned: changed
      type: complex
      contains:
        full_path:
          description:
            - Full name of the resource as known to BIG-IP.
          returned: changed
          type: str
          sample: 1.3
        name:
          description:
            - Relative name of the resource in BIG-IP.
          returned: changed
          type: str
          sample: 1.3
        tagged:
          description:
            - Whether the interface is tagged or not.
          returned: changed
          type: bool
          sample: no
    mtu:
      description:
        - Specific maximum transition unit (MTU) for the VLAN.
      returned: changed
      type: int
      sample: 1500
    sflow_poll_interval:
      description:
        - Maximum interval in seconds between two pollings.
      returned: changed
      type: int
      sample: 0
    sflow_poll_interval_global:
      description:
        - Whether the global VLAN poll-interval setting, overrides the object-level
          poll-interval setting.
      returned: changed
      type: bool
      sample: no
    sflow_sampling_rate:
      description:
        - Ratio of packets observed to the samples generated.
      returned: changed
      type: int
      sample: 0
    sflow_sampling_rate_global:
      description:
        - Whether the global VLAN sampling-rate setting, overrides the object-level
          sampling-rate setting.
      returned: changed
      type: bool
      sample: yes
    source_check_enabled:
      description:
        - Specifies that only connections that have a return route in the routing table are accepted.
      returned: changed
      type: bool
      sample: yes
    true_mac_address:
      description:
        - Media access control (MAC) address for the lowest-numbered interface assigned to this VLAN.
      returned: changed
      type: str
      sample: "fa:16:3e:10:da:ff"
    tag:
      description:
        - Tag number for the VLAN.
      returned: changed
      type: int
      sample: 30
  sample: hash/dictionary of values
N(tLooseVersion(t
AnsibleModule(t	iteritems(tstring_types(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tf5_argument_spec(tfq_name(tflatten_boolean(tis_valid_ip(ttransform_name(t
bigiq_versionc
C`syd|kr|dSd|kr(|dSd|ksPd|krud|dkrud|kri|d}n|dd}d}x�|D]�}||}d|krf|jd�}|d}|r�t|t�r�|jt|��qm|rt|t�rt|�||<qmy*t|�t�}|jt|��Wqmtk
rbt�}t|�||<qmXq�d|kr�|jd�}|d	}|d
}||s�i||<nt|�|||<q�|r�t|t�r�|jt|��q�|rt|t�rt|�||<q�y*t|�t�}|jt|��Wq�tk
rlt�}t|�||<q�Xq�W|SdS(NtdescriptiontvaluetentriestnestedStatsshttps://localhostt/i����t.ii(	tNonetsplitt
isinstancetlisttappendt
parseStatstdicttintt
ValueError(tentryRtresulttnametnamestkeyR((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR ZsX(




	
	




	
	tBaseManagercB`seZd�Zd�ZRS(cO`s7|jdd�|_|jdd�|_||_dS(Ntmoduletclient(tgetRR*R+tkwargs(tselftargsR-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyt__init__�scC`s@g}|j�}x'|D]}|j�}|j|�qW|S(N(t
read_factst	to_returnR(R.tresultstfactstitemtattrs((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pytexec_module�s
(t__name__t
__module__R0R7(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR)�s	t
ParameterscB`seZed��ZRS(cC`s�t|jdt�r0|jdg|jd<n%t|jdt�sUtd��ntt|jd��}|j�||jd<|jdS(Nt
gather_subsets+The specified gather_subset must be a list.(Rt_valuesRRR
tsettsort(R.ttmp((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR;�s

(R8R9tpropertyR;(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR:�stBaseParameterscB`s8eZed��Zed��Zd�Zd�ZRS(cC`st|jd�S(Ntenabled(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRB�scC`st|jd�S(Ntdisabled(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRC�scC`sT|jdd�|jdd�|jdd�|jdd�|jdd�dS(Ntkindt
generationtselfLinktisSubcollectiontfullPath(tpopR(R.tresource((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyt_remove_internal_keywords�s
cC`s@i}x$|jD]}t||�||<qW|j|�}|S(N(treturnablestgetattrt_filter_params(R.R%t
returnable((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR2�s
(R8R9R@RBRCRKR2(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRA�s	tApplicationsParametersc
B`s�eZidd6dd6dd6dd6dd	6d
d6dd
6dd6Zddddddddddd
ddg
Zed��Zed��ZRS(tprotection_modetprotectionModettransactions_per_secondttransactionsPerSecondtnew_connectionstnewConnectionst
response_timetresponseTimet
active_alertstactiveAlertstbad_traffict
badTraffictenhanced_analyticstenhancedAnalyticstbad_traffic_growthtbadTrafficGrowthtidR&RtconnectionsthealthcC`st|jd�S(NR](RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR]�scC`st|jd�S(NR_(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR_�s(R8R9tapi_mapRLR@R]R_(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRP�s0
	tApplicationsFactManagercB`s5eZd�Zd�Zd�Zd�Zd�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*tparams(
R,RR+R*tsuperReR0RPRftwant(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0�scC`s|j�}td|�}|S(Ntapplications(t_exec_moduleR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�scC`sUg}|j�}x'|D]}|j�}|j|�qWt|dd��}|S(NR(cS`s|dS(NR&((tk((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyt<lambda>�s(R1R2Rtsorted(R.R3R4R5R6((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRj�s
cC`sCg}|j�}x*|D]"}td|�}|j|�qW|S(NRf(tread_collection_from_deviceRPR(R.R3t
collectionRJRf((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1s
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��ny|ddSWnt
k
r�gSXdS(	NsLhttps://{0}:{1}/mgmt/ap/query/v1/tenants/default/reports/AllApplicationsListtservertserver_porttcodei�tmessageR%titems(tformatR+tprovidertapiR,tjsonR#R
tstrtcontenttKeyError(R.turitresptresponsetex((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRns 

(R8R9R0R7RjR1Rn(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRe�s
					tManagedDevicesParameterscB`seZidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6Zdddddddddd
ddddddddddd d!gZed"��Zed#��Zed$��Zed%��Zed&��Z	ed'��Z
RS((t
device_urit	deviceUrit
group_namet	groupNamet
https_portt	httpsPorttis_clusteredtisClusteredtis_license_expiredtisLicenseExpiredt
is_virtualt	isVirtualt
machine_idt	machineIdtmanagement_addresstmanagementAddresstmcp_device_namet
mcpDeviceNametrest_framework_versiontrestFrameworkVersiont	self_linkRFttrust_domain_guidttrustDomainGuidtaddresstbuildteditionthostnametproducttslotststatettagstuuidtversioncC`sbg}|jddkrdSx>|jdD]/}t|jdt��|d<|j|�q+W|S(NR�tisActivet	is_active(R<RRRItFalseR(R.R%tx((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�GscC`s8|jddkrdStd�|jdD��}|S(NR�cs`s#|]}|d|dfVqdS(R&RN((t.0R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pys	<genexpr>Us(R<RR!(R.R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�QscC`st|jd�S(NR�(R"R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�XscC`st|jd�S(NR�(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�\scC`st|jd�S(NR�(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�`scC`st|jd�S(NR�(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�ds(R8R9RdRLR@R�R�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�sR
	
tManagedDevicesFactManagercB`s5eZd�Zd�Zd�Zd�Zd�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*Rf(
R,RR+R*RgR�R0R�RfRh(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0jscC`s|j�}td|�}|S(Ntmanaged_devices(RjR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7pscC`sUg}|j�}x'|D]}|j�}|j|�qWt|dd��}|S(NR(cS`s|dS(NR�((Rk((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRl{s(R1R2RRm(R.R3R4R5R6((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRjus
cC`sCg}|j�}x*|D]"}td|�}|j|�qW|S(NRf(RnR�R(R.R3RoRJRf((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1~s
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��nd|kr�gS|d}|S(NsShttps://{0}:{1}/mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devicesRpRqRri�RsRt(
RuR+RvRwR,RxR#R
RyRz(R.R|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRn�s 

(R8R9R0R7RjR1Rn(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�is
					tPurchasedPoolLicensesParameterscB`s�eZidd6dd6dd6dd6Zdddd	d
dddd
ddddddgZed��Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed��ZRS(tbase_reg_keyt
baseRegKeytfree_device_licensestfreeDeviceLicensest
license_statetlicenseStatettotal_device_licensesttotalDeviceLicensestdossierR&R�R�tvendortlicensed_date_timetlicensed_versiontevaluation_start_date_timetevaluation_end_date_timetlicense_end_date_timetlicense_start_date_timetregistration_keycC`s,y|jddSWntk
r'dSXdS(NR�tregistrationKey(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tlicenseStartDateTime(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tlicenseEndDateTime(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tevaluationEndDateTime(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tevaluationStartDateTime(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tlicensedVersion(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�tlicensedDateTime(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
(
R8R9RdRLR@R�R�R�R�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s8
	t PurchasedPoolLicensesFactManagercB`s5eZd�Zd�Zd�Zd�Zd�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*Rf(
R,RR+R*RgR�R0R�RfRh(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0�scC`s|j�}td|�}|S(Ntpurchased_pool_licenses(RjR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�scC`sUg}|j�}x'|D]}|j�}|j|�qWt|dd��}|S(NR(cS`s|dS(NR&((Rk((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRls(R1R2RRm(R.R3R4R5R6((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRj�s
cC`sCg}|j�}x*|D]"}td|�}|j|�qW|S(NRf(RnR�R(R.R3RoRJRf((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1s
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��ny|dSWnt
k
r�gSXdS(NsEhttps://{0}:{1}/mgmt/cm/device/licensing/pool/purchased-pool/licensesRpRqRri�RsRt(RuR+RvRwR,RxR#R
RyRzR{(R.R|R}R~R((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRns 

(R8R9R0R7RjR1Rn(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
					tRegkeyPoolsParameterscB`s eZiZddddgZRS(R&Rat	offeringsttotal_offerings(R8R9RdRL(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�$s
tRegkeyPoolsOfferingParametersc
B`s�eZidd6dd6dd6Zddddd	d
ddd
dg
Zed��Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed��ZRS(R�tregKeyR�R�R�RR&R�R�R�R�R�R�R�cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�Gs
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�Ns
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�Us
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�\s
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�cs
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�js
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�qs
cC`s,y|jddSWntk
r'dSXdS(NR�R�(R<R{R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�xs
(
R8R9RdRLR@R�R�R�R�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�1s,
	tRegkeyPoolsFactManagercB`s>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*Rf(
R,RR+R*RgR�R0R�RfRh(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0�scC`s|j�}td|�}|S(Ntregkey_pools(RjR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�scC`sUg}|j�}x'|D]}|j�}|j|�qWt|dd��}|S(NR(cS`s|dS(NR&((Rk((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRl�s(R1R2RRm(R.R3R4R5R6((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRj�s
cC`s�g}|j�}x�|D]�}td|�}|j|d�}|jit|�d6�x7|D]/}td|�}|ji|j�d6�qbW|j|�qW|S(NRfRaR�R�(RnR�tread_offerings_from_devicetupdatetlenR�R2R(R.R3RoRJRfR�tofferingtparams2((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1�s

cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��ny|dSWnt
k
r�gSXdS(Ns=https://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licensesRpRqRri�RsRt(RuR+RvRwR,RxR#R
RyRzR{(R.R|R}R~R((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRn�s 

cC`s�dj|jjd|jjd|�}|jjj|�}y|j�}Wn%tk
ru}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��ny|dSWnt
k
r�gSXdS(NsKhttps://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offeringsRpRqRri�RsRt(RuR+RvRwR,RxR#R
RyRzR{(R.tlicenseR|R}R~R((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s"

	
(R8R9R0R7RjR1RnR�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s					
	tSystemInfoParameterscB`s�eZidd6dd6dd6Zdddd	d
dddddd
dddddddddddddgZed��Zed��Zed��Zed��Zed��Z	ed ��Z
ed!��Zed"��Zed#��Z
ed$��Zed%��Zed&��Zed'��Zed(��Zed)��Zed*��Zed+��Zed,��Zed-��Zd.�Zed/��Zed0��Zed1��ZRS(2tis_system_setupt
isSystemSetuptis_admin_password_changedtisAdminPasswordChangedtis_root_password_changedtisRootPasswordChangedtbase_mac_addresstchassis_serialthardware_informationthost_board_part_revisionthost_board_serialtmarketing_nametpackage_editiontpackage_versiontplatformt
product_buildtproduct_build_datet
product_builttproduct_changelisttproduct_codetproduct_informationt
product_jobidtproduct_versiontswitch_board_part_revisiontswitch_board_serialttimetuptimecC`st|jd�S(NR�(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��scC`st|jd�S(NR�(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��scC`s(|jddkrdSt|jd�S(NR�tno(R<RR(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��scC`sE|jddkrdSd|jddkr2dS|jdddS(Nssystem-infotbigipChassisSerialNumi(R<R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s
cC`sj|jddkrdSd|jddkr2dS|jdddj�dkrWdS|jdddS(Nssystem-infotswitchBoardSerialNumit(R<Rtstrip(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�	s!cC`sj|jddkrdSd|jddkr2dS|jdddj�dkrWdS|jdddS(Nssystem-infotswitchBoardPartRevNumiR�(R<RR�(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�s!cC`s*|jddkrdS|jdddS(Nssystem-infoiR�(R<R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�scC`sj|jddkrdSd|jddkr2dS|jdddj�dkrWdS|jdddS(Nssystem-infothostBoardSerialNumiR�(R<RR�(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�#s!cC`sj|jddkrdSd|jddkr2dS|jdddj�dkrWdS|jdddS(Nssystem-infothostBoardPartRevNumiR�(R<RR�(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�-s!cC`s|jdS(NtEdition(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�7scC`sdj|jd|jd�S(NsBuild {0} - {1}tBuildtDate(RuR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�;scC`s|jdS(NR�(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�?scC`s|jdS(NR�(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�CscC`s?d|jkrdSd|jdkr;t|jdd�SdS(Ntversion_infotBuilt(R<RR"(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�GscC`s?d|jkrdSd|jdkr;t|jdd�SdS(NR�t
Changelist(R<RR"(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�NscC`s?d|jkrdSd|jdkr;t|jdd�SdS(NR�tJobID(R<RR"(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�UscC`s|jdS(NtProduct(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�\scC`s|jdS(NtVersion(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�`scC`s[|jddkrdS|j|jd�gt|jd�D]\}}|^q?}|S(Nshardware-version(R<Rt_transform_name_attributeR
(R.RktvR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�ds
,cC`s�t|t�rmtj|�}x�t|�D];\}}|dkrY|jd�|d<n|j|�q+Wn4t|t�r�x"|D]}|j|�q�WndSdS(NttmNameR&(RR!tcopytdeepcopyR
RIR�R(R.R$R?RkR�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�ls
c
C`sv|jddkrdStjj|jdd�}td|jd|jd|jd|jd|j	d|j
�}|S(	NtfullDates%Y-%m-%dT%H:%M:%SZtdaythourtminutetmonthtsecondtyear(R<RtdatetimetstrptimeR!RRRRRR	(R.tdateR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�ys					cC`s*|jddkrdS|jdddS(NR�it
marketingName(R<R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��scC`s*|jddkrdS|jdddS(NR�itbaseMac(R<R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��s(R8R9RdRLR@R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR��sf
	



	
tSystemInfoFactManagercB`skeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*Rf(
R,RR+R*RgRR0R�RfRh(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0�scC`s|j�}td|�}|S(Ntsystem_info(RjR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�scC`s|j�}|j�}|S(N(R1R2(R.R4R3((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRj�scC`s|j�}td|�}|S(NRf(RnR�(R.RoRf((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1�scC`s�t�}|j�}|r+|j|�n|j�}|rM|j|�n|j�}|ro|j|�n|j�}|r�|j|�ntt|j��td�kr�|j	�}|r�|j|�n|j
�}|r�|j|�q�n|S(Ns7.0.0(R!tread_hardware_info_from_deviceR�tread_system_setup_from_devicetread_clock_info_from_devicetread_version_info_from_deviceRRR+tread_uptime_info_from_devicet"read_version_file_info_from_device(R.R%R?((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRn�s*	!cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��n|S(Ns(https://{0}:{1}/mgmt/shared/system/setupRpRqRri�Rs(
RuR+RvRwR,RxR#R
RyRz(R.R|R}R~R((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�s
cC`s�dj|jjd|jjd�}tdddd�}|jjj|d|�}y|j�}Wn%tk
r�}tt	|���nXd	|kr�|d	d
kr�d|kr�t|d��q�t|j
��nyd}|d
j�}Wntk
r	dSXd|krdS|d
jd�}t�}xW|D]O}	|	sOq=ntj||	�}
|
r=|
jd�j�||
jd�<q=q=W|r�td|�SdS(Ns!https://{0}:{1}/mgmt/tm/util/bashRpRqtcommandtruntutilCmdArgss-c "cat /VERSION"RxRri�Rss_^(?P<key>(Product|Build|Sequence|BaseBuild|Edition|Date|Built|Changelist|JobID))\:(?P<value>.*)t
commandResultsNo such file or directorys
RR(R�(RuR+RvR!RwtpostRxR#R
RyRzR�R{RRtretmatchtgroup(R.R|R/R}R~RtpatternR%tlinestlinetmatches((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�sB
	
	
)cC`s0dj|jjd|jjd�}tdddd�}|jjj|d|�}y|j�}Wn%tk
r�}tt	|���nXd	|kr�|d	d
kr�d|kr�t|d��q�t|j
��ny=|dj�jd
�}tdt
jt|d���SWntk
r+nXdS(Ns!https://{0}:{1}/mgmt/tm/util/bashRpRqRRRs-c "cat /proc/uptime"RxRri�RsRt R�i(RuR+RvR!RwRRxR#R
RyRzR�RtmathtfloortfloatR{(R.R|R/R}R~Rtparts((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRs*
	
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��nt
|�}|S(Ns$https://{0}:{1}/mgmt/tm/sys/hardwareRpRqRri�Rs(RuR+RvRwR,RxR#R
RyRzR (R.R|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRs
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��nt
|�}|dkr�dS|dS(	s�Parses clock info from the REST API

        The clock stat returned from the REST API (at the time of 13.1.0.7)
        is similar to the following.

        {
            "kind": "tm:sys:clock:clockstats",
            "selfLink": "https://localhost/mgmt/tm/sys/clock?ver=13.1.0.4",
            "entries": {
                "https://localhost/mgmt/tm/sys/clock/0": {
                    "nestedStats": {
                        "entries": {
                            "fullDate": {
                                "description": "2018-06-05T13:38:33Z"
                            }
                        }
                    }
                }
            }
        }

        Parsing this data using the ``parseStats`` method, yields a list of
        the clock stats in a format resembling that below.

        [{'fullDate': '2018-06-05T13:41:05Z'}]

        Therefore, this method cherry-picks the first entry from this list
        and returns it. There can be no other items in this list.

        Returns:
            A dict mapping keys to the corresponding clock stats. For
            example:

            {'fullDate': '2018-06-05T13:41:05Z'}

            There should never not be a clock stat, unless by chance it
            is removed from the API in the future, or changed to a different
            API endpoint.

        Raises:
            F5ModuleError: A non-successful HTTP code was returned or a JSON
                           response was not found.
        s!https://{0}:{1}/mgmt/tm/sys/clockRpRqRri�RsiN(RuR+RvRwR,RxR#R
RyRzR R(R.R|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR1s ,
cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��nt
|�}|dkr�dS|dS(	s�	Parses version info from the REST API

        The version stat returned from the REST API (at the time of 13.1.0.7)
        is similar to the following.

        {
            "kind": "tm:sys:version:versionstats",
            "selfLink": "https://localhost/mgmt/tm/sys/version?ver=13.1.0.4",
            "entries": {
                "https://localhost/mgmt/tm/sys/version/0": {
                    "nestedStats": {
                        "entries": {
                            "Build": {
                                "description": "0.0.6"
                            },
                            "Date": {
                                "description": "Tue Mar 13 20:10:42 PDT 2018"
                            },
                            "Edition": {
                                "description": "Point Release 4"
                            },
                            "Product": {
                                "description": "BIG-IP"
                            },
                            "Title": {
                                "description": "Main Package"
                            },
                            "Version": {
                                "description": "13.1.0.4"
                            }
                        }
                    }
                }
            }
        }

        Parsing this data using the ``parseStats`` method, yields a list of
        the clock stats in a format resembling that below.

        [{'Build': '0.0.6', 'Date': 'Tue Mar 13 20:10:42 PDT 2018',
          'Edition': 'Point Release 4', 'Product': 'BIG-IP', 'Title': 'Main Package',
          'Version': '13.1.0.4'}]

        Therefore, this method cherry-picks the first entry from this list
        and returns it. There can be no other items in this list.

        Returns:
            A dict mapping keys to the corresponding clock stats. For
            example:

            {'Build': '0.0.6', 'Date': 'Tue Mar 13 20:10:42 PDT 2018',
             'Edition': 'Point Release 4', 'Product': 'BIG-IP', 'Title': 'Main Package',
             'Version': '13.1.0.4'}

            There should never not be a version stat, unless by chance it
            is removed from the API in the future, or changed to a different
            API endpoint.

        Raises:
            F5ModuleError: A non-successful HTTP code was returned or a JSON
                           response was not found.
        s#https://{0}:{1}/mgmt/tm/sys/versionRpRqRri�RsiN(RuR+RvRwR,RxR#R
RyRzR R(R.R|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRps ?
(
R8R9R0R7RjR1RnRRRRRR(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR�s							*			?tVlansParameterscB`seZi
dd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6Zddddddddd
ddddddddddgZed��Zed��Zed��Zed ��Zed!��Z	ed"��Z
ed#��Zed$��Zed%��Z
RS(&tauto_lasthoptautoLasthoptcmp_hash_algorithmtcmpHashtfailsafe_actiontfailsafeActiontfailsafe_enabledtfailsafetfailsafe_timeouttfailsafeTimeouttif_indextifIndext
learning_modetlearningt
interfacestinterfacesReferencetsource_check_enabledtsourceCheckingt	full_pathRHR&Rtmtutsflow_poll_intervaltsflow_poll_interval_globaltsflow_sampling_ratetsflow_sampling_rate_globalttrue_mac_addressttagcC`s�|jddkrdSd|jdkr.dSg}xf|jddD]S}td|dd|d�}d|kr�d|d<n
d|d<|j|�qFW|S(	NR7RtR&R;RHttaggedtyesR�(R<RR!R(R.R%R5R?((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�s



cC`st|jdd�S(NtsflowtpollInterval(R"R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR=�scC`st|jdd�S(NREtpollIntervalGlobal(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR>�scC`st|jdd�S(NREtsamplingRate(R"R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR?scC`st|jdd�S(NREtsamplingRateGlobal(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR@scC`st|jd�S(Ntsource_check_state(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRJ
scC`s*|jdddkrdS|jddS(NtstatstmacTruetnone(NRM(R<R(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRAscC`s|jddS(NRKRa(R<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRBscC`st|jd�S(NR/(RR<(R.((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR/s(R8R9RdRLR@R7R=R>R?R@RJRARBR/(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR(�sN
	tVlansFactManagercB`s>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cO`s\|jdd�|_|jdd�|_tt|�j|�td|jj�|_	dS(NR+R*Rf(
R,RR+R*RgRNR0R(RfRh(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0scC`s|j�}td|�}|S(Ntvlans(RjR!(R.R4R%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7$scC`sUg}|j�}x'|D]}|j�}|j|�qWt|dd��}|S(NR(cS`s|dS(NR;((Rk((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRl/s(R1R2RRm(R.R3R4R5R6((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRj)s
cC`s]g}|j�}xD|D]<}|j|j|d��td|�}|j|�qW|S(NRHRf(RnR�t
read_statsR(R(R.R3RoRJRf((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR12s
cC`s�dj|jjd|jjdtd|��}|jjj|�}y|j�}Wn%tk
r~}tt	|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��nt|�}|S(Ns*https://{0}:{1}/mgmt/tm/net/vlan/{2}/statsRpRqR&Rri�Rs(RuR+RvRRwR,RxR#R
RyRzR (R.RJR|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRP;s

cC`s�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
rr}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j	��nd|kr�gS|d}|S(Ns;https://{0}:{1}/mgmt/tm/net/vlan/?expandSubcollections=trueRpRqRri�RsRt(
RuR+RvRwR,RxR#R
RyRz(R.R|R}R~RR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRnOs 

(R8R9R0R7RjR1RPRn(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRNs							t
ModuleManagercB`sGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cO`s�|jdd�|_|jdd�|_||_td|jj�|_itdt	dt
�d6tdtdt
�d6tdtdt
�d6tdt
dt
�d6tdtdt
�d	6tdtdt
�d
6|_dS(NR*R+RftmanagerRismanaged-devicesspurchased-pool-licensessregkey-poolsssystem-infoRO(R,RR*R+R-R:RfRhR!ReRR�R�R�RRNtmanagers(R.R/R-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0fs.	




cC`s�|j�|j|jj�}|rLdj|�}tdj|���n|j�}g}x3|D]+}|j|�}|re|j	|�qeqeW|s�t
dt�}|S|j|�}|r�t
|d<n
t|d<|S(Nt,s6The specified 'gather_subset' options are invalid: {0}tchanged(thandle_all_keywordtcheck_valid_gather_subsetRhR;tjoinR
Rutfilter_excluded_factstget_managerRR!R�texecute_managerstTrue(R.trestinvalidR%RSR&RR((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR7�s*

	

cC`s�g|jjD] }|ddkr
|d^q
}g|jjD]}|ddkr@|^q@}g|D]}||kri|^qi}|S(Nit!i(RhR;(R.R�texcludetincludeR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRY�s3/%cC`s]d|jjkrdSt|jj��|jj}|jd�|jji|d6�dS(NtallR;(RhR;RRStkeystremoveR�(R.RS((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRV�s

cC`sy|jj�}g}x]|D]U}||kr|ddkra|d|krn|j|�qnqq|j|�qqW|S(s�Check that the specified subset is valid

        The ``gather_subset`` parameter is specified as a "raw" field which means that
        any Python type could technically be provided

        :param includes:
        :return:
        iR_i(RSRcR(R.tincludesRcR%R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRW�s	
cC`s7t�}x'|D]}|j�}|j|�qW|S(N(R!R7R�(R.RSR3RRR%((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR[�s
	
cC`s�i}|jj|d�}|s%|St�}|j|j�|jdd�}|jdd�}||jj�|d<||�}|S(NRRR+(RSR,RR!R�R-R*Rf(R.twhichR%tinfoR-RRR+((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRZ�s	(	R8R9R0R7RYRVRWR[RZ(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRQes	 					tArgumentSpeccB`seZd�ZRS(cC`s�t|_tdtdddtddddd	d
ddd
ddddddg��}i|_|jjt�|jj|�dS(NR;ttypeRtrequiredtchoicesRbRismanaged-devicesspurchased-pool-licensessregkey-poolsssystem-infoROs!alls
!applicationss!managed-devicess!purchased-pool-licensess
!regkey-poolss!system-infos!vlans(R�tsupports_check_modeR!R\t
argument_specR�R(R.Rm((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyR0�s,		(R8R9R0(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyRh�scC`s�t�}td|jd|j�}|jdkrI|jddd�ny,td|�}|j�}|j|�Wn)t	k
r�}|j
dt|��nXdS(	NRmRltbigiq_device_factssGThe 'bigiq_device_facts' module has been renamed to 'bigiq_device_info'R�s2.13R*tmsg(RhR	RmRlt_namet	deprecateRQR7t	exit_jsonR
t	fail_jsonRy(tspecR*tmmR3R((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pytmain	s		t__main__(=t
__future__RRRRit
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRR
R$Rtdistutils.versionRtansible.module_utils.basicR	tansible.module_utils.sixR
Rt%library.module_utils.network.f5.bigiqRt&library.module_utils.network.f5.commonR
RRRRt)library.module_utils.network.f5.ipaddressRRt(library.module_utils.network.f5.icontrolRtImportErrort%ansible.module_utils.network.f5.bigiqt&ansible.module_utils.network.f5.commont)ansible.module_utils.network.f5.ipaddresst(ansible.module_utils.network.f5.icontrolR tobjectR)R:RARPReR�R�R�R�R�R�R�R�RR(RNRQRhRvR8(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_device_info.pyt<module>sx


'"���
	5%3K3U3
ON��/ZHv%	

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