�
�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
m Z d d l m
Z
d d
l m Z d e f d � � YZ 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: zpool_facts
short_description: Gather facts about ZFS pools.
description:
- Gather facts from ZFS pool properties.
version_added: "2.3"
author: Adam Števko (@xen0l)
options:
name:
description:
- ZFS pool name.
aliases: [ "pool", "zpool" ]
required: false
parsable:
description:
- Specifies if property values should be displayed in machine
friendly format.
type: bool
default: False
required: false
properties:
description:
- Specifies which dataset properties should be queried in comma-separated format.
For more information about dataset properties, check zpool(1M) man page.
aliases: [ "props" ]
default: all
required: false
s
# Gather facts about ZFS pool rpool
- zpool_facts: pool=rpool
# Gather space usage about all imported ZFS pools
- zpool_facts: properties='free,size'
- debug: msg='ZFS pool {{ item.name }} has {{ item.free }} free space out of {{ item.size }}.'
with_items: '{{ ansible_zfs_pools }}'
sK
ansible_facts:
description: Dictionary containing all the detailed information about the ZFS pool facts
returned: always
type: complex
contains:
ansible_zfs_pools:
description: ZFS pool facts
returned: always
type: str
sample:
{
"allocated": "3.46G",
"altroot": "-",
"autoexpand": "off",
"autoreplace": "off",
"bootfs": "rpool/ROOT/openindiana",
"cachefile": "-",
"capacity": "6%",
"comment": "-",
"dedupditto": "0",
"dedupratio": "1.00x",
"delegation": "on",
"expandsize": "-",
"failmode": "wait",
"feature@async_destroy": "enabled",
"feature@bookmarks": "enabled",
"feature@edonr": "enabled",
"feature@embedded_data": "active",
"feature@empty_bpobj": "active",
"feature@enabled_txg": "active",
"feature@extensible_dataset": "enabled",
"feature@filesystem_limits": "enabled",
"feature@hole_birth": "active",
"feature@large_blocks": "enabled",
"feature@lz4_compress": "active",
"feature@multi_vdev_crash_dump": "enabled",
"feature@sha512": "enabled",
"feature@skein": "enabled",
"feature@spacemap_histogram": "active",
"fragmentation": "3%",
"free": "46.3G",
"freeing": "0",
"guid": "15729052870819522408",
"health": "ONLINE",
"leaked": "0",
"listsnapshots": "off",
"name": "rpool",
"readonly": "off",
"size": "49.8G",
"version": "-"
}
name:
description: ZFS pool name
returned: always
type: str
sample: rpool
parsable:
description: if parsable output should be provided in machine friendly format.
returned: if 'parsable' is set to True
type: bool
sample: True
( t defaultdict( t iteritems( t
AnsibleModulet
ZPoolFactsc B` s# e Z d � Z d � Z d � Z RS( c C` sU | | _ | j d | _ | j d | _ | j d | _ t t � | _ g | _ d S( Nt namet parsablet
properties( t modulet paramsR R
R R t dictt _poolst facts( t selfR ( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyt __init__� s c C` se | j j d � g } | j d � | j | j � | j j | � \ } } } | d k r] t St Sd S( Nt zpoolt listi ( R t get_bin_patht appendR t run_commandt Truet False( R t cmdt rct outt err( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyt pool_exists� s
c C` s{ | j j d � g } | j d � | j d � | j rH | j d � n | j d � | j d � | j | j � | j r� | j | j � n | j j | � \ } } } | d k rQxG | j � D]9 } | j d � \ } } } | j | j
i | | 6� q� WxA t | j � D]0 \ } }
|
j
i | d 6� | j j |
� qWi | j d
6S| j j
d d | j d
| d | � d S( NR t gets -Hs -ps -os name,property,valuei s R t ansible_zfs_poolst msgs2 Error while trying to get facts about ZFS pool: %st stderrR ( R R R R
R R R t
splitlinest splitR t updateR R t fail_json( R R R R R t linet poolt propertyt valuet kt v( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyt get_facts� s,
( t __name__t
__module__R R! R0 ( ( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyR s
c C` s t d t d t d t d d d g d d � d t d t d
t d d � d t d t d
d
d d � � d t � } t | � } i } t | d <| j | d <| j r� | j | d <n | j d k r� | j � r� | j � | d <q | j
d d | j � n | j � | d <| j | � d S( Nt
argument_specR t requiredt aliasesR+ R t typet strR
t defaultt boolR t allt supports_check_modet changedt
ansible_factsR$ s ZFS pool %s does not exist!( R
R R R R R R
t NoneR! R0 R) t exit_json( R t zpool_factst result( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyt main� s$ !
t __main__N( t
__future__R R R R6 t
__metaclass__t ANSIBLE_METADATAt
DOCUMENTATIONt EXAMPLESt RETURNt collectionsR t ansible.module_utils.sixR t ansible.module_utils.basicR
t objectR RB R1 ( ( ( sK /usr/lib/python2.7/site-packages/ansible/modules/storage/zfs/zpool_facts.pyt <module> s
@9
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]