Skip to content

[AAP-91391]: Add execution_environment, group, notification_template, project_update, job_wait, and workflow_job_template modules - #249

Open
jessicamack wants to merge 16 commits into
ansible:develfrom
jessicamack:migration-batch-2
Open

jessicamack wants to merge 16 commits into
ansible:develfrom
jessicamack:migration-batch-2

Conversation

@jessicamack

Copy link
Copy Markdown
Member

Description

Migrates 6 modules from awx.awx/ansible.controller to ansible.platform, per AAP-91391
Note: Is based on #248

  • execution_environment — CRUD
  • group — CRUD, with hosts/children associations (supports legacy preserve_existing_hosts/preserve_existing_children via disassociate_missing=False)
  • notification_template — CRUD, with copy_from
  • project_update — launch/wait (syncs a project)
  • job_wait — wait on an existing job/update by polling {job_type}/{id}/
  • workflow_job_template — CRUD, associations (labels/notification_templates_started/success/error/approvals), survey_spec, copy_from (node-graph management (workflow_nodes) is explicitly out of scope — documented as a notes: entry, left for a future workflow_job_template_node module)

Excluded from the Jira list: organization/token/settings (already migrated as native Gateway resources)

Shared SDK changes

  • manage_associations() (base_client.py/platform_manager.py/direct_client.py/rpc_client.py) gains a disassociate_missing: bool = True parameter, so a "preserve existing" legacy option (e.g. group's preserve_existing_hosts) can add without disassociating anything not listed.
  • Fix _find_resource (used by "find" operations and every _wait_for_resource_completion poll) in both platform_manager.py and direct_client.py to substitute every declared path param, not just a literal {id} — needed for resources like job_wait whose GET path is scoped by more than the primary key (/{job_type}/{id}/). This is a separate code path from _execute_operations's existing path-param fix from batch 1.
  • Add sub_resources support to tools/mock_gateway_server.py's GenericResource (get_sub_resource/set_sub_resource/delete_sub_resource + routing) for GET/POST/DELETE sub-endpoints backed by a single stored blob per item (e.g. workflow_job_template's survey_spec) — distinct from associations' id-reference-list semantics.
  • Register groups, workflow_job_templates, project_updates, workflow_jobs stores in the mock server, extend the launch/poll sub-action mapping for projects.update → project_updates, and generalize the pending→successful polling lifecycle to all 4 async resource types.
  • Add the new modules to meta/runtime.yml's action_groups.controller list.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Test update
  • Refactoring (no functional changes)
  • Development environment change
  • Configuration change

Self-Review Checklist

  • I have performed a self-review of my code
  • I have added relevant comments to complex code sections
  • I have updated documentation where needed
  • I have considered the security impact of these changes
  • I have considered performance implications
  • I have thought about error handling and edge cases
  • I have tested the changes in my local environment
  • Existing playbook FQCNs are preserved (no renames without a redirect in meta/routing.yml)
  • Deprecated parameters include a deprecated: block in DOCUMENTATION with removal version

Testing Instructions

Prerequisites

Steps to Test

Expected Results

Additional Context

Required Actions

  • Requires documentation updates
  • Requires downstream repository changes
  • Requires infrastructure/deployment changes
  • Requires coordination with other teams
  • Blocked by PR/MR: #XXX

CasC Notification

  • Not applicable — this change does not affect the CasC-monitored surface
  • CasC Jira ticket created:
  • CasC team tagged in this PR
  • Migration guide provided (required for breaking changes)

Screenshots/Logs

jessicamack and others added 16 commits September 14, 2026 12:31
…390)

- New Shape 1 CRUD module with copy_from, instance_groups/input_inventories
  associations, and constructed inventory support.
- Add manage_associations/manage_sub_resource/copy_resource SDK methods to
  base_client/platform_manager/direct_client/rpc_client (shared infra, first
  use in this collection) — ported from PR ansible#228's job_template work, with
  lookup_endpoint values corrected to full /api/controller/v2/ paths (PR
  ansible#228 passed bare resource names, which would have resolved against the
  Gateway instead of Controller).
- Add a `controller` action_groups entry to meta/runtime.yml (previously
  gateway-only), and generalize test_completeness.py's meta/runtime.yml
  check to scan every action_groups entry instead of just "gateway".
- Extend tools/mock_gateway_server.py with /api/controller/v2/ routing,
  generic association/copy sub-endpoints, and a controller-side
  organizations lookup that reuses the Gateway's org store (shared ID
  space, matching real AAP).
- Unit tests for the transform mixin; a 3-connection-mode Molecule scenario
  covering create/idempotency/update/rename/copy_from/associations/
  constructed-inventory/delete; a live-API integration test target.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Shape 1 CRUD module, Pattern A (no associations/copy). Depends on
inventory for name->id lookup and inventory-scoped name uniqueness.

- New module, action plugin, transform mixin, Ansible model.
- Register under meta/runtime.yml action_groups.controller.
- Register hosts as a generic Controller resource in the mock server.
- Unit tests, 3-connection-mode Molecule scenario, integration test target.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…(AAP-91390)

Shape 1 CRUD module, Pattern C (notification_templates_started/success/error
associations, no copy_from). Depends on inventory for name->id lookup and
inventory-scoped name uniqueness.

- New module, action plugin, transform mixin, Ansible model.
- Drops the legacy organization option (disambiguation-only, no direct API
  field; not carried over since lookup_resource_id only supports a single
  filter field) and custom_virtualenv (no longer supported by the API) —
  both documented in the module's notes.
- Register under meta/runtime.yml action_groups.controller.
- Register inventory_sources, credentials, execution_environments, projects,
  and notification_templates as generic Controller resources in the mock
  server.
- Unit tests, 3-connection-mode Molecule scenario, integration test target.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…roller (AAP-91390)

Shape 2 launch resource (POST to an existing inventory_source's /update/
sub-action, then optionally poll the launched inventory_update job for
completion) — same wait/poll SDK infrastructure as ad_hoc_command
(DEFAULT_WAIT_TIMEOUT, WaitTimeoutError, _wait_for_resource_completion),
ported into this branch since it didn't exist here yet.

Also fixes two real, previously-latent bugs in the shared operation executor
(_execute_operations in platform_manager.py and direct_client.py), found by
actually running this module's Molecule scenario rather than trusting unit
tests alone:
- An EndpointOperation intentionally declared with fields=[] (a no-body
  launch trigger) was being silently skipped as "nothing to do" — every
  prior operation in the collection happened to have a non-empty fields
  list, so this never surfaced before.
- path_params substitution only ever handled a param literally named "id";
  any custom path param name (here, inventory_source_id) was left
  unsubstituted in the URL. Fixed to resolve by the param's own name.

Also adds tests/unit/plugins/**/__init__.py — two new test files sharing a
basename across directories (test_inventory_source_update.py) collided
under pytest's rootdir-relative import without them.

- New module, action plugin (adapted from the ad_hoc_command Shape 2
  pattern), transform mixin, Ansible model.
- Drops the legacy organization option (disambiguation-only, no direct API
  field), documented in the module's notes.
- Register under meta/runtime.yml action_groups.controller.
- Register inventory_updates as a generic Controller resource in the mock
  server, with a pending -> successful poll-advance lifecycle.
- Unit tests (transform mixin, action plugin check_mode/WaitTimeoutError,
  and a regression test for the two _execute_operations bugs),
  3-connection-mode Molecule scenario, integration test target.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Shape 1 CRUD module, Pattern C (credentials/labels/instance_groups
associations, no copy_from). Depends on unified_job_template for name->id
lookup and unified_job_template-scoped name uniqueness.

- New module, action plugin, transform mixin, Ansible model.
- Drops the legacy organization option (disambiguation-only, no direct API
  field), documented in the module's notes.
- Register under meta/runtime.yml action_groups.controller.
- Register schedules, unified_job_templates, and labels as generic
  Controller resources in the mock server.
- Unit tests, 3-connection-mode Molecule scenario, integration test target
  (uses an inventory_source as the schedulable unified_job_template, since
  job_template isn't part of this migration batch).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…1390)

Shape 2 launch resource (POST to an existing job_template's /launch/
sub-action, then optionally poll the launched job for completion) — same
wait/poll SDK infrastructure as ad_hoc_command/inventory_source_update.
Resolves the job_template by name via unified_job_templates rather than a
job_template-specific endpoint, since this collection doesn't ship a
job_template CRUD module (excluded from this batch — see PR ansible#228).

Refines the _execute_operations fix from the inventory_source_update commit:
that fix gated the "still call the API with an empty body" case on the
operation's fields list being empty, which correctly handled
inventory_source_update's true no-body trigger but broke job_launch's launch
(real optional fields like extra_vars/limit, all simply unset on the common
"just launch it" call). The correct, final gate is `depends_on` — matching
DirectHTTPClient's already-correct behavior exactly: skip only a *secondary*
operation (depends_on set) with nothing to send; a *primary* operation always
fires. Verified inventory_source_update, schedule, host, inventory, and
inventory_source Molecule scenarios all still pass under the corrected gate.

- New module, action plugin (adapted from the ad_hoc_command Shape 2
  pattern), transform mixin, Ansible model.
- Drops the legacy organization option and the client-side ask_*_on_launch
  prompt validation, documented in the module's notes.
- Register under meta/runtime.yml action_groups.controller.
- Register job_templates and jobs as generic Controller resources in the
  mock server, with a pending -> successful poll-advance lifecycle shared
  with inventory_updates. Teach the mock's unified_job_templates GET (list)
  to union job_templates/inventory_sources/its own dedicated store, mirroring
  real Controller (a polymorphic view sharing IDs, not a separate table) —
  needed so a resolved unified_job_template id is actually launchable.
- Unit tests (transform mixin, action plugin check_mode/WaitTimeoutError,
  updated _execute_operations regression coverage), 3-connection-mode
  Molecule scenario, integration test target (uses an inventory_source as
  the launchable unified_job_template, same as schedule_test).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Molecule inventory.yml files are dicts (all: {vars, children}), not
playbooks, but ansible-lint misclassifies them as such based on the
filename. Every prior scenario's inventory.yml is already listed in
.ansible-lint's exclude_paths individually; the 6 new scenarios from this
PR were missing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The connection-manager-review checklist (from PR ansible#244's pr-review skill)
flagged two gaps in the manage_associations/manage_sub_resource/copy_resource
and launch/wait infrastructure added in this PR:

- No isolated unit tests: these were only exercised indirectly through
  Molecule and action-plugin flows, never with a directly mocked session.
  Add 13 unit tests covering association diffing (resolve/associate/
  disassociate/idempotent-no-op/lookup-failure), manage_sub_resource
  (no-op/delete/update/idempotent/error), and copy_resource (name lookup,
  ID-based fallback, not-found).
- No architecture doc update: document all three generic methods plus the
  launch/wait mechanism (wait/interval/timeout popping, DEFAULT_WAIT_TIMEOUT,
  WaitTimeoutError) in docs/03-sdk-architecture.md's RPC Interface section.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…fixes

- manage_associations/manage_sub_resource now propagate GET/POST/DELETE
  failures instead of silently treating them as success or no-op
- inventory copy_from is now idempotent; inventory/inventory_source/schedule
  validate association list fields and skip mutating syncs under check_mode
- job_launch resolves job_template via /job_templates/ directly, avoiding
  an id collision with workflow_job_templates on /unified_job_templates/
- DirectHTTPClient.lookup_resource_id no longer double-prefixes absolute
  /api/ paths passed by Controller-routed FK lookups

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…, sub-resources, path-param polling

- manage_associations gains disassociate_missing=False for legacy
  "preserve_existing_*" semantics (group's hosts/children)
- _find_resource (platform_manager.py, direct_client.py) now substitutes
  every declared path param, not just "{id}" — needed by job_wait's
  job_type-scoped GET path
- Register controller action_groups entries for the batch-2 modules
- Mock server: add groups, workflow_job_templates, project_updates,
  workflow_jobs Controller resources; generic sub_resources (survey_spec)
  GET/POST/DELETE support; projects->update launch mapping

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ller (AAP-91391)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ller (AAP-91391)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…AP-91391)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ller (AAP-91391)

Scope excludes the legacy module's workflow_nodes/destroy_current_nodes
options — building the workflow's node graph is a separate resource
(workflow_job_template_node, not yet migrated) with its own CRUD and
association surface, not a field of the workflow_job_template itself.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 178 files, which is 78 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 74f4a89a-b7df-4d5a-bc0f-c12407913642

📥 Commits

Reviewing files that changed from the base of the PR and between 7b42d64 and a1990e0.

📒 Files selected for processing (178)
  • .ansible-lint
  • changelogs/fragments/aap_91390_host.yml
  • changelogs/fragments/aap_91390_inventory.yml
  • changelogs/fragments/aap_91390_inventory_source.yml
  • changelogs/fragments/aap_91390_inventory_source_update.yml
  • changelogs/fragments/aap_91390_job_launch.yml
  • changelogs/fragments/aap_91390_schedule.yml
  • changelogs/fragments/aap_91391_execution_environment.yml
  • changelogs/fragments/aap_91391_group.yml
  • changelogs/fragments/aap_91391_job_wait.yml
  • changelogs/fragments/aap_91391_notification_template.yml
  • changelogs/fragments/aap_91391_project_update.yml
  • changelogs/fragments/aap_91391_workflow_job_template.yml
  • docs/03-sdk-architecture.md
  • extensions/molecule/execution_environment_mock/cleanup.yml
  • extensions/molecule/execution_environment_mock/converge.yml
  • extensions/molecule/execution_environment_mock/inventory.yml
  • extensions/molecule/execution_environment_mock/molecule.yml
  • extensions/molecule/execution_environment_mock/verify.yml
  • extensions/molecule/group_mock/cleanup.yml
  • extensions/molecule/group_mock/converge.yml
  • extensions/molecule/group_mock/inventory.yml
  • extensions/molecule/group_mock/molecule.yml
  • extensions/molecule/group_mock/verify.yml
  • extensions/molecule/host_mock/cleanup.yml
  • extensions/molecule/host_mock/converge.yml
  • extensions/molecule/host_mock/inventory.yml
  • extensions/molecule/host_mock/molecule.yml
  • extensions/molecule/host_mock/verify.yml
  • extensions/molecule/inventory_mock/cleanup.yml
  • extensions/molecule/inventory_mock/converge.yml
  • extensions/molecule/inventory_mock/inventory.yml
  • extensions/molecule/inventory_mock/molecule.yml
  • extensions/molecule/inventory_mock/verify.yml
  • extensions/molecule/inventory_source_mock/cleanup.yml
  • extensions/molecule/inventory_source_mock/converge.yml
  • extensions/molecule/inventory_source_mock/inventory.yml
  • extensions/molecule/inventory_source_mock/molecule.yml
  • extensions/molecule/inventory_source_mock/verify.yml
  • extensions/molecule/inventory_source_update_mock/cleanup.yml
  • extensions/molecule/inventory_source_update_mock/converge.yml
  • extensions/molecule/inventory_source_update_mock/inventory.yml
  • extensions/molecule/inventory_source_update_mock/molecule.yml
  • extensions/molecule/inventory_source_update_mock/verify.yml
  • extensions/molecule/job_launch_mock/cleanup.yml
  • extensions/molecule/job_launch_mock/converge.yml
  • extensions/molecule/job_launch_mock/inventory.yml
  • extensions/molecule/job_launch_mock/molecule.yml
  • extensions/molecule/job_launch_mock/verify.yml
  • extensions/molecule/job_wait_mock/cleanup.yml
  • extensions/molecule/job_wait_mock/converge.yml
  • extensions/molecule/job_wait_mock/inventory.yml
  • extensions/molecule/job_wait_mock/molecule.yml
  • extensions/molecule/job_wait_mock/verify.yml
  • extensions/molecule/notification_template_mock/cleanup.yml
  • extensions/molecule/notification_template_mock/converge.yml
  • extensions/molecule/notification_template_mock/inventory.yml
  • extensions/molecule/notification_template_mock/molecule.yml
  • extensions/molecule/notification_template_mock/verify.yml
  • extensions/molecule/project_update_mock/cleanup.yml
  • extensions/molecule/project_update_mock/converge.yml
  • extensions/molecule/project_update_mock/inventory.yml
  • extensions/molecule/project_update_mock/molecule.yml
  • extensions/molecule/project_update_mock/verify.yml
  • extensions/molecule/schedule_mock/cleanup.yml
  • extensions/molecule/schedule_mock/converge.yml
  • extensions/molecule/schedule_mock/inventory.yml
  • extensions/molecule/schedule_mock/molecule.yml
  • extensions/molecule/schedule_mock/verify.yml
  • extensions/molecule/workflow_job_template_mock/cleanup.yml
  • extensions/molecule/workflow_job_template_mock/converge.yml
  • extensions/molecule/workflow_job_template_mock/inventory.yml
  • extensions/molecule/workflow_job_template_mock/molecule.yml
  • extensions/molecule/workflow_job_template_mock/verify.yml
  • meta/runtime.yml
  • plugins/action/execution_environment.py
  • plugins/action/group.py
  • plugins/action/host.py
  • plugins/action/inventory.py
  • plugins/action/inventory_source.py
  • plugins/action/inventory_source_update.py
  • plugins/action/job_launch.py
  • plugins/action/job_wait.py
  • plugins/action/notification_template.py
  • plugins/action/project_update.py
  • plugins/action/schedule.py
  • plugins/action/workflow_job_template.py
  • plugins/modules/execution_environment.py
  • plugins/modules/group.py
  • plugins/modules/host.py
  • plugins/modules/inventory.py
  • plugins/modules/inventory_source.py
  • plugins/modules/inventory_source_update.py
  • plugins/modules/job_launch.py
  • plugins/modules/job_wait.py
  • plugins/modules/notification_template.py
  • plugins/modules/project_update.py
  • plugins/modules/schedule.py
  • plugins/modules/workflow_job_template.py
  • plugins/plugin_utils/ansible_models/execution_environment.py
  • plugins/plugin_utils/ansible_models/group.py
  • plugins/plugin_utils/ansible_models/host.py
  • plugins/plugin_utils/ansible_models/inventory.py
  • plugins/plugin_utils/ansible_models/inventory_source.py
  • plugins/plugin_utils/ansible_models/inventory_source_update.py
  • plugins/plugin_utils/ansible_models/job_launch.py
  • plugins/plugin_utils/ansible_models/job_wait.py
  • plugins/plugin_utils/ansible_models/notification_template.py
  • plugins/plugin_utils/ansible_models/project_update.py
  • plugins/plugin_utils/ansible_models/schedule.py
  • plugins/plugin_utils/ansible_models/workflow_job_template.py
  • plugins/plugin_utils/api/v1/execution_environment.py
  • plugins/plugin_utils/api/v1/group.py
  • plugins/plugin_utils/api/v1/host.py
  • plugins/plugin_utils/api/v1/inventory.py
  • plugins/plugin_utils/api/v1/inventory_source.py
  • plugins/plugin_utils/api/v1/inventory_source_update.py
  • plugins/plugin_utils/api/v1/job_launch.py
  • plugins/plugin_utils/api/v1/job_wait.py
  • plugins/plugin_utils/api/v1/notification_template.py
  • plugins/plugin_utils/api/v1/project_update.py
  • plugins/plugin_utils/api/v1/schedule.py
  • plugins/plugin_utils/api/v1/workflow_job_template.py
  • plugins/plugin_utils/manager/platform_manager.py
  • plugins/plugin_utils/manager/rpc_client.py
  • plugins/plugin_utils/platform/base_client.py
  • plugins/plugin_utils/platform/direct_client.py
  • tests/integration/targets/execution_environment_test/meta/main.yml
  • tests/integration/targets/execution_environment_test/tasks/main.yml
  • tests/integration/targets/group_test/meta/main.yml
  • tests/integration/targets/group_test/tasks/main.yml
  • tests/integration/targets/host_test/meta/main.yml
  • tests/integration/targets/host_test/tasks/main.yml
  • tests/integration/targets/inventory_source_test/meta/main.yml
  • tests/integration/targets/inventory_source_test/tasks/main.yml
  • tests/integration/targets/inventory_source_update_test/meta/main.yml
  • tests/integration/targets/inventory_source_update_test/tasks/main.yml
  • tests/integration/targets/inventory_test/meta/main.yml
  • tests/integration/targets/inventory_test/tasks/main.yml
  • tests/integration/targets/job_launch_test/meta/main.yml
  • tests/integration/targets/job_launch_test/tasks/main.yml
  • tests/integration/targets/job_wait_test/meta/main.yml
  • tests/integration/targets/job_wait_test/tasks/main.yml
  • tests/integration/targets/notification_template_test/meta/main.yml
  • tests/integration/targets/notification_template_test/tasks/main.yml
  • tests/integration/targets/project_update_test/meta/main.yml
  • tests/integration/targets/project_update_test/tasks/main.yml
  • tests/integration/targets/schedule_test/meta/main.yml
  • tests/integration/targets/schedule_test/tasks/main.yml
  • tests/integration/targets/workflow_job_template_test/meta/main.yml
  • tests/integration/targets/workflow_job_template_test/tasks/main.yml
  • tests/test_completeness.py
  • tests/unit/plugins/__init__.py
  • tests/unit/plugins/action/__init__.py
  • tests/unit/plugins/action/test_inventory_source_update.py
  • tests/unit/plugins/action/test_job_launch.py
  • tests/unit/plugins/connection/__init__.py
  • tests/unit/plugins/plugin_utils/__init__.py
  • tests/unit/plugins/plugin_utils/api/__init__.py
  • tests/unit/plugins/plugin_utils/api/v1/__init__.py
  • tests/unit/plugins/plugin_utils/api/v1/test_execution_environment.py
  • tests/unit/plugins/plugin_utils/api/v1/test_group.py
  • tests/unit/plugins/plugin_utils/api/v1/test_host.py
  • tests/unit/plugins/plugin_utils/api/v1/test_inventory.py
  • tests/unit/plugins/plugin_utils/api/v1/test_inventory_source.py
  • tests/unit/plugins/plugin_utils/api/v1/test_inventory_source_update.py
  • tests/unit/plugins/plugin_utils/api/v1/test_job_launch.py
  • tests/unit/plugins/plugin_utils/api/v1/test_job_wait.py
  • tests/unit/plugins/plugin_utils/api/v1/test_notification_template.py
  • tests/unit/plugins/plugin_utils/api/v1/test_project_update.py
  • tests/unit/plugins/plugin_utils/api/v1/test_schedule.py
  • tests/unit/plugins/plugin_utils/api/v1/test_workflow_job_template.py
  • tests/unit/plugins/plugin_utils/manager/__init__.py
  • tests/unit/plugins/plugin_utils/manager/test_execute_operations_launch_trigger.py
  • tests/unit/plugins/plugin_utils/manager/test_manage_associations_copy_resource.py
  • tests/unit/plugins/plugin_utils/platform/__init__.py
  • tests/unit/plugins/plugin_utils/platform/test_direct_client_lookup_resource_id.py
  • tools/mock_gateway_server.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

CasC Notification

This PR touches areas that may affect the CasC collections (e.g. infra.aap_configuration).

Detected changes in CasC-monitored areas:

  • Module changes: plugins/modules/execution_environment.py plugins/modules/group.py plugins/modules/host.py plugins/modules/inventory.py plugins/modules/inventory_source.py plugins/modules/inventory_source_update.py plugins/modules/job_launch.py plugins/modules/job_wait.py plugins/modules/notification_template.py plugins/modules/project_update.py plugins/modules/schedule.py plugins/modules/workflow_job_template.py
  • Action plugin changes: plugins/action/execution_environment.py plugins/action/group.py plugins/action/host.py plugins/action/inventory.py plugins/action/inventory_source.py plugins/action/inventory_source_update.py plugins/action/job_launch.py plugins/action/job_wait.py plugins/action/notification_template.py plugins/action/project_update.py plugins/action/schedule.py plugins/action/workflow_job_template.py
  • plugin_utils changes (may affect return structure or auth): plugins/plugin_utils/ansible_models/execution_environment.py plugins/plugin_utils/ansible_models/group.py plugins/plugin_utils/ansible_models/host.py plugins/plugin_utils/ansible_models/inventory.py plugins/plugin_utils/ansible_models/inventory_source.py plugins/plugin_utils/ansible_models/inventory_source_update.py plugins/plugin_utils/ansible_models/job_launch.py plugins/plugin_utils/ansible_models/job_wait.py plugins/plugin_utils/ansible_models/notification_template.py plugins/plugin_utils/ansible_models/project_update.py plugins/plugin_utils/ansible_models/schedule.py plugins/plugin_utils/ansible_models/workflow_job_template.py plugins/plugin_utils/api/v1/execution_environment.py plugins/plugin_utils/api/v1/group.py plugins/plugin_utils/api/v1/host.py plugins/plugin_utils/api/v1/inventory.py plugins/plugin_utils/api/v1/inventory_source.py plugins/plugin_utils/api/v1/inventory_source_update.py plugins/plugin_utils/api/v1/job_launch.py plugins/plugin_utils/api/v1/job_wait.py plugins/plugin_utils/api/v1/notification_template.py plugins/plugin_utils/api/v1/project_update.py plugins/plugin_utils/api/v1/schedule.py plugins/plugin_utils/api/v1/workflow_job_template.py plugins/plugin_utils/manager/platform_manager.py plugins/plugin_utils/manager/rpc_client.py plugins/plugin_utils/platform/base_client.py plugins/plugin_utils/platform/direct_client.py

Please tag the CasC collections team in this PR so they are aware of the change.

This comment is posted automatically and does not block merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant