����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 -*-

# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

from __future__ import absolute_import, division, print_function

__metaclass__ = type

ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'}

DOCUMENTATION = '''
---
module: bulk_job_launch
author: "Seth Foster (@fosterseth)"
short_description: Bulk job launch in Automation Platform Controller
description:
    - Single-request bulk job launch in Automation Platform Controller.
    - Creates a workflow where each node corresponds to an item specified in the jobs option.
    - Any options specified at the top level will inherited by the launched jobs (if prompt on launch is enabled for those fields).
    - Provides a way to submit many jobs at once to Controller.
options:
    jobs:
      description:
        - List of jobs to create.
      required: True
      type: list
      elements: dict
      suboptions:
        unified_job_template:
          description:
            - Job template ID to use when launching.
          type: int
          required: True
        inventory:
          description:
            - Inventory ID applied as a prompt, if job template prompts for inventory
          type: int
        execution_environment:
          description:
            - Execution environment ID applied as a prompt, if job template prompts for execution environments
          type: int
        instance_groups:
          description:
            - Instance group IDs applied as a prompt, if job template prompts for instance groups
          type: list
          elements: int
        credentials:
          description:
            - Credential IDs applied as a prompt, if job template prompts for credentials
          type: list
          elements: int
        labels:
          description:
            - Label IDs to use for the job, if job template prompts for labels
          type: list
          elements: int
        extra_data:
          description:
            - Extra variables to apply at launch time, if job template prompts for extra variables
          type: dict
          default: {}
        diff_mode:
          description:
            - Show the changes made by Ansible tasks where supported
          type: bool
        verbosity:
          description:
            - Verbosity level for this ad hoc command run
          type: int
          choices: [ 0, 1, 2, 3, 4, 5 ]
        scm_branch:
          description:
            - SCM branch applied as a prompt, if job template prompts for SCM branch
            - This is only applicable if the project allows for branch override
          type: str
        job_type:
          description:
            - Job type applied as a prompt, if job template prompts for job type
          type: str
          choices:
            - 'run'
            - 'check'
        job_tags:
          description:
            - Job tags applied as a prompt, if job template prompts for job tags
          type: str
        skip_tags:
          description:
            - Tags to skip, applied as a prompt, if job template prompts for job tags
          type: str
        limit:
          description:
            - Limit to act on, applied as a prompt, if job template prompts for limit
          type: str
        forks:
          description:
            - The number of parallel or simultaneous processes to use while executing the playbook, if job template prompts for forks
          type: int
        job_slice_count:
          description:
            - The number of jobs to slice into at runtime, if job template prompts for job slices.
            - Will cause the Job Template to launch a workflow if value is greater than 1.
          type: int
          default: '1'
        identifier:
          description:
            - Identifier for the resulting workflow node that represents this job
          type: str
        timeout:
          description:
            - Maximum time in seconds to wait for a job to finish (server-side), if job template prompts for timeout.
          type: int
    name:
      description:
        - The name of the bulk job that is created
      required: False
      type: str
    description:
      description:
        - Optional description of this bulk job.
      type: str
    organization:
      description:
        - If not provided, will use the organization the user is in.
        - Required if the user belongs to more than one organization.
        - Affects who can see the resulting bulk job.
      type: str
    inventory:
      description:
        - Inventory name or ID to use for the jobs ran within the bulk job, only used if prompt for inventory is set.
      type: str
    scm_branch:
      description:
        - A specific branch of the SCM project to run the template on.
        - This is only applicable if the project allows for branch override.
      type: str
    extra_vars:
      description:
        - Any extra vars required to launch the job.
        - Extends the extra_data field at the individual job level.
      type: dict
    limit:
      description:
        - Limit to use for the bulk job.
      type: str
    job_tags:
      description:
        - A comma-separated list of playbook tags to specify what parts of the playbooks should be executed.
      type: str
    skip_tags:
      description:
        - A comma-separated list of playbook tags to skip certain tasks or parts of the playbooks to be executed.
      type: str
    wait:
      description:
        - Wait for the bulk job to complete.
      default: True
      type: bool
    interval:
      description:
        - The interval to request an update from the controller.
      required: False
      default: 2
      type: float
extends_documentation_fragment: awx.awx.auth
'''

RETURN = '''
job_info:
    description: dictionary containing information about the bulk job executed
    returned: If bulk job launched
    type: dict
'''

EXAMPLES = '''
- name: Launch bulk jobs
  bulk_job_launch:
    name: My Bulk Job Launch
    jobs:
      - unified_job_template: 7
        skip_tags: foo
      - unified_job_template: 10
        limit: foo
        extra_data:
          food: carrot
          color: orange
    limit: bar
    extra_vars: # these override / extend extra_data at the job level
      food: grape
      animal: owl
    organization: Default
    inventory: Demo Inventory

- name: Launch bulk jobs with lookup plugin
  bulk_job_launch:
    name: My Bulk Job Launch
    jobs:
      - unified_job_template: 7
      - unified_job_template: "{{ lookup('awx.awx.controller_api', 'job_templates', query_params={'name': 'Demo Job Template'},
        return_ids=True, expect_one=True) }}"
'''

from ..module_utils.controller_api import ControllerAPIModule


def main():
    # Any additional arguments that are not fields of the item can be added here
    argument_spec = dict(
        jobs=dict(required=True, type='list', elements='dict'),
        name=dict(),
        description=dict(),
        organization=dict(type='str'),
        inventory=dict(type='str'),
        limit=dict(),
        scm_branch=dict(),
        extra_vars=dict(type='dict'),
        job_tags=dict(),
        skip_tags=dict(),
        wait=dict(required=False, default=True, type='bool'),
        interval=dict(required=False, default=2.0, type='float'),
    )

    # Create a module for ourselves
    module = ControllerAPIModule(argument_spec=argument_spec)

    post_data_names = (
        'jobs',
        'name',
        'description',
        'limit',
        'scm_branch',
        'extra_vars',
        'job_tags',
        'skip_tags',
    )
    post_data = {}
    for p in post_data_names:
        val = module.params.get(p)
        if val:
            post_data[p] = val

    # Resolve name to ID for related resources
    # Do not resolve name for "jobs" suboptions, for optimization
    org_name = module.params.get('organization')
    if org_name:
        post_data['organization'] = module.resolve_name_to_id('organizations', org_name)

    inv_name = module.params.get('inventory')
    if inv_name:
        post_data['inventory'] = module.resolve_name_to_id('inventories', inv_name)

    # Extract our parameters
    wait = module.params.get('wait')
    timeout = module.params.get('timeout')
    interval = module.params.get('interval')
    name = module.params.get('name')

    # Launch the jobs
    result = module.post_endpoint("bulk/job_launch", data=post_data)

    if result['status_code'] != 201:
        module.fail_json(msg="Failed to launch bulk jobs, see response for details", response=result)

    module.json_output['changed'] = True
    module.json_output['id'] = result['json']['id']
    module.json_output['status'] = result['json']['status']
    # This is for backwards compatability
    module.json_output['job_info'] = result['json']

    if not wait:
        module.exit_json(**module.json_output)

    # Invoke wait function
    module.wait_on_url(url=result['json']['url'], object_name=name, object_type='Bulk Job Launch', timeout=timeout, interval=interval)

    module.exit_json(**module.json_output)


if __name__ == '__main__':
    main()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
ad_hoc_command.py File 5.44 KB 0644
ad_hoc_command_cancel.py File 3.85 KB 0644
ad_hoc_command_wait.py File 3.26 KB 0644
application.py File 5.11 KB 0644
bulk_host_create.py File 2.7 KB 0644
bulk_job_launch.py File 9.03 KB 0644
controller_meta.py File 1.88 KB 0644
credential.py File 10.86 KB 0644
credential_input_source.py File 4.06 KB 0644
credential_type.py File 4.48 KB 0644
execution_environment.py File 3.86 KB 0644
export.py File 5.6 KB 0644
group.py File 6 KB 0644
host.py File 3.73 KB 0644
import.py File 3.1 KB 0644
instance.py File 3.88 KB 0644
instance_group.py File 6.4 KB 0644
inventory.py File 6.51 KB 0644
inventory_source.py File 10.68 KB 0644
inventory_source_update.py File 4.45 KB 0644
job_cancel.py File 2.66 KB 0644
job_launch.py File 11.35 KB 0644
job_list.py File 3.54 KB 0644
job_template.py File 22.5 KB 0644
job_wait.py File 3.48 KB 0644
label.py File 2.97 KB 0644
license.py File 3.64 KB 0644
notification_template.py File 9.61 KB 0644
organization.py File 7.82 KB 0644
project.py File 14.71 KB 0644
project_update.py File 4.27 KB 0644
role.py File 11.26 KB 0644
schedule.py File 12.48 KB 0644
settings.py File 5.47 KB 0644
subscriptions.py File 3.12 KB 0644
team.py File 3.2 KB 0644
token.py File 6.76 KB 0644
user.py File 6.2 KB 0644
workflow_approval.py File 3.42 KB 0644
workflow_job_template.py File 38.14 KB 0644
workflow_job_template_node.py File 16.61 KB 0644
workflow_launch.py File 6.56 KB 0644
workflow_node_wait.py File 2.67 KB 0644