diff --git a/collections/ansible_collections/redhat_cop.controller_configuration-2.3.1.info/GALAXY.yml b/collections/ansible_collections/redhat_cop.controller_configuration-2.3.1.info/GALAXY.yml
new file mode 100644
index 000000000..345c7ed42
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop.controller_configuration-2.3.1.info/GALAXY.yml
@@ -0,0 +1,8 @@
+download_url: https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/redhat_cop-controller_configuration-2.3.1.tar.gz
+format_version: 1.0.0
+name: controller_configuration
+namespace: redhat_cop
+server: https://galaxy.ansible.com/api/
+signatures: []
+version: 2.3.1
+version_url: /api/v3/plugin/ansible/content/published/collections/index/redhat_cop/controller_configuration/versions/2.3.1/
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.ansible-lint b/collections/ansible_collections/redhat_cop/controller_configuration/.ansible-lint
new file mode 100644
index 000000000..78211f557
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.ansible-lint
@@ -0,0 +1,34 @@
+---
+# The exclude_paths does not appear to be working in pre-commit
+# this issue describes similar behavior but suggested fix doesn't work
+# https://github.com/ansible/ansible-lint/issues/371
+# exclude_paths:
+# - roles/master_role_example/
+exclude_paths:
+ - '.github/'
+ - 'roles/master_role_example/'
+ - 'changelogs/'
+parseable: true
+use_default_rules: true
+# https://github.com/ansible/ansible-lint/issues/808
+# with verbosity set to 1, its dumping 'unknown file type messages'
+# verbosity: 1
+skip_list:
+ # Skipping fqcn[action] because this collection supports using either the awx.awx or ansible.controller collection
+ # so a FQCN cannot be used in module names
+ - fqcn[action]
+ - fqcn[keyword]
+ - meta-runtime # This collection with the appropriate awx.awx or ansible.controller still works with older ansible.
+ - role-name[path]
+ - sanity[cannot-ignore] # We're only ignoring sanity rules when we have to
+kinds:
+ - playbooks: "**/examples/templates/*.{yml,yaml}"
+ - playbooks: "**/examples/*.{yml,yaml}"
+ - playbooks: "**/examples/automatetheautomation/*.{yml,yaml}"
+ - tasks: "**/examples/tasks/*.yml"
+ - vars: "**/examples/automatetheautomation/orgs_vars/**/*.yml"
+ - vars: "**/examples/configs/*.yml"
+ - vars: "**/examples/configs_export_model/*.yml"
+ - vars: "**/examples/vars/*.yml"
+ - vars: "**/roles/**/tests/configs/*.yml"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.black.cfg b/collections/ansible_collections/redhat_cop/controller_configuration/.black.cfg
new file mode 100644
index 000000000..d39884af3
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.black.cfg
@@ -0,0 +1,2 @@
+[tool.black]
+line_length=160
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.flake8 b/collections/ansible_collections/redhat_cop/controller_configuration/.flake8
new file mode 100644
index 000000000..713565b10
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.flake8
@@ -0,0 +1,4 @@
+[flake8]
+max-line-length=160
+ignore=E402
+extend-ignore = E203, W503
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.gitattributes b/collections/ansible_collections/redhat_cop/controller_configuration/.gitattributes
new file mode 100644
index 000000000..096fbde63
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.gitattributes
@@ -0,0 +1,2 @@
+*.yml linguist-detectable
+*.yaml linguist-detectable
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.gitignore b/collections/ansible_collections/redhat_cop/controller_configuration/.gitignore
new file mode 100644
index 000000000..188a8aadc
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.gitignore
@@ -0,0 +1,8 @@
+collections/*
+!collections/requirements.yml
+galaxy.yml
+*.tar.gz
+*.pyc
+id_rsa*
+test
+tests/output
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.markdownlint.yml b/collections/ansible_collections/redhat_cop/controller_configuration/.markdownlint.yml
new file mode 100644
index 000000000..eb1dcb865
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.markdownlint.yml
@@ -0,0 +1,21 @@
+---
+default: true
+
+# MD003/heading-style/header-style - Heading style
+# This will ensure that the heading format is consistent across all markdown files
+MD003:
+ style: "atx"
+
+# MD013/line-length - Line length
+# Setting to false to match the yamllint setting
+MD013: false
+
+# MD046/code-block-style - Code block style
+# This will ensure that code block format is consistent across all markdown files
+MD0046:
+ style: fenced
+
+MD033:
+ allowed_elements:
+ - "br"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.mlc_config.json b/collections/ansible_collections/redhat_cop/controller_configuration/.mlc_config.json
new file mode 100644
index 000000000..12743e52d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.mlc_config.json
@@ -0,0 +1,10 @@
+{
+ "httpHeaders": [
+ {
+ "urls": ["https://github.com/", "https://guides.github.com/", "https://help.github.com/", "https://docs.github.com/"],
+ "headers": {
+ "Accept-Encoding": "zstd, br, gzip, deflate"
+ }
+ }
+ ]
+ }
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/.pre-commit-config.yaml b/collections/ansible_collections/redhat_cop/controller_configuration/.pre-commit-config.yaml
new file mode 100644
index 000000000..344225b2d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/.pre-commit-config.yaml
@@ -0,0 +1,51 @@
+---
+repos:
+ - repo: 'https://github.com/pre-commit/pre-commit-hooks'
+ rev: v4.4.0
+ hooks:
+ - id: end-of-file-fixer
+ - id: trailing-whitespace
+ # Disabling the separate yamllint as it can now be done by ansible-lint with our config moved to TLD.
+ # - repo: 'https://github.com/adrienverge/yamllint.git'
+ # rev: v1.26.3
+ # hooks:
+ # - id: yamllint
+ # entry: yamllint -c .github/workflow-config/.yamllint.yml
+ # types:
+ # - yaml
+ - repo: 'https://github.com/ansible-community/ansible-lint.git'
+ rev: v6.14.2
+ hooks:
+ # see discussions here about what arguments are used, and behavior
+ # https://github.com/ansible/ansible-lint/issues/649
+ # Roles will trigger an "unknown file type"
+ # https://github.com/ansible/ansible-lint/issues/808
+ - id: ansible-lint
+ pass_filenames: false
+ always_run: true
+ entry: "ansible-lint"
+ args:
+ - "--profile=production"
+ additional_dependencies:
+ - "ansible-core>=2.13"
+ - "yamllint>=1.26,<2.0"
+ - repo: https://github.com/DavidAnson/markdownlint-cli2
+ rev: v0.6.0
+ hooks:
+ - id: markdownlint-cli2
+ - repo: https://github.com/ambv/black
+ rev: 23.1.0
+ hooks:
+ - id: black
+ name: black
+ entry: black
+ args: [--config=.black.cfg, --check, --diff]
+ types: [python]
+ - repo: https://github.com/pycqa/flake8
+ rev: 6.0.0
+ hooks:
+ - id: flake8
+ name: flake8
+ entry: flake8
+ types: [python]
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/CHANGELOG.rst b/collections/ansible_collections/redhat_cop/controller_configuration/CHANGELOG.rst
new file mode 100644
index 000000000..380dc3fb8
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/CHANGELOG.rst
@@ -0,0 +1,388 @@
+=================================================
+infra.controller_configuration Release Notes
+=================================================
+
+.. contents:: Topics
+
+
+v2.2.5
+======
+
+Minor Changes
+-------------
+
+- Add max_forks, max_concurrent_jobs as options to instance_groups role
+- Add no_log everywhere controller_api_plugin is used to avoid to expose sensitive information in case of crashes.
+- Add no_log everywhere controller_api_plugin is used to avoid to expose sensitive information in case of crashes.
+- Add or fix some variables or extra_vars exported from objects like notifications, inventory, inventory_source, hosts, groups, jt or wjt.
+- Add roles object to object_diff role and controller_object_diff lookup plugin.
+- Fix one query with controller_password to change it and set oauth_token=controller_oauthtoken.
+- Fixed typos in README.md.
+- Improve template to export settings with filetree_create role. Settings will be in yaml format.
+- Renamed the field `update` to `update_project` to avoid colliding with the Python dict update method
+- Renamed variable controller_workflow_job_templates to controller_workflows (the previos one was not used at all).
+- Renamed variable controller_workflow_job_templates to controller_workflows (the previos one was not used at all).
+- return_all: true has been added to return the maximum of max_objects=query_controller_api_max_objects objects.
+
+Bugfixes
+--------
+
+- Enable the ability to define simple_workflow_nodes on workflow_job_templates without the need to set the `state` on a workflow_job_template (https://github.com/redhat-cop/controller_configuration/issues/297).
+
+v2.2.4
+======
+
+Minor Changes
+-------------
+
+- Update release process to avoid problems that have happened and automate it.
+- removed all examples from repo outside of readmes
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- infra.controller_configuration 2.2.3 is broken, it is aap_utilities release. We are bumping the version to minimize the issues.
+- rewrote playbooks/controller_configure.yml and removed all other playbooks
+
+Removed Features (previously deprecated)
+----------------------------------------
+
+- update_on_project_update in inventory_source as an option due to the awx module no longer supports this option.
+
+v2.1.9
+======
+
+Major Changes
+-------------
+
+- Added instance role to add instances using the new awx.awx.instance module.
+
+Minor Changes
+-------------
+
+- Update options on inventories, job templates, liscence, projects, schedules, and workflow_job_templates roles to match latest awx.awx release
+
+v2.1.8
+======
+
+Minor Changes
+-------------
+
+- Add a way to detect which of `awx.awx` or `ansible.controller` collection is installed. Added to the playbooks and examples.
+- Add markdown linter
+- Add the current object ID to the corresponding output yaml filename.
+- Fix all linter reported errors
+- Move linter configurations to root directory
+- Organize the output in directories (one per each object type).
+- Remove json_query and jmespath dependency from filetree_create role.
+- Update linter versions
+
+Bugfixes
+--------
+
+- Fixed optional lists to default to omit if the list is empty.
+- Reduce the memory usage on the filetree_create role.
+
+v2.1.7
+======
+
+Major Changes
+-------------
+
+- Adds Configuration as Code filetree_create - A role to export and convert all Controller's objects configuration in yaml files to be consumed with previous roles.
+- Adds Configuration as Code filetree_read role - A role to load controller variables (objects) from a hierarchical and scalable directory structure.
+- Adds Configuration as Code object_diff role - A role to get differences between code and controller. It will give us the lists to remove absent objects in the controller which they are not in code.
+
+Minor Changes
+-------------
+
+- Adds credential and organization options for schedule role.
+- inventory_sources - update ``source_vars`` to parse Jinja variables using the same workaround as inventories role.
+
+v2.1.6
+======
+
+Bugfixes
+--------
+
+- Fixed broken documentation for controller_object_diff plugin
+
+v2.1.5
+======
+
+Major Changes
+-------------
+
+- Adds dispatch role - A role to run all other roles.
+
+Bugfixes
+--------
+
+- Changed default interval for inventory_source_update, project_update and project to be the value of the role's async delay value. This still defaults to 1 if the delay value is not set as previously.
+
+v2.1.4
+======
+
+Bugfixes
+--------
+
+- Fixes async to work on default execution enviroments.
+- Fixes inventories hardcoded 'no_log' true on the async job check task.
+
+v2.1.3
+======
+
+Minor Changes
+-------------
+
+- Added asynchronous to {organizations,credentials,credential_types,inventories,job_templates} task to speed up creation.
+- Allow setting the organization when creating users.
+- Update to controller_object_diff lookup plugin to better handle group, host, inventory, credential, workflow_job_template_node and user objects.
+- Update to controller_object_diff lookup plugin to better handle organizations.
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- galaxy credentials in the organization role now require assign_galaxy_organizations_to_org to be true.
+
+Bugfixes
+--------
+
+- Fixes option of `survey_spec` on job_templates role.
+
+v2.1.1
+======
+
+Minor Changes
+-------------
+
+- Allows for using the roles for deletion to only use required fields.
+- Changed default to omit for several fields for notification templates and inventor sources.
+- These changes are in line with the modules required fields.
+
+Bugfixes
+--------
+
+- warn on default if the api list fed to controller_object_diff lookup is empty
+
+v2.1.0
+======
+
+Major Changes
+-------------
+
+- added diff plugin and tests for diff plugin to aid in removal tasks
+
+Minor Changes
+-------------
+
+- Added new options for adding manifest to Ansible Controller inc. from a URL and from b64 encoded content
+- added tests for the project and inventory source skips
+
+Bugfixes
+--------
+
+- Fixed readme's to point in right direction for workflows and the export model in examples
+- Moved Example playbooks to the example directory
+- Removes json_query which is not in a RH Certified collection so does not receive support and replaced with native ansible filters
+- Updated workflow inventory option to be able to use workflows from the export model.
+- added default to organization as null on project as it is not required for the module, but it is highly recommended.
+- added when to skip inventory source update when item is absent
+- added when to skip project update when item is absent
+
+v2.0.0
+======
+
+Major Changes
+-------------
+
+- Created awx and controller playbook that users can invoke for using the collection
+
+Minor Changes
+-------------
+
+- Additional module options have been added such as instance_groups and copy_from where applicable.
+- All role tests have been converted to use one format.
+- Created Readme for playbook in the playbooks directory
+- Removed the playbook configs folder, it was previously moved to the .github/playbooks directory
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- All references to tower have been changed to Controller.
+- Changed all module names to be in line with changes to awx.awx as of 19.2.1.
+- Changed variable names for all objects from tower_* to controller_*.
+- Removed depreciated module options for notification Templates.
+
+Bugfixes
+--------
+
+- Changed all references for ansible.tower to ansible.controller
+- Fixed issue where `credential` was not working for project and instead the old `scm_credential` option remained.
+
+v1.5.0
+======
+
+Major Changes
+-------------
+
+- Removed testing via playbook install that was removed in awx 18.0.0.
+- Updated testing via playbook to use minikube + operator install.
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- Examples can also be found in the playbooks/tower_configs_export_model/tower_workflows.yml
+- If you do not change the data model, change the variable 'workflow_nodes' to 'simplified_workflow_nodes'.
+- More information can be found either in the Workflow Job Template Readme or on the awx.awx.tower_workflow_job_template Documentation.
+- The Tower export model is now the default to use under workflow nodes. This is documented in the workflow job templates Readme.
+- Users using the tower export model previously, do not need to make any changes.
+- Workflow Schemas to describe Workflow nodes have changed.
+
+Bugfixes
+--------
+
+- Allow tower_hostname and tower_validate_certs to not be set in favour of environment variables being set as per module defaults.
+- Changes all boolean variables to have their default values omitted rather than using the value 'default(omit, true)' which prevents a falsy value being supplied.
+
+v1.4.1
+======
+
+Major Changes
+-------------
+
+- Added execution environments option for multiple roles.
+- Added execution environments role.
+
+Bugfixes
+--------
+
+- Fix tower_templates default
+
+v1.3.0
+======
+
+Bugfixes
+--------
+
+- Fixed an issue where certain roles were not taking in tower_validate_certs
+
+v1.2.0
+======
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- removed awx.awx implicit dependency, it will now be required to manually install awx.awx or ansible.tower collection
+
+v1.1.0
+======
+
+Major Changes
+-------------
+
+- Added the following roles - ad_hoc_command, ad_hoc_command_cancel, inventory_source_update, job_launch, job_cancel, project_update, workflow_launch
+- Updated collection to use and comply with ansible-lint v5
+
+Minor Changes
+-------------
+
+- Fixed default filters to use true when neccessary and changed a few defaults to omit rather then a value or empty string.
+- updated various Readmes to fix typos and missing information.
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- Removed kind from to credentials role. This will be depreciated in a few months. Kind arguments are replaced by the credential_type and inputs fields.
+- Updated to allow use of either awx.awx or ansible.tower
+
+Bugfixes
+--------
+
+- Corrected README for tower_validate_certs variable defaults on all roles
+
+v1.0.2
+======
+
+Minor Changes
+-------------
+
+- added alias option for survey to survey_spec in workflows.
+- updated documentation on surveys for workflows and job templates
+
+v1.0.0
+======
+
+Major Changes
+-------------
+
+- Updated Roles to use the tower_export model from the awx command line.
+- credential_types Updated to use the tower_export model from the awx command line.
+- credentials Updated to use the tower_export model from the awx command line.
+- inventory Updated to use the tower_export model from the awx command line.
+- inventory_sources Updated to use the tower_export model from the awx command line.
+- job_templates Updated to use the tower_export model from the awx command line.
+- projects Updated to use the tower_export model from the awx command line.
+- teams Updated to use the tower_export model from the awx command line.
+- users Updated to use the tower_export model from the awx command line.
+
+Minor Changes
+-------------
+
+- updated to allow vars in messages for notifications.
+- updated tower workflows related role `workflow_job_templates` to include `survey_enabled` defaulting to `false` which is a module default and `omit` the `survey_spec` if not passed.
+- updated various roles to include oauth token and tower config file.
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- Removed depreciated options in inventory sources role (source_regions, instance_filters, group_by)
+- Renamed notifications role to notification_templates role as in awx.awx:15.0. The variable is not tower_notification_templates.
+
+v0.2.1
+======
+
+Minor Changes
+-------------
+
+- Changelog release cycle
+
+v0.2.0
+======
+
+Minor Changes
+-------------
+
+- Added pre-commit hook for local development and automated testing purposes
+- Standardised and corrected all READMEs
+
+Bugfixes
+--------
+
+- Removed defaulted objects for all roles so that they were not always run if using a conditional against the variable. (see https://github.com/redhat-cop/tower_configuration/issues/68)
+
+v0.1.0
+======
+
+Major Changes
+-------------
+
+- Groups role - Added groups role to the collection
+- Labels role - Added labels role to the collection
+- Notifications role - Added many options to notifications role
+- Workflow Job Templates role - Added many options to WJT role
+
+Minor Changes
+-------------
+
+- GitHub Workflows - Added workflows to run automated linting and integration tests against the codebase
+- Hosts role - Added new_name and enabled options to hosts role
+- Housekeeping - Added CONTRIBUTING guide and pull request template
+- Inventory Sources role - Added notification_templates_started, success, and error options. Also added verbosity and source_regions options.
+- Teams role - Added new_name option to teams role
+- Test Configs - Added full range of test objects for integration testing
+
+Bugfixes
+--------
+
+- Fixed an issue where tower_validate_certs and validate_certs were both used as vars. Now changed to tower_validate_certs
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/EXPORT_README.md b/collections/ansible_collections/redhat_cop/controller_configuration/EXPORT_README.md
new file mode 100644
index 000000000..d02612d90
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/EXPORT_README.md
@@ -0,0 +1,41 @@
+# Automation Controller Export Documentation
+
+## Description
+
+This is documentation on how to use a the Automation Controller export commands in development. You can also look at the [filetree_create](roles/filetree_create/README.md) role as another method to export data.
+
+This command allows exporting all available endpoints for Automation Controller for use in importing, templates, backups and many other uses.
+
+**NOTE:** If you use the awx export option it will NOT use the correct high level variable list naming that is expected by the rest of these roles you will need to correctly name them before being able to use the roles to import the data into your new Controller. See [#332](https://github.com/redhat-cop/controller_configuration/issues/332) for more details.
+
+## Installation
+
+```console
+pip3 install awxkit
+```
+
+## Basic command options
+
+```console
+awx export --conf.host https://localhost --conf.username admin --conf.password ******** --conf.insecure --help
+```
+
+```console
+awx export --conf.host https://localhost --conf.username admin --conf.password ******** --conf.insecure --job_templates
+```
+
+## Available options for this command
+
+|Option|
+|:---:|
+|users|
+|organizations|
+|teams|
+|credential_types|
+|credentials|
+|notification_templates|
+|projects|
+|inventory|
+|inventory_sources|
+|job_templates|
+|workflow_job_templates|
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/FILES.json b/collections/ansible_collections/redhat_cop/controller_configuration/FILES.json
new file mode 100644
index 000000000..43a7cefc2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/FILES.json
@@ -0,0 +1,5983 @@
+{
+ "files": [
+ {
+ "name": ".",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs/config.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "09ff8fd2d3f04bdab3973bc85983786de15da4012b146f924c1a5e6aeae68a47",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/object_diff_role_and_plugin.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0675fc773889868baf73a69b750c5f764d56f7f12f285fdf43f644a366bd835d",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/dispatch_creds_ee_orgs_creation.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e9fa35cc6e13268b1d512a93770e1096bf7c34502dc30c15556c2b15e2d7bed",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/i_s_u_title.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "daf09adbc98c6321deae7594c4edcd67ee5f97cbd0edba17a90a996ef5f09a1e",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/dispatch_fix.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3815f8a5f22934a41aa9716150e7ed18a35a5b4ca111ef6dbe40f344530e1f91",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/redhat_to_infra_conversion.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "244148e4f8cd1e0e2088c24d3aaabb8186d3c44dcfcd704a53e8f49130d98f5c",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/.gitkeep",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/fixing_readme.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6a8a2034c2c47ff4c1129af7600d6dcf9284334ea76d055c4eabb6c9e83adbaa",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/arg_spec.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2dbf465a1df496f349607004befef67b2cf8d1bfdb10c2a045b1243eca13f4ff",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/filetree_read.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d0b7a8c6acc66efbaaec080234726182809f5815e5be845112698d4d0de30adc",
+ "format": 1
+ },
+ {
+ "name": "changelogs/changelog.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "345fe1e76a1ccc99483b202ce8618267461e49cb14638e73a63e525b1db9f9ed",
+ "format": 1
+ },
+ {
+ "name": "changelogs/.plugin-cache.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a252bdff4edf547454616fe5efa52d0ffcdb67945796da7ddc30a0568584a910",
+ "format": 1
+ },
+ {
+ "name": ".black.cfg",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9ae1e68e755c266a878bf1149718abea5d38a7ae4af4b245516f5c4fa197d759",
+ "format": 1
+ },
+ {
+ "name": "roles",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "800117ddf5a773e9e33b727e84108e818918bed429358bda2310eb35d9ee96be",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c7e9a8f72f543153a693829583e6d1389e2312a44490078b931f32ea11fad82a",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9b323e66bc81d04e39438c578e0732d3d428798406e97bdae4726f5430ceec96",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9b56469adbc200f670d8db08397ee1fe9dd1c43f37070a1907d13f2d0a3dc5a6",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/tests/configs/host.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8e1840252c999f9ff534375a4a171abd0ed50c08be8303cf42a58ab4e8fcb93b",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cd0a8a7a5e24a2462e9543c94f0c66cb5b2170d083d734b448af5d61fcaa6b60",
+ "format": 1
+ },
+ {
+ "name": "roles/hosts/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b2dccae2ef359e3bf053988674960601cba0b0a983db7534a957c0372bcf162b",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "99dc39d36a9dbd0623f0f4cad60991519106d043f97d75df4f35cd9ef9902d27",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8e07200c2cd5a03335ba26a82e9d2bff60ddada2485cc0139b3142ce6dca3eae",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cfdbcc4640e38b0579d5e7db164064ff52451317e00ec7f91040f78959fa06a7",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3bc83e5799f572fc06836b462e119df5f55ff660dc91697fe06ac07f832b109b",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/tests/configs/inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "70d3183ece82b9fc88502110cc09bb8a6d3e65b03f3d668454a3da626cabd508",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5ac70e9a1dd8c97d7d5fa90d1d284405205f059e3973914abd1727a2b9bf753f",
+ "format": 1
+ },
+ {
+ "name": "roles/inventories/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "219e74b0e0b2ab9bf6e2b1f70421d61cd2a98728750bc2ed9e7f96e774389927",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d5b7d779082523fbc5d446558905e58e1c5360324057cd3ff5cb2675d77a324e",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "af21e0e8198dad3cffacc125a0b1f9cb07bcc08ae726ef3a51354f808d10042d",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "47dffbbf1401e9c5ec9707170d0fdf8f0f9efb06179dff397532c6bd81d44b20",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3a4c420de66edfc781eadf121be9a202497cdda0c4c76abfbc0ef0fd627820bf",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/tests/configs/ad_hoc_command_cancel.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3ddd49ffb93e65171642cad46b5b83782cfd70d5e767af4bbecc44c9aa5dcd6f",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6afe9a0ffb491331230dad0103931b4d9912a91ba925c7eb4e34d1e3391ac428",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command_cancel/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b4611adb7613a96a04d7d7480aebc333096e67330661e97c57d334afa9038b0e",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "24b0be8f7bd6b2fbcab49d4b3862d2f7efd119060d53a3a43cc88bf7693a86ea",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f36a6ed2d38aeb25376e59fa97ba66e935a2659afb7f70a94fcdbdd1fb5e90a0",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "79b6159064a5ec544721773cef0366a197c3998b81fbadb37f3251cd33e096b7",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1a043851106427fdb04aa1d081f438ec83d482c2b573e4c8475c477e46611746",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/tests/configs/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6099ff8fb5de7a0a7f790d8945e14e880b04fdd5c39a406d6c8501c55d7368a2",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "46b83bf8375e94c986a036cfde0195283d35167a0a385aa8ea65dc8547808af9",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_sources/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "73df2890ea231ab411e825ceadd44571b15dfbdb761c5e7021942d5164490d8a",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8ee1e926818dd713b88183abb8d2b44ef4de09fefa9dd01df5a125b4d86ffe55",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d9872476343151e70345882c23f01db434496dab69606c0b17e6a7f53879cae1",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "184c1b55755573a7478c4237eea2cdcb073547ddd5ddbe88c49d66b8fdeaab14",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f0bd461fea71981ddf920f55832d4aca1aa292322f7f0dea2e6b72e01cc3b750",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/tests/configs/ad_hoc_commands.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6ee1ea5456441d95b0f92110989f82271608761cbc7014b27ac9f2aabf44d0ce",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "788e81e58ffbc3f55bf13ec1c80784c4ead4b73efcf5f2747b30d9c11c574283",
+ "format": 1
+ },
+ {
+ "name": "roles/ad_hoc_command/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dcf016efc47ac3a5fd6f045e9992542041c0b59c7b0ec5245ca30c0839f43b4c",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e0aed00fa16a155d2e2388b735ccd7b270ba286d266290f8f553474a8882baac",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/handlers",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/handlers/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dd55da7797878040aeb349d6e7b88cfe6d6e292c74743f051cfe55769518d5e2",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ba250f89b60a86df3123173b014e40b7c2ad9204236b8fc3eb1926a5ea8c2ce8",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "61a4652c0f23d3d046c06ea8cdf04ac3ae7ec0a38d1cdd884bab0693389ef2fc",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e995cb1bc35e38d41253bad983219fe1d81113d3eeb87ced19906d223b5d6169",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "18081c7f9156353fa1665328c09d2abf7b9ca4c94fea245515bf5945b2032011",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0d48d5c80bc3324747d4099f854e1b48f8bb9541da1bc60011c147dd938dc9b1",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/user_accounts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "139c4d3cf78b84a0f92a5dd738c7f273eb1a1128a8decaac7fa5ee228e95f4f0",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "204ab0beba3967c418d0b601c6cfae7ab8c63ca2a3d2d004272c9f28cef463e6",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/workflow_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c4732ea2300c267058167f411a12b3bebb86a7ae3c3ba150be27f7ce344f8185",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "428f46da8d24fd30f012381c1ef26926ba4d66de03aa3e40a2ed224a42849c36",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/applications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cd93c4a25eacf88d0d2e0ecc96eb353275cfebcbf272cce016466366d925d552",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "03eb7f2d879648199dc460f03e203df4d647f10f2571cde5d54a105b0aa4ccf7",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6f80de4a680db4b8af351d35d7403706c3556f5d98bfce4666d9378a474c63d3",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9a0d23212f216b2fa93ab38dd1b3a57251c71e6a78a06a915776f9f690467c34",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "41ac11c2eaaffb9b38a2f071f8926ed40fa93e88d4f6da07ed22e8e576847c87",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e4cb01779d66711f4fed1a129d0d45ab5106cb41543423471eac9eea21d227a",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2f52348e12ecf613c898bba16a88680a1212bddd2c6db39eab0ddeb65edf4f84",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "703cb760b89aa2be2732a0df56bd8e0993c7cc29eea85c3e6907310020bd0462",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "aa4d08fe309e80cfa2287f24dbea5a3bec954432370655cc7efb42e5bf9fc3a6",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tasks/notification_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "50b7c8bcbb76dbc18f512d697a3ceaac7af9af4c93c7343d57d4379735ab0924",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4dabdaa6b90d1743576a23ee1febf9b2d3ff66bbc3c11e0d3d86141cd35c9a11",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tests/object_diff.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6479905c2bbe88a79c4e63e9bd42e6c8433f42b04480df285ffe92236ef5bcf3",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tests/inventory",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2a73bbff8eccabde2b99ee0c793a87e69f350c5706a7f5d23029f84d54556ac",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/tests/drop_diff.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2d75e79601456ee5406922d3707158961444026e77c2091d256e3f54b240259b",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2266b60d013a42fd2814de17968388e02494ba6ef3aabcac3d14b64c858aa812",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b0b758c5fec188beb82dd50cb9f519ad888df433f1b1a9b6d5985964468aa211",
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/object_diff/vars/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6bdd167c22f04334c645102af447e2f5a1161916a39a8f72f26fb1b44a175cf4",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a49cd75a46e03094f24bb1af208cb4e54aaae9c49c90dc922eb158cfcdb48bdd",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f4dc8e0a5cb48abe729bd86aa0eb85ab0d8079fa2638e726b85014777f2c1fef",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "550e9cf395a1f295f877afb09548e4f9310832d6b3494d9bf93939a5a9e4693e",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1aa5db803346fc11fd12ee0df7a18bde02e93e159ce07ef5738d31787516b3b0",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/tests/configs/jobs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e63eabf0f56fffb0a2dc3779c4690947679fa2baec7a8d141605a6efd3cfe08f",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d985e7a3e4c204cc7248bb980e12ffc1a6a43929bbe6252f55022c609cfa1c1d",
+ "format": 1
+ },
+ {
+ "name": "roles/jobs_cancel/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ab5fce3c10b6168c024ae5b6e2b10bb21666f22317690bb60eadba396ffbbbd1",
+ "format": 1
+ },
+ {
+ "name": "roles/instances",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "140a9442cd9de7122b4ff705ebc4f6f407e43dc20ed0e399e2d0dbc631060793",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4acf2d4819c6b2d59680060b4938a08d861ad731f03e6bc3afb6cf4ce8a4d2f7",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bb535ea47bed18fcc31cdf826d4f9efce30446e5995d8abfda352dcb151b826d",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "09b1e5efe6e98f7c6c2ba5ece45db48fbacaa38985bd0944983fbe4391ef4d05",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/tests/configs/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "988042d9365f15832089e698943bcde7962ed117c45b986a1742cb55aa633d83",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instances/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "099e0738970d98090fbad754ec640373ed14e479d4bf96d69b9cee5483538989",
+ "format": 1
+ },
+ {
+ "name": "roles/instances/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2e4fbb7c242ae115ad49620d9981f87ce3fd2840580fd416e8fb44811b4a115f",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7ff681b99285c6170b69b91c46bb4c0648bcf98b2ec21532df7ae1b8a08adc4c",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fdd76a95752fd7e9dbc20b5ee10abd17f550eaf8f8e5aec040e9fc3cee1ac6e8",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "99d0dd5eaaaea40061968a1d607af329a67aa1dc2fa9ec8000a908176c9ea9d4",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "61a842b1acbee860f8fafb3934a3f3ec0c2846fd7575e7edbc51ccaf709f8a77",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/tests/configs/credential_input_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "918e324517fdb70c6536558ae8fb04c4296e9965560c7398e73ecf80bc739ab3",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "448338e235ab3351a7ebf942138a1db89529f2ffa59d2c2b40b6009c3e607799",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_input_sources/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d7c53fce0528382de077dff9ecd12574a602bc04bc11a0dc067ca7b7c507ba7a",
+ "format": 1
+ },
+ {
+ "name": "roles/roles",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "82fbbfe4e6dd8e349f489e63b487ffbdae4fb977cf4f96e38a5065171399c9a4",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "84c5a3e386ce0cce579fa96825ee143b4801c468f1b4a794cec29758d1e1e918",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f08020bf353c7054c550eb3d9954fc04d295dfeeab35159f50ef21933c15f8ca",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bf4fbcc46f104858e1e325381937fbf07a1797798720c109a828ee678548ca16",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/tests/configs/roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "306ceed12c0527b92383aa1913f4c453dad9236f2a839dcc9083e169046548bc",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/roles/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c386116a55a03dfa534f02cd8d68b3619fb72168a44f3f3f7dbb7897af1f37b3",
+ "format": 1
+ },
+ {
+ "name": "roles/roles/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "28e227db641a64409af1dd7edc203e6ecc0ebf15fceaa3e35e03511a6386a116",
+ "format": 1
+ },
+ {
+ "name": "roles/projects",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "22da19d1eb741ef0526827aef065e74e65fba9201ba1d03f3e5d86d7d9f4d82f",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a02f90432da4cb9678d7da7866db81b0dcbdda5d414d8f2e16df280739ec5268",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "76e13caa80ec410931edc05cf8d92cc3d823234a69753f5fcad0b9e0da359f52",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f90ade58d56820d2cb129afc5a75ae5b32eae83513f9ed571d59707e5617ee74",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/tests/configs/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b28ae09a2573cf208a6717d489a281c30dd7726c0422c3bab46e1594df7cf44f",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/projects/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f23fe15d223a222573e284e830500f4065fd0748bd89f758ca7e573d5a311185",
+ "format": 1
+ },
+ {
+ "name": "roles/projects/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "55c464634222f5d72c80172af765ef320327b746f4766b5ce630d5d42ad790dd",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cdccf9740f02f679e8d8b77391a047f7b3aa5de3ba4e45fb4991571d03fc90d1",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf4bec0f16e4562f20172ff13290b6d5b40327a4c098bc3adccca10dd5e1925a",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "add139a4ccb94d0da594c67cf13d0e983003cee14fc1af4095ed83ba9db34b12",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fa60897fdffcba1755bf752f582515f3a24ad7cb1ecacac935b9d04128a4b369",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/tests/configs/templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "400d25637d75a637fcc7ce55ec3b89dee21d2ea9170d8351df2c8f410a4aa255",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9eec9040ac9001a3ad98c939a6c139a432ab8629cdce7cbd4fa2f06f730418dd",
+ "format": 1
+ },
+ {
+ "name": "roles/job_templates/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0a2be320fe83bde3a0736dd901112839d35b279d980df513faa2cec5172f28fd",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5a6ad9e543da96a4dc9227b0ac9bff55fe5bc983024000f9ea1307ed6f426f97",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1313474af9ce84f65f0e24e929f941ecae6aac1d01a2ff520349eb1778d9649f",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bbb1c909e8b82734efd670093ebcb86c7daedcc58454701dfb9f7c1b721b092b",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ba27cb3bc45015a97f43ecf4d963060dc821c3aad5696b99f342707c9eb4e7e5",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/tests/configs/organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8df214aeb7f1e6b3e4ca8d3f5dcebfa0fcbca28a47d2fe9cb62fd42c7f572f2e",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f58069485b4d1dea267dd4bd2b3c9cfd10c336da4216169bfff5a0ab2b667fab",
+ "format": 1
+ },
+ {
+ "name": "roles/organizations/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bb153b6d704b76a36e46ec9a07c21de2103e4be50cc34c06c278879f56a74e0e",
+ "format": 1
+ },
+ {
+ "name": "roles/users",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c9659934fd809249b83eb946da744b95f61ca17597d704cc525faf5135cd93d1",
+ "format": 1
+ },
+ {
+ "name": "roles/users/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8d90e688079c0595bcafc9ac65d1faf284e600cc4923545bb00cb82c7632c20c",
+ "format": 1
+ },
+ {
+ "name": "roles/users/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ad1813a22600b2bc460730b21dd9e6da704b6f7cf6dc41c06c24d0519efdb851",
+ "format": 1
+ },
+ {
+ "name": "roles/users/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b9d667fa8cfb0d9a0c1a9eb591c17b2747e9e0c7d2a7d051a92e14ddea17d635",
+ "format": 1
+ },
+ {
+ "name": "roles/users/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/tests/configs/users.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8ffa4b72eae46d58bd76b5e1934a535b5481c2b790e4c823da944cfbb8bf18ef",
+ "format": 1
+ },
+ {
+ "name": "roles/users/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/users/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "20e72d153cb788ba2cfd7e8747ca09c98c969488d48a58f42b0ac5aaf710d012",
+ "format": 1
+ },
+ {
+ "name": "roles/users/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "006618c1ec3dfda5e67fc5450372f370037eeadbc1c29f244d563b516634dfb8",
+ "format": 1
+ },
+ {
+ "name": "roles/applications",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3ffd51ca2a52c990a760f5b7cd4bf89c6965b2b8567ba50e668c07997e511bdb",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2b256a9b45222acbaef600ad774fbc16ee0e0819e3144994f7eb18c2d809a913",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cd8cd96f5340d915580580d0610b1a7ca8851fd74893fd953c859ef51bf2cfb8",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d61ee6a3b3809355ab97ecdc4e68301a820acbc9ab0e8ac53578a8dceb302371",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/tests/configs/applications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3a76e1ab201b7049196d7264fa0409ffaf9623feea3c753709bdad9c4cb3cd0b",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/applications/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d8913464ed077fb91b3d26e3a78d43a8d7001a5c98c9c037d71bb0cd7c69476c",
+ "format": 1
+ },
+ {
+ "name": "roles/applications/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "08a8e3a814df9f8168fbb080f9e7f92cb41c34a8b93d5520b538c84b30b6a224",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3a100a20e22fd5602a53a4f9b7c253147280a4d7758db2fe15610da95933f7ce",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "92ad029cd7fd19b9ecbcabed64be7e489a9bb8f1f9d5654defce1f78477e856a",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "18dd06f5a21c8c3ab3b1f19a432767e918a1961fa489236a30a058a8911bbaed",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ec0962a3acbf62ec37cabbd21c73317d3030183d90afdedcc77290dcffeb0875",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/tests/configs/jobs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4c60c0d2d73878475051c47b7099786b37bcca625fd07c21b646eb7f1a767e02",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2b898cb76673424b4967e0d1506286fd4740110fe6f46ab485b8e12afb4e5fe1",
+ "format": 1
+ },
+ {
+ "name": "roles/job_launch/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bb090a84df5824b72e8dfe5c0e5c509f16fcda8671ae9923a7480a22846df256",
+ "format": 1
+ },
+ {
+ "name": "roles/labels",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "26dd042c41811aa726e328bb4a7f2c8d14d36a74ff23ace7c3f7957774aa9703",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6d76053563d44c3a79825f88ffc7c702bc2296c6aa34d7028d095cdc44bb8100",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2a7f2497f7beb3287ef6c77730491e8e29eda36cc31b6b88cefce93381f1e7ce",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b950d06d1eb656930b47678304c73f0122d53cf3eeecbef766417fd0b985e5bf",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/tests/configs/labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "418b3e756c54ff467e4af421ef44bb5e8c66087be33cdfe276576cf843a511c7",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/labels/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7f6c0b1d5a75ef8bde2fb1371735e4c4f097111a2102c70509bbfb8e0822053b",
+ "format": 1
+ },
+ {
+ "name": "roles/labels/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e5739267dcda450f44b8896bb2f41e9f2d9845a039c4e709d33ace3eecc5c371",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f5ffb000c99910e50dba117f901f78aa6e69c289a559e8eeab32296a00bf5bc0",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7b32e6c7703c1af97729e910b78ef0160860ce4e038b137a8646338f065d37ce",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b44947e29d3237c2519567358bb50733f688125834c51b59d763600ca9baf272",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0eef3253de673b2944c7f4dd50ee418d4014f346bd2d3d192b9d187dfff49695",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/tests/configs/schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e6c7804d9f35511438bf934f250ac07f4e3c3ad8625295ea4f13afb81002bfc",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f5b61397079c214a38784510b08961161ad04154d9d88c9ba209bba4b219d23a",
+ "format": 1
+ },
+ {
+ "name": "roles/schedules/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "034a3f962f8fcebb0bb90d7d206b7b1a7f8e234660a7d4910eaa780ac94871ff",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "86a694bd5f65f4bca78ce64037369081d3472f07dee3e643051ab6726413f870",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "37402f43a5aad0cc72ab1043012846b7913984fdc096d126c315f9dc804a118e",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f5840536fb4c2282cf6b419ae6be065d11c536923ff0264317efc5b8c95f0de1",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7c8ac599494ac14dfb27175841f1011f7f213ec98aedcde52ad38a3fb0344c94",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tests/configs/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b28ae09a2573cf208a6717d489a281c30dd7726c0422c3bab46e1594df7cf44f",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/tests/configs/inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2b6e8f2ef6f7597f3fde0fd6ee35f56f3c7dc23560cbb663551d8581c4ad1132",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ca3c52913c318d8376e56b09c2a33e2e07af941d4712255ad2e5573800ac9b4b",
+ "format": 1
+ },
+ {
+ "name": "roles/dispatch/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a30eb3e6c6449039cdea66380450e86b6b95a953490b951b9f939b43ee5ecd5d",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c5b7d119907446f8413ca00d855329258c49d1b5e9aaf113bce99469f74dc0e4",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/handlers",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/handlers/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9834ac1a36108a558be8a98cdc343db8c9145c78696da0f56841292f43e045c4",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "507e1bccba428dcd17c5a925f735debfedc8853810fbf51ffd56ec1784d62a01",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "63ec05b8fda71323d5492b828d25696af8cfc1210a45c4bb25e0ef002476b971",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "30e9be64d6320bee29d8825f1f96922b78c025871ad9383312c1ba87de82755a",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "16fc95af00a030e659e14d559da428a48154cc9743395e09bac888e86077fead",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d2e88b066e502e3ea6a37838e91f10fe052449d42824260aff8978b8a791eb7b",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "813db9d2bbc937127a51f112d0169d8569411952bd985e044f317ddfda79af9e",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/user_accounts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "330143faabee21936bdf0275a9697d9d1298221781f6549fe25f0bf3896a3d82",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "00dc93f0e6951a25263f39cf70fd33b53df7fb771bace48b92b44d46b57fd6e8",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/workflow_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2612df22877ccc3d716dd66e237013e1a65dd47d66f9beee15edc3a29d3dd352",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "517644d22d161438d2f5ba686692ca6ad7f6b9f4ec2e455db5e3a040a89602a9",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/notifications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b6c2b64ce6a58990a51e9a75143e8f6b739c09e7f2d42ab123c08d70488311d5",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/applications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b8ed3181ff197a18a37d4b587360bdd920c9cbe16eadd1219e4d16f7f851940f",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "be9e35e9eeeb728912b136788babafd2b9c83e0ec60e1bd439dfce7608686b4a",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "70dfd6368666e5175c051181aabbd3aba49d55fcc5270197f28f05d3792ad1e8",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c74d69d0aa2fac75fd00adb1520746d25610b2a8ead6085cb5d2fb397fb18b7a",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ecab75435dedd35b176a8afbd439c3db05b2e4cf8d683d4be529673018ae2832",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e3c480db73c43fff9102e3030846683150b9343ac8d9c311a16cab93f9d92787",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "172d0f53e020c6cdde4ab340a27e011590a09572fa13eecf08eb8071d9f4474c",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "08efa2ebd67b4ac08d7cc8843a0d1b9442b5a8c32a9b22053af89f3dd86ea0d7",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "225efb6269107c858eebb9eda04c90bd772a121521fbb3a7fc90a94c7778879d",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2b60b0982cf692cd9058aa35d1ebf6ddecec0f8fb4314070ca1db3ec2fd8eb73",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tasks/credential_input_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "aaa4a4eab0a440567e08e19324489c190c75a7ef65902c7dc7f1e52b2c5c0cc8",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "154867770b30ddaf499e3cf79b637a2de34acaad27f0c07f6cc354f62adafce6",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tests/inventory",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2a73bbff8eccabde2b99ee0c793a87e69f350c5706a7f5d23029f84d54556ac",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tests/.gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a52061d935edc2e816568d11596ccc9df8df55668cb70e4f5b281e8d98c38d2c",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/tests/config-controller-filetree.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "24c0ef062ceeeda46befb2dc2611dd1f0945ccb0df9fc0483ede1bf4cc0a0059",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "76b44bc0c35cfef7e0e5ec5a2de5aee7ccc1e6c1b2718c4703c56fab85f5c18c",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2ca98a347f6327fac90ec49e2d3a2264fa8225e6ff3e3170b7fb1d43ba8f8c3b",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_read/vars/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f78543758415e898171a1977f05e70e6ab1f23b5cc2cb9f209a7e2dd96888359",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b7144cb0322785b80b655f54f7eae9d783868ac3881a29b546b31e049fea2639",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3f0fe7b0c6c1bcadc8acfdc27c163abe2f3281e76b9d25a0a1a288495354ab23",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2be80e916f39c3f878ed36ac8f0ac07ab6ed78021966f19e0b7aef432d4c65ca",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b61d860ebd50ae2a8a2b9668df0cd9409079bc0a5584cb052681e03968585881",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/tests/configs/credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a44125e6998e821a6f934cb7e5656c1d0b092276a954741d6f09b1627a42fdd3",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "53ef16691b973d8dc966607ff0650ec43402c62c3df2fd200b2b24587ff19bb9",
+ "format": 1
+ },
+ {
+ "name": "roles/credentials/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "931c1f211b763281accfe631e12a344ea7d014296aaa02dcae3d3af9624dd230",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "070d72985db2b6ce1362783fd59d918f090c097eaeda58ba84423939f0dc7303",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "31a801dc70f09c204cfdf763cdd9f4852a47b47990f837d05a2edb7fb4064127",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2fe46e76c6a972315e81734df7e15f3b076172abb994d714f83fe901ea469af7",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ec595fc0897af8aa78d5625148d610634b4e8a94bcda471491c369560e4f818a",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/tests/configs/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fed39bad8703efce93fd9a1e016dd3d67b9615015c0168abc16e4a05498d11b6",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "747b1de381813cad57847fd9779dc456929838adb1dca10ff1124a8fb0a6cdd1",
+ "format": 1
+ },
+ {
+ "name": "roles/project_update/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a0c60f703f90741c1d6801ce8a8c53751956dddb83f5a213e21ff35a67bb3a9f",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b3adcf94e8c64106cccf5b0a69ccc8f8f5865d16426196787e3b46b521abdf36",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/automatetheautomation.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a566a6e69026a25f16978fe1a030bfb5f2f7fea103f118789605c0a54c2e8be7",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/handlers",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/handlers/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6ecea6f1c716bcc44fb12433d47372b6fe028bb6af15882019527bb717142bef",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "010053c3c2c274d11622cad31177e658c393118f37a0affab35a8d1bdf0cd5ef",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "02cb603e994ce5527d5e68aae393cdcd1a3647f9a51a12e0851073b45d2b0bd1",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/inventory.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5d4da0d9e08eeb806ef7b5a03f242b1cf39701bb06702e1d58c024c7e6147458",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/team_roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "341ce07a9e6d57e308d486d2312496f25defc1417fd4ce9a6723b50c7644d171",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c4a40618d5ef647325e9da44bff3e598179f9135bc9a6c28ccf1f171cc4ad6b3",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c0843ce41a88fd5df2ec5b33e38f24c23f757497e8afce5e90a0301b6f1051b9",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3355a1de6f43c0c7d910b9b92bce86725fe969fa81063d6c2d1c7f33fe283cde",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0cb10e3289cc25e73d8ecde15a03bf5fafdef9ec192cdce8f1f0dcbb28deaf98",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/user_roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "75aa43d812a3b31e8eeb03094905fe90d7bcb0309ec184f3bdef0336d19f3db1",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/users.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "171157d984e2211b6a0f789f41fb3f81f6b1eef0e712d5ecdfbd93d1cb579ef9",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/all.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4abb8b914542733e2b18ff63b4b6da4bc7f11e96c1726264e8362a5ab5fb93d1",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/workflow_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bdbbc435ceb03d493f61069b755513648bc21fe3ade4d228204991f2c18fbed6",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf590a0355a84253f45b6fa64dd520674bb7148d3146e1f71fb24b6639b241d9",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/applications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6eff8c50f2689a770a04e36c73aac4202d1178e491c9342537b5d4d2f87d7f83",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f8be53e940b7fa7d6bedbf14b87b1ef4013455309722e9248a561792f1172d34",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "11e9c016ec439daa7527ddeb71bbbf044a3ca46cb9bf84ef2619c722d3c80894",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "feb6f0601a973feaebf7b6339d36ca033e2ae8e77cb152d587aded512b1d5567",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "795d4a41078d3411d79a315720f262df3a0a4e996229e8da66424bf5b1fa05bc",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0e111aa56425b52084cc64fc7b045542fcd152e73ed7146fdf5447b9f8d27e5f",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9a3ac0cae385d16b662cb9361d42cb559a166640388b589aaed25a189cfdd188",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ea3c0868e19d380dce1a7177cfa19261f448c97262be0ac6856182b6c54357a1",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tasks/notification_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d268101510b60b19a69c49b186d8608a2236b7097964c4e51064bc42b3f0bd2b",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9150ee8a3a5dd3dab5a9033e448daaa34214193a3c0f800b2c448346443edc5e",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tests/inventory",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2a73bbff8eccabde2b99ee0c793a87e69f350c5706a7f5d23029f84d54556ac",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tests/filetree_create.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7b656e7fe5bfda096145c8978e59a9c8c58f7599cc3d1e8ca0aa2251baca086d",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/tests/.gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "41ae43d38a260ae8a0c7c5bf920c8f1bd9c13d8595bb4f59c0bb975f4ba85995",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "46c1e24ec3f62ecf3f61ce77df6c0e9f1af7e1091e520e0ce04bfca8703e5725",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f9244c9065d331d23918a1f5527e610c5769efbb2dc79485d49a28cde2bfb4c4",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/vars/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "784c207e0e5482236e7d852fbd4b4dc91d8603fd3e38b57ab377a391e4497cc7",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_credentials.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "700fb4924b3b478b237069dcbe963f661f5cda856882ed896a52b29c636d948a",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_job_templates.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "52510b9d4b2d47f31bee507f3026a7d0027f3f71223d26c4fc7bd9c41a11514f",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_workflow_job_templates.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a5a460ea54d301a2b273da559815d9fdeb0832aa6ef68ba56c39fe7474df5314",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_projects.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0cf85ccbfb453dd419c6bb2a1b4c71865d4bf0fb3fbdf6fc370e30a95d87cf3b",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_applications.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ffe6c5e5cafe5bb470037019c88c28d5c6acf6537f7616c0858266fd90a589e9",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_groups.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c4913a37b841690be557fee6c39cdb34cb6c02a944110c3a880c813197f412bb",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_organizations.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5b891886cc154ffc992ca747dc6a58a5a74360cbc7bca9604a30cdb5768ddbde",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_user_roles.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d82d1f2aaa7615dafb6d6079935afa9f1069eac9bade17c6dd0429b47afbeaca",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_hosts.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9043a3e999d3ed7e4e2851d9db49571aecbad9de45c71da3ada1b2527e771ef0",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_team_roles.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "560450b58a3ecad5e2f6e2053cae3671d6856ba9a0e1f019c111e46279b6f18e",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_instance_groups.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b0c837c4869015a945bd2f5aaeb4b8768dabfbf7fc02343a161de3f602692375",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_credential_types.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d438410f947bc779cc48a1e89031caaa649a8ba0939059e64e213079fb6f08b0",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_labels.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dc1062c73d58e00c3b9700c75da2ab41b47a0a6e6ed46cc6dbf542a8252ac400",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_notification_templates.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fc5eb55fb2789c448dc49e2dabf3d0c10b8d0c9a0c5029c5245138b6d4ec75de",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_execution_environments.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "da37ed546a2ea0fa34bbd89ce3cfc89a6de0d429b2d8f65f5048a94c4cda9478",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_inventory_sources.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bb860b58f4be4fcd6e093e49b49a7cdad32c91cd7fd3bd127f4eeaed59dea309",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_teams.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "58cd226767d66f4fc6bd273f9dd4e1e76f0778c37c832e7c0ddb718e822985d3",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_users.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fbb94b4b41a46ba6e6792328e37482beb1d7588830865bba91e8ffc86ab8141d",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_inventories.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "070555630d20b3624a5c0767acafdd87a1a538d7d182e931ad5522283ea9f573",
+ "format": 1
+ },
+ {
+ "name": "roles/filetree_create/templates/current_settings.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f2e531737ed5700f2232e5302bf3bccc3f4bfa24d17aaa626386c30fefd22730",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5e0fa18d6e5fb5b95098eb93c4444f7936a7ef2d4b536d886dc1d884c2d72ac8",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6d90afc037341bbfc26ec67547b578be953311d7da5f7f3d1849f1bdc2cab233",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "db5578a75d90482951264b4ccc633c788d4733266bd30fbeb6c0061d9167f90d",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bb904cd6c84acae5b068df22d8f7a4b86bdafdb5f5c9b33175641f1871ddc9cd",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/tests/configs/workflows.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e3aa6b674d2ef817c0fdf6b0c1001912c982a32d1ff56e2591b67cc2e7c323f0",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "09b7f2c9c3670e4bf4a616017d9b4885e1c8cf21e7b66c811377d0508f37f1ae",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_launch/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9e355f466e528f51355aaa67c3160df85a6ec12a8c01894231e86ae73fedf8c2",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "615812129450022a6044d1b67a0450c74ca23d6b00e161c5d99117ce41eff69d",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0b7db719a8773f6109eabc4591b8018dee5b81c0e1e50ee517bfe1b7b06c6851",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dc333ff0a52c28f7b1545491338b341d424c07f721a8077dad45db303980b63b",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "baf75bb7e72603524ec2ff4ea51833901e23219821eb558803b3610cdad3fa6f",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/tests/configs/credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "34f9e30c36a844b8589af500ac6c6651404864900fea059a87602dec246547ea",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ea9bd798efbd479ebde10f075e61a89a52d057803731d6bbd9e6d7f698c145c9",
+ "format": 1
+ },
+ {
+ "name": "roles/credential_types/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3737122e13841ae630caa6390f0d6e359ff479ca26200dc3ee112be8d70a8695",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f10abf99fbcef2b5b02de7c5ec5fd86fd01ddb1402c0fed7f1ded95e75dfc7df",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b7acb233009f67ed2b85e586c1551474dcf6ea274a1ca7078f06d17a81ed8198",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b1f306ae185e8b69f7a0618dc785a7a23db3dd036c7bba5cb2a7cdcee448decb",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3013b1ecc5c9843b3e33e32cff24e999d670202ce1c49daa270980642ba3d5f4",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/tests/configs/notifications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0ee464d96faa31314431ebf2ecb861e85d04a4cda64ab266b52c7a7bfe2b3a51",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e52509f2336885a5fa8d9785d627385a6560583d65ad80a98b2e06d66d1df6b0",
+ "format": 1
+ },
+ {
+ "name": "roles/notification_templates/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "74e06a64770b6d00d6227013796b945ccaf7a2b14e9e7996379a613c26eb5cd2",
+ "format": 1
+ },
+ {
+ "name": "roles/teams",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "82537855614a762db5eca69dc7b73def42db915e31f461d3d9020a9b3bf908ae",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "000a30daa867a20117ebe38e9f9c49392bde6f168758da024f2881a2fb3c93f4",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0d83c1cbdba24ac27f5db3270bb9d5be36aa452ab8737087213b904381fd49d2",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b4ee258856146fb97e54f35f1d587681d05c69a92fce8d5466c26778ecd40fbe",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/tests/configs/teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "471d614c3ac7ab1157e5cf728441b1002eef339e2f62edaf173d3e80521974b9",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/teams/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "50f73f37f301ed21b9b3fda947182c616d0eaf6e8bff94764154d736754f4170",
+ "format": 1
+ },
+ {
+ "name": "roles/teams/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "287ee4c6be48c5d5418dc57d766e139499d468d25c402c1d8d569398b8ecfdd4",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8e59d897e116f2bfd2cdf4fac3af65c8e6368a4c67862b03c78d1bcdc832384b",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "448fed633b3cb16ed768a5eb7d4eba965b471277113b8e46a4175f3188a7ae75",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e7f26520831843b6a6c97370de644b55139a71bac65aac34185be6a9c5ecbbdb",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4dc4b3222ff909e7efe795d3f5ea4e35c166573748153adb861f89ea63124cd8",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/tests/configs/execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2c22aa8f844867745a807a539a9c260d99938bf303bf51901e42a7f5b5758e28",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "88917840f9e8bd222fe1335b82a890ad7389e36f74f0c573c1421c4175e3e17d",
+ "format": 1
+ },
+ {
+ "name": "roles/execution_environments/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "02cfec5986752e984787121d604af4b7a6aed57be9d53eb70366d10b7cbaaf27",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a5faafd1fd00c6d63776dcaf2b961919de219c292a67dc23800322173960d557",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7a5b2fb5f80ae884fc047bbf1cffbbe3f482d48525054dd5a2143074bddad00f",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tasks/add_workflows_schema.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0b98fd2b75aeade8590c6d3e2c17b0f686d9aaf9fb264facb35861ee5761d71d",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "07ef23f4773c286bc99c1f2aed3b4f23e7214457104495f2745d0e3ae63a47f0",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tests/test.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bbd1dd51d5ca4f9b2765e498d75ad4d14dd561e82e9e6892f66f2d9110548e5c",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/tests/configs/controller_workflows.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5fb0dbda65098b7fd112c0f3c075bd77f07af401560f325bc0e93f4e2064bdfd",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "05e8736483acb7acdbf27d2f16721b320b9eb0603446b7922bc16db2e78f4661",
+ "format": 1
+ },
+ {
+ "name": "roles/workflow_job_templates/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "98b8f5c45615e8f6d73a75a25adb3363f2856e598e67c995b82b4ab619736509",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf9dce1a1a51a059e7a511a91ef565f8498f109207cfa7ec1b7470f87066496c",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b2fddc59a5d7a98309009aa00c4c57e9d4bbf6ae5463aeeb5086f23534ea1eab",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3319bb8878b906636b7753ae77725b40f087f8eca720b7c2e6ad82f1d4021597",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "71aa38be84adec78f909914bf08d2e3cab51bcaec37580da76ec2a9515aeb152",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/tests/configs/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8bafaa4213498c98eb854659a5f6753eeaa0dcb0c0cdeafb86fea461ec06df14",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cbed1f8a8553b67f9f142e25a8df6aaaf76cebeecf8b7394d4ef22a415ec3fb5",
+ "format": 1
+ },
+ {
+ "name": "roles/instance_groups/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3fed65984abbc3f8d726e94f41eb59463699c6b7d447e95389bfae4b3ffbdcb4",
+ "format": 1
+ },
+ {
+ "name": "roles/settings",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ba265684ef0442e1f50ae97ef6db7526dd3cb4687cad3e3bfcfd9d5fe0c3b83f",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "471a448fef5bf51d7f7465574235a0ee04301f69b856de8c8cf7df379dcf4184",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "73cd70e4a43dcbc75f61a3f0c687929ed80fe6e7de75e39542cdc83cd296affc",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0d01751121d50a63afa025d4ca9fa17c2178c73d2455424ce0c79a9ff7d71038",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/tests/configs/settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "645908fa146d39dee692953c3779a9ab73059242e0d6c6fc5e4926abb0c40ea7",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/settings/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6131078a118f7ab49c200dedc98ce005be25a55da3d627c6ece9e9945daff378",
+ "format": 1
+ },
+ {
+ "name": "roles/settings/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "897d253dad2ba79c8356423482a4b477b990cc7444045f91b4f0d2b849507e2a",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e9ee6bf8bb78931bd78ce5c197328410b179673cdc2a562c20657e8f4ad00836",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b0e5c9bd5ac1ac47273c8f0d45c6e88a0d810a3c584f286696bbdfab1e479989",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "449a35125cf6c56b7feee33485f59dd3ec5c4b61d8fc5d2f7413750100562b3c",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a6b6cefa39552f7796bb3b8210f688f9023da30157ad332f8fe7d945d583a70b",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/tests/configs/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "eebe21b6b36232b665ac55793fe3056daa74723a5d69156b3523ae76d660a59b",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e9092a52fcdd281be1dfb1a1f63f5254a07d38645995bce00f5d0000b036b683",
+ "format": 1
+ },
+ {
+ "name": "roles/inventory_source_update/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "98d22a0806cf90cd38564df2ebc99542a99fb45223fb8791572ef65c683d0445",
+ "format": 1
+ },
+ {
+ "name": "roles/license",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9f931d933022b89c02f1c2179583df394b404c5a8bf18b34d4500ffe9c283c9b",
+ "format": 1
+ },
+ {
+ "name": "roles/license/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "826a74795e9aaec41fa29282d101a7858059c5427d9a1585360d1eb4d43100eb",
+ "format": 1
+ },
+ {
+ "name": "roles/license/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "abf79b5c7b55a9545f0f500e5e4ba57100381f7e969e383fb6b30151490d6492",
+ "format": 1
+ },
+ {
+ "name": "roles/license/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/tests/config",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/tests/config/license.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a22b776d2dbdceff734a750837d3dbf5ef374854cb0dce961ec0295033891a88",
+ "format": 1
+ },
+ {
+ "name": "roles/license/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "661e1519336887d3f0c1afbc224d781c65c175878bc3972685415b72bd8c2f77",
+ "format": 1
+ },
+ {
+ "name": "roles/license/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "39ed7dd0897e5075f210d50cfd01398a152b303bd984120ded7a18db3f05737f",
+ "format": 1
+ },
+ {
+ "name": "roles/license/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "33ec182e72fdaf7a5734b09184058d2aadb91006d243f64864c4179af4b6656b",
+ "format": 1
+ },
+ {
+ "name": "roles/license/vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/vars/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d089d2c5686467b7391bf5144bb4e47d674087f0c2e7ceb9726ae59cec1fa94a",
+ "format": 1
+ },
+ {
+ "name": "roles/license/templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/license/templates/controller_manifest.j2",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e9575cc029fb762b72016fc07428837487e36018083c1299364141d825f7f743",
+ "format": 1
+ },
+ {
+ "name": "roles/groups",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/defaults",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/defaults/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "88cfec942f74960802eddacec3d9ff2ee422ff17b8c262135dfe5cb8551a2289",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "632feca5a8cc97646d718b44edb8d7dbc8611cc7fed1e915b5e5327b78975a82",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5a49c90bd94ce6273264f144e7b7042acbdd92df54117aed0eeb86b48dbf28a8",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tests/test.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "91a0f15974bc1a21e078473392d7b0216bb50d512ed3d6404a637cfa0c4ddf0e",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/tests/configs/group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2e94e98684fd082faf2b256368209d5fa83cbdbce7cec7895f5e5eb5d1470ee",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "roles/groups/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f84da70eb810c6672dc59d1bfcc888af8b36d43394b0c7887105a3f122ac80d1",
+ "format": 1
+ },
+ {
+ "name": "roles/groups/meta/argument_specs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "646e1e9a41a5fa413453633302ac4d5a82d6971244405fed08eac8b8fa054c11",
+ "format": 1
+ },
+ {
+ "name": "CHANGELOG.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "37b0a869348b6239f5ce5a5dbef45fd9a8a544f18f7dc15e2cef1fca11606c40",
+ "format": 1
+ },
+ {
+ "name": "ansible.cfg",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65fb761b319ebf96fdd50b4cbc3bfa7fcfb8f841882d671146f1b853b5b7e7d7",
+ "format": 1
+ },
+ {
+ "name": "playbooks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "playbooks/configure_controller.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "10de46cffa6bd5884ee14763ee51b1968ae7bcf119162c9153e076077b265a4f",
+ "format": 1
+ },
+ {
+ "name": "README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "be49cae7a92512f240c31cb700febbf45fac75365be905d3faf7d505af1ff385",
+ "format": 1
+ },
+ {
+ "name": "tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/configure_controller.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "283ff2bd0cd4944fa2d768094ef6594c8ec15ba0da055fa57826cec2fcf02336",
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/configure_controller.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ba5d48d5cd90b165f91d77278ce2b41e72d8d9e6d5fbc2fef12e3fe785983b55",
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/tasks/ad_hoc_cancel.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "78b8fe9a974d87e29a3e4e718a74648cbd7021544f55d27bc81b8347c1bef3a0",
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bc2fa3db1ff671ca68b2169d39fd13ecd047c551a523dc009f2e89ca0bc6f4ca",
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/cd_gitlab_webhook_trigger.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "245cc8667c309f9ad0cf220fc122e26623630e9247414bcc7e0657da862b9f05",
+ "format": 1
+ },
+ {
+ "name": "tests/playbooks/configure_awx.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bbcae643b54e9b36176ad46c0cbe56becc472179fcef66fb702c26494a531fec",
+ "format": 1
+ },
+ {
+ "name": "tests/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/tasks/ad_hoc_cancel.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "99d0c6dac0525408bb31420d5c51a93284f80299e08f18b838fd3924a910488f",
+ "format": 1
+ },
+ {
+ "name": "tests/tasks/differential.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5f4a782b966e3efbdfd5269a9097eef1cdb3a9e1083ba5b4e39de9976d0624e5",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.11.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65d78d6b4d3af869e327b83feb235128c9f310699b85a413af77c712bcd50fba",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.15.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65d78d6b4d3af869e327b83feb235128c9f310699b85a413af77c712bcd50fba",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.14.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65d78d6b4d3af869e327b83feb235128c9f310699b85a413af77c712bcd50fba",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.12.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65d78d6b4d3af869e327b83feb235128c9f310699b85a413af77c712bcd50fba",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.13.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "65d78d6b4d3af869e327b83feb235128c9f310699b85a413af77c712bcd50fba",
+ "format": 1
+ },
+ {
+ "name": "tests/configure_controller_export_model.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7957a218d532b9aef5f4846602ee10cea19f8b0cf2fa87f0ccecbbd62f863cb4",
+ "format": 1
+ },
+ {
+ "name": "tests/configs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/configs/labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "78a0b7fc0765a348a756d40e0199422410af4508c4f644399fe0b9621c51cae0",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/schedule.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a819b9ad9b1f29c93d316e540ada5a2f2be8c8a73830a68c8107097e2d99ba3b",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "72f7873e894412f475d2aecf829a58be0c031b87bc1a9bba187f12a7d954e7c2",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/instances.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c9d51ebc0590b0e82816b9f0c553c84c628b1463d89e6f6711fc0ccabf9a0e18",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/ad_hoc_commands.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6ee1ea5456441d95b0f92110989f82271608761cbc7014b27ac9f2aabf44d0ce",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/launch_jobs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4c60c0d2d73878475051c47b7099786b37bcca625fd07c21b646eb7f1a767e02",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/settings_individuale.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "15c42cb4c2a6fbdb1df390d59e6552d4cfe7d5bed80c78953cf2d96939e0b84c",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "39b18806a64946ad3fc99184e63d545fc32bb7d766d2f73cc32433994d3b2960",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "878475aec8ab3a8699f06c1ea7cb0b2071f4ebcaa47619968189cca09bf0d765",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/user_accounts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7a46305b45683bd4b74acace2885530d5ba865055a622c67be0c7c966a008cda",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ab4cd79fc2687d5a83b601b2919c9f4e2ad58c22749be9c83e9b8e3fb48fdc28",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9ec5a31748ba0289674be2f1163598cbf551191ac81a5f8f5a4607d7777e7386",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/controller_auth.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "602f6a477ad98005240c629e9041d1f672c5c4f8c5667bcc4c5a56692db95516",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/workfows_launch.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8842a521f590b817fbc8e9cd7548c57ae5cdcd828acd0c3c9342ff3c405a1b69",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/notifications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5ba32804f1c660be36c473caf53592ce36dc0c7c23e0df2969f743f8b93ff976",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/ssh_private_key.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5ef6f33e8969dd933c34857c62fe3eed668ee3585ed15d00e6dd78595303cd12",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "74bdb92cf93fcf07bc4c776903f2b9549869a03ad0f382b38840f9632de80d86",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/applications.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3a76e1ab201b7049196d7264fa0409ffaf9623feea3c753709bdad9c4cb3cd0b",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/workflows.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5d6c1882a4309de481db61dd36ec30797f821ecd953f475e6a6f013412d95638",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ac9a85567ebf6c50a8f94e74f597bb19c76a347b35338b44b59cbea0cc9b2329",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7a094ce8ee9a813f6a58d0a75a48df87bd5db48fcfd5751af0383257580dec09",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6f1facc4e637a5650e803b740384529228c9344b0d61c6e5f6d68716ce5056c4",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ab4dccecea924e6dd429980bf7250acbd45c4d8da47fee55d4c42cd71ad9d7ec",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8bafaa4213498c98eb854659a5f6753eeaa0dcb0c0cdeafb86fea461ec06df14",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f7fdb83ef675ffb8a3c332cf497ca2462e2d082ce3540658c816391786d4ead3",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/ad_hoc_command_cancel_defaults.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4ce658f0e09e5715bd6ce4101d49a521c807cf117f3d03fa3d861d9d01098e03",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/differential_items.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fe98c9f7eeed9ebfc6657c65dea106bb185f56551070d9e20847adee35ad6e52",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4c990feafe1da9a5409b07dbd98528c78f9e37dee82c1ccbe96c7380fb057794",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "95a1c186d7f98a6db15523915df4c7c0069112f30ca5886eb2ca70d50f9d5cba",
+ "format": 1
+ },
+ {
+ "name": "tests/configs/credential_input_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6e441d71fbfbdbef9ccb52420d632f41e0a0f6f77c5258efca131d80b7e338d9",
+ "format": 1
+ },
+ {
+ "name": "tests/templates",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/templates/collections",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/templates/collections/requirements.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8769b29ba498abd14c60fbe22e2bad5df37c69ade4a669e2ca6c7b85fef766f3",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "844f53b714f3f3e3982e54102ecaba17c1ffa4d33c0e16cd233630b5b7b19c0f",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e539c5270f2b86fc671d94880605cf35534e2b226748a95f9df9dad7a503b6af",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3280c811058088861df341caa1a4dd70c029e80f2e167a3ed3cde9dd18e8dc2d",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_notification_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6ce553caca4eeefbc4dadd8677654fc952d58dc1acf7f47a21e1c28cd4a21c4c",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_users.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e4641213ef1182ef79655ac27dd7516ecc4fa3168ed6847853504d9d4ffa82a",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6c3de8896e988f4c582b7cb668d02e1b0c5a0f72305b7bc5fef3b81672fd26e3",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "60c80def16a9270bbfbebce78602558ab42c874c462b5aab208acd608a896009",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c0afbb8529cbf9fd82ca2603b19c1fb75c7afb2a94fde634ee4ae86179621530",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "99f249af0300716eff5830d255d0e8972c41ac5b5cbe3917e70f7fe4a81e029c",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b28b25eac34d1bc7a9ed795b69319ab9b42bacdb53082196f4cfcc6ace1d8a17",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9532d1e48b368bcbf66959590d17ce1412b7d1569f6a24d907bb1a28c7f566c9",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_workflow_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "41e41b651732faab6372b2ac151c24dde1fbd4f1c1c015ba659a38c3df2427ab",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "51f47084bf7dfabe082505a2191e4ab8e719d1e7c912ac1801a33baac504a8d6",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "69fbe0e1fd7fae83d9209f98ad7d292ba7e4183a88d58a76fe693cf1491bd1b6",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "467e8f32de31bd35aaffefa2be24fd6ea3b3e0e66262b6c69756fefeb202973f",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_controller_settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f821db29a521572c77a9e5e31c882d8b493cc38bc45b5b217e34ee1cacbe8c21",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "44af2ca80417f652a2a491c4937e5c3f8d29ea60798cf1e9336ba492a6431951",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b58c3cf7a32a4244a889cff1e75b9a09ff3c03d6eb3e9ffa7bb61c69a81d4073",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/tasks/manage_roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "29f4743807f043a44e7c16e57e1db67755480d81e8f9e51ea9f25d6cc65b90a7",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1d25ddf310b4156b6f8a9d8ee9442006e385acda2d5709423a263cc75fee20a1",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0f67328c6494d829811a089d51dabec381714063233b66548edca28b30ca6897",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dfd0ba596680b3f649529abff14e12404d23117bfea6074f277dfb66a9deff84",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c73f522d950cc3c8cc566e05aa07c1968a34436a550161aaf11d6a7c95476006",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_vars.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "548d79548cd35499c67381f9100ee3c4a4fbdf5131e48161abe5ab078cbb642c",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1317ea2d0e094b7fdf32c71b83cb6221761c0e966b5454731bc915c76f4f0a3c",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1b3fd3f55f8c9d410e48287faa8130ba095ad0eea7ef80b39c82565fd090b56f",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a3156c2ee13a9692525525b2d7e52896f85386aee9e79ef9bbbf0645ea4a013d",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "34dc3c2186eb875bd1c22b8e3adffde481af50b458980d41c4162e74297e3f63",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8a6c708dd8ffd0159092af7b21bb805760870f98b63a834063bf138b5013b5b6",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_users.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "873d384cb5c3f5b714483111bc0e9ef34afdfbb8e5804ddea0ae5bcc5b88b4ab",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_organizations_with_hub.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "59282f78ded32e72f26f7667ef49a5e5573be9e12355be99fc21b22a49f05f1f",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_notification_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "94a0923fac57fbdb38405d8c2e9476db06e9330c7d629bb51fe4fb7fa2062b66",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "68bb71db7de74a36f680b4a278f0d393b69e96fe9234581737568d4ae7fbf886",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "25be7581c3debb45f990b66900f8fd695e0686a6dfe7f6d98de0882b39e7083b",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_workflows.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8077125e9f020cdabb80ea213960273e324f8939b7bd180c50c7c0780eadcec8",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_ldap_configuration.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f2ef4ff4dfcfe9460e743de4e574f609d01d277990a10009765f89bb55f073c0",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7a5f2147efe5bbec08ba0ad9a5424588bf2c5d39c8c35ec687673097367b12f4",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fb049bde000807ccea7b8c10fcf1577d5484355d42263d87b6570f26d1ae79e6",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6c46206afbab73d38680e07659280664b9bddcbb9a81dad0054711a3a6c44fe4",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_labels.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b8e7e19f99bcc85531be58231aeebb8c97268a19af11e7dfe6ca736dba439b5e",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/vars/controller_credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "511e07a91c3f902b95e5b727557bd12047467090dbb821b33f1f0add916ab4cf",
+ "format": 1
+ },
+ {
+ "name": "tests/templates/controller_config.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8fb47c52737364f363956a53d7de2ffe39c292e8a9b2d9f83a601abe322dddd8",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/pictures",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/pictures/AAP_CasC_Worflow.png",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8daebc19bfbae2cbc37be8d085e16fe9327984d6356c47e31747ec93d4cdbdc1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/drop_diff.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2d75e79601456ee5406922d3707158961444026e77c2091d256e3f54b240259b",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/config-controller-filetree.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "24c0ef062ceeeda46befb2dc2611dd1f0945ccb0df9fc0483ede1bf4cc0a0059",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/controller_organizations.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bec388ee0c6ae95874e2669f595a052f7ecab335837012d4c0d498acbbb9f149",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-casc/controller_organizations_Global.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3274ac38c6b69ecad7716caa74172638df96767d5f453407f95d4357f195b193",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_Organizations1-2.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6c9ecebb3d111f02157e723fa7150f05749ebc157fb48540b2f51d700893852e",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_OrgCrossTeams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d9abbfca5ca30594098c9cecdfb914243289cf7d045dee4b6b1985ee62d42165",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_ExampleOrg.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6c5704c98f091f40d472a5556e77310d778cc5bcd380894ed9798dc555f9c440",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_acme_key.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9a5f707b64320595d25913e80eec730706d4abd462ef746dfc020a0b108b30dd",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_aap_monitor.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "38b2b305ccf5902828c51424ea63a2835a5994bfa8d3ab44e553ae42185d5dfe",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_multiple.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e171ed3327d3acd6272c7665f707177d9d54b4d3ade0010fdb99ba02371e6763",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_servicenow.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9dde97b87749316780bee858b49196ce55b745d134df8c92480dd8e0b80d40d1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_cloudforms.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "acd1f2bbc1f671d22068b4ffd57c2eb036e93da8fcebdbc6418e892bc970eaea",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/controller_credential_types.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "71cc1760482a07c49f03e6e4cf99d82786f26a539653941a72d64256e419c763",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-casc/controller_schedules_casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "75eca7eaec58deb95c5175070830a1162dd68e177a9d47de91d0da7426d10bd0",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/controller_schedules.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cdfbbf17fcb2cca421c19870fe5e60702c53e202c813c2bcd201757f9c932020",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-example/controller_schedules_example.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cdfbbf17fcb2cca421c19870fe5e60702c53e202c813c2bcd201757f9c932020",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_groups.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_groups.d/controller_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8ad00494f5003e2532eb0c93b7f057d0c4d4587dab8bd97ca38d0d54e91ba7f8",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventory_wf_update.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "071ff0aa1d8bf72b5441a71f66fe0bf849d223a4bb054451d6057624e4eca447",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_users.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "517fc41b7e3b27552f905869c1048ff61e568432d6e789b436208dd00a6c25b1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_cmdb_approvals.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9ff4968bea6c0994ca1e7b2892df9b4ce4276f6a19050ece1e13a05d2f196a03",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "034da08aea0afd7b6033008f76f6fa8464d92aa7fd43eb1d90d7227d2f93a9f7",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e80726d1a6c087841836a3d136f36d46f43d0748e1c58da07f2de0ff4ae47adb",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/controller_roles.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8cd811b34815c8e186c29c4bba47257fe6f0c8fd9c0276cc730a65b77de94031",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org2.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "009daa237dee7f7673a11a70829232c0de3ea714e49fefc58dd0718e868debe1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org1.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2965256c586363565fadb103ef636337ee3beba0c5a5eaccaf647ee29d48f6b1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/controller_teams.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5b1b9a7f8b98b77e550056ded782f88fcc6d0a7fa6e7f13a8aa0a4102d87ab19",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-casc/controller_inventories_localhost.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4bb4da68d0f1708ceeff555302926f36ee6d93c80c61dd35d1c152a5560c197b",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org1.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9157f5307ccf254854fe07e036dd64c6475d5a2eb0aa3ed845174dd14e4e5aee",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_excel.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "644cc75e16c01e21ba60d791e6ebe36168aff3552b735f07afef5a8403ccf879",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org2.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c6e2fc11b833f6cb0df46aad201ef57c25589bc7b12723283d8bae0e0124a9cf",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/controller_inventories.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "64662bf150769437a8bd9417c6cf590384f300190e9277555d7d9ae1819ce3f4",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d3f99dcfc6cd36e78cf4bf933d7d5b5503eca78df354e18d4d6cc0f461d91d33",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0b786cbedad74481da36daa1bbafc15be7db08aefd3203998a2f8120665903ed",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "086cf186528fc4772df0fb41b9cbf3ab13a8c2b43d504a2ad429b6e37c44aed6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "421e8a25af6fc98291710fc5d22a8261fec0e7135a779bac779bffb93be2904a",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-casc/controller_projects_casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "77fd2cef981397931706cd13a36c9041b475e028f4f2fa6ad89ff7c7e35f1aba",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/controller_projects.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6644720bce11e4a53adc9952b321f0bbe679560f2de59156fefe416219db8560",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-ocp",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-ocp/controller_projects_container_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e1071101a839c12692cf8d81b3f74c1616c924adab2c23daaacb04ec9c37223",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-casc/controller_workflow_job_templates_casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b43b20d8cc1ad7ced17c28e083ca0e14556da616af38425a69714f217f929a7a",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/controller_workflow_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f7d8eb3023ae86a2274bc14051a00c7d6227b4153e984f873ec2e141ce0bf1e2",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-examples/controller_workflow_job_templates_InventoryUpdate.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2ba186fcc5e6629e84e7d924ad8dfb91073a127b9046c2f6739c439635cafe23",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/controller_instance_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c685914763e2fdb654c1e759830137e9152d658376c4e2f616b5763348892056",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/app-example/controller_instance_groups_otlc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d1c581ad29232ea62f7334bc5cbacf1fbddacfd371c2285ac1eafc28ed9dbc78",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-casc/controller_job_templates_casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2bf98b9dc33c02b7fba55396b17e947ec64689502de48c61110e66f16e599d82",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_container_groups.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b875813ffa2a5588fa1785c9589a8d6efbb06c7f8e658bad901d901f95994f8d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_demo_push.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6625e800c2451c08fd863e4f3b45b4259025fd2e470c1401420a7c483799b144",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/controller_job_templates.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9475cfdbd6360d9e5132fb919f1e9512621946657e302f41909c77a972db57d6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/controller_inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ac1b4ce8c23bb34402673a9f63fe442446d11da255d13fbd41a3f70973871a12",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5f4e252583bc2d71f8927f13a92c9c33c23b681d54d5a68c536a78d0f5ce2bf2",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4b519e5ba1b3cdb64d2ab24f98183b80a6a4e513dd64f71cb920cbb3d42fe1c5",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "43ed1f376710babb27343bbb6aee0484bba9f1f1a2fb5295eec03aad58a837d1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b3361680da2b698b7a1178fdc4e3dc0fbc354985faf1f390a080c166fa683f3d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/controller_user_accounts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d64f57d38258738f99907c86bc65151113c4f203d63b135e661d47bd9a8a8b93",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org2.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6f8d57bef10181a9793abf2a4abcd576895a44ceff881d8bc6634e6fb34a7c4d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org1.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e26895f96832312cc0ad09976aac31b156d9257c7d56c1cb5ff85085dedba7c6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/controller_settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "34f2f4ab9fc13ff011c3065ed85b7badac78dc0ec54709697abfdc5e7bb8650c",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_ldap.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1c5b7bac44b51949fb3d8bcf58faac5a479dcef7f94a0ab4856594b6efa5e635",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_system.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bbbf68121b2779a3a891151c595b842167f8ccc59f38716665038da273151a56",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_user_interface.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "81232fbe2019482b73b36e3e250ea6df04f2e341978790d5deeb9670e21131d1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_jobs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0afe6297eb69fae91ac8217548eb957e6d60b7955a41d60ff68ed6c109c389dc",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_hosts.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_hosts.d/controller_hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf56af67bfeace71761bd915ebf9a3a24dce1a51ef25cc651aa50641fad1e3f6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/controller_execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6d62b2013867768923667403664d243d08baff57a155112a2c2da78ba6e79df1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2a1474677ca237f37bc2766c178071f93ef0d0940f42d4cd7e19f17d37f89971",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "05dee82e610593d787fa0133e0f36b012929292cb321d3e01aa1f448ebb7eb48",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_machine.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8418b5937a5898ec7ed0b06e4efa49acd29dfcc2ac14fc1297a8bff8c9529d3d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_ocp.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b5d13b0a16c2216ae8ae6b2b223f59761dd46717ed24726e7ab3fe44a3375072",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_galaxy.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b023a85642c29997c99a7d1c13324d4ae4d047ce550245a5e840db1a0aa6f657",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_vault.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "20fb7f05b03fb24706ef542de57ebd3557b8fc9e08871c981f3122ffd131ff01",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_registry.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e6f392aa7ea29a6b6f267a32d727d7efc17075a480d52c5328157e5ae15688db",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_aap.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4bfb4cd0f47d89d7d20461181409d6acbdf8a67ade36e51b7d6e4cb51729490c",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_scm.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6a42ff7b0df030977b886e5d5223b48f9d258c35ee4b28052fbe132219e98a69",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/controller_inventory_sources.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ac1b4ce8c23bb34402673a9f63fe442446d11da255d13fbd41a3f70973871a12",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5f4e252583bc2d71f8927f13a92c9c33c23b681d54d5a68c536a78d0f5ce2bf2",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4b519e5ba1b3cdb64d2ab24f98183b80a6a4e513dd64f71cb920cbb3d42fe1c5",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "43ed1f376710babb27343bbb6aee0484bba9f1f1a2fb5295eec03aad58a837d1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b3361680da2b698b7a1178fdc4e3dc0fbc354985faf1f390a080c166fa683f3d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/controller_user_accounts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d64f57d38258738f99907c86bc65151113c4f203d63b135e661d47bd9a8a8b93",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org2.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6f8d57bef10181a9793abf2a4abcd576895a44ceff881d8bc6634e6fb34a7c4d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org1.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e26895f96832312cc0ad09976aac31b156d9257c7d56c1cb5ff85085dedba7c6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/controller_settings.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf66fa2e25728ffa947ae3e4910308581debf74dd853e7d4d0b1ca9d365c3815",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_ldap.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6582264fd04556da8a384ae973f605e157999702354f6fd255e0354346d94025",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_system.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bbbf68121b2779a3a891151c595b842167f8ccc59f38716665038da273151a56",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_user_interface.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "81232fbe2019482b73b36e3e250ea6df04f2e341978790d5deeb9670e21131d1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_jobs.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0afe6297eb69fae91ac8217548eb957e6d60b7955a41d60ff68ed6c109c389dc",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/app-casc/controller_hosts_localhost.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf56af67bfeace71761bd915ebf9a3a24dce1a51ef25cc651aa50641fad1e3f6",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/controller_hosts.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d11ee8daa2fbba4d7f10a4ce8e0f1dc5d0caaed28084b2f66801eaed550022be",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/controller_execution_environments.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6d62b2013867768923667403664d243d08baff57a155112a2c2da78ba6e79df1",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-casc",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2a1474677ca237f37bc2766c178071f93ef0d0940f42d4cd7e19f17d37f89971",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "05dee82e610593d787fa0133e0f36b012929292cb321d3e01aa1f448ebb7eb48",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_machine.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8418b5937a5898ec7ed0b06e4efa49acd29dfcc2ac14fc1297a8bff8c9529d3d",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_ocp.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b5d13b0a16c2216ae8ae6b2b223f59761dd46717ed24726e7ab3fe44a3375072",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_galaxy.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b023a85642c29997c99a7d1c13324d4ae4d047ce550245a5e840db1a0aa6f657",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_vault.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "20fb7f05b03fb24706ef542de57ebd3557b8fc9e08871c981f3122ffd131ff01",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_registry.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e6f392aa7ea29a6b6f267a32d727d7efc17075a480d52c5328157e5ae15688db",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_aap.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4bfb4cd0f47d89d7d20461181409d6acbdf8a67ade36e51b7d6e4cb51729490c",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_scm.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6a42ff7b0df030977b886e5d5223b48f9d258c35ee4b28052fbe132219e98a69",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/env",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/env/prod",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/env/prod/configure_connection_controller_credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cdae113dce859ed56911f5f41f2b18b40bbefbae82ce0799860a0f24192997e7",
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/env/dev",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/automatetheautomation/orgs_vars/env/dev/configure_connection_controller_credentials.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7cfae1068a99184d36ab74efb3dd7954a8f77cc06113716ff32e4af76da0d797",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/notifications_templates_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d0f0b337b1f83ab91e0222e496b1abedcd7dd96de39e18adf6560a770e09cdc3",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/credentials_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6106a982d04731a50ac7a605493bb3d3bc984e38feb33674417af0fade149ba3",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/projects_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "05a7e83c7b7401f1277614cb39dc2dd83a00f7ceee3b85a29f4c9c991d8723e2",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/auth.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "60612383da38ad7dbcc924bf192c1089a97b3218ea6caabfde035b83b7862657",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/teams_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "eac4d96f549046c314c4a7f813c222eabc78c33f7f0c78280deda95cddab2217",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/job_templates_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e82194a442b78116ba50e9c936ad2abdfd2290b1f1a0b7ce3445926f8595054b",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/workflows.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4e65ab626549b76bbbf5c46797d4a55f954dbf452578e5568fd30708bcef0157",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/inventory_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8e30ad4434e5e07f1654b3b1e979aa9ddc467dcd31fd927963426f1ceda42309",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/organizations_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5c5205a36911514b37e25a1af9f37fe0630365335eb8cac81ac9122ecaac6bd0",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/inventory_sources_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2122ceda3bff49301887a24ad1f1f364512370a66b718824ca973702f29944ec",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/credential_types_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bfea4e387cf4fba560ff0097bbfde871f059cb69d7fc3f601ab540f6bccad76f",
+ "format": 1
+ },
+ {
+ "name": "tests/configs_export_model/users_export.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d8be93b029df271e1e1fb773f5562efa0c15595905b1634e31adec29014bdd40",
+ "format": 1
+ },
+ {
+ "name": "EXPORT_README.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7af0819d49a41823cf1724b409ae9e6a2b37b39feb41ad114d4b1125545951c7",
+ "format": 1
+ },
+ {
+ "name": ".gitattributes",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5c46fbb5406462fa632d5f319429a521d3c5ca30b6a45123e329ef4ae0246c34",
+ "format": 1
+ },
+ {
+ "name": ".gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c7164b1a969852e1e2fd5fb7826063f84ef1ce83889f7f80af03fed277157f85",
+ "format": 1
+ },
+ {
+ "name": "meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "meta/runtime.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9f4da96a14679dd1bdf7a624e2ec8d1b21509dfd22c323d633b761607c49e90b",
+ "format": 1
+ },
+ {
+ "name": ".flake8",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "59f8ad952cb866f62c52aa6cb532348f05302240a713749c1dea1d36d3a9c5a5",
+ "format": 1
+ },
+ {
+ "name": "docs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/CONVERSION_GUIDE.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "62ced67ffd49582bd85f0ea40896c81e10072974585a1b0f1bb312ba4aa1de71",
+ "format": 1
+ },
+ {
+ "name": "docs/aap_config_as_code_public_meeting.ics",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6048300d58d775f54b81318c00c686f05a71aedc0a96496d411735e6f3844059",
+ "format": 1
+ },
+ {
+ "name": "docs/STANDARDS.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b62bc20f7e6d9d5170ee46b5870451a44530e8cf61efb3c40da30ad2cd91e3ab",
+ "format": 1
+ },
+ {
+ "name": ".mlc_config.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d8bc328c04f269867c7f81a657893078f2234c13bdf0d96385c7c6a4ce394c98",
+ "format": 1
+ },
+ {
+ "name": "plugins",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/lookup",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/lookup/controller_object_diff.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1aee2104e8fe6586b864c9d00cd847b2e78896fec9dcfd04b76d32fcf7bb06f3",
+ "format": 1
+ },
+ {
+ "name": ".pre-commit-config.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f03488b326fcd90bfbde0148875586f4158027003b69c6b36408f1637e0f1384",
+ "format": 1
+ },
+ {
+ "name": ".ansible-lint",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b8d2f9eeb96ed010c01c22daf223c125ebce1e53c93f06d3f6374f664634d40f",
+ "format": 1
+ },
+ {
+ "name": ".markdownlint.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5c4cb7effba511c734b4d08bc53f05524e23f254c1fa206b7bf42ed50a47bf0d",
+ "format": 1
+ }
+ ],
+ "format": 1
+}
\ No newline at end of file
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/MANIFEST.json b/collections/ansible_collections/redhat_cop/controller_configuration/MANIFEST.json
new file mode 100644
index 000000000..bf353f725
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/MANIFEST.json
@@ -0,0 +1,40 @@
+{
+ "collection_info": {
+ "namespace": "redhat_cop",
+ "name": "controller_configuration",
+ "version": "2.3.1",
+ "authors": [
+ "Andrew Huffman",
+ "Jonathan Lozada De La Matta @jlozadad",
+ "Kedar Kulkarni @kedark3",
+ "Tom Page @Tompage1994",
+ "Sean Sullivan @sean-m-sullivan",
+ "David Danielsson @djdanielsson"
+ ],
+ "readme": "README.md",
+ "tags": [
+ "controller",
+ "collection",
+ "controller_configuration",
+ "automation_platform"
+ ],
+ "description": "A collection of roles to manage Ansible Controller",
+ "license": [
+ "GPL-3.0-or-later"
+ ],
+ "license_file": null,
+ "dependencies": {},
+ "repository": "https://github.com/redhat-cop/controller_configuration/",
+ "documentation": null,
+ "homepage": null,
+ "issues": "https://github.com/redhat-cop/controller_configuration//issues"
+ },
+ "file_manifest_file": {
+ "name": "FILES.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8487063c83dda315e4a407ada22ce4f924e033593a9a4e3c3056c10f37942017",
+ "format": 1
+ },
+ "format": 1
+}
\ No newline at end of file
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/README.md b/collections/ansible_collections/redhat_cop/controller_configuration/README.md
new file mode 100644
index 000000000..2c0dbe853
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/README.md
@@ -0,0 +1,185 @@
+# Red Hat Communities of Practice Controller Configuration Collection
+
+![pre-commit tests](https://github.com/redhat-cop/controller_configuration/actions/workflows/pre-commit.yml/badge.svg)
+![Galaxy Release](https://github.com/redhat-cop/controller_configuration/workflows/galaxy-release/badge.svg)
+
+
+
+This Ansible collection allows for easy interaction with an AWX or Ansible Controller server via Ansible roles using the AWX/Controller collection modules.
+
+## Requirements
+
+The awx.awx or ansible.controller collections MUST be installed in order for this collection to work. It is recommended they be invoked in the playbook in the following way.
+
+```yaml
+---
+- name: Playbook to configure ansible controller post installation
+ hosts: localhost
+ connection: local
+ vars:
+ controller_validate_certs: false
+ collections:
+ - awx.awx
+```
+
+## Red Hat Communities of Practice Configuration Collections Suite
+
+|Collection Name|Purpose|
+|:---:|:---:|
+|[Controller Configuration](https://galaxy.ansible.com/redhat_cop/controller_configuration)|Automation controller configuration|
+|[Hub Configuration](https://galaxy.ansible.com/redhat_cop/ah_configuration)|Automation hub configuration|
+|[EE Utilities](https://galaxy.ansible.com/redhat_cop/ee_utilities)|Execution Environment creation utilities|
+|[AAP installation Utilities](https://galaxy.ansible.com/redhat_cop/aap_utilities)|Ansible Automation Platform Utilities|
+|[AAP Configuration Template](https://github.com/redhat-cop/aap_configuration_template)|Configuration Template for this suite|
+
+## Included content
+
+Click the `Content` button to see the list of content included in this collection.
+
+## Installing this collection
+
+You can install the infra.controller_configuration.collection with the Ansible Galaxy CLI:
+
+```console
+ansible-galaxy collection install infra.controller_configuration
+```
+
+You can also include it in a `requirements.yml` file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:
+
+```yaml
+---
+collections:
+ - name: infra.controller_configuration
+ # If you need a specific version of the collection, you can specify like this:
+ # version: ...
+```
+
+## Conversion from tower_configuration
+
+If you were using a version of redhat_cop.tower_configuration, please refer to our Conversion Guide here: [Conversion Guide](docs/CONVERSION_GUIDE.md)
+
+## Using this collection
+
+The awx.awx or ansible.controller collection must be invoked in the playbook in order for Ansible to pick up the correct modules to use.
+
+The following command will invoke the collection playbook. This is considered a starting point for the collection.
+
+```console
+ansible-playbook infra.controller_configuration.configure_controller.yml
+```
+
+Otherwise it will look for the modules only in your base installation. If there are errors complaining about "couldn't resolve module/action" this is the most likely cause.
+
+```yaml
+- name: Playbook to configure ansible controller post installation
+ hosts: localhost
+ connection: local
+ vars:
+ controller_validate_certs: false
+ collections:
+ - awx.awx
+```
+
+Define following vars here, or in `controller_configs/controller_auth.yml`
+`controller_hostname: ansible-controller-web-svc-test-project.example.com`
+
+You can also specify authentication by a combination of either:
+
+- `controller_hostname`, `controller_username`, `controller_password`
+- `controller_hostname`, `controller_oauthtoken`
+
+The OAuth2 token is the preferred method. You can obtain the token through the preferred `controller_token` module, or through the
+AWX CLI [login](https://docs.ansible.com/automation-controller/latest/html/controllerapi/authentication.html)
+command.
+
+These can be specified via (from highest to lowest precedence):
+
+- direct role variables as mentioned above
+- environment variables (most useful when running against localhost)
+- a config file path specified by the `controller_config_file` parameter
+- a config file at `~/.controller_cli.cfg`
+- a config file at `/etc/controller/controller_cli.cfg`
+
+Config file syntax looks like this:
+
+```ini
+[general]
+host = https://localhost:8043
+verify_ssl = true
+oauth_token = LEdCpKVKc4znzffcpQL5vLG8oyeku6
+```
+
+Controller token module would be invoked with this code:
+
+```yaml
+ - name: Create a new token using controller username/password
+ awx.awx.token:
+ description: 'Creating token to test controller jobs'
+ scope: "write"
+ state: present
+ controller_host: "{{ controller_hostname }}"
+ controller_username: "{{ controller_username }}"
+ controller_password: "{{ controller_password }}"
+
+```
+
+### Automate the Automation
+
+Every Ansible Controller instance has it's own particularities and needs. Every administrator team has it's own practices and customs. This collection allows adaptation to every need, from small to large scale, having the objects distributed across multiple environments and leveraging Automation Webhook that can be used to link a Git repository and Ansible automation natively.
+
+A complete example of how to use all of the roles present in the collection is available at the following [README.md](roles/filetree_create/automatetheautomation.md), where all the phases to allow CI/CD for the Controller Configuration are provided.
+
+#### Scale at your needs
+
+The input data can be organized in a very flexible way, letting the user use anything from a single file to an entire file tree to store the controller objects definitions, which could be used as a logical segregation of different applications, as needed in real scenarios.
+
+### Controller Export
+
+The awx command line can export json that is compatible with this collection.
+More details can be found [here](EXPORT_README.md)
+
+### Template Example
+
+A Template to use in order to start using the collections can be found [here](https://github.com/redhat-cop/aap_configuration_template)
+
+### See Also
+
+- [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details.
+
+## Release and Upgrade Notes
+
+For details on changes between versions, please see [the changelog for this collection](CHANGELOG.rst).
+
+## Releasing, Versioning and Deprecation
+
+This collection follows [Semantic Versioning](https://semver.org/). More details on versioning can be found [in the Ansible docs](https://docs.ansible.com/ansible/latest/dev_guide/developing_collections.html#collection-versions).
+
+We plan to regularly release new minor or bugfix versions once new features or bugfixes have been implemented.
+
+Releasing the current major version happens from the `devel` branch.
+
+## Roadmap
+
+Adding the ability to use direct output from the awx export command in the roles along with the current data model.
+
+## Contributing to this collection
+
+We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the [Controller Configuration collection repository](https://github.com/redhat-cop/controller_configuration).
+More information about contributing can be found in our [Contribution Guidelines.](https://github.com/redhat-cop/controller_configuration/blob/devel/.github/CONTRIBUTING.md)
+
+We have a community meeting every 4 weeks. Find the agenda in the [issues](https://github.com/redhat-cop/controller_configuration/issues) and the calendar invitation below:
+
+
+
+
+## Code of Conduct
+
+This collection follows the Ansible project's
+[Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).
+Please read and familiarize yourself with this document.
+
+## Licensing
+
+GNU General Public License v3.0 or later.
+
+See [LICENSE](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text.
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/ansible.cfg b/collections/ansible_collections/redhat_cop/controller_configuration/ansible.cfg
new file mode 100644
index 000000000..d28da9a1c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/ansible.cfg
@@ -0,0 +1,4 @@
+[defaults]
+collections_paths=collections
+roles_path=roles/
+lookup_plugins=plugins/lookup/
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/.plugin-cache.yaml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/.plugin-cache.yaml
new file mode 100644
index 000000000..991ebd90d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/.plugin-cache.yaml
@@ -0,0 +1,23 @@
+objects:
+ role: {}
+plugins:
+ become: {}
+ cache: {}
+ callback: {}
+ cliconf: {}
+ connection: {}
+ filter: {}
+ httpapi: {}
+ inventory: {}
+ lookup:
+ controller_object_diff:
+ description: Return difference for objects from Controller API
+ name: controller_object_diff
+ version_added: null
+ module: {}
+ netconf: {}
+ shell: {}
+ strategy: {}
+ test: {}
+ vars: {}
+version: 2.2.5
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/changelog.yaml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/changelog.yaml
new file mode 100644
index 000000000..e72f3d6b5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/changelog.yaml
@@ -0,0 +1,383 @@
+ancestor: null
+releases:
+ 0.1.0:
+ changes:
+ bugfixes:
+ - Fixed an issue where tower_validate_certs and validate_certs were both used
+ as vars. Now changed to tower_validate_certs
+ major_changes:
+ - Groups role - Added groups role to the collection
+ - Labels role - Added labels role to the collection
+ - Notifications role - Added many options to notifications role
+ - Workflow Job Templates role - Added many options to WJT role
+ minor_changes:
+ - GitHub Workflows - Added workflows to run automated linting and integration
+ tests against the codebase
+ - Hosts role - Added new_name and enabled options to hosts role
+ - Housekeeping - Added CONTRIBUTING guide and pull request template
+ - Inventory Sources role - Added notification_templates_started, success, and
+ error options. Also added verbosity and source_regions options.
+ - Teams role - Added new_name option to teams role
+ - Test Configs - Added full range of test objects for integration testing
+ fragments:
+ - housekeeping.yaml
+ - new_roles.yaml
+ - workflows.yaml
+ release_date: '2020-08-04'
+ 0.2.0:
+ changes:
+ bugfixes:
+ - Removed defaulted objects for all roles so that they were not always run if
+ using a conditional against the variable. (see https://github.com/redhat-cop/tower_configuration/issues/68)
+ minor_changes:
+ - Added pre-commit hook for local development and automated testing purposes
+ - Standardised and corrected all READMEs
+ fragments:
+ - 72-defaults.yaml
+ - 73-readmes.yaml
+ - 77-pre-commit.yaml
+ release_date: '2020-09-09'
+ 0.2.1:
+ changes:
+ minor_changes:
+ - Changelog release cycle
+ fragments:
+ - changelogs.yml
+ release_date: '2020-09-22'
+ 1.0.0:
+ changes:
+ breaking_changes:
+ - Removed depreciated options in inventory sources role (source_regions, instance_filters,
+ group_by)
+ - Renamed notifications role to notification_templates role as in awx.awx:15.0.
+ The variable is not tower_notification_templates.
+ major_changes:
+ - Updated Roles to use the tower_export model from the awx command line.
+ - credential_types Updated to use the tower_export model from the awx command
+ line.
+ - credentials Updated to use the tower_export model from the awx command line.
+ - inventory Updated to use the tower_export model from the awx command line.
+ - inventory_sources Updated to use the tower_export model from the awx command
+ line.
+ - job_templates Updated to use the tower_export model from the awx command line.
+ - projects Updated to use the tower_export model from the awx command line.
+ - teams Updated to use the tower_export model from the awx command line.
+ - users Updated to use the tower_export model from the awx command line.
+ minor_changes:
+ - updated to allow vars in messages for notifications.
+ - updated tower workflows related role `workflow_job_templates` to include `survey_enabled`
+ defaulting to `false` which is a module default and `omit` the `survey_spec`
+ if not passed.
+ - updated various roles to include oauth token and tower config file.
+ fragments:
+ - 95-notification_templates.yml
+ - auth_update.yml
+ - fix_workflow_survey_defaults.yml
+ - notif_update.yml
+ - tower_export_update.yml
+ release_date: '2020-10-22'
+ 1.0.2:
+ changes:
+ minor_changes:
+ - added alias option for survey to survey_spec in workflows.
+ - updated documentation on surveys for workflows and job templates
+ fragments:
+ - survey_spec.yml
+ release_date: '2021-01-26'
+ 1.1.0:
+ changes:
+ breaking_changes:
+ - Removed kind from to credentials role. This will be depreciated in a few months.
+ Kind arguments are replaced by the credential_type and inputs fields.
+ - Updated to allow use of either awx.awx or ansible.tower
+ bugfixes:
+ - Corrected README for tower_validate_certs variable defaults on all roles
+ major_changes:
+ - Added the following roles - ad_hoc_command, ad_hoc_command_cancel, inventory_source_update,
+ job_launch, job_cancel, project_update, workflow_launch
+ - Updated collection to use and comply with ansible-lint v5
+ minor_changes:
+ - Fixed default filters to use true when neccessary and changed a few defaults
+ to omit rather then a value or empty string.
+ - updated various Readmes to fix typos and missing information.
+ fragments:
+ - ansible_lint.yml
+ - credential_kind_deprecated.yml
+ - omit_changes.yml
+ - update_roles.yml
+ - validate_certs_readme_fix.yml
+ release_date: '2021-02-18'
+ 1.2.0:
+ changes:
+ breaking_changes:
+ - removed awx.awx implicit dependency, it will now be required to manually install
+ awx.awx or ansible.tower collection
+ fragments:
+ - remove_dependency.yml
+ release_date: '2021-03-09'
+ 1.3.0:
+ changes:
+ bugfixes:
+ - Fixed an issue where certain roles were not taking in tower_validate_certs
+ fragments:
+ - validate-certs.yml
+ release_date: '2021-03-15'
+ 1.4.1:
+ changes:
+ bugfixes:
+ - Fix tower_templates default
+ major_changes:
+ - Added execution environments option for multiple roles.
+ - Added execution environments role.
+ fragments:
+ - exec_env.yml
+ - jt_bug_fix.yml
+ release_date: '2021-04-21'
+ 1.5.0:
+ changes:
+ breaking_changes:
+ - Examples can also be found in the playbooks/tower_configs_export_model/tower_workflows.yml
+ - If you do not change the data model, change the variable 'workflow_nodes'
+ to 'simplified_workflow_nodes'.
+ - More information can be found either in the Workflow Job Template Readme or
+ on the awx.awx.tower_workflow_job_template Documentation.
+ - The Tower export model is now the default to use under workflow nodes. This
+ is documented in the workflow job templates Readme.
+ - Users using the tower export model previously, do not need to make any changes.
+ - Workflow Schemas to describe Workflow nodes have changed.
+ bugfixes:
+ - Allow tower_hostname and tower_validate_certs to not be set in favour of environment
+ variables being set as per module defaults.
+ - Changes all boolean variables to have their default values omitted rather
+ than using the value 'default(omit, true)' which prevents a falsy value being
+ supplied.
+ major_changes:
+ - Removed testing via playbook install that was removed in awx 18.0.0.
+ - Updated testing via playbook to use minikube + operator install.
+ fragments:
+ - add_workflow_schema.yml
+ - bool_omit.yml
+ - env_var.yml
+ - update_testing.yml
+ release_date: '2021-06-21'
+ 2.0.0:
+ changes:
+ breaking_changes:
+ - All references to tower have been changed to Controller.
+ - Changed all module names to be in line with changes to awx.awx as of 19.2.1.
+ - Changed variable names for all objects from tower_* to controller_*.
+ - Removed depreciated module options for notification Templates.
+ minor_changes:
+ - Additional module options have been added such as instance_groups and copy_from
+ where applicable.
+ - All role tests have been converted to use one format.
+ fragments:
+ - controller.yml
+ release_date: '2021-07-15'
+ 2.0.0-1:
+ changes:
+ bugfixes:
+ - Changed all references for ansible.tower to ansible.controller
+ - Fixed issue where `credential` was not working for project and instead the
+ old `scm_credential` option remained.
+ major_changes:
+ - Created awx and controller playbook that users can invoke for using the collection
+ minor_changes:
+ - Created Readme for playbook in the playbooks directory
+ - Removed the playbook configs folder, it was previously moved to the .github/playbooks
+ directory
+ fragments:
+ - bug-224.yml
+ - playbook.yml
+ release_date: '2021-09-01'
+ 2.1.0:
+ changes:
+ bugfixes:
+ - Fixed readme's to point in right direction for workflows and the export model
+ in examples
+ - Moved Example playbooks to the example directory
+ - Removes json_query which is not in a RH Certified collection so does not receive
+ support and replaced with native ansible filters
+ - Updated workflow inventory option to be able to use workflows from the export
+ model.
+ - added default to organization as null on project as it is not required for
+ the module, but it is highly recommended.
+ - added when to skip inventory source update when item is absent
+ - added when to skip project update when item is absent
+ major_changes:
+ - added diff plugin and tests for diff plugin to aid in removal tasks
+ minor_changes:
+ - Added new options for adding manifest to Ansible Controller inc. from a URL
+ and from b64 encoded content
+ - added tests for the project and inventory source skips
+ fragments:
+ - doc_fix.yml
+ - license.yml
+ - removal_tasks.yml
+ - remove_json_query.yml
+ - update_fix.yml
+ release_date: '2021-12-17'
+ 2.1.1:
+ changes:
+ bugfixes:
+ - warn on default if the api list fed to controller_object_diff lookup is empty
+ minor_changes:
+ - Allows for using the roles for deletion to only use required fields.
+ - Changed default to omit for several fields for notification templates and
+ inventor sources.
+ - These changes are in line with the modules required fields.
+ fragments:
+ - diff_empty_fix.yml
+ - removal_fix.yml
+ release_date: '2022-01-18'
+ 2.1.3:
+ changes:
+ breaking_changes:
+ - galaxy credentials in the organization role now require assign_galaxy_organizations_to_org
+ to be true.
+ bugfixes:
+ - Fixes option of `survey_spec` on job_templates role.
+ minor_changes:
+ - Added asynchronous to {organizations,credentials,credential_types,inventories,job_templates}
+ task to speed up creation.
+ - Allow setting the organization when creating users.
+ - Update to controller_object_diff lookup plugin to better handle group, host,
+ inventory, credential, workflow_job_template_node and user objects.
+ - Update to controller_object_diff lookup plugin to better handle organizations.
+ fragments:
+ - playbook.yml
+ - survey.yml
+ - users.yml
+ release_date: '2022-03-23'
+ 2.1.4:
+ changes:
+ bugfixes:
+ - Fixes async to work on default execution enviroments.
+ - Fixes inventories hardcoded 'no_log' true on the async job check task.
+ fragments:
+ - async.yml
+ - inventories.yml
+ release_date: '2022-03-31'
+ 2.1.5:
+ changes:
+ bugfixes:
+ - Changed default interval for inventory_source_update, project_update and project
+ to be the value of the role's async delay value. This still defaults to 1
+ if the delay value is not set as previously.
+ major_changes:
+ - Adds dispatch role - A role to run all other roles.
+ fragments:
+ - dispatch.yml
+ - interval_delay.yaml
+ release_date: '2022-05-04'
+ 2.1.6:
+ changes:
+ bugfixes:
+ - Fixed broken documentation for controller_object_diff plugin
+ fragments:
+ - object_diff_docs.yml
+ release_date: '2022-06-06'
+ 2.1.7:
+ changes:
+ major_changes:
+ - Adds Configuration as Code filetree_create - A role to export and convert
+ all Controller's objects configuration in yaml files to be consumed with
+ previous roles.
+ - Adds Configuration as Code filetree_read role - A role to load controller
+ variables (objects) from a hierarchical and scalable directory structure.
+ - Adds Configuration as Code object_diff role - A role to get differences between
+ code and controller. It will give us the lists to remove absent objects in
+ the controller which they are not in code.
+ minor_changes:
+ - Adds credential and organization options for schedule role.
+ - inventory_sources - update ``source_vars`` to parse Jinja variables using
+ the same workaround as inventories role.
+ fragments:
+ - casc_roles.yml
+ - inventory_sources.yml
+ - schedule_role.yml
+ release_date: '2022-08-30'
+ 2.1.8:
+ changes:
+ bugfixes:
+ - Fixed optional lists to default to omit if the list is empty.
+ - Reduce the memory usage on the filetree_create role.
+ minor_changes:
+ - Add a way to detect which of `awx.awx` or `ansible.controller` collection
+ is installed. Added to the playbooks and examples.
+ - Add markdown linter
+ - Add the current object ID to the corresponding output yaml filename.
+ - Fix all linter reported errors
+ - Move linter configurations to root directory
+ - Organize the output in directories (one per each object type).
+ - Remove json_query and jmespath dependency from filetree_create role.
+ - Update linter versions
+ fragments:
+ - awx_awx-ansible_controller-independence.yml
+ - default_list_changes.yml
+ - reduce_memory_usage.yml
+ - remove_json_query_dependency.yml
+ - update_linting.yml
+ release_date: '2022-11-02'
+ 2.1.9:
+ changes:
+ major_changes:
+ - Added instance role to add instances using the new awx.awx.instance module.
+ minor_changes:
+ - Update options on inventories, job templates, liscence, projects, schedules,
+ and workflow_job_templates roles to match latest awx.awx release
+ fragments:
+ - update_options.yml
+ release_date: '2022-11-11'
+ 2.2.4:
+ changes:
+ breaking_changes:
+ - infra.controller_configuration 2.2.3 is broken, it is aap_utilities release.
+ We are bumping the version to minimize the issues.
+ - rewrote playbooks/controller_configure.yml and removed all other playbooks
+ minor_changes:
+ - Update release process to avoid problems that have happened and automate it.
+ - removed all examples from repo outside of readmes
+ removed_features:
+ - update_on_project_update in inventory_source as an option due to the awx module
+ no longer supports this option.
+ fragments:
+ - release_fix.yml
+ - remove_examples.yml
+ - removed_ update_on_project_update.yml
+ release_date: '2022-11-30'
+ 2.2.5:
+ changes:
+ bugfixes:
+ - Enable the ability to define simple_workflow_nodes on workflow_job_templates
+ without the need to set the `state` on a workflow_job_template (https://github.com/redhat-cop/controller_configuration/issues/297).
+ minor_changes:
+ - Add max_forks, max_concurrent_jobs as options to instance_groups role
+ - Add no_log everywhere controller_api_plugin is used to avoid to expose sensitive
+ information in case of crashes.
+ - Add no_log everywhere controller_api_plugin is used to avoid to expose sensitive
+ information in case of crashes.
+ - Add or fix some variables or extra_vars exported from objects like notifications,
+ inventory, inventory_source, hosts, groups, jt or wjt.
+ - Add roles object to object_diff role and controller_object_diff lookup plugin.
+ - Fix one query with controller_password to change it and set oauth_token=controller_oauthtoken.
+ - Fixed typos in README.md.
+ - Improve template to export settings with filetree_create role. Settings will
+ be in yaml format.
+ - Renamed the field `update` to `update_project` to avoid colliding with the
+ Python dict update method
+ - Renamed variable controller_workflow_job_templates to controller_workflows
+ (the previos one was not used at all).
+ - Renamed variable controller_workflow_job_templates to controller_workflows
+ (the previos one was not used at all).
+ - 'return_all: true has been added to return the maximum of max_objects=query_controller_api_max_objects
+ objects.'
+ fragments:
+ - filetree_create.yml
+ - instance_group.yml
+ - object_diff.yml
+ - object_diff_role_and_plugin.yml
+ - project_updates.yml
+ - typos.yml
+ - workflow_job_template_state_and_nodes.yml
+ release_date: '2023-01-26'
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/config.yaml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/config.yaml
new file mode 100644
index 000000000..01acf451b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/config.yaml
@@ -0,0 +1,34 @@
+---
+changelog_filename_template: ../CHANGELOG.rst
+changelog_filename_version_depth: 0
+changes_file: changelog.yaml
+changes_format: combined
+ignore_other_fragment_extensions: true
+keep_fragments: false
+mention_ancestor: true
+new_plugins_after_name: removed_features
+notesdir: fragments
+prelude_section_name: release_summary
+prelude_section_title: Release Summary
+sanitize_changelog: true
+sections:
+- - major_changes
+ - Major Changes
+- - minor_changes
+ - Minor Changes
+- - breaking_changes
+ - Breaking Changes / Porting Guide
+- - deprecated_features
+ - Deprecated Features
+- - removed_features
+ - Removed Features (previously deprecated)
+- - security_fixes
+ - Security Fixes
+- - bugfixes
+ - Bugfixes
+- - known_issues
+ - Known Issues
+title: infra.controller_configuration
+trivial_section_name: trivial
+use_fqcn: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/.gitkeep b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/arg_spec.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/arg_spec.yml
new file mode 100644
index 000000000..702d320fd
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/arg_spec.yml
@@ -0,0 +1,7 @@
+---
+bugfixes:
+ - Removed master_role_example as no longer required (this wasn't a functional role)
+ - Added argument_spec for all roles
+ - Fixed variable definitions in readmes
+ - Fixed issue in filetree_read where arg spec incorrect and caused failure (#550)
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_creds_ee_orgs_creation.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_creds_ee_orgs_creation.yml
new file mode 100644
index 000000000..a502a3488
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_creds_ee_orgs_creation.yml
@@ -0,0 +1,6 @@
+---
+minor_changes:
+ - Set the variables to assign_galaxy_credentials_to_org and assign_default_ee_to_org to false in the task to run all roles at dispatch role.
+ - Add task to add Galaxy credentials and Execution Environments to Organization.
+ - Adapt filetree_read role tests playbook config-controller-filetree.yml.
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_fix.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_fix.yml
new file mode 100644
index 000000000..d70caf29f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/dispatch_fix.yml
@@ -0,0 +1,4 @@
+---
+bugfixes:
+ - Ensures vars get loaded properly by dispatch role
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/filetree_read.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/filetree_read.yml
new file mode 100644
index 000000000..72f1c6328
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/filetree_read.yml
@@ -0,0 +1,4 @@
+---
+minor_changes:
+ - "Add no_log to all tasks that populates data to avoid exposing encrypted data"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/fixing_readme.yaml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/fixing_readme.yaml
new file mode 100644
index 000000000..40838503d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/fixing_readme.yaml
@@ -0,0 +1,2 @@
+minor_changes:
+ - fixed an extra blank line in schedules readme that was breaking the table
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/i_s_u_title.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/i_s_u_title.yml
new file mode 100644
index 000000000..fc631b35f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/i_s_u_title.yml
@@ -0,0 +1,4 @@
+---
+bugfixes:
+ - Fixed name of task for inventory source update
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/object_diff_role_and_plugin.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/object_diff_role_and_plugin.yml
new file mode 100644
index 000000000..44414e8cb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/object_diff_role_and_plugin.yml
@@ -0,0 +1,5 @@
+---
+minor_changes:
+ - "Add new type of objects for object_diff role: applications, execution environments, instance groups, notifications and schedules"
+ - "avoid to create orgs during drop_diff"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/redhat_to_infra_conversion.yml b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/redhat_to_infra_conversion.yml
new file mode 100644
index 000000000..d192b0504
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/changelogs/fragments/redhat_to_infra_conversion.yml
@@ -0,0 +1,6 @@
+---
+minor_changes:
+ - removed references to redhat_cop as a collection namespace in the readme files.
+breaking_changes:
+ - updated object_diff role to use the infra namespace, that means to use the role it requires the infra version of the collection. Previous version required the redhat_cop
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/docs/CONVERSION_GUIDE.md b/collections/ansible_collections/redhat_cop/controller_configuration/docs/CONVERSION_GUIDE.md
new file mode 100644
index 000000000..166f12eb4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/docs/CONVERSION_GUIDE.md
@@ -0,0 +1,81 @@
+# Red Hat Communties of Practice Controller Configuration Collection Conversion Guide
+
+## REQUIREMENTS
+
+The AWX.AWX OR ANSIBLE.CONTROLLER collections MUST be installed in order for this collection to work. It is recommended they be invoked in the playbook in the following way.
+
+## Using this collection
+
+The awx.awx or ansible.controller collection must be invoked in the playbook in order for ansible to pick up the correct modules to use.
+
+Otherwise it will look for the modules only in your base installation. If there are errors complaining about "couldn't resolve module/action" this is the most likely cause.
+
+```yaml
+- name: Playbook to configure ansible controller post installation
+ hosts: localhost
+ connection: local
+ vars:
+ controller_validate_certs: false
+ collections:
+ - awx.awx
+ - infra.controller_configuration
+```
+
+## Variable name changes
+
+### Major Variable names changed
+
+The Following Variables need to be changed:
+|Tower Variable Name|Controller Variable Name|
+|:---:|:---:|
+|`tower_ad_hoc_commands`|`controller_ad_hoc_commands`|
+|`tower_ad_hoc_commands_cancel`|`controller_ad_hoc_commands_cancel`|
+|`tower_applications`|`controller_applications`|
+|`tower_credential_input_sources`|`controller_credential_input_sources`|
+|`tower_credential_types`|`controller_credential_types`|
+|`tower_credentials`|`controller_credentials`|
+|`tower_execution_environments`|`controller_execution_environments`|
+|`tower_groups`|`controller_groups`|
+|`tower_hosts`|`controller_hosts`|
+|`tower_instance_groups`|`controller_instance_groups`|
+|`tower_inventories`|`controller_inventories`|
+|`tower_inventory_sources`|`controller_inventory_sources`|
+|`tower_launch_jobs`|`controller_launch_jobs`|
+|`tower_templates`|`controller_templates`|
+|`tower_cancel_jobs`|`controller_cancel_jobs`|
+|`tower_labels`|`controller_labels`|
+|`tower_license`|`controller_license`|
+|`tower_notifications`|`controller_notifications`|
+|`tower_organizations`|`controller_organizations`|
+|`tower_projects`|`controller_projects`|
+|`tower_rbac`|`controller_roles`|
+|`tower_schedules`|`controller_schedules`|
+|`tower_settings`|`controller_settings`|
+|`tower_teams`|`controller_teams`|
+|`tower_user_accounts`|`controller_user_accounts`|
+|`tower_workflows`|`controller_workflows`|
+|`tower_workflow_launch_jobs`|`controller_workflow_launch_jobs`|
+
+### Authentication Credentials
+
+|Tower Variable Name|Controller Variable Name|
+|:---:|:---:|
+|`tower_username`|`controller_username`|
+|`tower_password`|`controller_password`|
+|`tower_oauthtoken`|`controller_oauthtoken`|
+|`tower_hostname`|`controller_hostname`|
+|`tower_config_file`|`controller_config_file`|
+|`tower_validate_certs`|`controller_validate_certs`|
+
+### Specific Changes in Roles
+
+### Projects
+
+|Tower Variable Name|Controller Variable Name|Reason|
+|:---:|:---:|:---:|
+|`default_environment`|`custom_virtualenv`|`environments now refer to Execution Environments`|
+
+## Notes
+
+Making these changes should be all the ones you need to make in order to use the updated collection.
+However there have been many changes and this list is in no way final or all encompassing.
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/docs/STANDARDS.md b/collections/ansible_collections/redhat_cop/controller_configuration/docs/STANDARDS.md
new file mode 100644
index 000000000..526df1b5f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/docs/STANDARDS.md
@@ -0,0 +1,13 @@
+
+# Contributor's Guidelines
+
+- All YAML files named with '.yml' extension
+- Use spaces around jinja variables. {{ var }} over {{var}}
+- Variables that are internal to the role should be lowercase
+- Keep roles self contained - Roles should avoid including tasks from other roles when possible
+- Plays should do nothing more than include a list of roles except where pre_tasks and post_tasks are required when possible
+- Separators - Use underscores (e.g. my_role my_playbook) not dashes (my-role)
+- Paths - When defining paths, do not include trailing slashes (e.g. my_path: /foo not my_path: /foo/). When concatenating paths, follow the same convention (e.g. {{ my_path }}/bar not {{ my_path }}bar)
+- Indentation - Use 2 spaces for each indent
+- `vars/` vs `defaults/` - if you have variables that don't need to change or be overridden by user, put those in `vars/` and those that a user would likely override, put those under `defaults/` directory.
+- All playbooks/roles should be focused on compatibility with Automation Controller
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/docs/aap_config_as_code_public_meeting.ics b/collections/ansible_collections/redhat_cop/controller_configuration/docs/aap_config_as_code_public_meeting.ics
new file mode 100644
index 000000000..8ae6c226e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/docs/aap_config_as_code_public_meeting.ics
@@ -0,0 +1,39 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+VERSION:2.0
+X-WR-CALNAME:AAP config as code Public meeting
+METHOD:PUBLISH
+PRODID:-//Apple Inc.//macOS 13.2.1//EN
+BEGIN:VEVENT
+TRANSP:OPAQUE
+DTEND:20230412T160000Z
+ORGANIZER;CN="ssulliva@redhat.com";EMAIL="ssulliva@redhat.com":mailto:ss
+ ulliva@redhat.com
+UID:2k8fmfg2msr8lfi6k6g5upqt9a@google.com
+DTSTAMP:20230316T155301Z
+X-GOOGLE-CONFERENCE:https://meet.google.com/npj-fyzv-oyo
+DESCRIPTION:https://github.com/redhat-cop/controller_configuration/i
+ ssues/475\n\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~
+ :~:~:~:~:~:~:~:~:~:~:~:~::~:~::-\nJoin with Google Meet: https://meet.go
+ ogle.com/npj-fyzv-oyo\nOr dial: (US) +1 470-722-0265 PIN: 621302239#\n\n
+ Join using SIP\n1189446461569@gmeet.redhat.com (ID: 1189446461569)\nMore
+ joining options: https://tel.meet/npj-fyzv-oyo?pin=1189446461569&hs=7\n
+ \nLearn more about Meet at: https://support.google.com/a/users/answer/92
+ 82720\n\nPlease do not edit this section.\n-::~:~::~:~:~:~:~:~:~:~:~:~:~
+ :~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-
+STATUS:CONFIRMED
+SEQUENCE:2
+SUMMARY:AAP config as code Public meeting
+DTSTART:20230412T150000Z
+LAST-MODIFIED:20230316T155150Z
+CREATED:20230123T211213Z
+BEGIN:VALARM
+UID:4555EBDE-771F-420A-9ED8-CB6C7540E67D
+X-WR-ALARMUID:4555EBDE-771F-420A-9ED8-CB6C7540E67D
+TRIGGER:-PT10M
+DESCRIPTION:This is an event reminder
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/meta/runtime.yml b/collections/ansible_collections/redhat_cop/controller_configuration/meta/runtime.yml
new file mode 100644
index 000000000..e4bff6aec
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/meta/runtime.yml
@@ -0,0 +1,3 @@
+---
+requires_ansible: '>=2.9.27'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/playbooks/configure_controller.yml b/collections/ansible_collections/redhat_cop/controller_configuration/playbooks/configure_controller.yml
new file mode 100644
index 000000000..5bd75034a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/playbooks/configure_controller.yml
@@ -0,0 +1,17 @@
+---
+- name: Playbook to configure ansible controller post installation
+ hosts: localhost
+ connection: local
+ tasks:
+ - name: Include vars from configs directory
+ ansible.builtin.include_vars:
+ dir: "{{ controller_configs_dir | default((lookup('env', 'CONTROLLER_CONFIGS_DIR') == '') | ternary('./configs', lookup('env', 'CONTROLLER_CONFIGS_DIR'))) }}"
+ ignore_files: [controller_config.yml.template]
+ extensions: ["yml"]
+ tags:
+ - always
+
+ - name: Call dispatch role
+ ansible.builtin.include_role:
+ name: infra.controller_configuration.dispatch
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/plugins/lookup/controller_object_diff.py b/collections/ansible_collections/redhat_cop/controller_configuration/plugins/lookup/controller_object_diff.py
new file mode 100644
index 000000000..33e1a0b66
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/plugins/lookup/controller_object_diff.py
@@ -0,0 +1,302 @@
+# (c) 2020 Ansible Project
+# 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
+
+DOCUMENTATION = """
+name: controller_object_diff
+author: "Sean Sullivan (@sean-m-sullivan)"
+short_description: Return difference for objects from Controller API
+requirements:
+ - None
+description:
+ - Takes results of GET requests from the Automation Platform Controller API. See
+ U(https://docs.ansible.com/ansible-tower/latest/html/towerapi/index.html) for API usage.
+ - Returns difference of on Unique Name and Organization, between two sets of groups
+options:
+ api_list:
+ description:
+ - The list of objects returned from the controller api.
+ - Requires at least two items in the list
+ type: list
+ elements: dict
+ required: True
+ compare_list:
+ description:
+ - The list of objects to compare the api_list to.
+ type: list
+ elements: dict
+ required: True
+ set_absent:
+ description:
+ - Set state of items not in the compare list to 'absent'
+ type: boolean
+ default: True
+ with_present:
+ description:
+ - Include items in the original compare list in the output, and set state to 'present'
+ type: boolean
+ default: True
+ warn_on_empty_api:
+ description:
+ - If the API list is empty, issue an ansible warning and return the empty list.
+ - This allows the module to be idempotent.
+ - Setting to false will make the lookup error and fail when there is an empty list.
+ type: boolean
+ default: True
+"""
+
+EXAMPLES = """
+- name: Get the organization ID
+ set_fact:
+ controller_organization_id: "{{ lookup('awx.awx.controller_api', 'organizations', query_params={ 'name': 'Default' },
+ host=controller_hostname, username=controller_username, password=controller_password, verify_ssl=false) }}"
+
+- name: "Get the API list of all Projects in the Default Organization"
+ set_fact:
+ controller_api_results: "{{ lookup('awx.awx.controller_api', 'projects', query_params={ 'organization':
+ controller_organization_id.id } ,host=controller_hostname, username=controller_username,
+ password=controller_password, verify_ssl=false) }}"
+
+- name: "Get the API in a list form. Useful for making sure the results of one item is set to a list."
+ set_fact:
+ controller_api_results: "{{ query('awx.awx.controller_api', 'inventories', query_params={ 'organization':
+ controller_organization_id.id } ,host=controller_hostname, username=controller_username,
+ password=controller_password, verify_ssl=false) }}"
+
+- name: "Find the difference of Project between what is on the Controller versus curated list."
+ set_fact:
+ project_difference: "{{ lookup('infra.controller_configuration.controller_object_diff',
+ api_list=controller_api_results, compare_list=differential_item.differential_test_items,
+ with_present=true, set_absent=true ) }}"
+
+- name: Add Projects
+ include_role:
+ name: infra.controller_configuration.projects
+ vars:
+ controller_projects: "{{ project_difference }}"
+
+"""
+
+RETURN = """
+_raw:
+ description:
+ - Items that are not in the compare list will only return with Name, Organization, and State.
+ - When set_absent is true, items that are not in the compare list will be set to absent.
+ - When with_present is true items that are not in the compare list with be appended to the compare list.
+ type: list
+ returned: on successful differential
+"""
+
+from ansible.plugins.lookup import LookupBase
+from ansible.errors import AnsibleError, AnsibleLookupError
+from ansible.module_utils._text import to_native
+from ansible.utils.display import Display
+import copy
+
+
+class LookupModule(LookupBase):
+ display = Display()
+
+ def handle_error(self, **kwargs):
+ raise AnsibleError(to_native(kwargs.get("msg")))
+
+ def warn_callback(self, warning):
+ self.display.warning(warning)
+
+ def run(self, terms, variables=None, **kwargs):
+ self.set_options(direct=kwargs)
+
+ # Set Variables for user input
+ api_list = self.get_option("api_list")
+ compare_list = self.get_option("compare_list")
+ warn_on_empty_api = self.get_option("warn_on_empty_api")
+ if not api_list:
+ if warn_on_empty_api:
+ self._display.warning("Skipping, did not find items in api_list")
+ else:
+ raise AnsibleLookupError("Unable to find items in api_list")
+ return [api_list]
+
+ # Set Keys to keep for each list. Depending on type
+ if api_list[0]["type"] == "organization" or api_list[0]["type"] == "credential_type" or api_list[0]["type"] == "instance_group":
+ keys_to_keep = ["name"]
+ api_keys_to_keep = ["name"]
+ elif api_list[0]["type"] == "user":
+ keys_to_keep = ["username"]
+ api_keys_to_keep = ["username"]
+ elif api_list[0]["type"] == "workflow_job_template_node":
+ keys_to_keep = ["workflow_job_template", "unified_job_template", "identifier"]
+ api_keys_to_keep = ["identifier", "summary_fields"]
+ elif api_list[0]["type"] == "group" or api_list[0]["type"] == "host":
+ keys_to_keep = ["name", "inventory"]
+ api_keys_to_keep = ["name", "summary_fields"]
+ elif api_list[0]["type"] == "schedule":
+ keys_to_keep = ["name", "unified_job_template"]
+ api_keys_to_keep = ["name", "summary_fields"]
+ elif api_list[0]["type"] == "execution_environment":
+ keys_to_keep = ["name", "organization", "image"]
+ api_keys_to_keep = ["name", "summary_fields", "image"]
+ elif api_list[0]["type"] == "role":
+ pass
+ else:
+ keys_to_keep = ["name", "organization"]
+ api_keys_to_keep = ["name", "summary_fields"]
+
+ # Depending on type, keep additional keys
+ if api_list[0]["type"] == "credential":
+ keys_to_keep.append("credential_type")
+ api_keys_to_keep.append("credential_type")
+ if api_list[0]["type"] == "inventory_source":
+ keys_to_keep.append("inventory")
+ api_keys_to_keep.append("inventory")
+
+ if api_list[0]["type"] != "role":
+ for item in compare_list:
+ for key in keys_to_keep:
+ if key not in item.keys():
+ self.handle_error(msg="Key: '{0}' missing from item in compare_list item: {1}".format(key, item))
+
+ for item in api_list:
+ for key in api_keys_to_keep:
+ if key not in item.keys():
+ self.handle_error(msg="Key: '{0}' missing from item in api_list. Does this object come from the api? item: {1}".format(key, item))
+
+ # Reduce list to name and organization
+ if api_list[0]["type"] == "role":
+ compare_list_reduced = copy.deepcopy(compare_list)
+ api_list_reduced = copy.deepcopy(api_list)
+ elif api_list[0]["type"] == "instance_group":
+ compare_list_reduced = [{key: item[key] for key in keys_to_keep} for item in compare_list]
+ api_list_reduced = [{key: item[key] for key in api_keys_to_keep} for item in api_list if item["summary_fields"]["user_capabilities"]["delete"]]
+ else:
+ compare_list_reduced = [{key: item[key] for key in keys_to_keep} for item in compare_list]
+ api_list_reduced = [{key: item[key] for key in api_keys_to_keep} for item in api_list]
+
+ # Convert summary field name into org name Only if not type organization
+ if api_list[0]["type"] == "group" or api_list[0]["type"] == "host":
+ for item in api_list_reduced:
+ item.update({"inventory": item["summary_fields"]["inventory"]["name"]})
+ item.pop("summary_fields")
+ elif api_list[0]["type"] == "inventory_source":
+ for item in api_list_reduced:
+ item.update({"inventory": item["summary_fields"]["inventory"]["name"]})
+ item.update({"organization": item["summary_fields"]["organization"]["name"]})
+ item.pop("summary_fields")
+ elif api_list[0]["type"] == "credential":
+ for item in api_list_reduced:
+ item.update({"organization": item["summary_fields"]["organization"]["name"]})
+ item.update({"credential_type": item["summary_fields"]["credential_type"]["name"]})
+ item.pop("summary_fields")
+ elif api_list[0]["type"] == "workflow_job_template_node":
+ for item in api_list_reduced:
+ item.update({"unified_job_template": item["summary_fields"]["unified_job_template"]["name"]})
+ item.update({"workflow_job_template": item["summary_fields"]["workflow_job_template"]["name"]})
+ item.pop("summary_fields")
+ elif api_list[0]["type"] == "schedule":
+ for item in api_list_reduced:
+ item.update({"unified_job_template": item["summary_fields"]["unified_job_template"]["name"]})
+ item.pop("summary_fields")
+ elif api_list[0]["type"] == "role":
+ for item in api_list_reduced:
+ if item["resource_type"] == "organization":
+ item.update({"organizations": [item[item["resource_type"]]]})
+ item.update({"role": item["name"].lower()})
+ # Remove the extra fields
+ item.pop("users")
+ item.pop("teams")
+ item.pop("name")
+ item.pop("resource_type")
+ if "organization" in item:
+ item.pop("organization")
+ if "type" in item:
+ item.pop("type")
+ list_to_extend = []
+ list_to_remove = []
+ for item in compare_list_reduced:
+ target_teams_expanded = False
+ job_templates_expanded = False
+ workflows_expanded = False
+ if "target_teams" in item:
+ for team in item["target_teams"]:
+ new_item = copy.deepcopy(item)
+ new_item.update({"team": team})
+ new_item.pop("target_teams")
+ if "job_templates" in new_item:
+ new_item.pop("job_templates")
+ if "workflows" in new_item:
+ new_item.pop("workflows")
+ list_to_extend.append(new_item)
+ target_teams_expanded = True
+ if "job_templates" in item:
+ for job_template in item["job_templates"]:
+ new_item = copy.deepcopy(item)
+ new_item.update({"job_template": job_template})
+ new_item.pop("job_templates")
+ if "target_teams" in new_item:
+ new_item.pop("target_teams")
+ if "workflows" in new_item:
+ new_item.pop("workflows")
+ list_to_extend.append(new_item)
+ job_templates_expanded = True
+ if "workflows" in item:
+ for workflow in item["workflows"]:
+ new_item = copy.deepcopy(item)
+ new_item.update({"workflow_job_template": workflow})
+ new_item.pop("workflows")
+ if "target_teams" in new_item:
+ new_item.pop("target_teams")
+ if "job_templates" in new_item:
+ new_item.pop("job_templates")
+ list_to_extend.append(new_item)
+ workflows_expanded = True
+ if target_teams_expanded or job_templates_expanded or workflows_expanded:
+ list_to_remove.append(item)
+ for item in list_to_remove:
+ compare_list_reduced.remove(item)
+ compare_list_reduced.extend(list_to_extend)
+ elif (
+ api_list[0]["type"] != "organization"
+ and api_list[0]["type"] != "user"
+ and api_list[0]["type"] != "credential_type"
+ and api_list[0]["type"] != "schedule"
+ and api_list[0]["type"] != "instance_group"
+ ):
+ for item in api_list_reduced:
+ item.update({"organization": item["summary_fields"]["organization"]["name"]})
+ item.pop("summary_fields")
+
+ self.display.v("compare_list_reduced: {0}".format(compare_list_reduced))
+ self.display.v("api_list_reduced: {0}".format(api_list_reduced))
+
+ # Find difference between lists
+ if api_list[0]["type"] != "role":
+ difference = [i for i in api_list_reduced if i not in compare_list_reduced]
+ else:
+ difference = []
+ for item in api_list_reduced:
+ if item not in compare_list_reduced:
+ difference.append(item)
+
+ # Set
+ if self.get_option("set_absent"):
+ for item in difference:
+ item.update({"state": "absent"})
+ # Combine Lists
+ if self.get_option("with_present"):
+ for item in compare_list_reduced:
+ item.update({"state": "present"})
+ compare_list.extend(difference)
+ # Return Compare list with difference attached
+ difference = compare_list
+
+ if api_list[0]["type"] == "role":
+ difference_to_remove = []
+ for item in difference:
+ if "no_resource_type" in item or len(item) <= 3:
+ difference_to_remove.append(item)
+ for item in difference_to_remove:
+ difference.remove(item)
+
+ return [difference]
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/config-controller-filetree.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/config-controller-filetree.yml
new file mode 120000
index 000000000..a945067bb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/config-controller-filetree.yml
@@ -0,0 +1 @@
+../../roles/filetree_read/tests/config-controller-filetree.yml
\ No newline at end of file
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/drop_diff.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/drop_diff.yml
new file mode 120000
index 000000000..ec2eedefb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/drop_diff.yml
@@ -0,0 +1 @@
+../../roles/object_diff/tests/drop_diff.yml
\ No newline at end of file
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_aap_monitor.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_aap_monitor.yml
new file mode 100644
index 000000000..33ed2079c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_aap_monitor.yml
@@ -0,0 +1,22 @@
+---
+controller_credential_types:
+ - name: "AAP_Monitor"
+ description: "Monitor Ansible Automation Platform credential"
+ kind: "cloud"
+ inputs:
+ fields:
+ - id: controller_url
+ label: Controller
+ type: string
+ - id: oauthtoken
+ label: Token
+ secret: true
+ type: string
+ required:
+ - controller_url
+ - oauthtoken
+ injectors:
+ extra_vars:
+ local_users_controller_api_token: !unsafe '{{ oauthtoken }}'
+ local_users_controller_api_url: !unsafe '{{ controller_url }}'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_acme_key.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_acme_key.yml
new file mode 100644
index 000000000..ae04404d2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_acme_key.yml
@@ -0,0 +1,16 @@
+---
+controller_credential_types:
+ - name: "ACME Account Key"
+ description: "Account Key for Sectigo CA ACME API"
+ kind: "cloud"
+ inputs:
+ fields:
+ - id: key
+ label: ACME Account Key
+ type: string
+ required:
+ - key
+ injectors:
+ extra_vars:
+ acme_account_key: !unsafe '{{ key }}'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_cloudforms.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_cloudforms.yml
new file mode 100644
index 000000000..eeda7623b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_cloudforms.yml
@@ -0,0 +1,35 @@
+---
+controller_credential_types:
+ - name: "Credential Type for CloudForms"
+ description: "Credential Type for CloudForms"
+ kind: "cloud"
+ inputs:
+ fields:
+ - id: host
+ type: string
+ label: CloudForms URL
+ help_text: >-
+ Enter the URL for the virtual machine that corresponds to your CloudForms
+ instance. For example, https://cloudforms.example.org
+ - id: username
+ type: string
+ label: Username
+ - id: password
+ type: string
+ label: Password
+ secret: true
+ - id: ssl_verify
+ type: string
+ label: SSL Verify
+ default: 'True'
+ required:
+ - username
+ - password
+ - host
+ injectors:
+ env:
+ CLOUDFORMS_URL: !unsafe '{{ host }}'
+ CLOUDFORMS_USERNAME: !unsafe '{{ username }}'
+ CLOUDFORMS_PASSWORD: !unsafe '{{ password }}'
+ CLOUDFORMS_SSL_VERIFY: !unsafe '{{ ssl_verify }}'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_multiple.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_multiple.yml
new file mode 100644
index 000000000..f6968618b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_multiple.yml
@@ -0,0 +1,22 @@
+---
+controller_credential_types:
+ - name: "Machine Credential Dual"
+ description: "Multiple Machine Credentials"
+ kind: "cloud"
+ inputs:
+ fields:
+ - type: string
+ id: my_user
+ label: Username
+ - secret: true
+ type: string
+ id: my_pass
+ label: Password
+ required:
+ - my_user
+ - my_pass
+ injectors:
+ extra_vars:
+ my_pass: !unsafe '{{my_pass}}'
+ my_user: !unsafe '{{my_user}}'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_servicenow.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_servicenow.yml
new file mode 100644
index 000000000..86fcd6536
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/app-example/controller_credential_types_servicenow.yml
@@ -0,0 +1,27 @@
+---
+controller_credential_types:
+ - name: "ServiceNow"
+ description: "Credential Type for ServiceNow"
+ kind: "cloud"
+ inputs:
+ fields:
+ - id: SN_USERNAME
+ type: string
+ label: Username
+ - id: SN_PASSWORD
+ type: string
+ label: Password
+ secret: true
+ - id: SN_INSTANCE
+ type: string
+ label: Snow Instance
+ required:
+ - SN_USERNAME
+ - SN_PASSWORD
+ - SN_INSTANCE
+ injectors:
+ env:
+ SN_INSTANCE: !unsafe '{{ SN_INSTANCE }}'
+ SN_PASSWORD: !unsafe '{{ SN_PASSWORD }}'
+ SN_USERNAME: !unsafe '{{ SN_USERNAME }}'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/controller_credential_types.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/controller_credential_types.yml
new file mode 100644
index 000000000..e8d39b81b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_credential_types.d/controller_credential_types.yml
@@ -0,0 +1,3 @@
+---
+controller_credential_types: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_groups.d/controller_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_groups.d/controller_groups.yml
new file mode 100644
index 000000000..65297e073
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_groups.d/controller_groups.yml
@@ -0,0 +1,3 @@
+---
+controller_groups: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/app-example/controller_instance_groups_otlc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/app-example/controller_instance_groups_otlc.yml
new file mode 100644
index 000000000..4becb5882
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/app-example/controller_instance_groups_otlc.yml
@@ -0,0 +1,20 @@
+---
+configure_controller_instance_groups:
+ - name: Container_Groups_Instance
+ is_container_group: true
+ credential: "{{ orgs }} {{ env }} OCP_OPENTLC"
+ pod_spec_override: |
+ apiVersion: v1
+ kind: Pod
+ metadata:
+ namespace: controller-container-group
+ spec:
+ containers:
+ - image: >-
+ registry.redhat.io/ansible-automation-platform-22/ee-supported-rhel8:latest
+ name: worker
+ args:
+ - ansible-runner
+ - worker
+ - '--private-data-dir=/runner'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/controller_instance_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/controller_instance_groups.yml
new file mode 100644
index 000000000..9392c9c6f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_instance_groups.d/controller_instance_groups.yml
@@ -0,0 +1,3 @@
+---
+configure_controller_instance_groups: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-casc/controller_inventories_localhost.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-casc/controller_inventories_localhost.yml
new file mode 100644
index 000000000..4eb612ef4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-casc/controller_inventories_localhost.yml
@@ -0,0 +1,6 @@
+---
+controller_inventories:
+ - name: "{{ orgs }} Localhost"
+ description: "Inventory for the Localhost"
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_excel.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_excel.yml
new file mode 100644
index 000000000..fd1955803
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_excel.yml
@@ -0,0 +1,6 @@
+---
+controller_inventories:
+ - name: "InventaryExcel"
+ description: "Inventory Taken from excel file"
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org1.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org1.yml
new file mode 100644
index 000000000..d37eba26c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org1.yml
@@ -0,0 +1,32 @@
+---
+controller_inventories:
+ - name: "SmartInventory URGENT CHANGES CPD BCN Org1"
+ description: "SmartInventory CPD BCN Org1"
+ host_filter: "groups__name=Patching_cpd_bcn and groups__name=Patching_os_entorno_{{ env }} and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org01 and groups__name=Patching_parcheo_ch_planif_ch00001"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD BCN Org1 dev"
+ description: "SmartInventory CPD BCN Org1"
+ host_filter: "groups__name=Patching_cpd_bcn and groups__name=Patching_os_entorno_dev and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org01"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD MAD Org1 dev"
+ description: "SmartInventory CPD MAD Org1"
+ host_filter: "groups__name=Patching_cpd_mad and groups__name=Patching_os_entorno_dev and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org01"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD BCN Org1 prod"
+ description: "SmartInventory CPD BCN Org1"
+ host_filter: "groups__name=Patching_cpd_bcn and groups__name=Patching_os_entorno_prod and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org01"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD MAD Org1 prod"
+ description: "SmartInventory CPD MAD Org1"
+ host_filter: "groups__name=Patching_cpd_mad and groups__name=Patching_os_entorno_prod and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org01"
+ kind: smart
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org2.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org2.yml
new file mode 100644
index 000000000..1dc3b34ae
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/app-example/controller_inventories_smart_org2.yml
@@ -0,0 +1,26 @@
+---
+controller_inventories:
+ - name: "SmartInventory CPD BCN Org2 dev"
+ description: "SmartInventory CPD BCN Org2"
+ host_filter: "groups__name=Patching_cpd_bcn and groups__name=Patching_os_entorno_dev and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org02"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD MAD Org2 dev"
+ description: "SmartInventory CPD MAD Org2"
+ host_filter: "groups__name=Patching_cpd_mad and groups__name=Patching_os_entorno_dev and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org02"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD BCN Org2 prod"
+ description: "SmartInventory CPD BCN Org2"
+ host_filter: "groups__name=Patching_cpd_bcn and groups__name=Patching_os_entorno_prod and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org02"
+ kind: smart
+ organization: "{{ orgs }}"
+
+ - name: "SmartInventory CPD MAD Org2 prod"
+ description: "SmartInventory CPD MAD Org2"
+ host_filter: "groups__name=Patching_cpd_mad and groups__name=Patching_os_entorno_prod and groups__name=Patching_os_vendor_redhat and groups__name=Patching_area_org02"
+ kind: smart
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/controller_inventories.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/controller_inventories.yml
new file mode 100644
index 000000000..059d77c02
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_inventories.d/controller_inventories.yml
@@ -0,0 +1,3 @@
+---
+controller_inventories: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-casc/controller_job_templates_casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-casc/controller_job_templates_casc.yml
new file mode 100644
index 000000000..137c2ba5b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-casc/controller_job_templates_casc.yml
@@ -0,0 +1,62 @@
+---
+controller_templates:
+ - name: "{{ orgs }} CasC_JobTemplates_AAP_CI_Webhook"
+ description: "Template to attend AAP CasC webhook"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} CasC_Data"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "config-controller.yml"
+ job_tags: ci_webhook_trigger
+ job_type: run
+ fact_caching_enabled: false
+ credentials:
+ - "{{ orgs }} {{ env }} aap_credentials"
+ concurrent_jobs_enabled: true
+ ask_scm_branch_on_launch: true
+ extra_vars:
+ ansible_python_interpreter: /usr/bin/python3
+ ansible_async_dir: /home/runner/.ansible_async/
+ execution_environment: "ee-casc"
+
+ - name: "{{ orgs }} CasC_JobTemplates_AAP_CI_Config_Controller"
+ description: "Template to deploy AAP Orgs"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} CasC_Data"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "config-controller.yml"
+ job_type: run
+ fact_caching_enabled: false
+ credentials:
+ - "{{ orgs }} {{ env }} aap_credentials"
+ - "{{ orgs }} {{ env }} aap_vault_credentials"
+ concurrent_jobs_enabled: true
+ ask_scm_branch_on_launch: true
+ ask_tags_on_launch: true
+ ask_verbosity_on_launch: true
+ ask_variables_on_launch: true
+ extra_vars:
+ ansible_python_interpreter: /usr/bin/python3
+ ansible_async_dir: /home/runner/.ansible_async/
+ execution_environment: "ee-casc"
+
+ - name: "{{ orgs }} CasC_JobTemplates_AAP_Desired_State"
+ description: "Template to assure Desired State"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} CasC_Data"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "desired-state.yml"
+ job_type: run
+ fact_caching_enabled: false
+ credentials:
+ - "{{ orgs }} {{ env }} aap_credentials"
+ - "{{ orgs }} {{ env }} aap_vault_credentials"
+ concurrent_jobs_enabled: true
+ ask_scm_branch_on_launch: true
+ ask_tags_on_launch: true
+ ask_verbosity_on_launch: true
+ ask_variables_on_launch: true
+ extra_vars:
+ ansible_python_interpreter: /usr/bin/python3
+ ansible_async_dir: /home/runner/.ansible_async/
+ execution_environment: "ee-casc"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_container_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_container_groups.yml
new file mode 100644
index 000000000..734b6d59f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_container_groups.yml
@@ -0,0 +1,16 @@
+---
+controller_templates:
+ - name: "{{ orgs }} JT_Container_Group"
+ description: "Template to test Container Groups"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} Container_Group"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "helloworld.yml"
+ job_type: run
+ concurrent_jobs_enabled: true
+ credentials:
+ - "{{ orgs }} {{ env }} aap_vault_credentials"
+ execution_environment: "Default execution environment"
+ instance_groups:
+ - Container_Groups_Instance
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_demo_push.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_demo_push.yml
new file mode 100644
index 000000000..42675006c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/app-example/controller_job_templates_demo_push.yml
@@ -0,0 +1,46 @@
+---
+controller_templates:
+ - name: "{{ orgs }} JT_Container_Group TEST DEMO First Push"
+ description: "Template to test Container Groups"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} Container_Group"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "helloworld.yml"
+ job_type: run
+ concurrent_jobs_enabled: true
+ credentials:
+ - "{{ orgs }} {{ env }} aap_vault_credentials"
+ execution_environment: "Default execution environment"
+ instance_groups:
+ - Container_Groups_Instance
+
+ - name: "{{ orgs }} JT_Container_Group TEST DEMO - Second Push"
+ description: "Template to test Container Groups"
+ organization: "{{ orgs }}"
+ project: "{{ orgs }} Container_Group"
+ inventory: "{{ orgs }} Localhost"
+ playbook: "helloworld.yml"
+ job_type: run
+ concurrent_jobs_enabled: true
+ credentials:
+ - "{{ orgs }} {{ env }} aap_vault_credentials"
+ execution_environment: "Default execution environment"
+ instance_groups:
+ - Container_Groups_Instance
+ survey_enabled: true
+ survey_spec:
+ name: 'TEST'
+ description: 'Test'
+ spec:
+ - question_name: Target Host
+ question_description: target host is required for playbook to work, this host
+ needs to exist in the inventory
+ required: true
+ type: text
+ variable: target_hosts
+ min: 0
+ max: 1024
+ default: Localhost
+ choices: ''
+ new_question: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/controller_job_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/controller_job_templates.yml
new file mode 100644
index 000000000..b04efcaad
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_job_templates.d/controller_job_templates.yml
@@ -0,0 +1,3 @@
+---
+controller_templates: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-casc/controller_organizations_Global.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-casc/controller_organizations_Global.yml
new file mode 100644
index 000000000..9c52cfb56
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-casc/controller_organizations_Global.yml
@@ -0,0 +1,10 @@
+---
+controller_organizations:
+ - name: "{{ orgs }}"
+ description: "Organization for globally available objects"
+ galaxy_credentials:
+ - "Ansible Galaxy"
+ - "{{ orgs }} {{ env }} Automation Hub Community Repository"
+ - "{{ orgs }} {{ env }} Automation Hub Published Repository"
+ - "{{ orgs }} {{ env }} Automation Hub RH Certified Repository"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_ExampleOrg.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_ExampleOrg.yml
new file mode 100644
index 000000000..04212af8f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_ExampleOrg.yml
@@ -0,0 +1,10 @@
+---
+controller_organizations:
+ - name: "ExampleOrg"
+ description: "Organization Example"
+ galaxy_credentials:
+ - "Ansible Galaxy"
+ - "{{ orgs }} {{ env }} Automation Hub Community Repository"
+ - "{{ orgs }} {{ env }} Automation Hub Published Repository"
+ - "{{ orgs }} {{ env }} Automation Hub RH Certified Repository"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_OrgCrossTeams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_OrgCrossTeams.yml
new file mode 100644
index 000000000..d69036184
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_OrgCrossTeams.yml
@@ -0,0 +1,5 @@
+---
+controller_organizations:
+ - name: "OrgCrossTeams"
+ description: "Organization to run playbooks Cross Teams"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_Organizations1-2.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_Organizations1-2.yml
new file mode 100644
index 000000000..1fe8e3cf9
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/app-example/controller_organizations_Organizations1-2.yml
@@ -0,0 +1,11 @@
+---
+controller_organizations:
+ - name: "Organization1"
+ description: "Organization 1 to tests"
+ galaxy_credentials: "{{ common_galaxy_credentials }}"
+ - name: "Organization2"
+ description: "Organization 2 to tests"
+ galaxy_credentials: "{{ common_galaxy_credentials }}"
+common_galaxy_credentials:
+ - "Ansible Galaxy"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/controller_organizations.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/controller_organizations.yml
new file mode 100644
index 000000000..65f88a496
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_organizations.d/controller_organizations.yml
@@ -0,0 +1,3 @@
+---
+controller_organizations: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-casc/controller_projects_casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-casc/controller_projects_casc.yml
new file mode 100644
index 000000000..539fb858c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-casc/controller_projects_casc.yml
@@ -0,0 +1,15 @@
+---
+controller_projects:
+ - name: "{{ orgs }} CasC_Data"
+ description: "Project to include the vars values of the {{ orgs }} Org"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_url: "git@gitlab.com:automationiberia.com/global.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_branch: "{{ env }}"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-ocp/controller_projects_container_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-ocp/controller_projects_container_groups.yml
new file mode 100644
index 000000000..3e29f19f9
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/app-ocp/controller_projects_container_groups.yml
@@ -0,0 +1,14 @@
+---
+controller_projects:
+ - name: "{{ orgs }} Container_Group"
+ description: "Project to run Container_Groups example"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_url: "git@gitlab.automationiberia.com:aap-demo/readonly-playbooks.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/controller_projects.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/controller_projects.yml
new file mode 100644
index 000000000..ac64afac4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/controller_projects.yml
@@ -0,0 +1,3 @@
+---
+controller_projects: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_dev.yml
new file mode 100644
index 000000000..4cd6985d8
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_dev.yml
@@ -0,0 +1,16 @@
+---
+controller_projects:
+ - name: "{{ orgs }} InventorySource SourceA dev"
+ description: "InventorySource SourceA dev from XLSX"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_branch: "sourcea-dev"
+ scm_url: "git@gitlab.automationiberia.com:aap-demo/inventario_ansible_xlsx.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_prod.yml
new file mode 100644
index 000000000..448c76816
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourcea_prod.yml
@@ -0,0 +1,16 @@
+---
+controller_projects:
+ - name: "{{ orgs }} InventorySource SourceA prod"
+ description: "InventorySource SourceA prod from XLSX"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_branch: "sourcea-prod"
+ scm_url: "git@gitlab.automationiberia.com:aap-demo/inventario_ansible_xlsx.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_dev.yml
new file mode 100644
index 000000000..2591007bf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_dev.yml
@@ -0,0 +1,16 @@
+---
+controller_projects:
+ - name: "{{ orgs }} InventorySource SourceB dev"
+ description: "InventorySource SourceB dev from XLSX"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_branch: "sourceb-dev"
+ scm_url: "git@gitlab.automationiberia.com:aap-demo/inventario_ansible_xlsx.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_prod.yml
new file mode 100644
index 000000000..be8bd29f5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_projects.d/inventories/controller_projects_inventory_sourceb_prod.yml
@@ -0,0 +1,16 @@
+---
+controller_projects:
+ - name: "{{ orgs }} InventorySource SourceB prod"
+ description: "InventorySource SourceB prod from XLSX"
+ organization: "{{ orgs }}"
+ scm_type: git
+ scm_branch: "sourceb-prod"
+ scm_url: "git@gitlab.automationiberia.com:aap-demo/inventario_ansible_xlsx.git"
+ scm_credential: "{{ orgs }} {{ env }} Gitlab Credential"
+ scm_clean: false
+ scm_delete_on_update: false
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 86400
+ allow_override: true
+
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_cmdb_approvals.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_cmdb_approvals.yml
new file mode 100644
index 000000000..5295dee6e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_cmdb_approvals.yml
@@ -0,0 +1,7 @@
+---
+controller_roles:
+ - workflows:
+ - "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ team: "ldap-users-cmdb"
+ role: approval
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventories.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventories.yml
new file mode 100644
index 000000000..a4ef3c082
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventories.yml
@@ -0,0 +1,48 @@
+---
+controller_roles:
+ - inventory: InventaryExcel
+ user: userorg1
+ role: read
+
+ - team: "ldap-org01-users"
+ inventories:
+ - "SmartInventory CPD BCN Org1 dev"
+ - "SmartInventory CPD MAD Org1 dev"
+ role: use
+
+ - team: "ldap-org01-devs"
+ inventories:
+ - "SmartInventory CPD BCN Org1 dev"
+ - "SmartInventory CPD MAD Org1 dev"
+ role: use
+
+ - team: "ldap-org01-admins"
+ inventories:
+ - "{{ orgs }} Localhost"
+ - "SmartInventory CPD BCN Org1 prod"
+ - "SmartInventory CPD MAD Org1 prod"
+ - "SmartInventory CPD BCN Org1 dev"
+ - "SmartInventory CPD MAD Org1 dev"
+ role: use
+
+ - team: "ldap-org02-users"
+ inventories:
+ - "SmartInventory CPD BCN Org2 dev"
+ - "SmartInventory CPD MAD Org2 dev"
+ role: use
+
+ - team: "ldap-org02-devs"
+ inventories:
+ - "SmartInventory CPD BCN Org2 dev"
+ - "SmartInventory CPD MAD Org2 dev"
+ role: use
+
+ - team: "ldap-org02-admins"
+ inventories:
+ - "{{ orgs }} Localhost"
+ - "SmartInventory CPD BCN Org2 prod"
+ - "SmartInventory CPD MAD Org2 prod"
+ - "SmartInventory CPD BCN Org2 dev"
+ - "SmartInventory CPD MAD Org2 dev"
+ role: use
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventory_wf_update.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventory_wf_update.yml
new file mode 100644
index 000000000..eeeb04cd0
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_inventory_wf_update.yml
@@ -0,0 +1,7 @@
+---
+controller_roles:
+ - workflows:
+ - "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ team: "ldap-org01-users"
+ role: execute
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_teams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_teams.yml
new file mode 100644
index 000000000..086b7d48a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_teams.yml
@@ -0,0 +1,8 @@
+---
+controller_roles:
+ - team: "Organization1 admins-team"
+ role: admin
+
+ - team: "Organization2 admins-team"
+ role: admin
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_users.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_users.yml
new file mode 100644
index 000000000..abce8c6ee
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/app-example/controller_roles_users.yml
@@ -0,0 +1,50 @@
+---
+controller_roles:
+ - user: "adminorg1"
+ organizations:
+ - "Organization1"
+ role: member
+
+ - user: "adminorg1"
+ organizations:
+ - "Organization1"
+ role: member
+ target_teams:
+ - "Organization1 admins-team"
+
+ - user: "adminorg2"
+ organizations:
+ - "Organization2"
+ role: member
+
+ - user: "adminorg2"
+ organizations:
+ - "Organization2"
+ role: admin
+ target_teams:
+ - "Organization2 admins-team"
+
+ - user: "userorg1"
+ organizations:
+ - "Organization1"
+ role: member
+
+ - user: "userorg1"
+ organizations:
+ - "Organization1"
+ role: member
+ target_teams:
+ - "Organization1 users-team"
+
+ - user: "userorg2"
+ organizations:
+ - "Organization2"
+ role: member
+
+ - user: "userorg2"
+ organizations:
+ - "Organization2"
+ role: member
+ target_teams:
+ - "Organization2 users-team"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/controller_roles.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/controller_roles.yml
new file mode 100644
index 000000000..c27de4fb5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_roles.d/controller_roles.yml
@@ -0,0 +1,4 @@
+---
+## available roles: admin_role, execute_role, project_admin_role, inventory_admin_role, credential_admin_role, workflow_admin_role, notification_admin_role, job_template_admin_role, execution_environment_admin_role, auditor_role, member_role, read_role, approval_role
+controller_roles: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-casc/controller_schedules_casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-casc/controller_schedules_casc.yml
new file mode 100644
index 000000000..64499c99e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-casc/controller_schedules_casc.yml
@@ -0,0 +1,30 @@
+---
+controller_schedules:
+ - name: "{{ orgs }} CasC_Objects_Cleanup"
+ description: CasC_Ojbects_Cleanup
+ unified_job_template: "{{ orgs }} CasC_JobTemplates_AAP_Desired_State"
+ rrule: DTSTART;TZID=Europe/Madrid:20220127T163000 RRULE:INTERVAL=1;FREQ=DAILY
+ job_tags: desired_state
+ enabled: false
+ extra_data:
+ ansible_python_interpreter: /usr/bin/python3
+ ansible_async_dir: /home/runner/.ansible_async/
+ env: "{{ env }}"
+ dir_orgs_vars: orgs_vars
+ orgs: "{{ orgs }}"
+ organization: "{{ orgs }}"
+
+ - name: "{{ orgs }} CasC_Objects_Creation"
+ description: CasC_Ojbects_Cleanup
+ unified_job_template: "{{ orgs }} CasC_JobTemplates_AAP_CI_Config_Controller"
+ rrule: DTSTART;TZID=Europe/Madrid:20220127T000000 RRULE:INTERVAL=1;FREQ=DAILY
+ enabled: false
+ extra_data:
+ ansible_python_interpreter: /usr/bin/python3
+ ansible_async_dir: /home/runner/.ansible_async/
+ env: "{{ env }}"
+ dir_orgs_vars: orgs_vars
+ orgs: "{{ orgs }}"
+ organization: "{{ orgs }}"
+
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-example/controller_schedules_example.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-example/controller_schedules_example.yml
new file mode 100644
index 000000000..4845926bc
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/app-example/controller_schedules_example.yml
@@ -0,0 +1,3 @@
+---
+controller_schedules: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/controller_schedules.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/controller_schedules.yml
new file mode 100644
index 000000000..4845926bc
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_schedules.d/controller_schedules.yml
@@ -0,0 +1,3 @@
+---
+controller_schedules: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org1.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org1.yml
new file mode 100644
index 000000000..0e5548b1e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org1.yml
@@ -0,0 +1,10 @@
+---
+controller_teams:
+ - name: "Organization1 admins-team"
+ description: "Team for Admin Organization1 Org"
+ organization: "Organization1"
+
+ - name: "Organization1 users-team"
+ description: "Team for Normal Organization1 Org"
+ organization: "Organization1"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org2.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org2.yml
new file mode 100644
index 000000000..5f2686421
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/app-demo/controller_teams_org2.yml
@@ -0,0 +1,10 @@
+---
+controller_teams:
+ - name: "Organization2 admins-team"
+ description: "Team for Admin Organization2 Org"
+ organization: "Organization2"
+
+ - name: "Organization2 users-team"
+ description: "Team for Normal Organization2 Org"
+ organization: "Organization2"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/controller_teams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/controller_teams.yml
new file mode 100644
index 000000000..8710e6f70
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_teams.d/controller_teams.yml
@@ -0,0 +1,10 @@
+---
+controller_teams:
+ - name: "{{ orgs }} {{ orgs }}-team"
+ description: "Team for {{ orgs }} Org"
+ organization: "{{ orgs }}"
+
+ - name: "{{ orgs }} test-group"
+ description: "test-group"
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-casc/controller_workflow_job_templates_casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-casc/controller_workflow_job_templates_casc.yml
new file mode 100644
index 000000000..461f60d9f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-casc/controller_workflow_job_templates_casc.yml
@@ -0,0 +1,32 @@
+---
+controller_workflows:
+ - name: "{{ orgs }} CasC_AAP_Workflow"
+ state: present
+ description: "workflow for CasC on AAP"
+ survey_enabled: false
+ ask_variables_on_launch: true
+ allow_simultaneous: true
+ scm_branch: "{{ env }}"
+ webhook_service: "gitlab"
+ organization: "{{ orgs }}"
+ simplified_workflow_nodes:
+ - identifier: "LAUNCH_CI_{{ orgs }}"
+ workflow_job_template: "{{ orgs }} CasC_AAP_Workflow"
+ unified_job_template: "{{ orgs }} CasC_JobTemplates_AAP_CI_Webhook"
+ job_type: run
+ organization: "{{ orgs }}"
+ workflow: "{{ orgs }} CasC_AAP_Workflow"
+
+ - identifier: "PROJECT_SYNC_{{ orgs }}"
+ workflow_job_template: "{{ orgs }} CasC_AAP_Workflow"
+ unified_job_template: "{{ orgs }} CasC_Data"
+ organization: "{{ orgs }}"
+ workflow: "{{ orgs }} CasC_AAP_Workflow"
+ success_nodes:
+ - "LAUNCH_CI_{{ orgs }}"
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ survey_spec: {}
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-examples/controller_workflow_job_templates_InventoryUpdate.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-examples/controller_workflow_job_templates_InventoryUpdate.yml
new file mode 100644
index 000000000..d996c1883
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/app-examples/controller_workflow_job_templates_InventoryUpdate.yml
@@ -0,0 +1,72 @@
+---
+controller_workflows:
+ - name: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ state: present
+ description: "workflow for update the sources of the inventory"
+ survey_enabled: false
+ ask_variables_on_launch: true
+ allow_simultaneous: true
+ scm_branch: "{{ env }}"
+ organization: "{{ orgs }}"
+ simplified_workflow_nodes:
+ - identifier: APPROVAL_WF_INV
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ organization: "{{ orgs }}"
+ success_nodes:
+ - SYNC_SRC_A_DEV
+ - SYNC_SRC_B_DEV
+ - SYNC_SRC_A_PROD
+ - SYNC_SRC_B_PROD
+ approval_node:
+ description: "First step to update the Inventory Sources, Approval from CMDB Admins"
+ name: APPROVAL_WF_INVENTORY_UPDATE
+ timeout: 3600
+
+ - identifier: SYNC_SRC_A_DEV
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "{{ orgs }} InventorySource SourceA dev"
+ organization: "{{ orgs }}"
+ success_nodes:
+ - INVENTORY_SOURCE_A_DEV
+
+ - identifier: SYNC_SRC_B_DEV
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "{{ orgs }} InventorySource SourceB dev"
+ organization: "{{ orgs }}"
+ success_nodes:
+ - INVENTORY_SOURCE_B_DEV
+
+ - identifier: SYNC_SRC_A_PROD
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "{{ orgs }} InventorySource SourceA prod"
+ organization: "{{ orgs }}"
+ success_nodes:
+ - INVENTORY_SOURCE_A_PROD
+
+ - identifier: SYNC_SRC_B_PROD
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "{{ orgs }} InventorySource SourceB prod"
+ organization: "{{ orgs }}"
+ success_nodes:
+ - INVENTORY_SOURCE_B_PROD
+
+ - identifier: INVENTORY_SOURCE_A_DEV
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "Inventory Source A Dev"
+ organization: "{{ orgs }}"
+
+ - identifier: INVENTORY_SOURCE_B_DEV
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "Inventory Source B Dev"
+ organization: "{{ orgs }}"
+
+ - identifier: INVENTORY_SOURCE_A_PROD
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "Inventory Source A Prod"
+ organization: "{{ orgs }}"
+
+ - identifier: INVENTORY_SOURCE_B_PROD
+ workflow_job_template: "{{ orgs }} WF_INVENTORY_SOURCE_UPDATE"
+ unified_job_template: "Inventory Source B Prod"
+ organization: "{{ orgs }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/controller_workflow_job_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/controller_workflow_job_templates.yml
new file mode 100644
index 000000000..e85617417
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/common/controller_workflow_job_templates.d/controller_workflow_job_templates.yml
@@ -0,0 +1,3 @@
+---
+controller_workflows: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_aap.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_aap.yml
new file mode 100644
index 000000000..f0a92b143
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_aap.yml
@@ -0,0 +1,12 @@
+---
+controller_credentials:
+ - name: "AAP Credentials Example"
+ description: "Ansible Automation Platform Credentials Example"
+ credential_type: "Red Hat Ansible Automation Platform"
+ organization: "ExampleOrg"
+ inputs:
+ host: "controller.lab.example.com"
+ username: "controller-user"
+ password: "controller-password"
+ verify_ssl: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_galaxy.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_galaxy.yml
new file mode 100644
index 000000000..6774f8068
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_galaxy.yml
@@ -0,0 +1,26 @@
+---
+controller_credentials:
+ - name: "Automation Hub Community Repository Example"
+ description: "Automation Hub Community Repository Example"
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/community/"
+ token: "AddToken"
+
+ - name: "Automation Hub Published Repository Example"
+ description: "Automation Hub Published Repository Example"
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/published/"
+ token: "AddToken"
+
+ - name: "Automation Hub RH Certified Repository Example"
+ description: ""
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/rh-certified/"
+ token: "AddToken"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_machine.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_machine.yml
new file mode 100644
index 000000000..971594944
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_machine.yml
@@ -0,0 +1,10 @@
+---
+controller_credentials:
+ - name: "Machine Credentials Example"
+ description: "Machine Credentials Example"
+ credential_type: "Machine"
+ organization: "ExampleOrg"
+ inputs:
+ username: "user-ansible"
+ password: "password"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_ocp.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_ocp.yml
new file mode 100644
index 000000000..05bc7ed7d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_ocp.yml
@@ -0,0 +1,11 @@
+---
+controller_credentials:
+ - name: "Credentials OCP Example"
+ description: "OCP SA to run Container Groups Example"
+ credential_type: "OpenShift or Kubernetes API Bearer Token"
+ organization: "ExampleOrg"
+ inputs:
+ host: "https://api.cluster.lab.example.com:6443"
+ verify_ssl: false
+ bearer_token: "Addbearer_token"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_registry.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_registry.yml
new file mode 100644
index 000000000..2af2e6a65
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_registry.yml
@@ -0,0 +1,12 @@
+---
+controller_credentials:
+ - name: "Automation Private Hub Container Registry Example"
+ description: "Credential to connect to Container Registry at AtomationHub Private Example"
+ credential_type: "Container Registry"
+ organization: "ExampleOrg"
+ inputs:
+ username: "registry-user"
+ password: "password"
+ host: automationhub.lab.example.com
+ verify_ssl: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_scm.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_scm.yml
new file mode 100644
index 000000000..0cdfe7200
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_scm.yml
@@ -0,0 +1,19 @@
+---
+controller_credentials:
+ - name: "Gitlab Credential Example"
+ description: "Gitlab Credential Example"
+ credential_type: "Source Control"
+ organization: "ExampleOrg"
+ inputs:
+ username: 'scm-user'
+ ssh_key_data: |
+ -----BEGIN RSA PRIVATE KEY-----
+ MIIBOgIBAAJBAKj34GkxFhD90vcNLYLInFEX6Ppy1tPf9Cnzj4p4WGeKLs1Pt8Qu
+ KUpRKfFLfRYC9AIKjbJTWit+CqvjWYzvQwECAwEAAQJAIJLixBy2qpFoS4DSmoEm
+ o3qGy0t6z09AIJtH+5OeRV1be+N4cDYJKffGzDa88vQENZiRm0GRq6a+HPGQMd2k
+ TQIhAKMSvzIBnni7ot/OSie2TmJLY4SwTQAevXysE2RbFDYdAiEBCUEaRQnMnbp7
+ 9mxDXDf6AU0cN/RPBjb9qSHDcWZHGzUCIG2Es59z8ugGrDY+pxLQnwfotadxd+Uy
+ v/Ow5T0q5gIJAiEAyS4RaI9YG8EWx/2w0T67ZUVAw8eOMB6BIUg0Xcu+3okCIBOs
+ /5OiPgoTdSy7bcF9IGpSE8ZgGKzgYQVZeN97YE00
+ -----END RSA PRIVATE KEY-----
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_vault.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_vault.yml
new file mode 100644
index 000000000..e74f3e1f8
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_credentials.d/app-examples/controller_credentials_vault.yml
@@ -0,0 +1,9 @@
+---
+controller_credentials:
+ - name: "Vault Credentials Example"
+ description: "Vault Credentials Example"
+ credential_type: "Vault"
+ organization: "ExampleOrg"
+ inputs:
+ vault_password: "password"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml
new file mode 100644
index 000000000..b98fae314
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml
@@ -0,0 +1,7 @@
+---
+controller_execution_environments:
+ - name: "ee-casc"
+ image: automationhub.automationiberia.com/ee-casc:latest
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml
new file mode 100644
index 000000000..de9e3526b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml
@@ -0,0 +1,12 @@
+---
+controller_execution_environments:
+ - name: "ee-xlsx"
+ image: automationhub.automationiberia.com/ee-xlsx:latest
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+
+ - name: "test-ee-xlsx"
+ image: automationhub.automationiberia.com/test-ee-xlsx:0.2
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/controller_execution_environments.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/controller_execution_environments.yml
new file mode 100644
index 000000000..28041d44c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_execution_environments.d/controller_execution_environments.yml
@@ -0,0 +1,3 @@
+---
+controller_execution_environments: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/app-casc/controller_hosts_localhost.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/app-casc/controller_hosts_localhost.yml
new file mode 100644
index 000000000..4b9e5a998
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/app-casc/controller_hosts_localhost.yml
@@ -0,0 +1,6 @@
+---
+controller_hosts:
+ - name: localhost
+ description: localhost
+ inventory: "{{ orgs }} Localhost"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/controller_hosts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/controller_hosts.yml
new file mode 100644
index 000000000..5fd4d8140
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_hosts.d/controller_hosts.yml
@@ -0,0 +1,3 @@
+---
+controller_hosts: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml
new file mode 100644
index 000000000..3ac123303
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source A Dev"
+ description: "Source Inventory from Excel file SourceA dev"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceA dev"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml
new file mode 100644
index 000000000..dd3242be2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source A Prod"
+ description: "Source Inventory from Excel file SourceA prod"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceA prod"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml
new file mode 100644
index 000000000..2024f92fb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source B Dev"
+ description: "Source Inventory from Excel file SourceB dev"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceB dev"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml
new file mode 100644
index 000000000..67ad9c1d1
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source B Prod"
+ description: "Source Inventory from Excel file SourceB prod"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceB prod"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/controller_inventory_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/controller_inventory_sources.yml
new file mode 100644
index 000000000..cd9fc77bf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_inventory_sources.d/controller_inventory_sources.yml
@@ -0,0 +1,3 @@
+---
+controller_inventory_sources: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_jobs.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_jobs.yml
new file mode 100644
index 000000000..43cf1a8a5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_jobs.yml
@@ -0,0 +1,13 @@
+---
+controller_settings:
+ # - name: AWX_ISOLATION_SHOW_PATHS
+ # value: "['/tmp', '/mnt/backup']"
+ - name: DEFAULT_PROJECT_UPDATE_TIMEOUT
+ value: 0
+ - name: DEFAULT_INVENTORY_UPDATE_TIMEOUT
+ value: 0
+ - name: DEFAULT_JOB_TIMEOUT
+ value: 0
+ - name: MAX_FORKS
+ value: 200
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_ldap.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_ldap.yml
new file mode 100644
index 000000000..9d9f4c760
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_ldap.yml
@@ -0,0 +1,113 @@
+---
+controller_settings:
+ - name: AUTH_LDAP_SERVER_URI
+ value: "ldap://idm.automationiberia.com"
+ - name: AUTH_LDAP_BIND_DN
+ value: "{{ vault_ldap_bind_dn | default('uid=controller-binddn,cn=sysaccounts,cn=etc,dc=automationiberia,dc=com') }}"
+ - name: AUTH_LDAP_BIND_PASSWORD
+ value: "{{ vault_ldap_bind_password | default('password') }}"
+ - name: AUTH_LDAP_START_TLS
+ value: false
+ - name: AUTH_LDAP_USER_DN_TEMPLATE
+ value: ""
+ - name: AUTH_LDAP_CONNECTION_OPTIONS
+ value:
+ OPT_REFERRALS: 0
+ OPT_NETWORK_TIMEOUT: 30
+ - name: AUTH_LDAP_USER_SEARCH
+ value: ["cn=users,cn=accounts,dc=bcnconsulting,dc=com", "SCOPE_SUBTREE", "(uid=%(user)s)"]
+ - name: AUTH_LDAP_USER_DN_TEMPLATE
+ value: ""
+ - name: AUTH_LDAP_USER_ATTR_MAP
+ value: {"first_name": "givenName", "last_name": "sn", "email": "mail"}
+ - name: AUTH_LDAP_GROUP_SEARCH
+ value: ["cn=groups,cn=accounts,dc=bcnconsulting,dc=com", "SCOPE_SUBTREE", "(objectClass=posixgroup)"]
+ - name: AUTH_LDAP_GROUP_TYPE
+ value: "MemberDNGroupType"
+ - name: AUTH_LDAP_GROUP_TYPE_PARAMS
+ value: {"name_attr": "cn", "member_attr": "member"}
+ - name: AUTH_LDAP_REQUIRE_GROUP
+ value: ""
+ - name: AUTH_LDAP_DENY_GROUP
+ value: ""
+ - name: AUTH_LDAP_USER_FLAGS_BY_GROUP
+ value: {"is_superuser": ["cn=controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"], "is_system_auditor": ["cn=team-ldap-auditor,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"]}
+ - name: AUTH_LDAP_ORGANIZATION_MAP
+ value: {
+ "{{ orgs }}": {
+ "admins": "cn=controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove_users": true,
+ "remove_admins": true
+ },
+ "Organization1": {
+ "admins": [
+ "cn=team-ldap-org01-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "users": [
+ "cn=team-ldap-org01-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "cn=team-ldap-org01-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "remove_users": true,
+ "remove_admins": true
+ },
+ "Organization2": {
+ "admins": [
+ "cn=team-ldap-org02-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "users": [
+ "cn=team-ldap-org02-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "cn=team-ldap-org02-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "remove_users": true,
+ "remove_admins": true
+ }
+ }
+ - name: AUTH_LDAP_TEAM_MAP
+ value: {
+ "ldap-controller-admins": {
+ "organization": "{{ orgs }}",
+ "users": "cn=team-ldap-controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-users-cmdb": {
+ "organization": "{{ orgs }}",
+ "users": "cn=team-ldap-cmdb-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-users-crossteam": {
+ "organization": "CrossTeamOrg",
+ "users": "cn=team-ldap-users-crossteam,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-admins": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-users": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-devs": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-admins": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-users": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-devs": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ }
+ }
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_system.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_system.yml
new file mode 100644
index 000000000..5f9ae2381
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_system.yml
@@ -0,0 +1,18 @@
+---
+controller_settings:
+ # - name: ACTIVITY_STREAM_ENABLED
+ # value: true
+ # - name: ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC
+ # value: false
+ # - name: SESSION_COOKIE_AGE
+ # value: 1800
+ # - name: SESSIONS_PER_USER
+ # value: 10
+ # - name: MANAGE_ORGANIZATION_AUTH
+ # value: true
+ # https://access.redhat.com/solutions/6613291 - External users are not able to create token on Ansible Tower.
+ - name: ALLOW_OAUTH2_FOR_EXTERNAL_USERS
+ value: true
+ - name: ORG_ADMINS_CAN_SEE_ALL_USERS
+ value: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_user_interface.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_user_interface.yml
new file mode 100644
index 000000000..f465d180d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/app-examples/controller_settings_user_interface.yml
@@ -0,0 +1,5 @@
+---
+controller_settings:
+ - name: CUSTOM_LOGIN_INFO
+ value: "This is a custom message provided by Customer - Consulting Barcelona"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/controller_settings.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/controller_settings.yml
new file mode 100644
index 000000000..7e6d3c65d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_settings.d/controller_settings.yml
@@ -0,0 +1,4 @@
+---
+# tower-manage print_settings
+controller_settings: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org1.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org1.yml
new file mode 100644
index 000000000..fb71e0616
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org1.yml
@@ -0,0 +1,15 @@
+---
+controller_user_accounts:
+ - username: "adminorg1"
+ password: "password"
+ email: "adminorg1@example.com"
+ firstname: "adminorg1"
+ lastname: "adminorg1"
+ is_auditor: false
+ is_superuser: false
+
+ - username: "userorg1"
+ password: "password"
+ email: "userorg1@example.com"
+ is_superuser: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org2.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org2.yml
new file mode 100644
index 000000000..688dfca19
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/app-demo/controller_user_accounts_org2.yml
@@ -0,0 +1,15 @@
+---
+controller_user_accounts:
+ - username: "adminorg2"
+ password: "password"
+ email: "adminorg2@example.com"
+ firstname: "adminorg2"
+ lastname: "adminorg2"
+ is_auditor: false
+ is_superuser: false
+
+ - username: "userorg2"
+ password: "password"
+ email: "userorg2@example.com"
+ is_superuser: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/controller_user_accounts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/controller_user_accounts.yml
new file mode 100644
index 000000000..06dd02b0b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/dev/controller_users.d/controller_user_accounts.yml
@@ -0,0 +1,11 @@
+---
+controller_user_accounts:
+ - username: "admin"
+ password: "password"
+ email: "admin@example.com"
+ firstname: "admin"
+ lastname: "admin"
+ is_auditor: false
+ is_superuser: true
+ update_secrets: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_aap.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_aap.yml
new file mode 100644
index 000000000..f0a92b143
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_aap.yml
@@ -0,0 +1,12 @@
+---
+controller_credentials:
+ - name: "AAP Credentials Example"
+ description: "Ansible Automation Platform Credentials Example"
+ credential_type: "Red Hat Ansible Automation Platform"
+ organization: "ExampleOrg"
+ inputs:
+ host: "controller.lab.example.com"
+ username: "controller-user"
+ password: "controller-password"
+ verify_ssl: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_galaxy.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_galaxy.yml
new file mode 100644
index 000000000..6774f8068
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_galaxy.yml
@@ -0,0 +1,26 @@
+---
+controller_credentials:
+ - name: "Automation Hub Community Repository Example"
+ description: "Automation Hub Community Repository Example"
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/community/"
+ token: "AddToken"
+
+ - name: "Automation Hub Published Repository Example"
+ description: "Automation Hub Published Repository Example"
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/published/"
+ token: "AddToken"
+
+ - name: "Automation Hub RH Certified Repository Example"
+ description: ""
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "ExampleOrg"
+ inputs:
+ url: "https://automationhub.lab.example.com/api/galaxy/content/rh-certified/"
+ token: "AddToken"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_machine.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_machine.yml
new file mode 100644
index 000000000..971594944
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_machine.yml
@@ -0,0 +1,10 @@
+---
+controller_credentials:
+ - name: "Machine Credentials Example"
+ description: "Machine Credentials Example"
+ credential_type: "Machine"
+ organization: "ExampleOrg"
+ inputs:
+ username: "user-ansible"
+ password: "password"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_ocp.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_ocp.yml
new file mode 100644
index 000000000..05bc7ed7d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_ocp.yml
@@ -0,0 +1,11 @@
+---
+controller_credentials:
+ - name: "Credentials OCP Example"
+ description: "OCP SA to run Container Groups Example"
+ credential_type: "OpenShift or Kubernetes API Bearer Token"
+ organization: "ExampleOrg"
+ inputs:
+ host: "https://api.cluster.lab.example.com:6443"
+ verify_ssl: false
+ bearer_token: "Addbearer_token"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_registry.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_registry.yml
new file mode 100644
index 000000000..2af2e6a65
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_registry.yml
@@ -0,0 +1,12 @@
+---
+controller_credentials:
+ - name: "Automation Private Hub Container Registry Example"
+ description: "Credential to connect to Container Registry at AtomationHub Private Example"
+ credential_type: "Container Registry"
+ organization: "ExampleOrg"
+ inputs:
+ username: "registry-user"
+ password: "password"
+ host: automationhub.lab.example.com
+ verify_ssl: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_scm.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_scm.yml
new file mode 100644
index 000000000..0cdfe7200
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_scm.yml
@@ -0,0 +1,19 @@
+---
+controller_credentials:
+ - name: "Gitlab Credential Example"
+ description: "Gitlab Credential Example"
+ credential_type: "Source Control"
+ organization: "ExampleOrg"
+ inputs:
+ username: 'scm-user'
+ ssh_key_data: |
+ -----BEGIN RSA PRIVATE KEY-----
+ MIIBOgIBAAJBAKj34GkxFhD90vcNLYLInFEX6Ppy1tPf9Cnzj4p4WGeKLs1Pt8Qu
+ KUpRKfFLfRYC9AIKjbJTWit+CqvjWYzvQwECAwEAAQJAIJLixBy2qpFoS4DSmoEm
+ o3qGy0t6z09AIJtH+5OeRV1be+N4cDYJKffGzDa88vQENZiRm0GRq6a+HPGQMd2k
+ TQIhAKMSvzIBnni7ot/OSie2TmJLY4SwTQAevXysE2RbFDYdAiEBCUEaRQnMnbp7
+ 9mxDXDf6AU0cN/RPBjb9qSHDcWZHGzUCIG2Es59z8ugGrDY+pxLQnwfotadxd+Uy
+ v/Ow5T0q5gIJAiEAyS4RaI9YG8EWx/2w0T67ZUVAw8eOMB6BIUg0Xcu+3okCIBOs
+ /5OiPgoTdSy7bcF9IGpSE8ZgGKzgYQVZeN97YE00
+ -----END RSA PRIVATE KEY-----
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_vault.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_vault.yml
new file mode 100644
index 000000000..e74f3e1f8
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_credentials.d/app-examples/controller_credentials_vault.yml
@@ -0,0 +1,9 @@
+---
+controller_credentials:
+ - name: "Vault Credentials Example"
+ description: "Vault Credentials Example"
+ credential_type: "Vault"
+ organization: "ExampleOrg"
+ inputs:
+ vault_password: "password"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml
new file mode 100644
index 000000000..b98fae314
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-casc/controller_execution_environments_ee-casc.yml
@@ -0,0 +1,7 @@
+---
+controller_execution_environments:
+ - name: "ee-casc"
+ image: automationhub.automationiberia.com/ee-casc:latest
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml
new file mode 100644
index 000000000..de9e3526b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/app-examples/controller_execution_environments_ee-xlsx.yml
@@ -0,0 +1,12 @@
+---
+controller_execution_environments:
+ - name: "ee-xlsx"
+ image: automationhub.automationiberia.com/ee-xlsx:latest
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+
+ - name: "test-ee-xlsx"
+ image: automationhub.automationiberia.com/test-ee-xlsx:0.2
+ pull: always
+ credential: "{{ orgs }} {{ env }} Automation Private Hub Container Registry"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/controller_execution_environments.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/controller_execution_environments.yml
new file mode 100644
index 000000000..28041d44c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_execution_environments.d/controller_execution_environments.yml
@@ -0,0 +1,3 @@
+---
+controller_execution_environments: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_hosts.d/controller_hosts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_hosts.d/controller_hosts.yml
new file mode 100644
index 000000000..4b9e5a998
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_hosts.d/controller_hosts.yml
@@ -0,0 +1,6 @@
+---
+controller_hosts:
+ - name: localhost
+ description: localhost
+ inventory: "{{ orgs }} Localhost"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml
new file mode 100644
index 000000000..3ac123303
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_dev.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source A Dev"
+ description: "Source Inventory from Excel file SourceA dev"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceA dev"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml
new file mode 100644
index 000000000..dd3242be2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourcea_prod.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source A Prod"
+ description: "Source Inventory from Excel file SourceA prod"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceA prod"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml
new file mode 100644
index 000000000..2024f92fb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_dev.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source B Dev"
+ description: "Source Inventory from Excel file SourceB dev"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceB dev"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml
new file mode 100644
index 000000000..67ad9c1d1
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/app-examples/controller_inventory_sources_sourceb_prod.yml
@@ -0,0 +1,12 @@
+---
+controller_inventory_sources:
+ - name: "Inventory Source B Prod"
+ description: "Source Inventory from Excel file SourceB prod"
+ source: scm
+ source_project: "{{ orgs }} InventorySource SourceB prod"
+ execution_environment: ee-xlsx
+ source_path: "xlsx_inventory.py"
+ inventory: "InventaryExcel"
+ update_on_launch: false
+ overwrite: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/controller_inventory_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/controller_inventory_sources.yml
new file mode 100644
index 000000000..cd9fc77bf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_inventory_sources.d/controller_inventory_sources.yml
@@ -0,0 +1,3 @@
+---
+controller_inventory_sources: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_jobs.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_jobs.yml
new file mode 100644
index 000000000..43cf1a8a5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_jobs.yml
@@ -0,0 +1,13 @@
+---
+controller_settings:
+ # - name: AWX_ISOLATION_SHOW_PATHS
+ # value: "['/tmp', '/mnt/backup']"
+ - name: DEFAULT_PROJECT_UPDATE_TIMEOUT
+ value: 0
+ - name: DEFAULT_INVENTORY_UPDATE_TIMEOUT
+ value: 0
+ - name: DEFAULT_JOB_TIMEOUT
+ value: 0
+ - name: MAX_FORKS
+ value: 200
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_ldap.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_ldap.yml
new file mode 100644
index 000000000..b6d14c45c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_ldap.yml
@@ -0,0 +1,113 @@
+---
+controller_settings:
+ - name: AUTH_LDAP_SERVER_URI
+ value: "ldap://idm.automationiberia.com"
+ - name: AUTH_LDAP_BIND_DN
+ value: "{{ vault_ldap_bind_dn | default('uid=controller-binddn,cn=sysaccounts,cn=etc,dc=automationiberia,dc=com') }}"
+ - name: AUTH_LDAP_BIND_PASSWORD
+ value: "{{ vault_ldap_bind_password | default('password') }}"
+ - name: AUTH_LDAP_START_TLS
+ value: false
+ - name: AUTH_LDAP_USER_DN_TEMPLATE
+ value: ""
+ - name: AUTH_LDAP_CONNECTION_OPTIONS
+ value:
+ OPT_REFERRALS: 0
+ OPT_NETWORK_TIMEOUT: 30
+ - name: AUTH_LDAP_USER_SEARCH
+ value: ["cn=users,cn=accounts,dc=bcnconsulting,dc=com", "SCOPE_SUBTREE", "(uid=%(user)s)"]
+ - name: AUTH_LDAP_USER_DN_TEMPLATE
+ value: ""
+ - name: AUTH_LDAP_USER_ATTR_MAP
+ value: {"first_name": "givenName", "last_name": "sn", "email": "mail"}
+ - name: AUTH_LDAP_GROUP_SEARCH
+ value: ["cn=groups, cn=accounts, dc=bcnconsulting,dc=com", "SCOPE_SUBTREE", "(objectClass=posixgroup)"]
+ - name: AUTH_LDAP_GROUP_TYPE
+ value: "MemberDNGroupType"
+ - name: AUTH_LDAP_GROUP_TYPE_PARAMS
+ value: {"name_attr": "cn", "member_attr": "member"}
+ - name: AUTH_LDAP_REQUIRE_GROUP
+ value: ""
+ - name: AUTH_LDAP_DENY_GROUP
+ value: ""
+ - name: AUTH_LDAP_USER_FLAGS_BY_GROUP
+ value: {"is_superuser": ["cn=controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"], "is_system_auditor": ["cn=team-ldap-auditor,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"]}
+ - name: AUTH_LDAP_ORGANIZATION_MAP
+ value: {
+ "{{ orgs }}": {
+ "admins": "cn=controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove_users": true,
+ "remove_admins": true
+ },
+ "Organization1": {
+ "admins": [
+ "cn=team-ldap-org01-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "users": [
+ "cn=team-ldap-org01-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "cn=team-ldap-org01-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "remove_users": true,
+ "remove_admins": true
+ },
+ "Organization2": {
+ "admins": [
+ "cn=team-ldap-org02-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "users": [
+ "cn=team-ldap-org02-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "cn=team-ldap-org02-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com"
+ ],
+ "remove_users": true,
+ "remove_admins": true
+ }
+ }
+ - name: AUTH_LDAP_TEAM_MAP
+ value: {
+ "ldap-controller-admins": {
+ "organization": "{{ orgs }}",
+ "users": "cn=team-ldap-controller-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-users-cmdb": {
+ "organization": "{{ orgs }}",
+ "users": "cn=team-ldap-cmdb-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-users-crossteam": {
+ "organization": "CrossTeamOrg",
+ "users": "cn=team-ldap-users-crossteam,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-admins": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-users": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org01-devs": {
+ "organization": "Organization1",
+ "users": "cn=team-ldap-org01-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-admins": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-admins,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-users": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-users,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ },
+ "ldap-org02-devs": {
+ "organization": "Organization2",
+ "users": "cn=team-ldap-org02-devs,cn=groups,cn=accounts,dc=bcnconsulting,dc=com",
+ "remove": true
+ }
+ }
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_system.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_system.yml
new file mode 100644
index 000000000..5f9ae2381
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_system.yml
@@ -0,0 +1,18 @@
+---
+controller_settings:
+ # - name: ACTIVITY_STREAM_ENABLED
+ # value: true
+ # - name: ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC
+ # value: false
+ # - name: SESSION_COOKIE_AGE
+ # value: 1800
+ # - name: SESSIONS_PER_USER
+ # value: 10
+ # - name: MANAGE_ORGANIZATION_AUTH
+ # value: true
+ # https://access.redhat.com/solutions/6613291 - External users are not able to create token on Ansible Tower.
+ - name: ALLOW_OAUTH2_FOR_EXTERNAL_USERS
+ value: true
+ - name: ORG_ADMINS_CAN_SEE_ALL_USERS
+ value: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_user_interface.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_user_interface.yml
new file mode 100644
index 000000000..f465d180d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/app-examples/controller_settings_user_interface.yml
@@ -0,0 +1,5 @@
+---
+controller_settings:
+ - name: CUSTOM_LOGIN_INFO
+ value: "This is a custom message provided by Customer - Consulting Barcelona"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/controller_settings.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/controller_settings.yml
new file mode 100644
index 000000000..40aea26d2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_settings.d/controller_settings.yml
@@ -0,0 +1,3 @@
+---
+controller_settings: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org1.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org1.yml
new file mode 100644
index 000000000..fb71e0616
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org1.yml
@@ -0,0 +1,15 @@
+---
+controller_user_accounts:
+ - username: "adminorg1"
+ password: "password"
+ email: "adminorg1@example.com"
+ firstname: "adminorg1"
+ lastname: "adminorg1"
+ is_auditor: false
+ is_superuser: false
+
+ - username: "userorg1"
+ password: "password"
+ email: "userorg1@example.com"
+ is_superuser: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org2.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org2.yml
new file mode 100644
index 000000000..688dfca19
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/app-demo/controller_user_accounts_org2.yml
@@ -0,0 +1,15 @@
+---
+controller_user_accounts:
+ - username: "adminorg2"
+ password: "password"
+ email: "adminorg2@example.com"
+ firstname: "adminorg2"
+ lastname: "adminorg2"
+ is_auditor: false
+ is_superuser: false
+
+ - username: "userorg2"
+ password: "password"
+ email: "userorg2@example.com"
+ is_superuser: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/controller_user_accounts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/controller_user_accounts.yml
new file mode 100644
index 000000000..06dd02b0b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/ExampleOrg/env/prod/controller_users.d/controller_user_accounts.yml
@@ -0,0 +1,11 @@
+---
+controller_user_accounts:
+ - username: "admin"
+ password: "password"
+ email: "admin@example.com"
+ firstname: "admin"
+ lastname: "admin"
+ is_auditor: false
+ is_superuser: true
+ update_secrets: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/dev/configure_connection_controller_credentials.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/dev/configure_connection_controller_credentials.yml
new file mode 100644
index 000000000..efe524d21
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/dev/configure_connection_controller_credentials.yml
@@ -0,0 +1,6 @@
+---
+vault_controller_username: 'admin'
+vault_controller_password: 'password'
+vault_controller_hostname: controller-dev.lab.example.com
+vault_controller_validate_certs: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/prod/configure_connection_controller_credentials.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/prod/configure_connection_controller_credentials.yml
new file mode 100644
index 000000000..aee1768c9
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/orgs_vars/env/prod/configure_connection_controller_credentials.yml
@@ -0,0 +1,6 @@
+---
+vault_controller_username: 'admin'
+vault_controller_password: 'password'
+vault_controller_hostname: controller-prod.lab.example.com
+vault_controller_validate_certs: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/pictures/AAP_CasC_Worflow.png b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/pictures/AAP_CasC_Worflow.png
new file mode 100644
index 000000000..3f9aeb908
Binary files /dev/null and b/collections/ansible_collections/redhat_cop/controller_configuration/tests/automatetheautomation/pictures/AAP_CasC_Worflow.png differ
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_command_cancel_defaults.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_command_cancel_defaults.yml
new file mode 100644
index 000000000..bc22af2f8
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_command_cancel_defaults.yml
@@ -0,0 +1,6 @@
+---
+controller_ad_hoc_command_defaults:
+ fail_if_not_running: false
+ interval: 1
+ timeout: 10
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_commands.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_commands.yml
new file mode 100644
index 000000000..da9b929bb
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ad_hoc_commands.yml
@@ -0,0 +1,7 @@
+---
+controller_ad_hoc_commands:
+ - job_type: run
+ inventory: localhost
+ credential: Demo Credential
+ module_name: ping
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/applications.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/applications.yml
new file mode 100644
index 000000000..9733dc76e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/applications.yml
@@ -0,0 +1,20 @@
+---
+controller_applications:
+ - name: controller_application-app1
+ organization: Satellite
+ authorization_grant_type: password
+ client_type: public
+ - name: controller_application-app2
+ organization: Default
+ authorization_grant_type: authorization-code
+ client_type: confidential
+ description: Another application
+ redirect_uris:
+ - http://tower.com/api/v2/
+ - http://tower.com/api/v2/teams
+ - name: controller_application-app3
+ organization: Default
+ authorization_grant_type: password
+ client_type: confidential
+ skip_authorization: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/controller_auth.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/controller_auth.yml
new file mode 100644
index 000000000..354e3050b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/controller_auth.yml
@@ -0,0 +1,7 @@
+# User may add controller auth creds to this file and encrypt it using `ansible-vault`
+---
+# controller_hostname: ansible-controller-web-svc-test-project.example.com
+controller_username: admin
+controller_password: password
+controller_validate_certs: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_input_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_input_sources.yml
new file mode 100644
index 000000000..d10134445
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_input_sources.yml
@@ -0,0 +1,11 @@
+---
+# Commented out content is serving as example for you to add new content.
+controller_credential_input_sources:
+ - source_credential: cyberark
+ target_credential: gitlab
+ input_field_name: password
+ metadata:
+ object_query: "Safe=MY_SAFE;Object=AWX-user"
+ object_query_format: "Exact"
+ description: Fill the gitlab credential from CyberArk
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_types.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_types.yml
new file mode 100644
index 000000000..e5a6a473c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credential_types.yml
@@ -0,0 +1,25 @@
+---
+controller_credential_types:
+ - name: REST API Credential
+ description: REST API Credential
+ kind: cloud
+ inputs:
+ fields:
+ - id: rest_username
+ type: string
+ label: REST Username
+ - id: rest_password
+ type: string
+ label: REST Password
+ secret: true
+ required:
+ - rest_username
+ - rest_password
+ injectors:
+ env:
+ rest_password_env: "{% raw %}{ { rest_password }}{% endraw %}"
+ rest_username_env: "{% raw %}{ { rest_username }}{% endraw %}"
+ extra_vars:
+ rest_password: "{% raw %}{ { rest_password }}{% endraw %}"
+ rest_username: "{% raw %}{ { rest_username }}{% endraw %}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credentials.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credentials.yml
new file mode 100644
index 000000000..68f173466
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/credentials.yml
@@ -0,0 +1,44 @@
+---
+# Commented out content is serving as example for you to add new content.
+controller_credentials:
+ - credential_type: Red Hat Virtualization
+ name: admin@internal-RHVM-01
+ description: infra-rhvm-01 creds for inventory sources.
+ inputs:
+ host: "https://example.com/ovirt-engine/api"
+ username: "user"
+ password: "password"
+ organization: Satellite
+ - credential_type: Machine
+ organization: Satellite
+ name: machine-creds-with-jenkins-pvt-key
+ description: This credential can be used with any vm that contains jenkins_public key in authorized keys
+ inputs:
+ username: root
+ ssh_key_data: "{{ ssh_private_key }}"
+ - credential_type: Source Control
+ name: gitlab-personal-access-token for satqe_auto_droid
+ description: General purpose token that can be used by anyone for satlab-admin(or other private) repo clone
+ inputs:
+ username: gitlab
+ password: password
+ organization: Satellite
+ - credential_type: Vault
+ name: satlab-admin-vault
+ inputs:
+ vault_password: s3cr3t
+ description: satlab-admin-vault password aka vault_secret
+ organization: Satellite
+ - description: CyberArk Lookup Credential
+ name: "cyberark"
+ credential_type: CyberArk Central Credential Provider Lookup
+ inputs:
+ url: "https://cyberark.example.com"
+ app_id: "My-App-ID"
+ organization: Default
+ - credential_type: Source Control
+ name: gitlab
+ organization: Default
+ inputs:
+ username: username
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/differential_items.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/differential_items.yml
new file mode 100644
index 000000000..3adeff41c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/differential_items.yml
@@ -0,0 +1,144 @@
+---
+differential_items:
+ - name: applications
+ with_present: false
+ differential_test_items:
+ - name: controller_application-app3
+ organization: Default
+ authorization_grant_type: password
+ client_type: confidential
+ skip_authorization: true
+ expected_test_result:
+ - name: controller_application-app2
+ organization: Default
+ state: absent
+ - name: projects
+ with_present: true
+ differential_test_items:
+ - name: Test Project 2
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ description: Test Project 2
+ organization: Default
+ - name: Test Inventory source project
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ description: ansible-examples
+ organization: Default
+ - name: Test Inventory source project with credential
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ description: ansible-examples
+ organization: Default
+ credential: gitlab-personal-access-token for satqe_auto_droid
+ wait: false
+ - name: Test Project
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ scm_branch: master
+ scm_clean: true
+ description: Test Project 1
+ organization: Default
+ expected_test_result:
+ - description: Test Project 2
+ name: Test Project 2
+ organization: Default
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ - description: ansible-examples
+ name: Test Inventory source project
+ organization: Default
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ - credential: gitlab-personal-access-token for satqe_auto_droid
+ description: ansible-examples
+ name: Test Inventory source project with credential
+ organization: Default
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ wait: false
+ - description: Test Project 1
+ name: Test Project
+ organization: Default
+ scm_branch: master
+ scm_clean: true
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ - name: Demo Project
+ organization: Default
+ state: absent
+ - name: credentials
+ with_present: false
+ differential_test_items:
+ - name: "cyberark"
+ credential_type: CyberArk Central Credential Provider Lookup
+ organization: Default
+ expected_test_result:
+ - name: gitlab
+ organization: Default
+ credential_type: "Source Control"
+ state: absent
+ # - name: inventory_sources
+ # with_present: false
+ # differential_test_items:
+ # - name: RHVM-02
+ # organization: Default
+ # inventory: 3
+ # state: absent
+ # expected_test_result:
+ # - name: RHVM-01-Default
+ # organization: Default
+ # inventory: 3
+ # state: absent
+ - name: inventories
+ with_present: false
+ differential_test_items:
+ - name: Demo Inventory
+ organization: Default
+ expected_test_result:
+ - name: satlab-admin-inventory
+ organization: Default
+ state: absent
+ - name: Test Inventory - Smart
+ organization: Default
+ state: absent
+ - name: teams
+ with_present: false
+ differential_test_items:
+ - name: differential-1
+ organization: Default
+ expected_test_result:
+ - name: differential-2
+ organization: Default
+ state: absent
+ - name: notification_templates
+ with_present: false
+ differential_test_items:
+ - name: Email notification
+ organization: Default
+ expected_test_result:
+ - name: Email notification differential
+ organization: Default
+ state: absent
+ - name: job_templates
+ with_present: false
+ differential_test_items:
+ - name: Demo Job Template
+ organization: Default
+ expected_test_result:
+ - name: test-template-1
+ organization: Default
+ state: absent
+ - name: workflow_job_templates
+ with_present: false
+ differential_test_items:
+ - name: Simple workflow schema
+ organization: Default
+ expected_test_result:
+ - name: Simple workflow schema2
+ organization: Default
+ state: absent
+ - name: Simple workflow schema no state defined
+ organization: Default
+ state: absent
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/execution_environments.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/execution_environments.yml
new file mode 100644
index 000000000..26751dd2b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/execution_environments.yml
@@ -0,0 +1,6 @@
+---
+controller_execution_environments:
+ - name: "My EE"
+ image: quay.io/ansible/awx-ee
+ pull: always
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/groups.yml
new file mode 100644
index 000000000..bc0e735c2
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/groups.yml
@@ -0,0 +1,33 @@
+---
+controller_groups:
+ - name: group1
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ - name: group2
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ - name: group3
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ site_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.200.{ % else %}10.100.{ % endif%}{% endraw %}"
+ remote_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.100.{ % else %}10.200.{ % endif%}{% endraw %}"
+ - name: sat_lab_group
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ hosts:
+ - PSQL1
+ - PSQL2
+ - PSQL3
+ children:
+ - group1
+ - group2
+ - group3
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/hosts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/hosts.yml
new file mode 100644
index 000000000..bd9cba6b3
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/hosts.yml
@@ -0,0 +1,25 @@
+---
+controller_hosts:
+ - name: localhost
+ inventory: localhost
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ - name: PSQL1
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ - name: PSQL2
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+ site_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.200.{ % else %}10.100.{ % endif%}{% endraw %}"
+ remote_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.100.{ % else %}10.200.{ % endif%}{% endraw %}"
+ - name: PSQL3
+ inventory: satlab-admin-inventory
+ variables:
+ some_var: some_val
+ ansible_connection: local
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instance_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instance_groups.yml
new file mode 100644
index 000000000..e9efbe31f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instance_groups.yml
@@ -0,0 +1,4 @@
+---
+controller_instance_groups:
+ - name: test_instance_group
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instances.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instances.yml
new file mode 100644
index 000000000..ac562fff6
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/instances.yml
@@ -0,0 +1,5 @@
+---
+# controller_instances:
+# - hostname: my-instance.prod.example.com
+# capacity_adjustment: 0.4
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventories.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventories.yml
new file mode 100644
index 000000000..e520b0c73
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventories.yml
@@ -0,0 +1,25 @@
+---
+# Commented out content is serving as example for you to add new content.
+controller_inventories:
+ - name: localhost
+ description: inventory for localhost
+ organization: Satellite
+ - name: satlab-admin-inventory
+ description: Load inventory from satlab-admin hosts file
+ organization: Default
+ - name: RHVM-01
+ organization: Satellite
+ description: created by Ansible Playbook - for RHVM-01
+ variables:
+ site_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.200.{ % else %}10.100.{ % endif%}{% endraw %}"
+ remote_subnet: "{% raw %}{ % if site == 'SITE-2' %}10.100.{ % else %}10.200.{ % endif%}{% endraw %}"
+ - name: RHVM-02
+ organization: Satellite
+ description: created by Ansible Playbook - for RHVM-02
+ prevent_instance_group_fallback: true
+ - name: Test Inventory - Smart
+ organization: Default
+ description: created by Ansible Playbook
+ kind: smart
+ host_filter: "name__icontains=localhost"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventory_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventory_sources.yml
new file mode 100644
index 000000000..42a684172
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/inventory_sources.yml
@@ -0,0 +1,44 @@
+---
+controller_configuration_inventory_source_update_async_retries: 60
+controller_configuration_inventory_source_update_async_delay: 2
+controller_inventory_sources:
+ - name: RHVM-01
+ source: scm
+ source_project: Test Inventory source project
+ source_path: phillips_hue/hosts
+ inventory: RHVM-01
+ organization: Satellite
+ credential: admin@internal-RHVM-01
+ overwrite: true
+ update_on_launch: true
+ update_cache_timeout: 0
+ wait: true
+ - name: RHVM-02
+ source: scm
+ source_project: Test Project 2
+ source_path: phillips_hue/hosts
+ inventory: satlab-admin-inventory
+ organization: Default
+ credential: admin@internal-RHVM-01
+ overwrite: true
+ update_on_launch: true
+ update_cache_timeout: 0
+ wait: true
+ - name: RHVM-01-Default
+ source: scm
+ source_project: Test Project 2
+ source_path: phillips_hue/hosts
+ inventory: satlab-admin-inventory
+ organization: Default
+ credential: admin@internal-RHVM-01
+ overwrite: true
+ update_on_launch: true
+ update_cache_timeout: 0
+ wait: true
+ - name: RHVM-02
+ inventory: RHVM-01
+ organization: Satellite
+ source: scm
+ state: absent
+ # more options can be provided but for scm source we are using, we need only this much.
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/labels.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/labels.yml
new file mode 100644
index 000000000..5aa4a8430
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/labels.yml
@@ -0,0 +1,11 @@
+---
+controller_labels:
+ - name: Dev
+ organization: Satellite
+ - name: Prod
+ organization: Default
+ - name: differential
+ organization: Default
+ - name: differential2
+ organization: Default
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/launch_jobs.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/launch_jobs.yml
new file mode 100644
index 000000000..5b5bb4598
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/launch_jobs.yml
@@ -0,0 +1,4 @@
+---
+controller_launch_jobs:
+ - name: test-template-1
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/notifications.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/notifications.yml
new file mode 100644
index 000000000..2fad4a240
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/notifications.yml
@@ -0,0 +1,49 @@
+---
+controller_notifications:
+ - name: irc-satqe-chat-notification
+ description: Notify us on job in IRC!
+ organization: Satellite
+ notification_type: irc
+ notification_configuration:
+ use_tls: false
+ use_ssl: false
+ password: '' # this is required even if there's no password
+ port: 6667
+ server: irc.freenode.com
+ nickname: Ansible-Tower-Stage-Bot-01
+ targets:
+ - "#my-channel"
+ messages:
+ success:
+ body: '{"fields": {"project": {"id": "11111"},"summary": "Lab { { job.status
+ }} Ansible Tower { { job.name }}","description": "{ { job.status }} in { {
+ job.name }} { { job.id }} { {url}}","issuetype": {"id": "1"}}}'
+ - name: Email notification
+ description: Send out emails for tower jobs
+ organization: Default
+ notification_type: email
+ notification_configuration:
+ username: '' # this is required even if there's no username
+ sender: tower0@example.com
+ recipients:
+ - admin@example.com
+ use_tls: false
+ host: smtp.example.com
+ use_ssl: false
+ password: '' # this is required even if there's no password
+ port: 25
+ - name: Email notification differential
+ description: Send out emails for tower jobs
+ organization: Default
+ notification_type: email
+ notification_configuration:
+ username: '' # this is required even if there's no username
+ sender: tower0@example.com
+ recipients:
+ - admin@example.com
+ use_tls: false
+ host: smtp.example.com
+ use_ssl: false
+ password: '' # this is required even if there's no password
+ port: 25
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/organizations.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/organizations.yml
new file mode 100644
index 000000000..c65fbfa8e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/organizations.yml
@@ -0,0 +1,5 @@
+---
+controller_organizations:
+ - name: Satellite
+ - name: Default
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/projects.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/projects.yml
new file mode 100644
index 000000000..7a6e6418c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/projects.yml
@@ -0,0 +1,43 @@
+---
+controller_configuration_projects_async_retries: 60
+controller_configuration_projects_async_delay: 3
+controller_projects:
+ - name: Test Project
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ scm_branch: master
+ scm_clean: true
+ description: Test Project 1
+ organization: Default
+ wait: true
+ update_project: true
+ - name: Demo Project
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ scm_branch: master
+ scm_clean: true
+ description: Test Project 1
+ organization: Default
+ wait: true
+ update_project: true
+ - name: Test Project 2
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ description: Test Project 2
+ organization: Default
+ - name: Test Inventory source project
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ description: ansible-examples
+ organization: Satellite
+ - name: Test Inventory source project with credential
+ scm_type: git
+ scm_url: https://github.com/ansible/ansible-examples.git
+ description: ansible-examples
+ organization: Satellite
+ credential: gitlab-personal-access-token for satqe_auto_droid
+ wait: false
+ - name: Test Project 3
+ organization: Default
+ state: absent
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/roles.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/roles.yml
new file mode 100644
index 000000000..24fd1d1df
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/roles.yml
@@ -0,0 +1,27 @@
+---
+controller_roles:
+ - inventory: RHVM-01
+ team: satlab-admin
+ role: admin
+ - inventory: RHVM-02
+ team: satellite-qe
+ role: use
+ - inventory: RHVM-02
+ team: satlab-admin
+ role: admin
+ # - workflow: Test workflow 1
+ # team: satellite-qe
+ # role: execute
+ # - credential: test-vault-creds
+ # team: satellite-qe
+ # role: use
+ - project: Test Project
+ team: satellite-qe
+ role: use
+ - project: Test Project
+ team: satlab-admin
+ role: admin
+ - job_template: test-template-1
+ team: satellite-qe
+ role: execute
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/schedule.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/schedule.yml
new file mode 100644
index 000000000..e2ab685af
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/schedule.yml
@@ -0,0 +1,19 @@
+---
+controller_schedules:
+ - name: Demo Schedule
+ description: A demonstration
+ unified_job_template: test-template-1
+ rrule: "DTSTART:20191219T130551Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1"
+ - name: Demo Schedule 2
+ description: Another demonstration
+ unified_job_template: Demo Job Template
+ rrule: "DTSTART:20200101T000000Z RRULE:FREQ=HOURLY;INTERVAL=3"
+ execution_environment: My EE
+ forks: 2
+ instance_groups:
+ - test_instance_group
+ labels:
+ - differential
+ - differential2
+ timeout: 165
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings.yml
new file mode 100644
index 000000000..e0c5eb4b4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings.yml
@@ -0,0 +1,42 @@
+---
+controller_settings:
+ settings:
+ AUTH_LDAP_BIND_PASSWORD: "password"
+ AWX_TASK_ENV: {'GIT_SSL_NO_VERIFY': 'True'}
+ AUTH_LDAP_SERVER_URI: "ldap://ldap.example.com"
+ AUTH_LDAP_USER_DN_TEMPLATE: "uid=%(user)s,ou=Users,dc=example,dc=com"
+ AUTH_LDAP_GROUP_SEARCH:
+ - dc=example,dc=com
+ - SCOPE_SUBTREE
+ - "(objectClass=person)"
+ AUTH_LDAP_GROUP_TYPE: "GroupOfUniqueNamesType"
+ AUTH_LDAP_USER_SEARCH:
+ - OU=Users,DC=example,DC=com
+ - SCOPE_SUBTREE
+ - "(cn=%(user)s)"
+ AUTH_LDAP_START_TLS: true
+ AUTH_LDAP_GROUP_TYPE_PARAMS: {}
+ AUTH_LDAP_REQUIRE_GROUP: "cn=satellite-qe,ou=adhoc,ou=managedGroups,dc=example,dc=com"
+ # Next name helps fetch Email addr and name from LDAP and save it in tower user.
+ AUTH_LDAP_USER_ATTR_MAP:
+ first_name: displayName
+ last_name: sn
+ email: examplePrimaryMail
+ # Next name helps each sat-qe-infra group to become superuser in tower as soon as they login
+ AUTH_LDAP_USER_FLAGS_BY_GROUP:
+ is_superuser:
+ - cn=sat-qe-infra,ou=adhoc,ou=managedGroups,dc=example,dc=com
+ # This maps all users to satellite-qe org and makes sure they are not part of satlab-admin
+ AUTH_LDAP_ORGANIZATION_MAP:
+ Satellite:
+ users: true
+ # This maps all users to satellite-qe team and we need to add this team to all resources we create for them
+ # that way users can access the things that their team has permissions for
+ AUTH_LDAP_TEAM_MAP:
+ satellite-qe:
+ organization: Satellite
+ users: true
+ satlab-admin:
+ organization: Satellite
+ users: cn=sat-qe-infra,ou=adhoc,ou=managedGroups,dc=example,dc=com
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings_individuale.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings_individuale.yml
new file mode 100644
index 000000000..062ce02bc
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/settings_individuale.yml
@@ -0,0 +1,45 @@
+---
+controller_settings_individuale:
+ - name: AWX_TASK_ENV
+ value: {'GIT_SSL_NO_VERIFY': 'True'}
+ - name: AUTH_LDAP_SERVER_URI
+ value: "ldap://ldap.example.com"
+ - name: AUTH_LDAP_USER_DN_TEMPLATE
+ value: "uid=%(user)s,ou=Users,dc=example,dc=com"
+ - name: AUTH_LDAP_GROUP_SEARCH
+ value: "['dc=example,dc=com', 'SCOPE_SUBTREE', '(objectClass=person)']"
+ - name: AUTH_LDAP_GROUP_TYPE
+ value: "GroupOfUniqueNamesType"
+ - name: AUTH_LDAP_USER_SEARCH
+ value: "['OU=Users,DC=example,DC=com', 'SCOPE_SUBTREE', '(cn=%(user)s)']"
+ - name: AUTH_LDAP_START_TLS
+ value: true
+ - name: AUTH_LDAP_REQUIRE_GROUP
+ value: "cn=satellite-qe,ou=adhoc,ou=managedGroups,dc=example,dc=com"
+ # Next name helps fetch Email addr and name from LDAP and save it in tower user.
+ - name: AUTH_LDAP_USER_ATTR_MAP
+ value: '{"first_name": "displayName","last_name": "sn","email": "examplePrimaryMail"}'
+ # Next name helps each sat-qe-infra group to become superuser in tower as soon as they login
+ - name: AUTH_LDAP_USER_FLAGS_BY_GROUP
+ value: "{u'is_superuser': ['cn=sat-qe-infra,ou=adhoc,ou=managedGroups,dc=example,dc=com']}"
+ # This maps all users to satellite-qe org and makes sure they are not part of satlab-admin
+ - name: AUTH_LDAP_ORGANIZATION_MAP
+ value: '{
+ "Satellite": {
+ "users": true
+ }
+ }'
+ # This maps all users to satellite-qe team and we need to add this team to all resources we create for them
+ # that way users can access the things that their team has permissions for
+ - name: AUTH_LDAP_TEAM_MAP
+ value: '{
+ "satellite-qe": {
+ "organization": "Satellite",
+ "users": true
+ },
+ "satlab-admin": {
+ "organization": "Satellite",
+ "users": "cn=sat-qe-infra,ou=adhoc,ou=managedGroups,dc=example,dc=com"
+ }
+ }'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ssh_private_key.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ssh_private_key.yml
new file mode 100644
index 000000000..a244cfa30
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/ssh_private_key.yml
@@ -0,0 +1,43 @@
+---
+# some sample SSH key
+ssh_private_key: |
+ -----BEGIN OPENSSH PRIVATE KEY-----
+ b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
+ NhAAAAAwEAAQAAAYEAzt/4xDwWLbw1H1yTCmtgwVRiyW/XsFRULMGLhJADpFM4YsCQ10lV
+ qysDRR9pZfUZpo6MZQKVqXZDy2AbA5Mpyepyw19B5tTD44e72NWKN2MiRUrFVxl6IYGAIc
+ cOlfHfBNP/6qndV+4Mp/vtgo2uLvAw6AThTpp49dfIvxlR4/LBw1msRdDIicoXuaM7HN3O
+ /uyVmfyPi8yF25WqFAkRry2qal77sBr6+i//BKjIh+4jifuN2CMW4Sa8xmlfo0YSiNq3AP
+ 96jBNx6atNeN1aEOeShpvfqOABZhLUL8oRGhIgHK5FeIv8w92erq38F6EfXpGbs0rIHm/i
+ 4XYc/k0iSGQIwhEEmF9TmeYj0xfWJnl3PBH4CcsRB/FdHSYFrutmlxBymxOsXg1gT0NErj
+ SdmmGM9KwYocW1UNJAEnL9Qq1oGnpFaw0v5VfQ/YKbAX9SlvC6RKIf+Wn8N18lXX0XjbQl
+ 7r6XwinPIUbfOWUbEDVeprUruUZEAXwO+QE72uwvAAAFuGS7jY9ku42PAAAAB3NzaC1yc2
+ EAAAGBAM7f+MQ8Fi28NR9ckwprYMFUYslv17BUVCzBi4SQA6RTOGLAkNdJVasrA0UfaWX1
+ GaaOjGUClal2Q8tgGwOTKcnqcsNfQebUw+OHu9jVijdjIkVKxVcZeiGBgCHHDpXx3wTT/+
+ qp3VfuDKf77YKNri7wMOgE4U6aePXXyL8ZUePywcNZrEXQyInKF7mjOxzdzv7slZn8j4vM
+ hduVqhQJEa8tqmpe+7Aa+vov/wSoyIfuI4n7jdgjFuEmvMZpX6NGEojatwD/eowTcemrTX
+ jdWhDnkoab36jgAWYS1C/KERoSIByuRXiL/MPdnq6t/BehH16Rm7NKyB5v4uF2HP5NIkhk
+ CMIRBJhfU5nmI9MX1iZ5dzwR+AnLEQfxXR0mBa7rZpcQcpsTrF4NYE9DRK40nZphjPSsGK
+ HFtVDSQBJy/UKtaBp6RWsNL+VX0P2CmwF/UpbwukSiH/lp/DdfJV19F420Je6+l8IpzyFG
+ 3zllGxA1Xqa1K7lGRAF8DvkBO9rsLwAAAAMBAAEAAAGBAKd6Kqqy+kGMXHVHPMLyqyHYby
+ EkqjjWDE8vYQOwk0I1HTDVNG0VsYUhDUSoaWthQaLVRFOCBCds1vWOmFAMk4gjhUUlmPSG
+ yw8ok6q3NW4hk10Faz1YIsd9T34I6IX7idEez8/qNIc68IQOL/nBOYJGcVFkogJAjCx6xM
+ nwdZtUrAi6T/01SSRDt3FR9EkqSKmYXoSLMqq6qKNcRpRxwx9OmOgEfT3UmdpxgMME4VMq
+ Nxs9y1dvENa1xZ3bMNG9p034tOGCFsvombBIEs5MX+GLj4umD+n9k5lj2CJZO3JxD8WSsi
+ jUdpl7KSCcNvQjRTvK0pBbPLn376NVBydTC7H/7OE40DWD3NMZyl4mPKveiQLeOVmsHumm
+ dBKRDIwcAplhOrEMzDqah4v9ahC5tAnXWX6wO9oqk7ISDejb1Qcj2NqlklsbqDL7L2yhM0
+ jhvIWU5UF1PvROQnxu3BQl4cRHgOf6y1b0TSZcceSsKxLTtwmE7t7B08Q6/uYilvWMAQAA
+ AMEAl88yppB7oKGgsHV/Lg+vqukmEBBaBrXRSQbwsCV6XEWkxHq9RZ4ZOOODgQrf0pRhhW
+ 2ieVITMcOgdp6+qGgpx7sAj0ucqvRiw5vy6Q1QCvt/We1N6E6bu3EVfilxDienCi3hF760
+ 7bEl3IKFwS3EUB5mYZwmE9toxb/1YHMV0g8XLaSsJRi6v7hel4mR7hL7e+CjQhU7lDr0mq
+ pfwuaQuSe+l1hVohbH6477+/f29iJF5SPdIBIrlTtl+rhlGxuhAAAAwQD4HCXP5/m8NUu2
+ iBi70A8t0gvYXG86Wp/HBVu+zoVaVB8FUdg48eW57kjkXy14S/mB/yTDHUgtz+iYMcUFQq
+ P8MsP1ndCy0NBgQshxaZk9BIxZoStVEtXPWRGq1BXEkuFDl53aKK4t2cOHFMWvh8GjiSmm
+ +OkEK5DbS6BCrN2pEKnSsWyenqy5ywOhB0PQyLrFwBQv4x5YafK6AaIj00nhTDdSd8Z9Tf
+ JBvslDPR+g4ioLM1MFDQQ0HtHuDBm1rVcAAADBANV0IZYdaFlKDMHzopC+A/LusEHoORP5
+ 0BAd6DL7tf/CUR39C6/5qws9JD9RyA7+Z8vRs1U+utHMjcOIE29++cusVVBv4Eusr+Qk6c
+ epKunxa37Q20JH3J8XsCajT9A13RP+cncTxLb2dWC1LvImgXeP9PQZbVOcs0xFxm/XvE39
+ PsA59iG/tlx6ubbhtcplqOupzYAVKUOtUlD3zBbCP2tbjgiwLnFUH3JSi5x1G442IVIH56
+ nMTklu00V4FMAY6QAAADtra3Vsa2FybkBpYm0tcDgta3ZtLTAzLWZzcC5tZ210LnBuci5s
+ YWIuZW5nLnJkdTIucmVkaGF0LmNvbQECAwQFBg==
+ -----END OPENSSH PRIVATE KEY-----
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/teams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/teams.yml
new file mode 100644
index 000000000..bffe7eb8b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/teams.yml
@@ -0,0 +1,11 @@
+---
+controller_teams:
+ - name: satellite-qe
+ organization: Satellite
+ - name: satlab-admin
+ organization: Satellite
+ - name: differential-1
+ organization: Default
+ - name: differential-2
+ organization: Default
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/templates.yml
new file mode 100644
index 000000000..df1889a05
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/templates.yml
@@ -0,0 +1,78 @@
+---
+# Only Job name, type, project and playbook are required
+# Survey spec can be exported from existing job template querying the API.
+# Find the ID of the job template and use the following URL:
+# https:///api/v2/job_templates//survey_spec/
+controller_templates:
+ - name: test-template-1
+ description: created by Ansible Playbook
+ job_type: run
+ inventory: RHVM-01
+ labels:
+ - Prod
+ credentials: admin@internal-RHVM-01
+ project: Test Project
+ playbook: helloworld.yml
+ verbosity: 2
+ extra_vars:
+ target_hosts: infra-ansible-tower-01.example.com
+ ask_execution_environment_on_launch: true
+ ask_forks_on_launch: true
+ ask_instance_groups_on_launch: true
+ ask_job_slice_count_on_launch: true
+ ask_labels_on_launch: true
+ ask_timeout_on_launch: true
+ prevent_instance_group_fallback: true
+ - name: Demo Job Template
+ project: Test Project
+ job_type: run
+ playbook: helloworld.yml
+ ask_extra_vars: false
+ concurrent_jobs_enabled: false
+ credentials: Demo Credential
+ verbosity: 0
+ inventory: localhost
+ execution_environment: "My EE"
+ ask_inventory_on_launch: true
+ ask_execution_environment_on_launch: true
+ ask_forks_on_launch: true
+ ask_instance_groups_on_launch: true
+ ask_job_slice_count_on_launch: true
+ ask_labels_on_launch: true
+ ask_timeout_on_launch: true
+ prevent_instance_group_fallback: true
+ survey_spec:
+ name: ''
+ description: ''
+ spec:
+ - question_name: Target Host
+ question_description: target host is required for playbook to work, this host
+ needs to exist in the inventory
+ required: true
+ type: text
+ variable: target_hosts
+ min: 0
+ max: 1024
+ default: infra-ansible-tower-testing.infra.sat.rdu2.redhat.com
+ choices: ''
+ new_question: true
+
+# You can retrieve a job along with its survey spec using tower cli as follows:
+# tower-cli receive --job_template --user admin --format yaml
+# If you need to add Survey, Survey spec would look like given below:
+# survey_spec:
+# name: ''
+# description: ''
+# spec:
+# - question_name: Target Host
+# question_description: target host is required for playbook to work, this host
+# needs to exist in the inventory
+# required: true
+# type: text
+# variable: target_hosts
+# min: 0
+# max: 1024
+# default: infra-ansible-tower-testing.infra.sat.rdu2.redhat.com
+# choices: ''
+# new_question: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/user_accounts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/user_accounts.yml
new file mode 100644
index 000000000..f73dad909
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/user_accounts.yml
@@ -0,0 +1,6 @@
+---
+controller_user_accounts:
+ - user: controller_user
+ is_superuser: false
+ password: controller_password
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workflows.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workflows.yml
new file mode 100644
index 000000000..acf4b1eaf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workflows.yml
@@ -0,0 +1,119 @@
+---
+controller_workflows:
+ - name: Simple workflow schema
+ description: a basic workflow
+ extra_vars: {}
+ survey_enabled: false
+ allow_simultaneous: false
+ ask_variables_on_launch: false
+ inventory:
+ state: present
+ limit:
+ job_tags:
+ - stuff
+ - stuff2
+ skip_tags:
+ - stuff3
+ ask_labels_on_launch: true
+ ask_skip_tags_on_launch: true
+ labels:
+ - Prod
+ scm_branch:
+ ask_inventory_on_launch: false
+ ask_scm_branch_on_launch: false
+ ask_limit_on_launch: false
+ organization: Default
+ schedules: []
+ simplified_workflow_nodes:
+ - all_parents_must_converge: false
+ identifier: node101
+ unified_job_template: RHVM-01
+ success_nodes:
+ - node201
+ - all_parents_must_converge: false
+ identifier: node201
+ unified_job_template: test-template-1
+ instance_groups:
+ - default
+ labels:
+ - differential
+ - differential2
+ timeout: 165
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ survey_spec: {}
+ - name: Simple workflow schema2
+ description: a basic workflow
+ extra_vars: {}
+ state: present
+ allow_simultaneous: false
+ ask_variables_on_launch: false
+ inventory:
+ limit:
+ labels:
+ - Prod
+ scm_branch:
+ ask_inventory_on_launch: false
+ ask_scm_branch_on_launch: false
+ ask_limit_on_launch: false
+ organization: Default
+ schedules: []
+ simplified_workflow_nodes:
+ - all_parents_must_converge: false
+ identifier: node101
+ unified_job_template: RHVM-01
+ success_nodes:
+ - node201
+ - all_parents_must_converge: false
+ identifier: node201
+ unified_job_template: test-template-1
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ - name: Simple workflow schema no state defined
+ description: a basic workflow
+ extra_vars: {}
+ survey_enabled: false
+ allow_simultaneous: false
+ ask_variables_on_launch: false
+ inventory:
+ limit:
+ job_tags:
+ - stuff
+ - stuff2
+ skip_tags:
+ - stuff3
+ ask_labels_on_launch: true
+ ask_skip_tags_on_launch: true
+ labels:
+ - Prod
+ scm_branch:
+ ask_inventory_on_launch: false
+ ask_scm_branch_on_launch: false
+ ask_limit_on_launch: false
+ organization: Default
+ schedules: []
+ simplified_workflow_nodes:
+ - all_parents_must_converge: false
+ identifier: node101
+ unified_job_template: RHVM-01
+ success_nodes:
+ - node201
+ - all_parents_must_converge: false
+ identifier: node201
+ unified_job_template: test-template-1
+ instance_groups:
+ - default
+ labels:
+ - differential
+ - differential2
+ timeout: 165
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ survey_spec: {}
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workfows_launch.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workfows_launch.yml
new file mode 100644
index 000000000..614526087
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs/workfows_launch.yml
@@ -0,0 +1,5 @@
+---
+controller_workflow_launch_jobs:
+ - name: Simple workflow schema
+ wait: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/auth.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/auth.yml
new file mode 100644
index 000000000..9aacf357e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/auth.yml
@@ -0,0 +1,7 @@
+# User may add controller auth creds to this file and encrypt it using `ansible-vault`
+---
+# controller_hostname: ansible-tower-web-svc-test-project.example.com
+controller_username: admin
+controller_password: password
+controller_validate_certs: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credential_types_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credential_types_export.yml
new file mode 100644
index 000000000..1d0251009
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credential_types_export.yml
@@ -0,0 +1,29 @@
+---
+controller_credential_types:
+ - name: REST API Credential
+ description: REST API Credential
+ kind: cloud
+ inputs:
+ fields:
+ - id: rest_username
+ type: string
+ label: REST Username
+ - id: rest_password
+ type: string
+ label: REST Password
+ secret: true
+ required:
+ - rest_username
+ - rest_password
+ injectors:
+ env:
+ rest_password_env: "{% raw %}{ { rest_password }}{% endraw %}"
+ rest_username_env: "{% raw %}{ { rest_username }}{% endraw %}"
+ extra_vars:
+ rest_password: "{% raw %}{ { rest_password }}{% endraw %}"
+ rest_username: "{% raw %}{ { rest_username }}{% endraw %}"
+ natural_key:
+ name: REST API Credential
+ kind: cloud
+ type: credential_type
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credentials_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credentials_export.yml
new file mode 100644
index 000000000..0f3e4072b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/credentials_export.yml
@@ -0,0 +1,65 @@
+---
+controller_credentials:
+ - name: AWX-Collection-tests-controller_workflow_job_template-scm-cred
+ description: ''
+ inputs: {}
+ organization:
+ name: Default
+ type: organization
+ credential_type:
+ name: Source Control
+ kind: scm
+ type: credential_type
+ natural_key:
+ organization:
+ name: Default
+ type: organization
+ name: AWX-Collection-tests-controller_workflow_job_template-scm-cred
+ credential_type:
+ name: Source Control
+ kind: scm
+ type: credential_type
+ type: credential
+ - name: Demo Credential
+ description: ''
+ organization: null
+ inputs:
+ username: admin
+ credential_type:
+ name: Machine
+ kind: ssh
+ type: credential_type
+ user:
+ username: admin
+ type: user
+ natural_key:
+ organization: null
+ name: Demo Credential
+ credential_type:
+ name: Machine
+ kind: ssh
+ type: credential_type
+ type: credential
+ - name: Demo Custom Credential
+ credential_type:
+ kind: cloud
+ name: 'REST API Credential'
+ type: credential_type
+ description: ''
+ inputs:
+ rest_username: admin
+ rest_password: ''
+ natural_key:
+ credential_type:
+ kind: cloud
+ name: 'REST API Credential'
+ type: credential_type
+ name: 'REST API Credential'
+ organization:
+ name: Default
+ type: organization
+ type: credential
+ organization:
+ name: Default
+ type: organization
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_export.yml
new file mode 100644
index 000000000..833b94bbf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_export.yml
@@ -0,0 +1,42 @@
+---
+controller_inventories:
+ - name: 2nd Testing Inventory
+ description: ''
+ kind: ''
+ host_filter: null
+ organization:
+ name: Satellite
+ type: organization
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: 2nd Testing Inventory
+ type: inventory
+ - name: Testing Inventory
+ description: ''
+ kind: ''
+ host_filter: null
+ organization:
+ name: Satellite
+ type: organization
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: Testing Inventory
+ type: inventory
+ - name: satlab-admin-inventory
+ description: Load inventory from satlab-admin hosts file
+ kind: ''
+ host_filter: null
+ organization:
+ name: Default
+ type: organization
+ natural_key:
+ organization:
+ name: Default
+ type: organization
+ name: satlab-admin-inventory
+ type: inventory
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_sources_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_sources_export.yml
new file mode 100644
index 000000000..88a9fd423
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/inventory_sources_export.yml
@@ -0,0 +1,44 @@
+---
+controller_inventory_sources:
+ - name: test
+ description: ''
+ source: scm
+ source_path: /test.yml
+ source_regions: ''
+ instance_filters: ''
+ group_by: ''
+ overwrite: false
+ overwrite_vars: false
+ custom_virtualenv: null
+ timeout: 0
+ verbosity: 1
+ update_on_launch: false
+ update_cache_timeout: 0
+ inventory:
+ organization:
+ name: Default
+ type: organization
+ name: satlab-admin-inventory
+ type: inventory
+ source_project:
+ organization:
+ name: Default
+ type: organization
+ name: Test Project
+ type: project
+ related:
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ credentials: []
+ natural_key:
+ name: test
+ inventory:
+ organization:
+ name: Default
+ type: organization
+ name: satlab-admin-inventory
+ type: inventory
+ type: inventory_source
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/job_templates_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/job_templates_export.yml
new file mode 100644
index 000000000..06c2a407a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/job_templates_export.yml
@@ -0,0 +1,258 @@
+---
+controller_templates:
+ - name: No Survey Template no vars
+ description: ''
+ job_type: run
+ playbook: helloworld.yml
+ scm_branch: ''
+ forks: 0
+ limit: ''
+ verbosity: 0
+ extra_vars: '{"empty_var": "nothing"}'
+ job_tags: ''
+ force_handlers: false
+ skip_tags: ''
+ start_at_task: ''
+ timeout: 0
+ use_fact_cache: false
+ host_config_key: ''
+ ask_scm_branch_on_launch: false
+ ask_diff_mode_on_launch: false
+ ask_variables_on_launch: false
+ ask_limit_on_launch: false
+ ask_tags_on_launch: false
+ ask_skip_tags_on_launch: false
+ ask_job_type_on_launch: false
+ ask_verbosity_on_launch: false
+ ask_inventory_on_launch: false
+ ask_credential_on_launch: false
+ survey_enabled: false
+ become_enabled: false
+ diff_mode: false
+ allow_simultaneous: false
+ custom_virtualenv: null
+ job_slice_count: 1
+ webhook_service: ''
+ inventory:
+ organization:
+ name: Satellite
+ type: organization
+ name: Testing Inventory
+ type: inventory
+ project:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config
+ type: project
+ related:
+ labels: []
+ credentials:
+ - organization: null
+ name: Demo Credential
+ credential_type:
+ name: Machine
+ kind: ssh
+ type: credential_type
+ type: credential
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - organization:
+ name: Satellite
+ type: organization
+ name: irc-satqe-chat-notification
+ type: notification_template
+ survey_spec: {}
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: No Survey Template no vars
+ type: job_template
+ - name: Survey Template with vars no org
+ description: ''
+ job_type: run
+ playbook: helloworld.yml
+ scm_branch: ''
+ forks: 0
+ limit: ''
+ verbosity: 0
+ extra_vars: '{"example_a": "127.0.0.1", "example_b": "text"}'
+ job_tags: ''
+ force_handlers: false
+ skip_tags: ''
+ start_at_task: ''
+ timeout: 0
+ use_fact_cache: false
+ host_config_key: ''
+ ask_scm_branch_on_launch: false
+ ask_diff_mode_on_launch: false
+ ask_variables_on_launch: false
+ ask_limit_on_launch: false
+ ask_tags_on_launch: false
+ ask_skip_tags_on_launch: false
+ ask_job_type_on_launch: false
+ ask_verbosity_on_launch: false
+ ask_inventory_on_launch: false
+ ask_credential_on_launch: false
+ survey_enabled: true
+ become_enabled: false
+ diff_mode: false
+ allow_simultaneous: false
+ custom_virtualenv: null
+ job_slice_count: 1
+ webhook_service: ''
+ inventory:
+ organization:
+ name: Satellite
+ type: organization
+ name: Testing Inventory
+ type: inventory
+ project:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config Testing
+ type: project
+ related:
+ labels:
+ - name: Prod
+ organization:
+ name: Default
+ type: organization
+ credentials:
+ - organization: null
+ name: Demo Credential
+ credential_type:
+ name: Machine
+ kind: ssh
+ type: credential_type
+ type: credential
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - organization:
+ name: Satellite
+ type: organization
+ name: irc-satqe-chat-notification
+ type: notification_template
+ survey_spec:
+ name: Basic Survey
+ description: Basic Survey
+ spec:
+ - question_description: Name
+ min: 0
+ default: ''
+ max: 128
+ required: true
+ choices: ''
+ new_question: true
+ variable: basic_name
+ question_name: Basic Name
+ type: text
+ - question_description: Choosing yes or no.
+ min: 0
+ default: 'yes'
+ max: 0
+ required: true
+ choices: |-
+ yes
+ no
+ new_question: true
+ variable: option_true_false
+ question_name: Choose yes or no?
+ type: multiplechoice
+ - question_description: ''
+ min: 0
+ default: ''
+ max: 0
+ required: true
+ choices: |-
+ group1
+ group2
+ group3
+ new_question: true
+ variable: target_groups
+ question_name: 'Select Group:'
+ type: multiselect
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: Survey Template with vars no org
+ type: job_template
+ - name: workflow_test_template
+ description: ''
+ job_type: run
+ playbook: helloworld.yml
+ scm_branch: ''
+ forks: 0
+ limit: ''
+ verbosity: 0
+ extra_vars: '{"empty_var": "nothing"}'
+ job_tags: ''
+ force_handlers: false
+ skip_tags: ''
+ start_at_task: ''
+ timeout: 0
+ use_fact_cache: false
+ host_config_key: ''
+ ask_scm_branch_on_launch: false
+ ask_diff_mode_on_launch: true
+ ask_variables_on_launch: false
+ ask_limit_on_launch: true
+ ask_tags_on_launch: true
+ ask_skip_tags_on_launch: true
+ ask_job_type_on_launch: true
+ ask_verbosity_on_launch: true
+ ask_inventory_on_launch: true
+ ask_credential_on_launch: true
+ survey_enabled: false
+ become_enabled: false
+ diff_mode: false
+ allow_simultaneous: false
+ custom_virtualenv: null
+ job_slice_count: 1
+ webhook_service: ''
+ inventory:
+ organization:
+ name: Satellite
+ type: organization
+ name: Testing Inventory
+ type: inventory
+ project:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config
+ type: project
+ related:
+ labels: []
+ credentials:
+ - organization: null
+ name: Demo Credential
+ credential_type:
+ name: Machine
+ kind: ssh
+ type: credential_type
+ type: credential
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - organization:
+ name: Satellite
+ type: organization
+ name: irc-satqe-chat-notification
+ type: notification_template
+ survey_spec: {}
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: workflow_test_template
+ type: job_template
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/notifications_templates_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/notifications_templates_export.yml
new file mode 100644
index 000000000..7a79302bd
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/notifications_templates_export.yml
@@ -0,0 +1,45 @@
+---
+controller_notifications:
+ - name: Email notification
+ description: Send out emails for tower jobs
+ notification_type: email
+ notification_configuration:
+ username: ''
+ sender: tower0@example.com
+ recipients:
+ - admin@example.com
+ use_tls: false
+ host: smtp.example.com
+ use_ssl: false
+ password: ''
+ port: 25
+ timeout: 30
+ messages:
+ started: null
+ success: null
+ error: null
+ workflow_approval: null
+ organization:
+ name: Satellite
+ type: organization
+ - name: irc-satqe-chat-notification
+ description: Notify us on job in IRC!
+ notification_type: irc
+ notification_configuration:
+ use_tls: false
+ use_ssl: false
+ password: ''
+ port: 6667
+ server: irc.freenode.com
+ nickname: Ansible-Tower-Stage-Bot-01
+ targets:
+ - '#my-channel'
+ messages:
+ started: null
+ success: null
+ error: null
+ workflow_approval: null
+ organization:
+ name: Satellite
+ type: organization
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/organizations_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/organizations_export.yml
new file mode 100644
index 000000000..dc85ca647
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/organizations_export.yml
@@ -0,0 +1,22 @@
+---
+controller_organizations:
+ - name: Satellite
+ description: Satellite
+ max_hosts: 0
+ custom_virtualenv: null
+ related:
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - name: irc-satqe-chat-notification
+ notification_templates_approvals: []
+ - name: Default
+ description: Default
+ max_hosts: 0
+ custom_virtualenv: null
+ related:
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/projects_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/projects_export.yml
new file mode 100644
index 000000000..3ad161db1
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/projects_export.yml
@@ -0,0 +1,82 @@
+---
+controller_configuration_projects_async_retries: 60
+controller_configuration_projects_async_delay: 2
+controller_projects:
+ - name: Tower Config Testing
+ description: ''
+ local_path: _48__controller_config_testing
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ scm_branch: master
+ scm_refspec: ''
+ scm_clean: false
+ scm_delete_on_update: false
+ timeout: 0
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 0
+ allow_override: false
+ credential:
+ credential_type:
+ kind: scm
+ name: Source Control
+ type: credential_type
+ name: AWX-Collection-tests-controller_workflow_job_template-scm-cred
+ organization:
+ name: Default
+ type: organization
+ type: credential
+ custom_virtualenv:
+ organization:
+ name: Satellite
+ type: organization
+ related:
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - organization:
+ name: Satellite
+ type: organization
+ name: irc-satqe-chat-notification
+ type: notification_template
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config Testing
+ type: project
+ - name: Tower Config
+ description: ''
+ local_path: _52__controller_config
+ scm_type: git
+ scm_url: https://github.com/ansible/tower-example.git
+ scm_branch: master
+ scm_refspec: ''
+ scm_clean: false
+ scm_delete_on_update: false
+ timeout: 0
+ wait: true
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 0
+ allow_override: false
+ custom_virtualenv:
+ organization:
+ name: Satellite
+ type: organization
+ related:
+ schedules: []
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error:
+ - organization:
+ name: Satellite
+ type: organization
+ name: irc-satqe-chat-notification
+ type: notification_template
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config
+ type: project
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/teams_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/teams_export.yml
new file mode 100644
index 000000000..46271cd5e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/teams_export.yml
@@ -0,0 +1,110 @@
+---
+controller_teams:
+ - name: team1
+ description: ''
+ organization:
+ name: Satellite
+ type: organization
+ related:
+ roles:
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Survey Template with vars no org
+ type: job_template
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: No Survey Template no vars
+ type: job_template
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: workflow_test_template
+ type: job_template
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config Testing
+ type: project
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Tower Config
+ type: project
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Complicated Schema Workflow
+ type: workflow_job_template
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: gitlab
+ credential_type:
+ name: Source Control
+ kind: scm
+ type: credential_type
+ type: credential
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: 2nd Testing Inventory
+ type: inventory
+ - name: Admin
+ type: role
+ content_object:
+ organization:
+ name: Satellite
+ type: organization
+ name: Testing Inventory
+ type: inventory
+ - name: Project Admin
+ type: role
+ content_object:
+ name: Satellite
+ type: organization
+ - name: Project Admin
+ type: role
+ content_object:
+ name: Satellite
+ type: organization
+ natural_key:
+ organization:
+ name: Satellite
+ type: organization
+ name: team1
+ type: team
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/users_export.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/users_export.yml
new file mode 100644
index 000000000..71e31ab76
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/users_export.yml
@@ -0,0 +1,35 @@
+---
+controller_user_accounts:
+ - username: AWX-Collection-tests-controller_role-user
+ first_name: Joe
+ last_name: User
+ email: joe@example.org
+ is_superuser: false
+ is_system_auditor: false
+ password: controller_password
+ related:
+ roles:
+ - name: Execute
+ type: role
+ content_object:
+ organization:
+ name: Default
+ type: organization
+ name: test-role-workflow
+ type: workflow_job_template
+ natural_key:
+ username: AWX-Collection-tests-controller_role-user
+ type: user
+ - username: AWX-Collection-tests-controller_role-user-ClPzjxrRTIwcOCvO
+ first_name: Joe
+ last_name: User
+ email: joe@example.org
+ is_superuser: false
+ is_system_auditor: false
+ password: controller_password
+ related:
+ roles: []
+ natural_key:
+ username: AWX-Collection-tests-controller_role-user-ClPzjxrRTIwcOCvO
+ type: user
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/workflows.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/workflows.yml
new file mode 100644
index 000000000..2ad0680d9
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configs_export_model/workflows.yml
@@ -0,0 +1,360 @@
+---
+controller_workflows:
+ - name: Complicated workflow schema
+ description: a complicated workflow
+ extra_vars: {}
+ state: present
+ survey_enabled: true
+ allow_simultaneous: false
+ ask_variables_on_launch: false
+ limit:
+ scm_branch:
+ ask_inventory_on_launch: false
+ ask_scm_branch_on_launch: false
+ ask_limit_on_launch: false
+ organization:
+ name: Default
+ type: organization
+ related:
+ schedules: []
+ labels:
+ - name: Prod
+ organization:
+ name: Default
+ type: organization
+ workflow_nodes:
+ - all_parents_must_converge: false
+ identifier: d9779889-cfdb-4a8c-8a11-1f54acf84aca
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ name: RHVM-01
+ inventory:
+ organization:
+ name: Satellite
+ type: organization
+ name: RHVM-01
+ type: inventory
+ type: inventory_source
+ related:
+ credentials: []
+ success_nodes:
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ type: workflow_job_template_node
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: ca7ffc3b-8401-4153-83bf-bb3dd918ca87
+ type: workflow_job_template_node
+ failure_nodes: []
+ always_nodes: []
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: d9779889-cfdb-4a8c-8a11-1f54acf84aca
+ type: workflow_job_template_node
+ - all_parents_must_converge: false
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ organization:
+ name: Satellite
+ type: organization
+ name: workflow_test_template
+ type: job_template
+ related:
+ credentials: []
+ success_nodes: []
+ failure_nodes:
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: 28910097-e606-4252-8aa9-2c1a0b8b6c92
+ type: workflow_job_template_node
+ always_nodes:
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: 046378e5-ff53-4168-afc2-a82d87327099
+ type: workflow_job_template_node
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ type: workflow_job_template_node
+ - all_parents_must_converge: false
+ identifier: 28910097-e606-4252-8aa9-2c1a0b8b6c92
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ organization:
+ name: Satellite
+ type: organization
+ name: workflow_test_template
+ type: job_template
+ related:
+ credentials: []
+ success_nodes: []
+ failure_nodes: []
+ always_nodes: []
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: 28910097-e606-4252-8aa9-2c1a0b8b6c92
+ type: workflow_job_template_node
+ - all_parents_must_converge: true
+ identifier: ca7ffc3b-8401-4153-83bf-bb3dd918ca87
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Demo Job Template
+ type: job_template
+ related:
+ credentials: []
+ success_nodes: []
+ failure_nodes: []
+ always_nodes: []
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: ca7ffc3b-8401-4153-83bf-bb3dd918ca87
+ type: workflow_job_template_node
+ - all_parents_must_converge: false
+ identifier: 046378e5-ff53-4168-afc2-a82d87327099
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Demo Job Template
+ type: job_template
+ related:
+ credentials: []
+ success_nodes: []
+ failure_nodes: []
+ always_nodes:
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: ca7ffc3b-8401-4153-83bf-bb3dd918ca87
+ type: workflow_job_template_node
+ - identifier: node401
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ identifier: 046378e5-ff53-4168-afc2-a82d87327099
+ type: workflow_job_template_node
+ - identifier: node401
+ unified_job_template:
+ name: Approval to Continue
+ description: Approve this to continue
+ timeout: 900
+ type: workflow_approval
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ survey_spec:
+ name: ''
+ description: ''
+ spec:
+ - question_name: Basic Name
+ question_description: Name
+ required: true
+ type: text
+ variable: basic_name
+ min: 0
+ max: 1024
+ default: ''
+ choices: ''
+ new_question: true
+ - question_name: Choose yes or no?
+ question_description: Choosing yes or no.
+ required: false
+ type: multiplechoice
+ variable: option_true_false
+ min:
+ max:
+ default: 'yes'
+ choices: |-
+ yes
+ no
+ new_question: true
+ - question_name: 'Select Group:'
+ question_description: ''
+ required: true
+ type: multiplechoice
+ variable: target_groups
+ min:
+ max:
+ default: ''
+ choices: |-
+ group1
+ group2
+ group3
+ new_question: true
+ natural_key:
+ organization:
+ name: Default
+ type: organization
+ name: Complicated workflow schema
+ type: workflow_job_template
+ - name: Simple workflow schema
+ description: a basic workflow
+ extra_vars: {}
+ survey_enabled: false
+ state: present
+ allow_simultaneous: false
+ ask_variables_on_launch: false
+ ask_inventory_on_launch: false
+ ask_scm_branch_on_launch: false
+ ask_limit_on_launch: false
+ organization:
+ name: Default
+ type: organization
+ related:
+ schedules: []
+ labels: []
+ workflow_nodes:
+ - all_parents_must_converge: false
+ identifier: d9779889-cfdb-4a8c-8a11-1f54acf84aca
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ name: RHVM-01
+ inventory:
+ organization:
+ name: Satellite
+ type: organization
+ name: RHVM-01
+ type: inventory
+ type: inventory_source
+ related:
+ credentials: []
+ success_nodes:
+ - workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ type: workflow_job_template_node
+ failure_nodes: []
+ always_nodes: []
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ identifier: d9779889-cfdb-4a8c-8a11-1f54acf84aca
+ type: workflow_job_template_node
+ - all_parents_must_converge: false
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ unified_job_template:
+ organization:
+ name: Satellite
+ type: organization
+ name: workflow_test_template
+ type: job_template
+ related:
+ credentials: []
+ success_nodes: []
+ failure_nodes: []
+ always_nodes: []
+ natural_key:
+ workflow_job_template:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+ identifier: f82f1c5f-c3b5-4bc4-9e1a-d8cd1ab44c44
+ type: workflow_job_template_node
+ notification_templates_started: []
+ notification_templates_success: []
+ notification_templates_error: []
+ notification_templates_approvals: []
+ survey_spec: {}
+ natural_key:
+ organization:
+ name: Default
+ type: organization
+ name: Simple workflow schema
+ type: workflow_job_template
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller.yml
new file mode 100644
index 000000000..efd00eea6
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller.yml
@@ -0,0 +1,178 @@
+---
+- name: Playbook to configure ansible Controller post installation
+ hosts: localhost
+ connection: local
+ vars:
+ controller_validate_certs: false
+ controller_configuration_secure_logging: false
+ # Define following vars here, or in configs/controller_auth.yml
+ # controller_hostname: controller.example.com
+ # controller_username: admin
+ # controller_password: changeme
+ collections:
+ - awx.awx
+ - infra.controller_configuration
+
+ pre_tasks:
+
+ - name: "Determine collection (block)"
+ block:
+ - name: "Check if the collection ansible.controller is installed"
+ ansible.builtin.set_fact:
+ ansible_controller_collection_installed: "{{ lookup('ansible.builtin.pipe', 'ansible-galaxy collection list | grep -i ansible.controller || echo NOTINSTALLED') }}"
+ failed_when: ansible_controller_collection_installed is match('NOTINSTALLED')
+ rescue:
+ - name: "Check if the collection awx.awx is installed"
+ ansible.builtin.set_fact:
+ awx_awx_collection_installed: "{{ lookup('ansible.builtin.pipe', 'ansible-galaxy collection list | grep -i awx.awx || echo NOTINSTALLED') }}"
+ failed_when: awx_awx_collection_installed is match('NOTINSTALLED')
+ always:
+ - name: "Set the collection providing the controller_api lookup plugin"
+ ansible.builtin.set_fact:
+ controller_api_plugin: "{{ ('ansible.controller.controller_api' if ansible_controller_collection_installed is defined) | default('awx.awx.controller_api' if awx_awx_collection_installed is defined) | default('NONE') }}"
+ - name: "Fail if no collection is detected"
+ ansible.builtin.fail:
+ msg: "One of the following collections is required to be installed: 'ansible.controller' or 'awx.awx'."
+ when: controller_api_plugin is match('NONE')
+ - name: "Show the plugin we are using"
+ ansible.builtin.debug:
+ msg: "Using the 'controller_api' plugin from: {{ controller_api_plugin }}"
+
+ - name: Include vars from configs directory
+ ansible.builtin.include_vars:
+ dir: ./configs
+ ignore_files: [controller_config.yml.template]
+ extensions: ["yml"]
+ tags:
+ - always
+
+ - name: Wait for Controller to come up
+ ansible.builtin.uri:
+ url: "https://{{ controller_hostname }}/api/v2/ping"
+ status_code: 200
+ validate_certs: "{{ controller_validate_certs }}"
+ register: result
+ until: result.status == 200
+ retries: 10
+ delay: 30
+ ignore_errors: true
+
+ - name: Wait for the controller node to be up
+ ansible.builtin.uri:
+ url: "https://{{ controller_hostname }}/api/v2/mesh_visualizer/"
+ user: "{{ controller_username }}"
+ password: "{{ controller_password }}"
+ method: GET
+ validate_certs: false
+ force_basic_auth: true
+ status_code: 200
+ body_format: json
+ register: mesh_data
+ until: mesh_data.json is defined
+ retries: 80
+ delay: 5
+
+ - name: "Show result of mesh_visualizer"
+ ansible.builtin.debug:
+ var: mesh_data
+
+ - name: Sleep for 60 seconds and allow awx to come up.
+ ansible.builtin.wait_for:
+ timeout: 60
+ delegate_to: localhost
+
+ roles:
+ - dispatch # The dispatch role calls all of the other roles.
+
+ tasks:
+
+ - name: Add Controller Settings Individually
+ ansible.builtin.include_role:
+ name: settings
+ vars:
+ controller_settings: "{{ controller_settings_individuale }}"
+
+ - name: Run ad hoc commands
+ ansible.builtin.include_role:
+ name: ad_hoc_command
+ when: controller_ad_hoc_commands is defined
+
+ - name: Cancel Ad hoc commands
+ ansible.builtin.include_tasks: "./tasks/ad_hoc_cancel.yml"
+ when: controller_ad_hoc_commands is defined
+
+ - name: Launch Controller Jobs
+ ansible.builtin.include_role:
+ name: job_launch
+ when: controller_launch_jobs is defined
+
+ - name: Show launched Controller jobs
+ ansible.builtin.debug:
+ var: launched_controller_jobs
+
+ - name: Combine id output with defaults temp
+ ansible.builtin.set_fact:
+ tmp_job: "{{ {'id': item.id} }}"
+ with_items: "{{ launched_controller_jobs.results }}"
+ register: tmp_jobs
+
+ - name: Cancel Controller Jobs
+ ansible.builtin.include_role:
+ name: jobs_cancel
+ vars:
+ controller_cancel_jobs: "{{ tmp_jobs.results | map(attribute='ansible_facts.tmp_job') | list }}"
+ when: launched_controller_jobs is defined
+
+ - name: Launch Controller workflows
+ ansible.builtin.include_role:
+ name: workflow_launch
+ when: controller_workflow_launch_jobs is defined
+
+ - name: Launched Workflows
+ ansible.builtin.debug:
+ var: launched_controller_workflows
+
+ - name: Wait for workflow to finish
+ job_wait:
+ job_id: "{{ launched_controller_workflows.results[0].id }}"
+ job_type: workflow_jobs
+ timeout: 180
+ controller_username: "{{ controller_username }}"
+ controller_password: "{{ controller_password }}"
+ controller_host: "{{ controller_hostname }}"
+ validate_certs: "{{ controller_validate_certs }}"
+ ignore_errors: true ## noqa ignore-errors
+
+ - name: Get the organization ID
+ ansible.builtin.set_fact:
+ controller_organization_id: "{{ lookup(controller_api_plugin, 'organizations', query_params={'name': 'Default'}, host=controller_hostname, username=controller_username, password=controller_password, verify_ssl=false) }}"
+
+ - name: "Set empty lists for testing"
+ ansible.builtin.set_fact:
+ controller_api_results: []
+ differential_test_items: []
+
+ - name: "Error out on empty list"
+ ansible.builtin.set_fact:
+ error_empty_diff: "{{ lookup('controller_object_diff', api_list=controller_api_results, compare_list=differential_test_items, warn_on_empty_api=false) }}"
+ ignore_errors: true
+ register: error_results
+
+ - name: "Warn out on empty list"
+ ansible.builtin.set_fact:
+ warn_empty_diff: "{{ lookup('controller_object_diff', api_list=controller_api_results, compare_list=differential_test_items) }}"
+ register: warn_results
+
+ - name: "Assert that the empty list error correctly"
+ ansible.builtin.assert:
+ that:
+ - error_empty_diff is not defined
+ - warn_empty_diff | length == 0
+ - "'Unable to find items in api_list' in error_results.msg"
+
+ - name: Differential Testing
+ ansible.builtin.include_tasks: "./tasks/differential.yml"
+ loop: "{{ differential_items }}"
+ loop_control:
+ loop_var: differential_item
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller_export_model.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller_export_model.yml
new file mode 100644
index 000000000..ce881e141
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/configure_controller_export_model.yml
@@ -0,0 +1,75 @@
+---
+- name: Playbook to configure ansible controller post installation
+ hosts: localhost
+ connection: local
+ vars:
+ workflow_job_templates_secure_logging: false
+ controller_validate_certs: false
+ collections:
+ - awx.awx
+ - infra.controller_configuration
+ # Define following vars here, or in configs/controller_auth.yml
+ # controller_hostname: controller.example.com
+ # controller_username: admin
+ # controller_password: changeme
+ pre_tasks:
+
+ - name: "Determine collection (block)"
+ block:
+ - name: "Check if the collection ansible.controller is installed"
+ ansible.builtin.set_fact:
+ ansible_controller_collection_installed: "{{ lookup('ansible.builtin.pipe', 'ansible-galaxy collection list | grep -i ansible.controller || echo NOTINSTALLED') }}"
+ failed_when: ansible_controller_collection_installed is match('NOTINSTALLED')
+ rescue:
+ - name: "Check if the collection awx.awx is installed"
+ ansible.builtin.set_fact:
+ awx_awx_collection_installed: "{{ lookup('ansible.builtin.pipe', 'ansible-galaxy collection list | grep -i awx.awx || echo NOTINSTALLED') }}"
+ failed_when: awx_awx_collection_installed is match('NOTINSTALLED')
+ always:
+ - name: "Set the collection providing the controller_api lookup plugin"
+ ansible.builtin.set_fact:
+ controller_api_plugin: "{{ ('ansible.controller.controller_api' if ansible_controller_collection_installed is defined) | default('awx.awx.controller_api' if awx_awx_collection_installed is defined) | default('NONE') }}"
+ - name: "Fail if no collection is detected"
+ ansible.builtin.fail:
+ msg: "One of the following collections is required to be installed: 'ansible.controller' or 'awx.awx'."
+ when: controller_api_plugin is match('NONE')
+ - name: "Show the plugin we are using"
+ ansible.builtin.debug:
+ msg: "Using the 'controller_api' plugin from: {{ controller_api_plugin }}"
+
+ - name: Include vars from controller_configs directory
+ ansible.builtin.include_vars:
+ dir: ./configs_export_model
+ ignore_files: [README.md]
+ extensions: ["yml"]
+
+ - name: Wait for the controller to be up
+ ansible.builtin.uri:
+ url: "https://{{ controller_hostname }}/api/v2/mesh_visualizer/"
+ user: "{{ controller_username }}"
+ password: "{{ controller_password }}"
+ method: GET
+ validate_certs: false
+ force_basic_auth: true
+ status_code: 200
+ body_format: json
+ register: mesh_data
+ until: mesh_data.json is defined
+ retries: 120
+ delay: 5
+
+
+ roles:
+ - {role: organizations, when: controller_organizations is defined, tags: organizations}
+ - {role: users, when: controller_user_accounts is defined, tags: users}
+ - {role: teams, when: controller_teams is defined, tags: teams}
+ - {role: credential_types, when: controller_credential_types is defined, tags: credential_types}
+ - {role: credentials, when: controller_credentials is defined, tags: credentials}
+ - {role: inventories, when: controller_inventories is defined, tags: inventories}
+ - {role: inventory_sources, when: controller_inventory_sources is defined, tags: inventory_sources}
+ - {role: projects, when: controller_projects is defined, tags: projects}
+ - {role: project_update, when: controller_projects is defined, tags: projects}
+ - {role: job_templates, when: controller_templates is defined, tags: job_templates}
+ - {role: workflow_job_templates, when: controller_workflows is defined, tags: workflow_job_templates}
+ - {role: notification_templates, when: controller_notifications is defined, tags: notification_templates}
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/README.md b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/README.md
new file mode 100644
index 000000000..31de12208
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/README.md
@@ -0,0 +1,139 @@
+# controller_configuration.configure_controller.yml playbook
+
+## Description
+
+An Ansible playbook to run any defined configurations on Ansible Controller.
+
+## Requirements
+
+ansible-galaxy collection install -r tests/collections/requirements.yml to be installed
+Currently:
+ awx.awx
+ or
+ ansible.controller
+
+## Usage
+
+The following command will invoke the playbook with the ansible.controller collection
+
+```console
+ansible-playbook infra.controller_configuration.configure_controller.yml
+```
+
+## Examples
+
+Examples of the playbooks in use can be found in the examples folder.
+
+## Variables
+
+### Standard Controller Variables
+
+|Variable Name|Default Value|Required|Description|Example|
+|:---|:---:|:---:|:---|:---|
+|`controller_state`|"present"|no|The state all objects will take unless overriden by object default|'absent'|
+|`controller_hostname`|""|yes|URL to the Ansible Controller Server.|127.0.0.1|
+|`controller_validate_certs`|`True`|no|Whether or not to validate the Ansible Controller Server's SSL certificate.||
+|`controller_username`|""|yes|Admin User on the Ansible Controller Server.||
+|`controller_password`|""|yes|Controller Admin User's password on the Ansible Controller Server. This should be stored in an Ansible Vault at vars/controller-secrets.yml or elsewhere and called from a parent playbook.||
+|`controller_oauthtoken`|""|yes|Controller Admin User's token on the Ansible Controller Server. This should be stored in an Ansible Vault at or elsewhere and called from a parent playbook.||
+|`controller_configs_dir`|`see role`|no|.|Directory with Controller configs. Falls back to env CONTROLLER_CONFIGS_DIR. Defaults to $PWD/configs|
+
+### Secure Logging Variables
+
+The following Variables compliment each other.
+If Both variables are not set, secure logging defaults to false.
+The role defaults to False as normally the add ad hoc commands task does not include sensitive information.
+controller_configuration_ad_hoc_command_secure_logging defaults to the value of controller_configuration_secure_logging if it is not explicitly called. This allows for secure logging to be toggled for the entire suite of controller configuration roles with a single variable, or for the user to selectively use it.
+
+|Variable Name|Default Value|Required|Description|
+|:---:|:---:|:---:|:---:|
+|`controller_configuration_secure_logging`|`False`|no|This variable enables secure logging as well, but is shared accross multiple roles, see above.|
+
+## Data Structure
+
+### Config Top Level Vars
+
+|Variable Name|Default Value|Description|
+|:---:|:---:|:---:|
+|`controller_ad_hoc_commands`|`see role`|Data structure describing your ad hoc commands to run . Described in role.|
+|`controller_ad_hoc_commands_cancel`|`see role`|Data structure describing your ad hoc jobs to cancel . Described in role.|
+|`controller_applications`|`see role`|Data structure describing your applications. Described in role.|
+|`controller_credential_input_sources`|`see role`|Data structure describing your credential input sources . Described in role.|
+|`controller_credential_types`|`see role`|Data structure describing your credential types . Described in role.|
+|`controller_credentials`|`see role`|Data structure describing your credentials . Described in role.|
+|`controller_execution_environments`|`see role`|Data structure describing your organization or organizations . Described in role.|
+|`controller_groups`|`see role`|Data structure describing your group or groups . Described in role.|
+|`controller_hosts`|`see role`|Data structure describing your host entries . Described in role.|
+|`controller_instance_groups`|`see role`|Data structure describing your instance groups . Described in role.|
+|`controller_inventories`|`see role`|Data structure describing your inventories . Described in role.|
+|`controller_inventory_sources`|`see role`|Data structure describing your inventory sources . Described in role.|
+|`controller_launch_jobs`|`see role`|Data structure describing the jobs to launch . Described in role.|
+|`controller_templates`|`see role`|Data structure describing your job template or job templates . Described in role.|
+|`controller_cancel_jobs`|`see role`|Data structure describing jobs to cancel . Described in role.|
+|`controller_labels`|`see role`|Data structure describing your label or labels . Described in role.|
+|`controller_license`|`see role`|Data structure describing your license for controller, . Described in role.|
+|`controller_notifications`|`see role`|Data structure describing your notification entries . Described in role.|
+|`controller_organizations`|`see role`|Data structure describing your organization or organizations . Described in role.|
+|`controller_projects`|`see role`|Data structure describing your project or projects . Described in role.|
+|`controller_roles`|`see role`|Data structure describing your RBAC entries . Described in role.|
+|`controller_schedules`|`see role`|Data structure describing your schedule or schedules . Described in role.|
+|`controller_settings`|`see role`|Data structure describing your settings . Described in role.|
+|`controller_teams`|`see role`|Data structure describing your Teams . Described in role.|
+|`controller_user_accounts`|`see role`|Data structure describing your user entries . Described in role.|
+|`workflow_job_templates`|`see role`|Data structure describing your workflow job templates . Described in role.|
+|`controller_workflow_launch_jobs`|`see role`|Data structure describing workflow or workflows to launch . Described in role.|
+
+### Standard Configs Folder Data Structure
+
+```yaml
+---
+└── configs
+ ├── ad_hoc_command_cancel_defaults.yml
+ ├── ad_hoc_commands.yml
+ ├── applications.yml
+ ├── controller_auth.yml
+ ├── credential_input_sources.yml
+ ├── credentials.yml
+ ├── credential_types.yml
+ ├── execution_environments.yml
+ ├── groups.yml
+ ├── hosts.yml
+ ├── instance_groups.yml
+ ├── inventories.yml
+ ├── inventory_sources.yml
+ ├── labels.yml
+ ├── launch_jobs.yml
+ ├── notifications.yml
+ ├── organizations.yml
+ ├── projects.yml
+ ├── roles.yml
+ ├── schedule.yml
+ ├── settings_individuale.yml
+ ├── settings.yml
+ ├── ssh_private_key.yml
+ ├── teams.yml
+ ├── templates.yml
+ ├── user_accounts.yml
+ ├── workflows.yml
+ └── workflows_launch.yml
+```
+
+## Configuring Continuous Deployment
+
+This section explains how to setup the Continuous Deployment (CD) of the defined configurations on Ansible controller when a event occurs(usually a merge event) in the git repository where the definitions are kept.
+
+This procedure has been tested with **gitlab** git server
+
+You have make the following configurations in order to configure CD integration:
+
+1. Configure a Project and a job template with [webhook](https://docs.ansible.com/automation-controller/latest/html/userguide/webhooks.html#id2) property enabled in the Controller pointing to the playbook in charge of CD, you can find an example [here](https://github.com/redhat-cop/controller_configuration/blob/devel/tests/playbooks/cd_gitlab_webhook_trigger.yml).
+
+2. Configure [project webhook](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html) on the project where defined configurations are hosted.
+
+## License
+
+[MIT](https://github.com/redhat-cop/controller_configuration#licensing)
+
+## Author
+
+[Sean Sullivan](https://github.com/sean-m-sullivan/)
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/cd_gitlab_webhook_trigger.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/cd_gitlab_webhook_trigger.yml
new file mode 100644
index 000000000..824cf231c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/cd_gitlab_webhook_trigger.yml
@@ -0,0 +1,69 @@
+---
+- name: Gitlab Webhook Trigger Playbook
+ hosts: all
+ connection: local
+ gather_facts: false
+ tasks:
+ - name: "Get the modified files over the dirs from all the received commits"
+ ansible.builtin.set_fact:
+ env: "{{ awx_webhook_payload.ref.split('/')[2] if awx_webhook_payload.ref.split('/')[1] == 'heads' else awx_webhook_payload.project.default_branch }}"
+ gitlab_scm_branch: "{{ awx_webhook_payload.ref.split('/')[2] }}"
+ orgs: "{{ awx_webhook_payload.project.name }}"
+ list_of_dirs: "{{ ((awx_webhook_payload.commits | map(attribute='added') | list) +
+ (awx_webhook_payload.commits | map(attribute='modified') | list) +
+ (awx_webhook_payload.commits | map(attribute='removed') | list))
+ | flatten }}"
+ - name: "Set regular expression to filter files list from repository"
+ ansible.builtin.set_fact:
+ regexpression: "/([^/]*)/env/(common|{{ env }})/controller_(.*).d/"
+
+ - name: "Get the Organization and the tags to run the CasC"
+ ansible.builtin.set_fact:
+ org_dirs_dict: "{{ (org_dirs_dict | default({})) | combine({input_var[0]: (((org_dirs_dict[input_var[0]] | default([])) + [input_var[1]] + (['projects', 'schedules'] if awx_webhook_payload.ref.split('/')[1] == 'tags' else [''])) | unique | reject('match', '^$'))}) }}"
+ vars:
+ input_var: "{{ item | regex_search(regexpression, '\\1', '\\3') }}"
+ loop: "{{ list_of_dirs }}"
+ when: input_var | type_debug is match('list')
+
+ - name: Configure Controller Job Launch | Launch launch_jobs Drop Diff (Delete)
+ ansible.builtin.include_role:
+ name: infra.controller_configuration.job_launch
+ vars:
+ controller_launch_jobs:
+ - name: "{{ org_tags.key }} CasC_JobTemplates_AAP_Drop_Diff"
+ scm_branch: "{{ gitlab_scm_branch }}"
+ extra_vars:
+ orgs: "{{ org_tags.key }}"
+ dir_orgs_vars: 'orgs_vars'
+ ansible_python_interpreter: "/usr/bin/python3"
+ env: "{{ env }}"
+ gitlab_scm_branch: "{{ gitlab_scm_branch }}"
+ tags: "{{ org_tags.value }}"
+ wait: true
+ verbosity: 0
+ with_dict: "{{ org_dirs_dict }}"
+ loop_control:
+ loop_var: org_tags
+ when: org_dirs_dict is defined
+
+ - name: Configure Controller Job Launch | Launch launch_jobs creation
+ ansible.builtin.include_role:
+ name: infra.controller_configuration.job_launch
+ vars:
+ controller_launch_jobs:
+ - name: "{{ org_tags.key }} CasC_JobTemplates_AAP_CD_Config_Controller"
+ scm_branch: "{{ gitlab_scm_branch }}"
+ extra_vars:
+ orgs: "{{ org_tags.key }}"
+ dir_orgs_vars: 'orgs_vars'
+ ansible_python_interpreter: "/usr/bin/python3"
+ env: "{{ env }}"
+ gitlab_scm_branch: "{{ gitlab_scm_branch }}"
+ tags: "{{ org_tags.value }}"
+ wait: true
+ verbosity: 0
+ with_dict: "{{ org_dirs_dict }}"
+ loop_control:
+ loop_var: org_tags
+ when: org_dirs_dict is defined
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_awx.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_awx.yml
new file mode 100644
index 000000000..31bbae543
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_awx.yml
@@ -0,0 +1,106 @@
+---
+### Variables
+#
+# Set the following variables on host_vars/localhost or group_vars/all
+#
+# - controller_validate_certs:
+# description: |
+# Wether to trust self-signed or invalid certificates
+# Falls back to env CONTROLLER_VERIFY_SSL and then to awx-cli config.
+#
+# - controller_hostname:
+# description: |
+# Hostname of AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_HOST and then to awx-cli config.
+#
+# - controller_username:
+# description: |
+# Username for AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_USERNAME and then to awx-cli config.
+#
+# - controller_password:
+# description: |
+# Password for AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_PASSWORD and then to awx-cli config.
+#
+# - controller_configs_dir:
+# description: |
+# Directory with Controller configs.
+# Falls back to env CONTROLLER_CONFIGS_DIR.
+# Defaults to $PWD/configs
+#
+
+
+- name: Playbook to configure ansible Controller post installation
+ hosts: localhost
+ connection: local
+ collections:
+ - awx.awx
+ - infra.controller_configuration
+ pre_tasks:
+
+ - name: Include vars from configs directory
+ ansible.builtin.include_vars:
+ dir: "{{ controller_configs_dir | default((lookup('env', 'CONTROLLER_CONFIGS_DIR') == '') | ternary('./configs', lookup('env', 'CONTROLLER_CONFIGS_DIR'))) }}"
+ ignore_files: [controller_config.yml.template]
+ extensions: ["yml"]
+ tags:
+ - always
+
+ roles:
+ - {role: settings, when: controller_settings is defined, tags: settings}
+ - {role: organizations, when: controller_organizations is defined, tags: organizations}
+ - {role: labels, when: controller_labels is defined, tags: labels}
+ - {role: users, when: controller_user_accounts is defined, tags: users}
+ - {role: teams, when: controller_teams is defined, tags: teams}
+ - {role: credential_types, when: controller_credential_types is defined, tags: credential_types}
+ - {role: credentials, when: controller_credentials is defined, tags: credentials}
+ - {role: credential_input_sources, when: controller_credential_input_sources is defined, tags: credential_input_sources}
+ - {role: notification_templates, when: controller_notifications is defined, tags: notification_templates}
+ - {role: projects, when: controller_projects is defined, tags: projects}
+ - {role: execution_environments, when: controller_execution_environments is defined, tags: execution_environments}
+ - {role: applications, when: controller_applications is defined, tags: applications}
+ - {role: inventories, when: controller_inventories is defined, tags: inventories}
+ - {role: instance_groups, when: controller_instance_groups is defined, tags: instance_groups}
+ - {role: project_update, when: controller_projects is defined, tags: projects}
+ - {role: inventory_sources, when: controller_inventory_sources is defined, tags: inventory_sources}
+ - {role: inventory_source_update, when: controller_inventory_sources is defined, tags: inventory_sources}
+ - {role: hosts, when: controller_hosts is defined, tags: hosts}
+ - {role: groups, when: controller_groups is defined, tags: inventories}
+ - {role: job_templates, when: controller_templates is defined, tags: job_templates}
+ - {role: workflow_job_templates, when: controller_workflows is defined, tags: workflow_job_templates}
+ - {role: schedules, when: controller_schedules is defined, tags: schedules}
+ - {role: roles, when: controller_roles is defined, tags: roles}
+
+ tasks:
+
+ - name: Add Controller Settings Individually
+ ansible.builtin.include_role:
+ name: settings
+ vars:
+ controller_settings: "{{ controller_settings_individuale }}"
+ when: controller_settings_individuale is defined
+
+ - name: Run ad hoc commands
+ ansible.builtin.include_role:
+ name: ad_hoc_command
+ when: controller_ad_hoc_commands is defined
+
+ - name: Cancel Ad hoc commands
+ ansible.builtin.include_tasks: "./tasks/ad_hoc_cancel.yml"
+ when: controller_ad_hoc_commands is defined
+
+ - name: Launch Controller Jobs
+ ansible.builtin.include_role:
+ name: job_launch
+ when: controller_launch_jobs is defined
+
+ - name: Show launched Controller jobs
+ ansible.builtin.debug:
+ var: launched_controller_jobs
+
+ - name: Launch Controller workflows
+ ansible.builtin.include_role:
+ name: workflow_launch
+ when: controller_workflow_launch_jobs is defined
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_controller.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_controller.yml
new file mode 100644
index 000000000..a41ed4e64
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/configure_controller.yml
@@ -0,0 +1,106 @@
+---
+### Variables
+#
+# Set the following variables on host_vars/localhost or group_vars/all
+#
+# - controller_validate_certs:
+# description: |
+# Wether to trust self-signed or invalid certificates
+# Falls back to env CONTROLLER_VERIFY_SSL and then to awx-cli config.
+#
+# - controller_hostname:
+# description: |
+# Hostname of AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_HOST and then to awx-cli config.
+#
+# - controller_username:
+# description: |
+# Username for AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_USERNAME and then to awx-cli config.
+#
+# - controller_password:
+# description: |
+# Password for AWX or Red Hat Ansible Automation Platform Controller.
+# Falls back to env CONTROLLER_PASSWORD and then to awx-cli config.
+#
+# - controller_configs_dir:
+# description: |
+# Directory with Controller configs.
+# Falls back to env CONTROLLER_CONFIGS_DIR.
+# Defaults to $PWD/configs
+#
+
+
+- name: Playbook to configure ansible Controller post installation
+ hosts: localhost
+ connection: local
+ collections:
+ - ansible.controller
+ - infra.controller_configuration
+ pre_tasks:
+
+ - name: Include vars from configs directory
+ ansible.builtin.include_vars:
+ dir: "{{ controller_configs_dir | default((lookup('env', 'CONTROLLER_CONFIGS_DIR') == '') | ternary('./configs', lookup('env', 'CONTROLLER_CONFIGS_DIR'))) }}"
+ ignore_files: [controller_config.yml.template]
+ extensions: ["yml"]
+ tags:
+ - always
+
+ roles:
+ - {role: settings, when: controller_settings is defined, tags: settings}
+ - {role: organizations, when: controller_organizations is defined, tags: organizations}
+ - {role: labels, when: controller_labels is defined, tags: labels}
+ - {role: users, when: controller_user_accounts is defined, tags: users}
+ - {role: teams, when: controller_teams is defined, tags: teams}
+ - {role: credential_types, when: controller_credential_types is defined, tags: credential_types}
+ - {role: credentials, when: controller_credentials is defined, tags: credentials}
+ - {role: credential_input_sources, when: controller_credential_input_sources is defined, tags: credential_input_sources}
+ - {role: notification_templates, when: controller_notifications is defined, tags: notification_templates}
+ - {role: projects, when: controller_projects is defined, tags: projects}
+ - {role: execution_environments, when: controller_execution_environments is defined, tags: execution_environments}
+ - {role: applications, when: controller_applications is defined, tags: applications}
+ - {role: inventories, when: controller_inventories is defined, tags: inventories}
+ - {role: instance_groups, when: controller_instance_groups is defined, tags: instance_groups}
+ - {role: project_update, when: controller_projects is defined, tags: projects}
+ - {role: inventory_sources, when: controller_inventory_sources is defined, tags: inventory_sources}
+ - {role: inventory_source_update, when: controller_inventory_sources is defined, tags: inventory_sources}
+ - {role: hosts, when: controller_hosts is defined, tags: hosts}
+ - {role: groups, when: controller_groups is defined, tags: inventories}
+ - {role: job_templates, when: controller_templates is defined, tags: job_templates}
+ - {role: workflow_job_templates, when: controller_workflows is defined, tags: workflow_job_templates}
+ - {role: schedules, when: controller_schedules is defined, tags: schedules}
+ - {role: roles, when: controller_roles is defined, tags: roles}
+
+ tasks:
+
+ - name: Add Controller Settings Individually
+ ansible.builtin.include_role:
+ name: settings
+ vars:
+ controller_settings: "{{ controller_settings_individuale }}"
+ when: controller_settings_individuale is defined
+
+ - name: Run ad hoc commands
+ ansible.builtin.include_role:
+ name: ad_hoc_command
+ when: controller_ad_hoc_commands is defined
+
+ - name: Cancel Ad hoc commands
+ ansible.builtin.include_tasks: "./tasks/ad_hoc_cancel.yml"
+ when: controller_ad_hoc_commands is defined
+
+ - name: Launch Controller Jobs
+ ansible.builtin.include_role:
+ name: job_launch
+ when: controller_launch_jobs is defined
+
+ - name: Show launched Controller jobs
+ ansible.builtin.debug:
+ var: launched_controller_jobs
+
+ - name: Launch Controller workflows
+ ansible.builtin.include_role:
+ name: workflow_launch
+ when: controller_workflow_launch_jobs is defined
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/tasks/ad_hoc_cancel.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/tasks/ad_hoc_cancel.yml
new file mode 100644
index 000000000..47ec7916a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/playbooks/tasks/ad_hoc_cancel.yml
@@ -0,0 +1,16 @@
+---
+- name: Combine id output with defaults temp
+ ansible.builtin.set_fact:
+ tmp_ad_hoc: "{{ item | combine(controller_ad_hoc_command_defaults) }}"
+ with_items: "{{ controller_ad_hoc_commands_output.results }}"
+ register: tmp_ad_hocs
+
+- name: Combine id output with defaults
+ ansible.builtin.set_fact:
+ controller_ad_hoc_commands_cancel: "{{ tmp_ad_hocs.results | map(attribute='ansible_facts.tmp_ad_hoc') | list }}"
+
+- name: Cancel ad hoc commands
+ ansible.builtin.include_role:
+ name: ad_hoc_command_cancel
+ when: controller_ad_hoc_commands is defined
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.11.txt b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.11.txt
new file mode 100644
index 000000000..b2ddbcad7
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.11.txt
@@ -0,0 +1 @@
+docs/aap_config_as_code_public_meeting.ics line-endings!skip
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.12.txt b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.12.txt
new file mode 100644
index 000000000..b2ddbcad7
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.12.txt
@@ -0,0 +1 @@
+docs/aap_config_as_code_public_meeting.ics line-endings!skip
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.13.txt b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.13.txt
new file mode 100644
index 000000000..b2ddbcad7
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.13.txt
@@ -0,0 +1 @@
+docs/aap_config_as_code_public_meeting.ics line-endings!skip
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.14.txt b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.14.txt
new file mode 100644
index 000000000..b2ddbcad7
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.14.txt
@@ -0,0 +1 @@
+docs/aap_config_as_code_public_meeting.ics line-endings!skip
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.15.txt b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.15.txt
new file mode 100644
index 000000000..b2ddbcad7
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/sanity/ignore-2.15.txt
@@ -0,0 +1 @@
+docs/aap_config_as_code_public_meeting.ics line-endings!skip
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/ad_hoc_cancel.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/ad_hoc_cancel.yml
new file mode 100644
index 000000000..49a05f3bf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/ad_hoc_cancel.yml
@@ -0,0 +1,16 @@
+---
+- name: Combine id output with defaults temp
+ ansible.builtin.set_fact:
+ tmp_ad_hoc: "{{ {'id': item.id} | combine(controller_ad_hoc_command_defaults) }}"
+ with_items: "{{ controller_ad_hoc_commands_output.results }}"
+ register: tmp_ad_hocs
+
+- name: Combine id output with defaults
+ ansible.builtin.set_fact:
+ controller_ad_hoc_commands_cancel: "{{ tmp_ad_hocs.results | map(attribute='ansible_facts.tmp_ad_hoc') | list }}"
+
+- name: Cancel ad hoc commands
+ ansible.builtin.include_role:
+ name: ad_hoc_command_cancel
+ when: controller_ad_hoc_commands is defined
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/differential.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/differential.yml
new file mode 100644
index 000000000..261f51419
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/tasks/differential.yml
@@ -0,0 +1,92 @@
+---
+- name: "Get the API list in the Default Organization of all {{ differential_item.name }}"
+ ansible.builtin.set_fact:
+ controller_api_results: "{{ lookup(controller_api_plugin, differential_item.name, query_params={'organization': controller_organization_id.id}, host=controller_hostname, username=controller_username, password=controller_password, verify_ssl=false) }}"
+
+- name: "Find the difference between what is on the Controller versus curated list of {{ differential_item.name }}"
+ ansible.builtin.set_fact:
+ set_absent_diff: "{{ lookup('controller_object_diff', api_list=controller_api_results, compare_list=differential_item.differential_test_items, with_present=differential_item.with_present) }}"
+
+- name: Display set_absent_diff
+ ansible.builtin.debug:
+ var: set_absent_diff
+
+- name: Display differential_item.expected_test_result
+ ansible.builtin.debug:
+ var: differential_item.expected_test_result
+
+- name: "Assert that the expected results match for {{ differential_item.name }}"
+ ansible.builtin.assert:
+ that:
+ - set_absent_diff == differential_item.expected_test_result
+
+- name: Run differential applications
+ ansible.builtin.include_role:
+ name: applications
+ vars:
+ controller_applications: "{{ set_absent_diff }}"
+ when: differential_item.name == 'applications'
+
+- name: Run differential credentials
+ ansible.builtin.include_role:
+ name: credentials
+ vars:
+ controller_credentials: "{{ set_absent_diff }}"
+ when: differential_item.name == 'credentials'
+
+- name: Run differential projects
+ ansible.builtin.include_role:
+ name: projects
+ vars:
+ controller_projects: "{{ set_absent_diff }}"
+ when: differential_item.name == 'projects'
+
+- name: Run differential inventories
+ ansible.builtin.include_role:
+ name: inventories
+ vars:
+ controller_inventories: "{{ set_absent_diff }}"
+ when: differential_item.name == 'inventories'
+
+- name: Run differential inventory_sources
+ ansible.builtin.include_role:
+ name: inventory_sources
+ vars:
+ controller_inventory_sources: "{{ set_absent_diff }}"
+ when: differential_item.name == 'inventory_sources'
+
+- name: Run differential labels
+ ansible.builtin.include_role:
+ name: labels
+ vars:
+ controller_labels: "{{ set_absent_diff }}"
+ when: differential_item.name == 'labels'
+
+- name: Run differential teams
+ ansible.builtin.include_role:
+ name: teams
+ vars:
+ controller_teams: "{{ set_absent_diff }}"
+ when: differential_item.name == 'teams'
+
+- name: Run differential notification_templates
+ ansible.builtin.include_role:
+ name: notification_templates
+ vars:
+ controller_notifications: "{{ set_absent_diff }}"
+ when: differential_item.name == 'notification_templates'
+
+- name: Run differential job_templates
+ ansible.builtin.include_role:
+ name: job_templates
+ vars:
+ controller_templates: "{{ set_absent_diff }}"
+ when: differential_item.name == 'job_templates'
+
+- name: Run differential workflow_job_templates
+ ansible.builtin.include_role:
+ name: workflow_job_templates
+ vars:
+ controller_workflows: "{{ set_absent_diff }}"
+ when: differential_item.name == 'workflow_job_templates'
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/README.md b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/README.md
new file mode 100644
index 000000000..7e151c032
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/README.md
@@ -0,0 +1,223 @@
+# Controller Configuration
+
+A single playbook and multiple task and vars files which can be used to define your Tower or Controller configuration as code. Update the vars files to define your objects and run the playbook to deploy your changes to your Tower / AAP 2.1 cluster(s).
+
+If executed with the `alltags` tag then the playbook will create all objects defined in all vars files in the appropriate order.
+
+Use of some tags may require that you include other tags; for example if adding a project but you haven't already added the correct SCM credential.
+
+Available tags:
+
+- alltags
+- settings
+- credtypes
+- orgs
+- users
+- teams
+- credentials
+- projects
+- labels
+- inventory
+- inventorysources
+- instancegroups
+- hosts
+- groups
+- ees
+- notifications
+- jobtemplates
+- workflows
+- schedules
+- roles
+
+## Requirements
+
+This content utilizes the controller_configuration collection and the awx.awx or ansible.tower or ansible.controller collections. You will need connectivity to a Private Automation Hub server which has synchronized these collections or to the internet so that the collections can be installed.
+
+You will also need Tower or Controller credentials with sufficient permissions to create the objects you define as code. This will need to be a local account within the cluster and not an externally (such as ldap) authenticated account.
+
+## Variables
+
+`controller_config.yml`:
+
+ absent_present
+
+ I suggest leaving `absent_present` set to "present".
+
+ which_org
+
+ You can update `which_org` to specify your org within the cluster and just create all objects in a single organization. If you do not wish to use `which_org` then you will have to hard code the organization for each individual object replacing the variable `"{{ which_org }}"` with the organization name.
+
+ CONTROLLER_VERIFY_SSL
+
+ CONTROLLER_VERIFY_SSL it is recommended not to modify this variable. By default Tower / AAP 2.1 is installed with a self-signed certificate. If you do not replace the certificate then you will receive certificate errors which prevent creating your objects.
+
+`vars/controller_credential_types.yml`:
+
+ controller_credential_types
+
+ Dictionary of credential types to create. One example exists that will need to be filled in. You can also copy / paste the example for additional credential types.
+
+`vars/controller_credentials.yml`:
+
+ controller_credentials
+
+ Dictionary of credentials to create. One example exists that will need to be filled in. You can also copy / paste the example for additional credentials.
+
+`vars/controller_groups.yml`:
+
+ controller_groups
+
+ Dictionary of (host) groups to create. One example exists that will need to be filled in. You can also copy / paste the example for additional groups. You will need to ensure the inventory and hosts exists before you add groups.
+
+`vars/controller_hosts.yml`:
+
+ controller_hosts
+
+ Dictionary of hosts to create. One example exists that will need to be filled in. You can also copy / paste the example for additional hosts. You will need to ensure the inventory exists before you add hosts to it.
+
+`vars/controller_inventories.yml`:
+
+ controller_inventories
+
+ Dictionary of inventories to create. One example exists that will need to be filled in. You can also copy / paste the example for additional inventories.
+
+`vars/controller_inventory_sources.yml`:
+
+ controller_inventory_sources
+
+ Dictionary of inventory sources to create. One example exists that will need to be filled in. You can also copy / paste the example for additional inventory sources. You will need to ensure the inventory exists before you add hosts to it.
+
+`vars/controller_job_templates.yml`:
+
+ controller_job_templates
+
+ Dictionary of job templates to create. One example exists that will need to be filled in. You can also copy / paste the example for additional job templates.
+
+`vars/controller_labels.yml`:
+
+ controller_labels
+
+ Dictionary of labels to create. One example exists that will need to be filled in. You can also copy / paste the example for additional labels.
+
+`vars/controller_notification_templates.yml`:
+
+ controller_notification_templates
+
+ Dictionary of notification templates to create. One example exists that will need to be filled in. You can also copy / paste the example for additional notification templates.
+
+`vars/controller_organizations_with_hub.yml`:
+
+ controller_organizations
+
+ Dictionary of organizations to create. One example exists that will need to be filled in. You can also copy / paste the example for additional organizations.
+
+ You must associate Galaxy / Automation Hub credentials with an Organization before you sync projects. Otherwise the project sync will fail. This particular vars file has the organization defined with the Galaxy / Automation Hub credentials.
+
+ There is a check in the `tasks/manage_controller_organizations.yml` which checks to see if the organization is already defined. If it is not defined then it creates the organization.
+
+ However, you cannot associate a Galaxy / Private Automation Hub credential to an organization you are defining for the first time because those credentials for that organization have not been created yet. So the organization is created, then credentials are added to the organization, and then the organization is updated to associate the Galaxy / Automation Hub credentials.
+
+`vars/controller_organizations.yml`:
+
+ controller_organizations
+
+ Dictionary of organizations to create. One example exists that will need to be filled in. You can also copy / paste the example for additional organizations.
+
+ This vars file has the organization defined without the Galaxy / Automation Hub credential.
+
+`vars/controller_projects.yml`:
+
+ controller_projects
+
+ Dictionary of projects to create. One example exists that will need to be filled in. You can also copy / paste the example for additional projects.
+
+`vars/controller_schedules.yml`:
+
+ controller_schedules
+
+ Dictionary of schedules to create. One example exists that will need to be filled in. You can also copy / paste the example for additional schedules.
+
+`vars/controller_settings.yml`:
+
+ controller_settings
+
+ Dictionary of settings to create. This file does not contain an example. Check `tasks/manage_controller_settings.yml` for a link to documentation of the `controller_configuration` collection.
+
+`vars/controller_teams.yml`:
+
+ controller_teams
+
+ Dictionary of teams to create. One example exists that will need to be filled in. You can also copy / paste the example for additional teams.
+
+`vars/controller_users.yml`:
+
+ Unless otherwise instructed, please refrain from adding local users. Users should be added to the organization via LDAP mapping.
+
+ controller_users
+
+ Dictionary of local users to create. One example exists that will need to be filled in. You can also copy / paste the example for additional users.
+
+`vars/controller_vars.yml`:
+
+ DO NOT: populate this file with valid credentials and then commit the file to GitHub!
+
+ controller_vars
+
+ If using ansible-playbook, populate `controller_vars` your Tower or Controller hostname (or IP address), username, and password. The variables are used for your connection to Tower / Controller to create the objects you define in these vars files.
+
+ If you are going to create a Job Template in Tower / Controller to run the `controller_config.yml` playbook then do not populate this file and instead use either a Survey or extra_vars with your job template.
+
+`vars/controller_workflows.yml`:
+
+ controller_workflows
+
+ Dictionary of workflows to create. One example exists that will need to be filled in. You can also copy / paste the example for additional workflows.
+
+`vars/controller_execution_environments.yml`:
+
+ controller_execution_environments
+
+ Dictionary of execution environments to define. One example exists that will need to be filled in. You can also copy / paste the example for additional execution environments.
+
+`vars/controller_notification_templates.yml`:
+
+ controller_notification_templates
+
+ Dictionary of notification templates to create. One example exists that will need to be filled in. You can also copy / paste the example for additional notification templates.
+
+`vars/controller_roles.yml`:
+
+ controller_roles
+
+ Dictionary of roles to define. One example exists that will need to be filled in. You can also copy / paste the example for additional roles.
+
+`vars/controller_instance_groups.yml`:
+
+ controller_instance_groups
+
+ Dictionary of instance groups to create. One example exists that will need to be filled in. You can also copy / paste the example for additional instance groups.
+
+## Dependencies
+
+A combination of `ansible.controller` or `ansible.tower` or `awx.awx` and
+`controller_configuration` collections.
+
+## Playbook Execution
+
+You can run this playbook from ansible cli or as a Job Template in Tower / Controller.
+
+From the command line to define all objects:
+
+ ansible-playbook controller_config.yml --tags alltags
+
+ or just to create new job templates:
+
+ ansible-playbook controller_config.yaml --tags jobtemplates
+
+## License
+
+BSD
+
+## Author Information
+
+An optional section for the role authors to include contact information, or a website (HTML is not allowed).
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/collections/requirements.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/collections/requirements.yml
new file mode 100644
index 000000000..e5ca4903d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/collections/requirements.yml
@@ -0,0 +1,7 @@
+---
+collections:
+ - name: awx.awx
+ - name: ansible.tower
+ - name: ansible.controller
+ - name: infra.controller_configuration
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/controller_config.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/controller_config.yml
new file mode 100644
index 000000000..07564d3ff
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/controller_config.yml
@@ -0,0 +1,186 @@
+# Available tags
+# - never
+# - alltags
+# - settings
+# - credtypes
+# - orgs
+# - users
+# - teams
+# - credentials
+# - projects
+# - labels
+# - inventory
+# - inventorysources
+# - hosts
+# - groups
+# - jobtemplates
+# - workflows
+# - schedules
+# - ees
+# - instancegroups
+# - notifications
+# - roles
+
+
+---
+- name: Playbook to configure a controller cluster
+ hosts: localhost
+ connection: local
+ gather_facts: false
+ collections:
+ - ansible.controller
+ - infra.controller_configuration
+
+ vars:
+ absent_present: "present"
+ which_org: ""
+
+ environment:
+ CONTROLLER_VERIFY_SSL: false
+
+ pre_tasks:
+ - name: Include Vars
+ ansible.builtin.include_vars: "vars/controller_vars.yml"
+
+ tasks:
+ - name: Include task for managing LDAP settings
+ ansible.builtin.include_tasks: tasks/manage_controller_settings.yml
+ tags:
+ - never
+ - alltags
+ - settings
+
+ - name: Include task for managing instance groups
+ ansible.builtin.include_tasks: tasks/manage_instance_groups.yml
+ tags:
+ - never
+ - alltags
+ - instancegroups
+
+ - name: Include task for managing credential types
+ ansible.builtin.include_tasks: tasks/manage_credential_types.yml
+ tags:
+ - never
+ - alltags
+ - credtypes
+
+ - name: Include task for managing organizations
+ ansible.builtin.include_tasks: tasks/manage_organizations.yml
+ tags:
+ - never
+ - alltags
+ - orgs
+
+ - name: Include task for managing users
+ ansible.builtin.include_tasks: tasks/manage_users.yml
+ tags:
+ - never
+ - alltags
+ - users
+
+ - name: Include task for managing teams
+ ansible.builtin.include_tasks: tasks/manage_teams.yml
+ tags:
+ - never
+ - alltags
+ - teams
+
+ - name: Include task for managing credentials
+ ansible.builtin.include_tasks: tasks/manage_credentials.yml
+ tags:
+ - never
+ - alltags
+ - credentials
+
+ # Add Orgs a second time to associate the Galaxy / Automation Hub credentials with the Org for project sync
+ - name: Include task for managing organizations
+ ansible.builtin.include_tasks: tasks/manage_organizations.yml
+ tags:
+ - never
+ - alltags
+ - orgs
+
+ - name: Include task for manging execution environments
+ ansible.builtin.include_tasks: tasks/manage_ees.yml
+ tags:
+ - never
+ - alltags
+ - ees
+
+ - name: Include task for managing projects
+ ansible.builtin.include_tasks: tasks/manage_projects.yml
+ tags:
+ - never
+ - alltags
+ - projects
+
+ - name: Include task for managing labels
+ ansible.builtin.include_tasks: tasks/manage_labels.yml
+ tags:
+ - never
+ - alltags
+ - labels
+
+ - name: Include task for managing inventories
+ ansible.builtin.include_tasks: tasks/manage_inventories.yml
+ tags:
+ - never
+ - alltags
+ - inventory
+
+ - name: Include task for managing inventories
+ ansible.builtin.include_tasks: tasks/manage_inventory_sources.yml
+ tags:
+ - never
+ - alltags
+ - inventorysources
+
+ - name: Include task for managing hosts
+ ansible.builtin.include_tasks: tasks/manage_hosts.yml
+ tags:
+ - never
+ - alltags
+ - hosts
+
+ - name: Include task for managing groups
+ ansible.builtin.include_tasks: tasks/manage_groups.yml
+ tags:
+ - never
+ - alltags
+ - groups
+
+ - name: Include task for managing notification templates
+ ansible.builtin.include_tasks: tasks/manage_notification_templates.yml
+ tags:
+ - never
+ - alltags
+ - notifications
+
+ - name: Include task for managing job templates
+ ansible.builtin.include_tasks: tasks/manage_job_templates.yml
+ tags:
+ - never
+ - alltags
+ - jobtemplates
+
+ - name: Include task for managing workflow templates
+ ansible.builtin.include_tasks: tasks/manage_workflow_templates.yml
+ tags:
+ - never
+ - alltags
+ - workflows
+
+ - name: Include task for managing schedules
+ ansible.builtin.include_tasks: tasks/manage_schedules.yml
+ tags:
+ - never
+ - alltags
+ - schedules
+
+ - name: Include task for managing roles
+ ansible.builtin.include_tasks: tasks/manage_roles.yml
+ tags:
+ - never
+ - alltags
+ - roles
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_controller_settings.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_controller_settings.yml
new file mode 100644
index 000000000..0b541fa29
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_controller_settings.yml
@@ -0,0 +1,25 @@
+---
+- name: Include LDAP settings vars
+ ansible.builtin.include_vars: ../vars/controller_ldap_configuration.json
+ tags:
+ - settings
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.settings
+ tags:
+ - settings
+ - alltags
+
+- name: Include credential types vars
+ ansible.builtin.include_vars: ../vars/controller_ldap_configuration.json
+ tags:
+ - settings
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.settings
+ tags:
+ - settings
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credential_types.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credential_types.yml
new file mode 100644
index 000000000..a83c7e363
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credential_types.yml
@@ -0,0 +1,13 @@
+---
+- name: Include credential types vars
+ ansible.builtin.include_vars: ../vars/controller_credential_types.yml
+ tags:
+ - credtypes
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.credential_types
+ tags:
+ - credtypes
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credentials.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credentials.yml
new file mode 100644
index 000000000..0dcc41282
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_credentials.yml
@@ -0,0 +1,13 @@
+---
+- name: Include credentials vars
+ ansible.builtin.include_vars: ../vars/controller_credentials.yml
+ tags:
+ - credentials
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.credentials
+ tags:
+ - credentials
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_execution_environments.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_execution_environments.yml
new file mode 100644
index 000000000..aa68c734e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_execution_environments.yml
@@ -0,0 +1,13 @@
+---
+- name: Include EE vars
+ ansible.builtin.include_vars: ../vars/controller_ees.yml
+ tags:
+ - ees
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.execution_environments
+ tags:
+ - ees
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_groups.yml
new file mode 100644
index 000000000..f6faa34f3
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_groups.yml
@@ -0,0 +1,13 @@
+---
+- name: Include groups vars
+ ansible.builtin.include_vars: ../vars/controller_groups.yml
+ tags:
+ - groups
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.groups
+ tags:
+ - groups
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_hosts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_hosts.yml
new file mode 100644
index 000000000..a4f6ea2de
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_hosts.yml
@@ -0,0 +1,13 @@
+---
+- name: Include hosts vars
+ ansible.builtin.include_vars: ../vars/controller_hosts.yml
+ tags:
+ - hosts
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.hosts
+ tags:
+ - hosts
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_instance_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_instance_groups.yml
new file mode 100644
index 000000000..6669ef073
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_instance_groups.yml
@@ -0,0 +1,13 @@
+---
+- name: Include instance group vars
+ ansible.builtin.include_vars: ../vars/controller_instance_groups.yml
+ tags:
+ - instancegroups
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.instance_groups
+ tags:
+ - instancegroups
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventories.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventories.yml
new file mode 100644
index 000000000..46c8bf43d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventories.yml
@@ -0,0 +1,13 @@
+---
+- name: Include inventories vars
+ ansible.builtin.include_vars: ../vars/controller_inventories.yml
+ tags:
+ - inventory
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.inventories
+ tags:
+ - inventory
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventory_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventory_sources.yml
new file mode 100644
index 000000000..acafea87c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_inventory_sources.yml
@@ -0,0 +1,13 @@
+---
+- name: Include inventory sources vars
+ ansible.builtin.include_vars: ../vars/controller_inventory_sources.yml
+ tags:
+ - inventorysources
+ - alltags
+
+- include_role:
+ name: infra.controller_configuration.inventory_sources
+ tags:
+ - inventorysources
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_job_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_job_templates.yml
new file mode 100644
index 000000000..5939a9ca4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_job_templates.yml
@@ -0,0 +1,13 @@
+---
+- name: Include job templates vars
+ ansible.builtin.include_vars: ../vars/controller_job_templates.yml
+ tags:
+ - jobtemplates
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.job_templates
+ tags:
+ - jobtemplates
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_labels.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_labels.yml
new file mode 100644
index 000000000..bbbcfabf6
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_labels.yml
@@ -0,0 +1,13 @@
+---
+- name: Include labels vars
+ ansible.builtin.include_vars: ../vars/controller_labels.yml
+ tags:
+ - labels
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.labels
+ tags:
+ - labels
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_notification_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_notification_templates.yml
new file mode 100644
index 000000000..b85a865ba
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_notification_templates.yml
@@ -0,0 +1,13 @@
+---
+- name: Include notification template vars
+ ansible.builtin.include_vars: ../vars/controller_notification_templates.yml
+ tags:
+ - notifications
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.notification_templates
+ tags:
+ - notifications
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_organizations.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_organizations.yml
new file mode 100644
index 000000000..b46d79289
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_organizations.yml
@@ -0,0 +1,49 @@
+---
+- name: Get list of organizations from controller
+ uri:
+ force_basic_auth: true
+ method: GET
+ password: "{{ controller_password }}"
+ return_content: true
+ url: "https://{{ controller_hostname }}/api/v2/organizations/"
+ user: "{{ controller_username }}"
+ validate_certs: "{{ controller_validate_certs }}"
+ register: existing_organizations
+ tags:
+ - orgs
+ - alltags
+
+- name: Set fact when organization is present
+ set_fact:
+ org_exists: true
+ when: org_names.name == which_org
+ loop: "{{ existing_organizations.json.results }}"
+ loop_control:
+ loop_var: org_names
+ tags:
+ - orgs
+ - alltags
+
+- name: Include organizations vars
+ ansible.builtin.include_vars: ../vars/controller_organizations.yml
+ when:
+ - org_exists is not defined
+ tags:
+ - orgs
+ - alltags
+
+- name: Include organizations vars
+ ansible.builtin.include_vars: ../vars/controller_organizations_with_hub.yml
+ when:
+ - org_exists is defined
+ - org_exists
+ tags:
+ - orgs
+ - alltags
+
+- include_role:
+ name: infra.controller_configuration.organizations
+ tags:
+ - orgs
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_projects.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_projects.yml
new file mode 100644
index 000000000..bc80ebb0a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_projects.yml
@@ -0,0 +1,13 @@
+---
+- name: Include projects vars
+ ansible.builtin.include_vars: ../vars/controller_projects.yml
+ tags:
+ - projects
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.projects
+ tags:
+ - projects
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_roles.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_roles.yml
new file mode 100644
index 000000000..431fcde06
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_roles.yml
@@ -0,0 +1,13 @@
+---
+- name: Include roles vars
+ ansible.builtin.include_vars: ../vars/controller_roles.yml
+ tags:
+ - roles
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.roles
+ tags:
+ - roles
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_schedules.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_schedules.yml
new file mode 100644
index 000000000..7b813feae
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_schedules.yml
@@ -0,0 +1,13 @@
+---
+- name: Include schedules vars
+ ansible.builtin.include_vars: ../vars/controller_schedules.yml
+ tags:
+ - schedules
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.schedules
+ tags:
+ - schedules
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_teams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_teams.yml
new file mode 100644
index 000000000..aafa45dc4
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_teams.yml
@@ -0,0 +1,13 @@
+---
+- name: Include teams vars
+ ansible.builtin.include_vars: ../vars/controller_teams.yml
+ tags:
+ - teams
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.teams
+ tags:
+ - teams
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_users.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_users.yml
new file mode 100644
index 000000000..ef806c48b
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_users.yml
@@ -0,0 +1,13 @@
+---
+- name: Include users vars
+ ansible.builtin.include_vars: ../vars/controller_users.yml
+ tags:
+ - users
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.users
+ tags:
+ - users
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_workflow_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_workflow_templates.yml
new file mode 100644
index 000000000..dc1648dbc
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/tasks/manage_workflow_templates.yml
@@ -0,0 +1,13 @@
+---
+- name: Include workflows vars
+ ansible.builtin.include_vars: ../vars/controller_workflows.yml
+ tags:
+ - workflows
+ - alltags
+
+- import_role:
+ name: infra.controller_configuration.workflow_job_templates
+ tags:
+ - workflows
+ - alltags
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credential_types.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credential_types.yml
new file mode 100644
index 000000000..a8a146a42
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credential_types.yml
@@ -0,0 +1,34 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/credential_types
+# for documentation and additional parameter information
+
+---
+controller_credential_types:
+ - name: ""
+ new_name: ""
+ kind: ""
+ state: "{{ absent_present }}"
+ inputs:
+ fields:
+ - id: ""
+ help_text: ""
+ label: ""
+ type: ""
+ - id: ""
+ help_text: ""
+ label: ""
+ type: ""
+ - id: ""
+ help_text: ""
+ label: ""
+ type: ""
+ required:
+ - ""
+ - ""
+ injectors:
+ env:
+ _HOST: "{% raw %}{ { host }}{% endraw %}" # DO NOT REMOVE SPACES - removing them will cause an error.
+ _USERNAME: "{% raw %}{ { username }}{% endraw %}" # DO NOT REMOVE SPACES - removing them will cause an error.
+ _PASSWORD: "{% raw %}{ { password }}{% endraw %}" # DO NOT REMOVE SPACES - removing them will cause an error.
+ _VERIFY_SSL: "{% raw %}{ { verify_ssl }}{% endraw %}" # DO NOT REMOVE SPACES - removing them will cause an error.
+ _OAUTH_TOKEN: "{% raw %}{ { oauth_token }}{% endraw %}" # DO NOT REMOVE SPACES - removing them will cause an error.
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credentials.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credentials.yml
new file mode 100644
index 000000000..878580955
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_credentials.yml
@@ -0,0 +1,33 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/credentials
+# for documentation and additional parameter information
+
+---
+controller_credentials:
+ - name: ""
+ new_name: ""
+ credential_type: "Source Control"
+ organization: ""
+ inputs:
+ username: ""
+ ssh_key_data: "{{ lookup('file','~/.ssh/gitlab_id_rsa') }}"
+ state: "{{ absent_present }}"
+
+ - name: ""
+ new_name: ""
+ credential_type: "Machine"
+ organization: ""
+ inputs:
+ username: ""
+ ssh_key_data: "{{ lookup('file','~/.ssh/ansible_rsa') }}"
+ state: "{{ absent_present }}"
+
+ - name: "RH Automation Hub {{ which_org }}"
+ new_name: "RH Automation Hub {{ which_org }}"
+ credential_type: "Ansible Galaxy/Automation Hub API Token"
+ organization: "{{ which_org }}"
+ inputs:
+ url: "https://cloud.redhat.com/api/automation-hub/"
+ token: ""
+ auth_url: "https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token"
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_execution_environments.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_execution_environments.yml
new file mode 100644
index 000000000..606cebf4c
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_execution_environments.yml
@@ -0,0 +1,12 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/execution_environments
+# for documentation and additional parameter information
+
+---
+controller_execution_environments:
+ - name: ""
+ image: ""
+ organization: "{{ which_org }}"
+ credential: ""
+ pull: "" # always, missing, or never
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_groups.yml
new file mode 100644
index 000000000..c2d20f57f
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_groups.yml
@@ -0,0 +1,22 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/groups
+# for documentation and additional parameter information
+
+---
+controller_groups:
+ - name: ""
+ new_name: ""
+ hosts:
+ - ""
+ - ""
+ inventory: ""
+ variables:
+ var1:
+ state: "{{ absent_present }}"
+
+ - name: ""
+ new_name: ""
+ hosts:
+ - ""
+ inventory: ""
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_hosts.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_hosts.yml
new file mode 100644
index 000000000..36fe008d1
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_hosts.yml
@@ -0,0 +1,29 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/hosts
+# for documentation and additional parameter information
+
+---
+controller_hosts:
+ - name: ""
+ new_name: ""
+ inventory: "{{ which_inventory }}"
+ enabled: true
+ state: "{{ absent_present }}"
+
+ - name: ""
+ new_name: ""
+ inventory: "{{ which_inventory }}"
+ enabled: true
+ state: "{{ absent_present }}"
+
+ - name: ""
+ new_name: ""
+ inventory: "{{ which_inventory }}"
+ enabled: true
+ state: "{{ absent_present }}"
+
+ - name: ""
+ new_name: ""
+ inventory: "{{ which_inventory }}"
+ enabled: true
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_instance_groups.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_instance_groups.yml
new file mode 100644
index 000000000..7376c2003
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_instance_groups.yml
@@ -0,0 +1,10 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/instance_groups
+# for documentation and additional parameter information
+
+---
+controller_instance_groups:
+ - name: ""
+ instances: ""
+ is_container_group: false
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventories.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventories.yml
new file mode 100644
index 000000000..555fa95d5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventories.yml
@@ -0,0 +1,9 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/inventories
+# for documentation and additional parameter information
+
+---
+controller_inventories:
+ - name: ""
+ state: "{{ absent_present }}"
+ organization: ""
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventory_sources.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventory_sources.yml
new file mode 100644
index 000000000..c083003f0
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_inventory_sources.yml
@@ -0,0 +1,15 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/inventory_sources
+# for documentation and additional parameter information
+
+---
+controller_inventory_sources:
+ - name: ""
+ credential: ""
+ description: ""
+ inventory: ""
+ organization: ""
+ source: "" # project, ec2, gce, azure, vmware, satellite, openstack, rhv, custom script, etc
+ source_path: "" # when sourcing inventory from project
+ source_project: "" # when sourcing inventory from project
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_job_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_job_templates.yml
new file mode 100644
index 000000000..2bb4a7944
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_job_templates.yml
@@ -0,0 +1,48 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/job_templates
+# for documentation and additional parameter information
+
+---
+controller_templates:
+ - name: ""
+ job_type: run
+ inventory: ""
+ project: ""
+ playbook: ""
+ labels: ""
+ ask_limit_on_launch: true
+ limit: ""
+ credentials:
+ - ""
+ organization: ""
+ state: "{{ absent_present }}"
+
+ - name: ""
+ job_type: run
+ inventory: ""
+ project: ""
+ playbook: ""
+ labels: ""
+ credentials:
+ - ""
+ organization: ""
+ state: "{{ absent_present }}"
+ survey_enabled: true
+ survey:
+ name: ""
+ description: ""
+ spec:
+ - question_name: ""
+ question_description: ""
+ required: true
+ new_question: true
+ variable: ""
+ default: ""
+ type: ""
+ - question_name: ""
+ question_description: ""
+ required: true
+ new_question: true
+ variable: ""
+ default: ""
+ type: ""
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_labels.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_labels.yml
new file mode 100644
index 000000000..1fc24ccda
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_labels.yml
@@ -0,0 +1,9 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/labels
+# for documentation and additional parameter information
+
+---
+controller_labels:
+ - name: ""
+ organization: ""
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_ldap_configuration.json b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_ldap_configuration.json
new file mode 100644
index 000000000..45209d806
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_ldap_configuration.json
@@ -0,0 +1,182 @@
+// Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/settings
+// if you need help customizing these settings.
+
+{
+ "controller_settings": {
+ "settings": {
+ "AUTH_LDAP_SERVER_URI": "ldap://",
+ "AUTH_LDAP_BIND_DN": "CN=,OU=,OU=,OU=,DC=,DC=",
+ "AUTH_LDAP_BIND_PASSWORD": "{{ ldap_bind_passwd }}",
+ "AUTH_LDAP_START_TLS": false,
+ "AUTH_LDAP_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_USER_SEARCH": [
+ "OU=,OU=,OU=,DC=,DC=",
+ "SCOPE_SUBTREE",
+ "(sAMAccountName=%(user)s)"
+ ],
+ "AUTH_LDAP_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_USER_ATTR_MAP": {
+ "first_name": "givenName",
+ "last_name": "sn",
+ "email": "mail"
+ },
+ "AUTH_LDAP_GROUP_SEARCH": [
+ "OU=,OU=,OU=,DC=,DC=",
+ "SCOPE_SUBTREE",
+ "(objectClass=group)"
+ ],
+ "AUTH_LDAP_GROUP_TYPE": "NestedActiveDirectoryGroupType",
+ "AUTH_LDAP_GROUP_TYPE_PARAMS": {},
+ "AUTH_LDAP_REQUIRE_GROUP": null,
+ "AUTH_LDAP_DENY_GROUP": null,
+ "AUTH_LDAP_USER_FLAGS_BY_GROUP": {
+ "is_superuser": ["CN=,OU=,OU=,OU=,DC=,DC="],
+ "is_system_auditor": ["CN=,OU=,OU=,OU=,DC=,DC="]
+ },
+ "AUTH_LDAP_ORGANIZATION_MAP": {
+ "Organization Name 1": { // Make sure you update Org name
+ "admins": "CN=,OU=,OU=,OU=,DC=,DC=",
+ "remove_admins": false,
+ "users": "CN=,OU=,OU=,OU=,DC=,DC=",
+ "remove_users": false
+ },
+ "Organization Name 2": { // Make sure you update Org name
+ "admins": "CN=,OU=,OU=,OU=,DC=,DC=",
+ "remove_admins": false,
+ "users": "CN=,OU=,OU=,OU=,DC=,DC=",
+ "remove_users": false
+ }
+ },
+ "AUTH_LDAP_TEAM_MAP": {
+ "Team 1": { // Make sure you update Team name
+ "organization": "",
+ "users": "cn=,ou=,ou=,ou=,dc=,dc=",
+ "remove": true
+ },
+ "Team 2": { // Make sure you update Team name
+ "organization": "",
+ "users": "cn=,ou=,ou=,ou=,dc=,dc=",
+ "remove": true
+ },
+ "Team 3": { // Make sure you update Team name
+ "organization": "",
+ "users": "cn=,ou=,ou=,ou=,dc=,dc=",
+ "remove": true
+ }
+ },
+ "AUTH_LDAP_1_SERVER_URI": "",
+ "AUTH_LDAP_1_BIND_DN": "",
+ "AUTH_LDAP_1_BIND_PASSWORD": "",
+ "AUTH_LDAP_1_START_TLS": false,
+ "AUTH_LDAP_1_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_1_USER_SEARCH": [],
+ "AUTH_LDAP_1_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_1_USER_ATTR_MAP": {},
+ "AUTH_LDAP_1_GROUP_SEARCH": [],
+ "AUTH_LDAP_1_GROUP_TYPE": "MemberDNGroupType",
+ "AUTH_LDAP_1_GROUP_TYPE_PARAMS": {
+ "member_attr": "member",
+ "name_attr": "cn"
+ },
+ "AUTH_LDAP_1_REQUIRE_GROUP": null,
+ "AUTH_LDAP_1_DENY_GROUP": null,
+ "AUTH_LDAP_1_USER_FLAGS_BY_GROUP": {},
+ "AUTH_LDAP_1_ORGANIZATION_MAP": {},
+ "AUTH_LDAP_1_TEAM_MAP": {},
+ "AUTH_LDAP_2_SERVER_URI": "",
+ "AUTH_LDAP_2_BIND_DN": "",
+ "AUTH_LDAP_2_BIND_PASSWORD": "",
+ "AUTH_LDAP_2_START_TLS": false,
+ "AUTH_LDAP_2_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_2_USER_SEARCH": [],
+ "AUTH_LDAP_2_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_2_USER_ATTR_MAP": {},
+ "AUTH_LDAP_2_GROUP_SEARCH": [],
+ "AUTH_LDAP_2_GROUP_TYPE": "MemberDNGroupType",
+ "AUTH_LDAP_2_GROUP_TYPE_PARAMS": {
+ "member_attr": "member",
+ "name_attr": "cn"
+ },
+ "AUTH_LDAP_2_REQUIRE_GROUP": null,
+ "AUTH_LDAP_2_DENY_GROUP": null,
+ "AUTH_LDAP_2_USER_FLAGS_BY_GROUP": {},
+ "AUTH_LDAP_2_ORGANIZATION_MAP": {},
+ "AUTH_LDAP_2_TEAM_MAP": {},
+ "AUTH_LDAP_3_SERVER_URI": "",
+ "AUTH_LDAP_3_BIND_DN": "",
+ "AUTH_LDAP_3_BIND_PASSWORD": "",
+ "AUTH_LDAP_3_START_TLS": false,
+ "AUTH_LDAP_3_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_3_USER_SEARCH": [],
+ "AUTH_LDAP_3_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_3_USER_ATTR_MAP": {},
+ "AUTH_LDAP_3_GROUP_SEARCH": [],
+ "AUTH_LDAP_3_GROUP_TYPE": "MemberDNGroupType",
+ "AUTH_LDAP_3_GROUP_TYPE_PARAMS": {
+ "member_attr": "member",
+ "name_attr": "cn"
+ },
+ "AUTH_LDAP_3_REQUIRE_GROUP": null,
+ "AUTH_LDAP_3_DENY_GROUP": null,
+ "AUTH_LDAP_3_USER_FLAGS_BY_GROUP": {},
+ "AUTH_LDAP_3_ORGANIZATION_MAP": {},
+ "AUTH_LDAP_3_TEAM_MAP": {},
+ "AUTH_LDAP_4_SERVER_URI": "",
+ "AUTH_LDAP_4_BIND_DN": "",
+ "AUTH_LDAP_4_BIND_PASSWORD": "",
+ "AUTH_LDAP_4_START_TLS": false,
+ "AUTH_LDAP_4_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_4_USER_SEARCH": [],
+ "AUTH_LDAP_4_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_4_USER_ATTR_MAP": {},
+ "AUTH_LDAP_4_GROUP_SEARCH": [],
+ "AUTH_LDAP_4_GROUP_TYPE": "MemberDNGroupType",
+ "AUTH_LDAP_4_GROUP_TYPE_PARAMS": {
+ "member_attr": "member",
+ "name_attr": "cn"
+ },
+ "AUTH_LDAP_4_REQUIRE_GROUP": null,
+ "AUTH_LDAP_4_DENY_GROUP": null,
+ "AUTH_LDAP_4_USER_FLAGS_BY_GROUP": {},
+ "AUTH_LDAP_4_ORGANIZATION_MAP": {},
+ "AUTH_LDAP_4_TEAM_MAP": {},
+ "AUTH_LDAP_5_SERVER_URI": "",
+ "AUTH_LDAP_5_BIND_DN": "",
+ "AUTH_LDAP_5_BIND_PASSWORD": "",
+ "AUTH_LDAP_5_START_TLS": false,
+ "AUTH_LDAP_5_CONNECTION_OPTIONS": {
+ "OPT_REFERRALS": 0,
+ "OPT_NETWORK_TIMEOUT": 30
+ },
+ "AUTH_LDAP_5_USER_SEARCH": [],
+ "AUTH_LDAP_5_USER_DN_TEMPLATE": null,
+ "AUTH_LDAP_5_USER_ATTR_MAP": {},
+ "AUTH_LDAP_5_GROUP_SEARCH": [],
+ "AUTH_LDAP_5_GROUP_TYPE": "MemberDNGroupType",
+ "AUTH_LDAP_5_GROUP_TYPE_PARAMS": {
+ "member_attr": "member",
+ "name_attr": "cn"
+ },
+ "AUTH_LDAP_5_REQUIRE_GROUP": null,
+ "AUTH_LDAP_5_DENY_GROUP": null,
+ "AUTH_LDAP_5_USER_FLAGS_BY_GROUP": {},
+ "AUTH_LDAP_5_ORGANIZATION_MAP": {},
+ "AUTH_LDAP_5_TEAM_MAP": {}
+ }
+ }
+}
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_notification_templates.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_notification_templates.yml
new file mode 100644
index 000000000..7ec83f72d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_notification_templates.yml
@@ -0,0 +1,23 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/notification_templates
+# for documentation and additional parameter information
+
+---
+controller_notification_templates:
+ - name: ""
+ new_name: ""
+ description: ""
+ organization: ""
+ notification_type: "email"
+ notification_configuration:
+ - host: ""
+ port: 25
+ username: ""
+ password: ""
+ sender: ""
+ recipients:
+ - ""
+ timeout: 30
+ use_tls: true
+ use_ssl: false
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations.yml
new file mode 100644
index 000000000..555321c44
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations.yml
@@ -0,0 +1,8 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/organizations
+# for documentation and additional parameter information
+
+---
+controller_organizations:
+ - name: ""
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations_with_hub.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations_with_hub.yml
new file mode 100644
index 000000000..5a4946e2e
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_organizations_with_hub.yml
@@ -0,0 +1,11 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/organizations
+# for documentation and additional parameter information
+
+---
+controller_organizations:
+ - name: ""
+ galaxy_credentials:
+ - "RH Automation Hub {{ which_org}}"
+ - "Ansible Galaxy"
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_projects.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_projects.yml
new file mode 100644
index 000000000..dc5c33a4a
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_projects.yml
@@ -0,0 +1,17 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/projects
+# for documentation and additional parameter information
+
+---
+controller_projects:
+ - description: ""
+ name: ""
+ organization: ""
+ scm_branch: ""
+ scm_credential: ""
+ scm_type: git
+ scm_update_on_launch: false
+ scm_update_cache_timeout: 3600
+ scm_url: ""
+ state: "{{ absent_present }}"
+ wait: true
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_roles.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_roles.yml
new file mode 100644
index 000000000..c0831da0d
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_roles.yml
@@ -0,0 +1,16 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/roles
+# for documentation and additional parameter information
+
+# READ DOCUMENTATION FOR THIS ROLE BEFORE DEFINING PERMISSIONS AS CODE TO
+# ENSURE UNDERSTANDING
+
+---
+controller_roles:
+ - user: ""
+ role: ""
+ state: "{{ absent_present }}"
+
+ - team: ""
+ role: ""
+ state: "{{ absent_present }} "
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_schedules.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_schedules.yml
new file mode 100644
index 000000000..fdec061ce
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_schedules.yml
@@ -0,0 +1,16 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/schedules
+# for documentation and additional parameter information
+
+---
+controller_schedules:
+ - name: ""
+ description: ""
+ enabled: false
+ extra_data:
+ var1: ""
+ var2: ""
+ rrule: "DTSTART;TZID=America/New_York:20210527T000000 RRULE:FREQ=MINUTELY;INTERVAL=30"
+ unified_job_template: ""
+ verbosity: 1
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_teams.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_teams.yml
new file mode 100644
index 000000000..8d7a75ac1
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_teams.yml
@@ -0,0 +1,10 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/teams
+# for documentation and additional parameter information
+
+---
+controller_teams:
+ - name: ""
+ description: ""
+ organization: "{{ which_org }}"
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_users.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_users.yml
new file mode 100644
index 000000000..7d0d77baf
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_users.yml
@@ -0,0 +1,13 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/users
+# for documentation and additional parameter information
+
+---
+controller_user_accounts:
+ - username: ""
+ password: ""
+ email: ""
+ first_name: ""
+ last_name: ""
+ is_superuser: false
+ state: "{{ absent_present }}"
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_vars.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_vars.yml
new file mode 100644
index 000000000..3d1e958d5
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_vars.yml
@@ -0,0 +1,6 @@
+---
+controller_hostname: ''
+controller_password: ''
+controller_username: ''
+controller_validate_certs: false
+...
diff --git a/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_workflows.yml b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_workflows.yml
new file mode 100644
index 000000000..2f1b60e59
--- /dev/null
+++ b/collections/ansible_collections/redhat_cop/controller_configuration/tests/templates/vars/controller_workflows.yml
@@ -0,0 +1,53 @@
+# Refer to https://github.com/redhat-cop/controller_configuration/tree/devel/roles/workflow_job_templates
+# for documentation and additional parameter information
+
+---
+controller_workflows:
+ - name: ""
+ organization: ""
+ state: ""
+ survey_enabled: true
+ survey:
+ name: ""
+ description: ""
+ spec:
+ - question_name: ""
+ question_description: ""
+ required: true
+ new_question: true
+ variable: ""
+ default: ""
+ type: ""
+ - question_name: ""
+ question_description: ""
+ required: true
+ new_question: true
+ variable: ""
+ default: ""
+ type: ""
+ simplified_workflow_nodes:
+ - unified_job_template: ""
+ identifier: node101
+ success_nodes: []
+ failure_nodes: []
+ always_nodes:
+ - node102
+ - node103
+ state: "{{ absent_present }}"
+
+ - unified_job_template:
+ name: ""
+ identifier: node102
+ success_nodes: []
+ failure_nodes: []
+ always_nodes: []
+ state: "{{ absent_present }}"
+
+ - unified_job_template: ""
+ identifier: node103
+ success_nodes: []
+ failure_nodes: []
+ always_nodes:
+ - node201
+ state: "{{ absent_present }}"
+...