����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Kenneth D. Evensen <kdevensen@gmail.com>
# 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'''
module: pamd
author:
- Kenneth D. Evensen (@kevensen)
short_description: Manage PAM Modules
description:
- Edit PAM service's type, control, module path and module arguments.
- In order for a PAM rule to be modified, the type, control and
module_path must match an existing rule. See man(5) pam.d for details.
notes:
- This module does not handle authselect profiles.
extends_documentation_fragment:
- community.general.attributes
attributes:
check_mode:
support: full
diff_mode:
support: none
options:
name:
description:
- The name generally refers to the PAM service file to
change, for example system-auth.
type: str
required: true
type:
description:
- The type of the PAM rule being modified.
- The C(type), C(control) and C(module_path) all must match a rule to be modified.
type: str
required: true
choices: [ account, -account, auth, -auth, password, -password, session, -session ]
control:
description:
- The control of the PAM rule being modified.
- This may be a complicated control with brackets. If this is the case, be
sure to put "[bracketed controls]" in quotes.
- The C(type), C(control) and C(module_path) all must match a rule to be modified.
type: str
required: true
module_path:
description:
- The module path of the PAM rule being modified.
- The C(type), C(control) and C(module_path) all must match a rule to be modified.
type: str
required: true
new_type:
description:
- The new type to assign to the new rule.
type: str
choices: [ account, -account, auth, -auth, password, -password, session, -session ]
new_control:
description:
- The new control to assign to the new rule.
type: str
new_module_path:
description:
- The new module path to be assigned to the new rule.
type: str
module_arguments:
description:
- When state is C(updated), the module_arguments will replace existing module_arguments.
- When state is C(args_absent) args matching those listed in module_arguments will be removed.
- When state is C(args_present) any args listed in module_arguments are added if
missing from the existing rule.
- Furthermore, if the module argument takes a value denoted by C(=),
the value will be changed to that specified in module_arguments.
type: list
elements: str
state:
description:
- The default of C(updated) will modify an existing rule if type,
control and module_path all match an existing rule.
- With C(before), the new rule will be inserted before a rule matching type,
control and module_path.
- Similarly, with C(after), the new rule will be inserted after an existing rulematching type,
control and module_path.
- With either C(before) or C(after) new_type, new_control, and new_module_path must all be specified.
- If state is C(args_absent) or C(args_present), new_type, new_control, and new_module_path will be ignored.
- State C(absent) will remove the rule. The 'absent' state was added in Ansible 2.4.
type: str
choices: [ absent, before, after, args_absent, args_present, updated ]
default: updated
path:
description:
- This is the path to the PAM service files.
type: path
default: /etc/pam.d
backup:
description:
- Create a backup file including the timestamp information so you can
get the original file back if you somehow clobbered it incorrectly.
type: bool
default: false
'''
EXAMPLES = r'''
- name: Update pamd rule's control in /etc/pam.d/system-auth
community.general.pamd:
name: system-auth
type: auth
control: required
module_path: pam_faillock.so
new_control: sufficient
- name: Update pamd rule's complex control in /etc/pam.d/system-auth
community.general.pamd:
name: system-auth
type: session
control: '[success=1 default=ignore]'
module_path: pam_succeed_if.so
new_control: '[success=2 default=ignore]'
- name: Insert a new rule before an existing rule
community.general.pamd:
name: system-auth
type: auth
control: required
module_path: pam_faillock.so
new_type: auth
new_control: sufficient
new_module_path: pam_faillock.so
state: before
- name: Insert a new rule pam_wheel.so with argument 'use_uid' after an \
existing rule pam_rootok.so
community.general.pamd:
name: su
type: auth
control: sufficient
module_path: pam_rootok.so
new_type: auth
new_control: required
new_module_path: pam_wheel.so
module_arguments: 'use_uid'
state: after
- name: Remove module arguments from an existing rule
community.general.pamd:
name: system-auth
type: auth
control: required
module_path: pam_faillock.so
module_arguments: ''
state: updated
- name: Replace all module arguments in an existing rule
community.general.pamd:
name: system-auth
type: auth
control: required
module_path: pam_faillock.so
module_arguments: 'preauth
silent
deny=3
unlock_time=604800
fail_interval=900'
state: updated
- name: Remove specific arguments from a rule
community.general.pamd:
name: system-auth
type: session
control: '[success=1 default=ignore]'
module_path: pam_succeed_if.so
module_arguments: crond,quiet
state: args_absent
- name: Ensure specific arguments are present in a rule
community.general.pamd:
name: system-auth
type: session
control: '[success=1 default=ignore]'
module_path: pam_succeed_if.so
module_arguments: crond,quiet
state: args_present
- name: Ensure specific arguments are present in a rule (alternative)
community.general.pamd:
name: system-auth
type: session
control: '[success=1 default=ignore]'
module_path: pam_succeed_if.so
module_arguments:
- crond
- quiet
state: args_present
- name: Module arguments requiring commas must be listed as a Yaml list
community.general.pamd:
name: special-module
type: account
control: required
module_path: pam_access.so
module_arguments:
- listsep=,
state: args_present
- name: Update specific argument value in a rule
community.general.pamd:
name: system-auth
type: auth
control: required
module_path: pam_faillock.so
module_arguments: 'fail_interval=300'
state: args_present
- name: Add pam common-auth rule for duo
community.general.pamd:
name: common-auth
new_type: auth
new_control: '[success=1 default=ignore]'
new_module_path: '/lib64/security/pam_duo.so'
state: after
type: auth
module_path: pam_sss.so
control: 'requisite'
'''
RETURN = r'''
change_count:
description: How many rules were changed.
type: int
sample: 1
returned: success
backupdest:
description:
- "The file name of the backup file, if created."
returned: success
type: str
...
'''
from ansible.module_utils.basic import AnsibleModule
import os
import re
from tempfile import NamedTemporaryFile
from datetime import datetime
RULE_REGEX = re.compile(r"""(?P<rule_type>-?(?:auth|account|session|password))\s+
(?P<control>\[.*\]|\S*)\s+
(?P<path>\S*)\s*
(?P<args>.*)\s*""", re.X)
RULE_ARG_REGEX = re.compile(r"(\[.*\]|\S*)")
VALID_TYPES = ['account', '-account', 'auth', '-auth', 'password', '-password', 'session', '-session']
class PamdLine(object):
def __init__(self, line):
self.line = line
self.prev = None
self.next = None
@property
def is_valid(self):
if self.line.strip() == '':
return True
return False
def validate(self):
if not self.is_valid:
return False, "Rule is not valid " + self.line
return True, "Rule is valid " + self.line
# Method to check if a rule matches the type, control and path.
def matches(self, rule_type, rule_control, rule_path, rule_args=None):
return False
def __str__(self):
return str(self.line)
class PamdEmptyLine(PamdLine):
pass
class PamdComment(PamdLine):
def __init__(self, line):
super(PamdComment, self).__init__(line)
@property
def is_valid(self):
if self.line.startswith('#'):
return True
return False
class PamdInclude(PamdLine):
def __init__(self, line):
super(PamdInclude, self).__init__(line)
@property
def is_valid(self):
if self.line.startswith('@include'):
return True
return False
class PamdRule(PamdLine):
valid_simple_controls = ['required', 'requisite', 'sufficient', 'optional', 'include', 'substack', 'definitive']
valid_control_values = ['success', 'open_err', 'symbol_err', 'service_err', 'system_err', 'buf_err',
'perm_denied', 'auth_err', 'cred_insufficient', 'authinfo_unavail', 'user_unknown',
'maxtries', 'new_authtok_reqd', 'acct_expired', 'session_err', 'cred_unavail',
'cred_expired', 'cred_err', 'no_module_data', 'conv_err', 'authtok_err',
'authtok_recover_err', 'authtok_lock_busy', 'authtok_disable_aging', 'try_again',
'ignore', 'abort', 'authtok_expired', 'module_unknown', 'bad_item', 'conv_again',
'incomplete', 'default']
valid_control_actions = ['ignore', 'bad', 'die', 'ok', 'done', 'reset']
def __init__(self, rule_type, rule_control, rule_path, rule_args=None):
self.prev = None
self.next = None
self._control = None
self._args = None
self.rule_type = rule_type
self.rule_control = rule_control
self.rule_path = rule_path
self.rule_args = rule_args
# Method to check if a rule matches the type, control and path.
def matches(self, rule_type, rule_control, rule_path, rule_args=None):
return (rule_type == self.rule_type and
rule_control == self.rule_control and
rule_path == self.rule_path)
@classmethod
def rule_from_string(cls, line):
rule_match = RULE_REGEX.search(line)
rule_args = parse_module_arguments(rule_match.group('args'))
return cls(rule_match.group('rule_type'), rule_match.group('control'), rule_match.group('path'), rule_args)
def __str__(self):
if self.rule_args:
return '{0: <11}{1} {2} {3}'.format(self.rule_type, self.rule_control, self.rule_path, ' '.join(self.rule_args))
return '{0: <11}{1} {2}'.format(self.rule_type, self.rule_control, self.rule_path)
@property
def rule_control(self):
if isinstance(self._control, list):
return '[' + ' '.join(self._control) + ']'
return self._control
@rule_control.setter
def rule_control(self, control):
if control.startswith('['):
control = control.replace(' = ', '=').replace('[', '').replace(']', '')
self._control = control.split(' ')
else:
self._control = control
@property
def rule_args(self):
if not self._args:
return []
return self._args
@rule_args.setter
def rule_args(self, args):
self._args = parse_module_arguments(args)
@property
def line(self):
return str(self)
@classmethod
def is_action_unsigned_int(cls, string_num):
number = 0
try:
number = int(string_num)
except ValueError:
return False
if number >= 0:
return True
return False
@property
def is_valid(self):
return self.validate()[0]
def validate(self):
# Validate the rule type
if self.rule_type not in VALID_TYPES:
return False, "Rule type, " + self.rule_type + ", is not valid in rule " + self.line
# Validate the rule control
if isinstance(self._control, str) and self.rule_control not in PamdRule.valid_simple_controls:
return False, "Rule control, " + self.rule_control + ", is not valid in rule " + self.line
elif isinstance(self._control, list):
for control in self._control:
value, action = control.split("=")
if value not in PamdRule.valid_control_values:
return False, "Rule control value, " + value + ", is not valid in rule " + self.line
if action not in PamdRule.valid_control_actions and not PamdRule.is_action_unsigned_int(action):
return False, "Rule control action, " + action + ", is not valid in rule " + self.line
# TODO: Validate path
return True, "Rule is valid " + self.line
# PamdService encapsulates an entire service and contains one or more rules. It seems the best way is to do this
# as a doubly linked list.
class PamdService(object):
def __init__(self, content):
self._head = None
self._tail = None
for line in content.splitlines():
if line.lstrip().startswith('#'):
pamd_line = PamdComment(line)
elif line.lstrip().startswith('@include'):
pamd_line = PamdInclude(line)
elif line.strip() == '':
pamd_line = PamdEmptyLine(line)
else:
pamd_line = PamdRule.rule_from_string(line)
self.append(pamd_line)
def append(self, pamd_line):
if self._head is None:
self._head = self._tail = pamd_line
else:
pamd_line.prev = self._tail
pamd_line.next = None
self._tail.next = pamd_line
self._tail = pamd_line
def remove(self, rule_type, rule_control, rule_path):
current_line = self._head
changed = 0
while current_line is not None:
if current_line.matches(rule_type, rule_control, rule_path):
if current_line.prev is not None:
current_line.prev.next = current_line.next
if current_line.next is not None:
current_line.next.prev = current_line.prev
else:
self._head = current_line.next
current_line.next.prev = None
changed += 1
current_line = current_line.next
return changed
def get(self, rule_type, rule_control, rule_path):
lines = []
current_line = self._head
while current_line is not None:
if isinstance(current_line, PamdRule) and current_line.matches(rule_type, rule_control, rule_path):
lines.append(current_line)
current_line = current_line.next
return lines
def has_rule(self, rule_type, rule_control, rule_path):
if self.get(rule_type, rule_control, rule_path):
return True
return False
def update_rule(self, rule_type, rule_control, rule_path,
new_type=None, new_control=None, new_path=None, new_args=None):
# Get a list of rules we want to change
rules_to_find = self.get(rule_type, rule_control, rule_path)
new_args = parse_module_arguments(new_args, return_none=True)
changes = 0
for current_rule in rules_to_find:
rule_changed = False
if new_type:
if current_rule.rule_type != new_type:
rule_changed = True
current_rule.rule_type = new_type
if new_control:
if current_rule.rule_control != new_control:
rule_changed = True
current_rule.rule_control = new_control
if new_path:
if current_rule.rule_path != new_path:
rule_changed = True
current_rule.rule_path = new_path
if new_args is not None:
if current_rule.rule_args != new_args:
rule_changed = True
current_rule.rule_args = new_args
if rule_changed:
changes += 1
return changes
def insert_before(self, rule_type, rule_control, rule_path,
new_type=None, new_control=None, new_path=None, new_args=None):
# Get a list of rules we want to change
rules_to_find = self.get(rule_type, rule_control, rule_path)
changes = 0
# There are two cases to consider.
# 1. The new rule doesn't exist before the existing rule
# 2. The new rule exists
for current_rule in rules_to_find:
# Create a new rule
new_rule = PamdRule(new_type, new_control, new_path, new_args)
# First we'll get the previous rule.
previous_rule = current_rule.prev
# Next we may have to loop backwards if the previous line is a comment. If it
# is, we'll get the previous "rule's" previous.
while previous_rule is not None and isinstance(previous_rule, (PamdComment, PamdEmptyLine)):
previous_rule = previous_rule.prev
# Next we'll see if the previous rule matches what we are trying to insert.
if previous_rule is not None and not previous_rule.matches(new_type, new_control, new_path):
# First set the original previous rule's next to the new_rule
previous_rule.next = new_rule
# Second, set the new_rule's previous to the original previous
new_rule.prev = previous_rule
# Third, set the new rule's next to the current rule
new_rule.next = current_rule
# Fourth, set the current rule's previous to the new_rule
current_rule.prev = new_rule
changes += 1
# Handle the case where it is the first rule in the list.
elif previous_rule is None:
# This is the case where the current rule is not only the first rule
# but the first line as well. So we set the head to the new rule
if current_rule.prev is None:
self._head = new_rule
# This case would occur if the previous line was a comment.
else:
current_rule.prev.next = new_rule
new_rule.prev = current_rule.prev
new_rule.next = current_rule
current_rule.prev = new_rule
changes += 1
return changes
def insert_after(self, rule_type, rule_control, rule_path,
new_type=None, new_control=None, new_path=None, new_args=None):
# Get a list of rules we want to change
rules_to_find = self.get(rule_type, rule_control, rule_path)
changes = 0
# There are two cases to consider.
# 1. The new rule doesn't exist after the existing rule
# 2. The new rule exists
for current_rule in rules_to_find:
# First we'll get the next rule.
next_rule = current_rule.next
# Next we may have to loop forwards if the next line is a comment. If it
# is, we'll get the next "rule's" next.
while next_rule is not None and isinstance(next_rule, (PamdComment, PamdEmptyLine)):
next_rule = next_rule.next
# First we create a new rule
new_rule = PamdRule(new_type, new_control, new_path, new_args)
if next_rule is not None and not next_rule.matches(new_type, new_control, new_path):
# If the previous rule doesn't match we'll insert our new rule.
# Second set the original next rule's previous to the new_rule
next_rule.prev = new_rule
# Third, set the new_rule's next to the original next rule
new_rule.next = next_rule
# Fourth, set the new rule's previous to the current rule
new_rule.prev = current_rule
# Fifth, set the current rule's next to the new_rule
current_rule.next = new_rule
changes += 1
# This is the case where the current_rule is the last in the list
elif next_rule is None:
new_rule.prev = self._tail
new_rule.next = None
self._tail.next = new_rule
self._tail = new_rule
current_rule.next = new_rule
changes += 1
return changes
def add_module_arguments(self, rule_type, rule_control, rule_path, args_to_add):
# Get a list of rules we want to change
rules_to_find = self.get(rule_type, rule_control, rule_path)
args_to_add = parse_module_arguments(args_to_add)
changes = 0
for current_rule in rules_to_find:
rule_changed = False
# create some structures to evaluate the situation
simple_new_args = set()
key_value_new_args = dict()
for arg in args_to_add:
if arg.startswith("["):
continue
elif "=" in arg:
key, value = arg.split("=")
key_value_new_args[key] = value
else:
simple_new_args.add(arg)
key_value_new_args_set = set(key_value_new_args)
simple_current_args = set()
key_value_current_args = dict()
for arg in current_rule.rule_args:
if arg.startswith("["):
continue
elif "=" in arg:
key, value = arg.split("=")
key_value_current_args[key] = value
else:
simple_current_args.add(arg)
key_value_current_args_set = set(key_value_current_args)
new_args_to_add = list()
# Handle new simple arguments
if simple_new_args.difference(simple_current_args):
for arg in simple_new_args.difference(simple_current_args):
new_args_to_add.append(arg)
# Handle new key value arguments
if key_value_new_args_set.difference(key_value_current_args_set):
for key in key_value_new_args_set.difference(key_value_current_args_set):
new_args_to_add.append(key + '=' + key_value_new_args[key])
if new_args_to_add:
current_rule.rule_args += new_args_to_add
rule_changed = True
# Handle existing key value arguments when value is not equal
if key_value_new_args_set.intersection(key_value_current_args_set):
for key in key_value_new_args_set.intersection(key_value_current_args_set):
if key_value_current_args[key] != key_value_new_args[key]:
arg_index = current_rule.rule_args.index(key + '=' + key_value_current_args[key])
current_rule.rule_args[arg_index] = str(key + '=' + key_value_new_args[key])
rule_changed = True
if rule_changed:
changes += 1
return changes
def remove_module_arguments(self, rule_type, rule_control, rule_path, args_to_remove):
# Get a list of rules we want to change
rules_to_find = self.get(rule_type, rule_control, rule_path)
args_to_remove = parse_module_arguments(args_to_remove)
changes = 0
for current_rule in rules_to_find:
if not args_to_remove:
args_to_remove = []
# Let's check to see if there are any args to remove by finding the intersection
# of the rule's current args and the args_to_remove lists
if not list(set(current_rule.rule_args) & set(args_to_remove)):
continue
# There are args to remove, so we create a list of new_args absent the args
# to remove.
current_rule.rule_args = [arg for arg in current_rule.rule_args if arg not in args_to_remove]
changes += 1
return changes
def validate(self):
current_line = self._head
while current_line is not None:
curr_validate = current_line.validate()
if not curr_validate[0]:
return curr_validate
current_line = current_line.next
return True, "Module is valid"
def __str__(self):
lines = []
current_line = self._head
mark = "# Updated by Ansible - %s" % datetime.now().isoformat()
while current_line is not None:
lines.append(str(current_line))
current_line = current_line.next
if len(lines) <= 1:
lines.insert(0, "")
lines.insert(1, mark)
else:
if lines[1].startswith("# Updated by Ansible"):
lines[1] = mark
else:
lines.insert(1, mark)
return '\n'.join(lines) + '\n'
def parse_module_arguments(module_arguments, return_none=False):
# If args is None, return empty list by default.
# But if return_none is True, then return None
if module_arguments is None:
return None if return_none else []
if isinstance(module_arguments, list) and len(module_arguments) == 1 and not module_arguments[0]:
return []
if not isinstance(module_arguments, list):
module_arguments = [module_arguments]
# From this point on, module_arguments is guaranteed to be a list, empty or not
parsed_args = []
re_clear_spaces = re.compile(r"\s*=\s*")
for arg in module_arguments:
for item in filter(None, RULE_ARG_REGEX.findall(arg)):
if not item.startswith("["):
re_clear_spaces.sub("=", item)
parsed_args.append(item)
return parsed_args
def main():
module = AnsibleModule(
argument_spec=dict(
name=dict(type='str', required=True),
type=dict(type='str', required=True, choices=VALID_TYPES),
control=dict(type='str', required=True),
module_path=dict(type='str', required=True),
new_type=dict(type='str', choices=VALID_TYPES),
new_control=dict(type='str'),
new_module_path=dict(type='str'),
module_arguments=dict(type='list', elements='str'),
state=dict(type='str', default='updated', choices=['absent', 'after', 'args_absent', 'args_present', 'before', 'updated']),
path=dict(type='path', default='/etc/pam.d'),
backup=dict(type='bool', default=False),
),
supports_check_mode=True,
required_if=[
("state", "args_present", ["module_arguments"]),
("state", "args_absent", ["module_arguments"]),
("state", "before", ["new_control", "new_type", "new_module_path"]),
("state", "after", ["new_control", "new_type", "new_module_path"]),
],
)
content = str()
fname = os.path.join(module.params["path"], module.params["name"])
# Open the file and read the content or fail
try:
with open(fname, 'r') as service_file_obj:
content = service_file_obj.read()
except IOError as e:
# If unable to read the file, fail out
module.fail_json(msg='Unable to open/read PAM module file %s with error %s.' % (fname, str(e)))
# Assuming we didn't fail, create the service
service = PamdService(content)
# Set the action
action = module.params['state']
changes = 0
# Take action
if action == 'updated':
changes = service.update_rule(module.params['type'], module.params['control'], module.params['module_path'],
module.params['new_type'], module.params['new_control'], module.params['new_module_path'],
module.params['module_arguments'])
elif action == 'before':
changes = service.insert_before(module.params['type'], module.params['control'], module.params['module_path'],
module.params['new_type'], module.params['new_control'], module.params['new_module_path'],
module.params['module_arguments'])
elif action == 'after':
changes = service.insert_after(module.params['type'], module.params['control'], module.params['module_path'],
module.params['new_type'], module.params['new_control'], module.params['new_module_path'],
module.params['module_arguments'])
elif action == 'args_absent':
changes = service.remove_module_arguments(module.params['type'], module.params['control'], module.params['module_path'],
module.params['module_arguments'])
elif action == 'args_present':
if [arg for arg in parse_module_arguments(module.params['module_arguments']) if arg.startswith("[")]:
module.fail_json(msg="Unable to process bracketed '[' complex arguments with 'args_present'. Please use 'updated'.")
changes = service.add_module_arguments(module.params['type'], module.params['control'], module.params['module_path'],
module.params['module_arguments'])
elif action == 'absent':
changes = service.remove(module.params['type'], module.params['control'], module.params['module_path'])
valid, msg = service.validate()
# If the module is not valid (meaning one of the rules is invalid), we will fail
if not valid:
module.fail_json(msg=msg)
result = dict(
changed=(changes > 0),
change_count=changes,
backupdest='',
)
# If not check mode and something changed, backup the original if necessary then write out the file or fail
if not module.check_mode and result['changed']:
# First, create a backup if desired.
if module.params['backup']:
result['backupdest'] = module.backup_local(fname)
try:
temp_file = NamedTemporaryFile(mode='w', dir=module.tmpdir, delete=False)
with open(temp_file.name, 'w') as fd:
fd.write(str(service))
except IOError:
module.fail_json(msg='Unable to create temporary file %s' % temp_file)
module.atomic_move(temp_file.name, os.path.realpath(fname))
module.exit_json(**result)
if __name__ == '__main__':
main()
| 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 |
|