Skip to content

[NO-JIRA] Changing API calls to v4#135

Open
abhay-nutanix wants to merge 6 commits intoopenshift:mainfrom
abhay-nutanix:issue/v4Migration
Open

[NO-JIRA] Changing API calls to v4#135
abhay-nutanix wants to merge 6 commits intoopenshift:mainfrom
abhay-nutanix:issue/v4Migration

Conversation

@abhay-nutanix
Copy link
Copy Markdown
Contributor

@abhay-nutanix abhay-nutanix commented Apr 4, 2026

Summary by CodeRabbit

  • New Features

    • Added support for Nutanix Prism Converged v4 APIs for VM lifecycle and resource management.
  • Bug Fixes

    • Improved VM/network/IP extraction, GPU and project resolution, provider-ID handling, and case-insensitive "not found" detection.
  • Chores

    • Updated Nutanix client libraries and related dependencies to v4 series.
    • Simplified manager startup by removing a separate cached configuration client.
  • Tests

    • Hardened event-related tests to reliably match machine-scoped events.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 4, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 4, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b606b0b0-aa40-4bc9-8e27-1dbb29a4904d

📥 Commits

Reviewing files that changed from the base of the PR and between fe02c67 and d4a98b9.

📒 Files selected for processing (3)
  • pkg/actuators/machine/machine_scope.go
  • pkg/actuators/machine/vm.go
  • pkg/client/client.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/client/client.go

Walkthrough

Removed the separate cached controller-runtime client for openshift-config-managed; migrated Nutanix integration to Prism Converged v4 with lazy legacy v3 fallbacks; rewired client factories and actuator wiring; replaced v3 VM/task helpers with v4 equivalents; removed state-polling utilities; updated tests and go.mod accordingly.

Changes

Nutanix v4 migration & actuator wiring

Layer / File(s) Summary
Data Shape / Types
pkg/client/client.go, pkg/actuators/machine/machine_scope.go, pkg/actuators/machine/actuator.go
ClientOptions.Credentials now uses prismgoclient.Credentials; Actuator and ActuatorParams no longer include a configManagedClient; machineScope stores a converged v4 client plus cached client options and lazy v3 accessor.
Core Implementation: client factories & helpers
pkg/client/client.go
Added resolveCredentials(options); Client() now creates a converged v4 client; V3Client() added to construct legacy v3 clients; removed kube-cloud-config constants.
Core Implementation: VM model & lifecycle
pkg/actuators/machine/vm.go, pkg/actuators/machine/*
Rewrote VM creation, find, delete, and resource lookup flows to use v4 converged APIs and v4 VM models; added v4 VM builders (NICs, disks, boot, GPUs, categories, project refs) and v4-based finders for cluster/image/subnet.
Core Implementation: machine scope & addresses
pkg/actuators/machine/machine_scope.go
Switched provider-status and address extraction to v4 vmmModels.Vm; added helpers to extract, deduplicate, sort internal IPv4s from v4 NIC variants and fallback NIC listing via v4 SDK.
Core Implementation: GPU / utilities
pkg/actuators/machine/utils.go
Removed v3 GPU/category/task-poll helpers; added converged v4 GPU discovery/matching helpers; removed v3 task-wait/poll utilities.
Actuator wiring / manager startup
pkg/actuators/machine/actuator.go, cmd/manager/main.go
Actuator construction no longer accepts or stores a configManagedClient; manager stopped creating/adding the separate cached client for openshift-config-managed; removed newConfigManagedClient.
Tests / Test helpers
pkg/actuators/machine/actuator_test.go, pkg/actuators/machine/test_utils.go
Tests updated to filter events by machine UID, use k8s.io/utils/ptr.To for pointers, and pass a declared nil context variable instead of raw nil.
Removed polling/state helpers
pkg/client/state.go (deleted)
Deleted state-wait, retry, and message-list helpers previously used for v3 polling.
Dependency manifest
go.mod
Updated module requirements: added converged v4/prism SDKs, reorganized transitive dependencies, and updated testing libs.

Sequence Diagram(s)

sequenceDiagram
    participant Manager as Manager
    participant Actuator as Actuator
    participant V4Client as "Prism Converged v4"
    participant V3Client as "Prism v3 (legacy)"
    Manager->>Actuator: start / reconcile
    Actuator->>V4Client: create/find/delete VM, list Clusters/Images/Subnets/Categories/GPU
    V4Client-->>Actuator: v4 VM models, resources, statuses
    Actuator->>V3Client: perform v3-only calls (e.g., project lookups) via lazy v3 client
    V3Client-->>Actuator: v3 responses
    Actuator-->>Manager: update Machine status, labels, events
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

🚥 Pre-merge checks | ✅ 10 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 67.65% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ⚠️ Warning Test file lacks meaningful failure messages in assertions and doesn't follow project's existing Ginkgo BeforeEach/AfterEach patterns seen in machineset tests. Add assertion failure messages (e.g., Expect(...).To(Succeed(), "failed to create resource")), and refactor using Ginkgo Describe/BeforeEach/AfterEach for consistency with codebase patterns.
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title '[NO-JIRA] Changing API calls to v4' accurately summarizes the main objective of the pull request, which is migrating from Nutanix Prism v3 APIs to v4 APIs across multiple files and components.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All test names use static string literals. No dynamic content, variables, timestamps, UUIDs, IP addresses, or generated identifiers found in any test name.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests added in this PR. PR migrates Nutanix APIs from v3 to v4. Only modified test file is actuator_test.go, a standard Go unit test (not Ginkgo e2e).
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR adds one Ginkgo test in pkg/actuators/machineset/controller_test.go. The test performs only MachineSet CRUD and annotation validation with no multi-node assumptions. Compatible with SNO.
Topology-Aware Scheduling Compatibility ✅ Passed PR is API v3→v4 migration in Go code only. No deployment manifests, scheduling constraints, or topology-aware scheduling logic added or modified.
Ote Binary Stdout Contract ✅ Passed No OTE Stdout Contract violations introduced. No new process-level stdout writes found in non-vendor code. klog configured to stderr. Pre-existing fmt.Println in main.go is not a PR addition.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests are added. Only modifications to existing TestMachineEvents function. Custom check not applicable.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 4, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign nrb for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
pkg/actuators/machine/machine_scope.go (1)

326-333: ⚠️ Potential issue | 🟡 Minor

Avoid appending empty DNS/hostname addresses.

If vm.Name is nil, Lines 326-333 still add NodeInternalDNS and NodeHostName with Address: "". Fall back to s.machine.Name or skip those entries when the value is empty.

Possible fix
-	vmName := ""
+	vmName := s.machine.Name
 	if vm.Name != nil {
 		vmName = *vm.Name
 	}
-	nodeAddresses = append(nodeAddresses,
-		corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: vmName},
-		corev1.NodeAddress{Type: corev1.NodeHostName, Address: vmName},
-	)
+	if vmName != "" {
+		nodeAddresses = append(nodeAddresses,
+			corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: vmName},
+			corev1.NodeAddress{Type: corev1.NodeHostName, Address: vmName},
+		)
+	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/machine_scope.go` around lines 326 - 333, The code
appends NodeInternalDNS and NodeHostName entries to nodeAddresses even when
vm.Name is nil, resulting in empty Address fields; update the logic in
machine_scope.go around vm.Name handling so that if vm.Name is nil or empty you
either use s.machine.Name as a fallback or skip adding those NodeAddress entries
altogether—check vm.Name and/or resolvedName (prefer s.machine.Name when
vm.Name==nil or *vm.Name==""), and only append corev1.NodeAddress{Type:
corev1.NodeInternalDNS, Address: resolvedName} and corev1.NodeAddress{Type:
corev1.NodeHostName, Address: resolvedName} when resolvedName is non-empty.
pkg/actuators/machine/reconciler.go (1)

128-145: ⚠️ Potential issue | 🟠 Major

Don't report success solely because the VM was fetched.

After the v3 ERROR-state gate was removed, this path always reaches conditionSuccess(machineUpdate) once metadata sync succeeds. pkg/actuators/machine/machine_scope.go:288-310 applies that condition verbatim, so a VM that exists but is failed/stuck will now clear failure conditions. This also pairs with the hardcoded instance-state=COMPLETE below, which makes unhealthy VMs look healthy.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/reconciler.go` around lines 128 - 145, The code
unconditionally sets conditionSuccess(machineUpdate) after metadata sync, which
clears failure conditions for VMs that exist but are unhealthy; modify the logic
so success is only set when the VM is actually healthy: have
updateMachineWithVMState return an explicit health result (e.g., (healthy bool,
err error)) or inspect the VM state (use vm.Status.State or equivalent fields
inside updateMachineWithVMState) and, after calling updateMachineWithVMState,
call r.machineScope.setProviderStatus(vm, conditionSuccess(machineUpdate)) only
if healthy is true, otherwise call r.machineScope.setProviderStatus(vm,
conditionFailed(machineUpdate, <state-or-error>)) and register the failed
instance update; update call sites and tests that assume the previous signature
accordingly (refer to updateMachineWithVMState,
r.machineScope.setProviderStatus, conditionSuccess(machineUpdate), and
conditionFailed(machineUpdate,...)).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/actuators/machine/machine_scope.go`:
- Around line 104-108: The scope currently eagerly creates a v3 client
(clientpkg.V3Client) and assigns it to mscp.nutanixV3Client, which makes every
machine scope depend on v3 initialization; remove that eager creation from the
constructor in machine_scope.go and instead add a lazy initializer (e.g.,
ensureV3Client or getV3Client method on the scope) that constructs and caches
the v3 client via clientpkg.V3Client(clientOptions) on first use; call this lazy
getter only from the v3-only code path (the project lookup routine in vm.go) and
propagate/handle its error there so create/update/delete/exists paths that don’t
need v3 remain unaffected.

In `@pkg/actuators/machine/vm.go`:
- Around line 621-626: The code is downgrading hard errors from
buildV4CategoryRefs into warnings and proceeding to create the VM without
required categories; instead propagate the error so VM creation fails when
category resolution fails. Replace the klog.Warningf branch in the block that
calls buildV4CategoryRefs (referencing buildV4CategoryRefs, vm.Categories and
vmName) so that if err != nil you return or propagate that error up from the
current function (do not swallow it), and only set vm.Categories when
len(categoryRefs) > 0; preserve the existing log message but make the control
flow return the error rather than continuing.
- Around line 234-239: The GPU validation code in validateVMConfig dereferences
mscp.providerSpecValidated.Cluster.UUID even when cluster resolution failed;
guard this path by verifying the cluster object and its UUID are non-nil (e.g.,
check mscp.providerSpecValidated.Cluster != nil &&
mscp.providerSpecValidated.Cluster.UUID != nil) and only call
getGPUsForPEConverged when those checks pass (and there are no prior cluster
validation errors), otherwise skip GPU remote lookup so validateVMConfig
collects a field error instead of causing a nil-pointer panic.
- Around line 444-460: The code currently proceeds to create a VM if
findVMByUUID returns any error, which can cause duplicate VMs on transient read
failures; update the logic around mscp.providerStatus.VmUUID and the call to
findVMByUUID so that you only fall through to buildV4VMFromScope and call
mscp.nutanixClient.VMs.Create when findVMByUUID reports a definitive "not found"
outcome; if findVMByUUID returns any other error (timeout/auth/service), return
that error (or wrap and return) instead of creating, referencing the
functions/values findVMByUUID, mscp.providerStatus.VmUUID, buildV4VMFromScope,
nutanixClient.VMs.Create and vmName to locate and change the conditional control
flow.
- Around line 909-923: The loop over clusters can panic because it checks
clusters[i].Config.ClusterFunction before confirming clusters[i].Config is
non-nil and it indexes [0] without ensuring the slice has elements; update the
loop in vm.go to first check if clusters[i].Config == nil, then check
len(clusters[i].Config.ClusterFunction) > 0, then iterate over all entries in
clusters[i].Config.ClusterFunction looking for
clusterModels.CLUSTERFUNCTIONREF_PRISM_CENTRAL; when a match is found assign it
to the found variable (of type clusterModels.Cluster) and break out, and keep
the existing error return if found remains the zero value.

In `@pkg/client/client.go`:
- Around line 32-43: The resolveCredentials function currently builds the URL
with fmt.Sprintf which breaks IPv6 addresses; update resolveCredentials to
construct the host using net.JoinHostPort(options.Credentials.Endpoint,
options.Credentials.Port) and then build the full URL via
url.URL{Scheme:"https", Host: joinedHost} (or url.Parse) so IPv6 literals are
properly bracketed; ensure this fix covers callers Client() and V3Client() that
rely on resolveCredentials and preserve existing behaviour when URL is already
set or port/endpoint are empty.

---

Outside diff comments:
In `@pkg/actuators/machine/machine_scope.go`:
- Around line 326-333: The code appends NodeInternalDNS and NodeHostName entries
to nodeAddresses even when vm.Name is nil, resulting in empty Address fields;
update the logic in machine_scope.go around vm.Name handling so that if vm.Name
is nil or empty you either use s.machine.Name as a fallback or skip adding those
NodeAddress entries altogether—check vm.Name and/or resolvedName (prefer
s.machine.Name when vm.Name==nil or *vm.Name==""), and only append
corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: resolvedName} and
corev1.NodeAddress{Type: corev1.NodeHostName, Address: resolvedName} when
resolvedName is non-empty.

In `@pkg/actuators/machine/reconciler.go`:
- Around line 128-145: The code unconditionally sets
conditionSuccess(machineUpdate) after metadata sync, which clears failure
conditions for VMs that exist but are unhealthy; modify the logic so success is
only set when the VM is actually healthy: have updateMachineWithVMState return
an explicit health result (e.g., (healthy bool, err error)) or inspect the VM
state (use vm.Status.State or equivalent fields inside updateMachineWithVMState)
and, after calling updateMachineWithVMState, call
r.machineScope.setProviderStatus(vm, conditionSuccess(machineUpdate)) only if
healthy is true, otherwise call r.machineScope.setProviderStatus(vm,
conditionFailed(machineUpdate, <state-or-error>)) and register the failed
instance update; update call sites and tests that assume the previous signature
accordingly (refer to updateMachineWithVMState,
r.machineScope.setProviderStatus, conditionSuccess(machineUpdate), and
conditionFailed(machineUpdate,...)).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 044272b3-79fb-4a98-a012-bd7047d92641

📥 Commits

Reviewing files that changed from the base of the PR and between 60559fd and 391f79c.

⛔ Files ignored due to path filters (289)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/aws/aws-sdk-go-v2/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/accountid_endpoint_mode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/arn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/checksum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/auto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/configuration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaultsmode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/logging_generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/osname.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/osname_go115.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/recursion_detection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/request_id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/request_id_retriever.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/transport_go117.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/header_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/message.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/restjson/decoder_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/none.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_ratelimit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_token_bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/attempt_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/jitter_backoff.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retryable_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/throttle_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/timeout_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/runtime.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/scope.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/presign_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/content_type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/response_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/response_error_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/timeout_read_closer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/auth_scheme_preference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/defaultsmode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/local.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve_bearer_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_cached_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/static_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetDynamicData.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetIAMInfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetInstanceIdentityDocument.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetMetadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetRegion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetToken.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetUserData.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config/resolvers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/request_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/bucket_region.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/buffered_read_seeker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_read_seeker_write_to.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_read_seeker_write_to_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_writer_read_from.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_writer_read_from_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/download.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/read_seeker_write_to.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/upload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/writer_read_from.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/scheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/bearer_token_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/bearer_token_signer_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/credentials_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/smithy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/v4signer_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/copy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/prettify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/string_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/context/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partition.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/ini.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/sections.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/tokenize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/middleware/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdk/interfaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdk/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdkio/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/shareddefaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/strings/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/docs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/timeconv/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/compare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/ecc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/presign_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/smithy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/v4a.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/accept_encoding_gzip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/algorithms.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/aws_chunked_encoding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_add.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_checksum_metrics_tracking.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_compute_input_checksum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_setup_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_validate_output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/accesspoint_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/arn_member.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/outpost_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/s3_object_lambda_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn_lookup.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/endpoint_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/host_id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/metadata_retriever.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/resource_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/response_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/response_error_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/update_endpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/xml_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucketMetadataConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucketMetadataTableConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (11)
  • cmd/manager/main.go
  • go.mod
  • pkg/actuators/machine/actuator.go
  • pkg/actuators/machine/actuator_test.go
  • pkg/actuators/machine/machine_scope.go
  • pkg/actuators/machine/reconciler.go
  • pkg/actuators/machine/test_utils.go
  • pkg/actuators/machine/utils.go
  • pkg/actuators/machine/vm.go
  • pkg/client/client.go
  • pkg/client/state.go
💤 Files with no reviewable changes (1)
  • pkg/client/state.go

Comment thread pkg/actuators/machine/machine_scope.go Outdated
Comment thread pkg/actuators/machine/vm.go
Comment thread pkg/actuators/machine/vm.go
Comment thread pkg/actuators/machine/vm.go
Comment thread pkg/actuators/machine/vm.go Outdated
Comment thread pkg/client/client.go
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 4, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (5)
pkg/client/client.go (1)

41-42: ⚠️ Potential issue | 🟠 Major

Build Credentials.URL with net.JoinHostPort.

fmt.Sprintf("https://%s:%s", ...) breaks IPv6 literals, so both Client() and V3Client() fail against IPv6 Prism endpoints because they share resolveCredentials().

Suggested fix
 import (
-	"fmt"
+	"net"
+	"net/url"
 	"os"
@@
-		options.Credentials.URL = fmt.Sprintf("https://%s:%s", options.Credentials.Endpoint, options.Credentials.Port)
+		options.Credentials.URL = (&url.URL{
+			Scheme: "https",
+			Host:   net.JoinHostPort(options.Credentials.Endpoint, options.Credentials.Port),
+		}).String()
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/client/client.go` around lines 41 - 42, The URL construction in
resolveCredentials() currently uses fmt.Sprintf("https://%s:%s",
options.Credentials.Endpoint, options.Credentials.Port) which breaks IPv6
literals; change it to build the host:port with
net.JoinHostPort(options.Credentials.Endpoint, options.Credentials.Port) and
then prefix with "https://" to set options.Credentials.URL, and add the net
import if missing so Client() and V3Client() get a correct IPv6-safe
Credentials.URL.
pkg/actuators/machine/vm.go (4)

621-626: ⚠️ Potential issue | 🟠 Major

Fail VM creation when category lookup fails.

Continuing without the requested categories changes the desired state and can break policy attachment or cleanup flows on transient Prism errors. buildV4CategoryRefs() errors should abort buildV4VMFromScope().

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/vm.go` around lines 621 - 626, The code currently
swallows errors from buildV4CategoryRefs and continues; change
buildV4VMFromScope to treat any error returned by buildV4CategoryRefs(ctx, mscp)
as fatal by returning that error (or wrapping it with context) instead of
logging a warning and proceeding—only set vm.Categories from categoryRefs when
no error and len(categoryRefs) > 0; update any callers or error handling as
needed so VM creation aborts on category lookup failures.

910-913: ⚠️ Potential issue | 🔴 Critical

Fix the nil/index panic in ClusterFunction access.

clusters[i].Config.ClusterFunction is read before Config is nil-checked, and [0] still panics on empty slices. It also ignores valid PRISM_CENTRAL markers after index 0.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/vm.go` around lines 910 - 913, The loop over clusters
incorrectly accesses clusters[i].Config.ClusterFunction before verifying Config
is non-nil and assumes index 0 exists; change the guard in the for-loop to first
check clusters[i].ExtId != nil and clusters[i].Config != nil, then ensure
len(clusters[i].Config.ClusterFunction) > 0 before indexing, and instead of only
checking ClusterFunction[0] compare all entries (e.g., iterate the
ClusterFunction slice) for clusterModels.CLUSTERFUNCTIONREF_PRISM_CENTRAL so any
position matches are accepted; update the condition around the continue to
reflect these checks in the code that operates on clusters.

444-450: ⚠️ Potential issue | 🔴 Critical

Only create after a definitive not-found.

If findVMByUUID() fails for timeout/auth/service errors, this still falls through to Create and can duplicate an existing VM. Return the lookup error unless it's a confirmed not-found.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/vm.go` around lines 444 - 450, The current logic treats
any error from findVMByUUID as "not found" and proceeds to Create, risking
duplicate VMs; change the flow in the block that checks
mscp.providerStatus.VmUUID so that after calling findVMByUUID(ctx,
mscp.nutanixClient, *mscp.providerStatus.VmUUID) you return the error
immediately unless the error explicitly indicates a not-found condition (e.g., a
sentinel NotFound error or HTTP 404 from the client); only proceed to Create
when you have a confirmed not-found, otherwise propagate the lookup error up
from this function (referencing mscp.providerStatus.VmUUID, findVMByUUID and the
surrounding Create caller).

234-239: ⚠️ Potential issue | 🔴 Critical

Guard GPU validation when the cluster UUID is unresolved.

validateVMConfig() keeps going after validateClusterConfig() adds an error, so Line 237 can still dereference a nil Cluster.UUID when GPUs are configured.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/vm.go` around lines 234 - 239, The code dereferences
mscp.providerSpecValidated.Cluster.UUID without ensuring Cluster/UUID is set,
causing a panic when GPU validation runs before cluster resolution; update the
GPU validation block in validateVMConfig (the section using
mscp.providerSpecValidated.Cluster.UUID and calling getGPUsForPEConverged) to
first check that mscp.providerSpecValidated.Cluster != nil and
mscp.providerSpecValidated.Cluster.UUID != nil and skip/return from GPU-specific
validation if either is nil so no dereference occurs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/actuators/machine/vm.go`:
- Around line 701-705: The current code swallows failures from getCategoryValue
(called with categoryKey built from NutanixCategoryKeyPrefix and clusterID and
expected NutanixCategoryValue), logs a warning and returns partial refs which
lets unmanaged VMs be created; instead propagate the error so callers can fail
cleanup. Replace the branch that does "klog.Warningf(...); return refs, nil"
with returning an appropriate error (e.g., wrap err with context about failing
to read the installer ownership category for categoryKey) so the caller of the
function that invokes getCategoryValue receives the error rather than partial
refs; update any callers if needed to handle the error path.
- Around line 793-804: The DeleteAsync error path should treat not-found as a
successful/idempotent delete: in the DeleteAsync call (client.VMs.DeleteAsync)
check the returned err for NOT_FOUND (e.g.,
strings.Contains(strings.ToUpper(fmt.Sprint(err)), "NOT_FOUND")) and, if
matched, log success for vmUUID and return nil; otherwise proceed with the
existing wait logic (which already checks Wait() errors for NOT_FOUND). This
mirrors the reconciler.go pattern and ensures both DeleteAsync and op.Wait
handle externally-removed VMs idempotently.

---

Duplicate comments:
In `@pkg/actuators/machine/vm.go`:
- Around line 621-626: The code currently swallows errors from
buildV4CategoryRefs and continues; change buildV4VMFromScope to treat any error
returned by buildV4CategoryRefs(ctx, mscp) as fatal by returning that error (or
wrapping it with context) instead of logging a warning and proceeding—only set
vm.Categories from categoryRefs when no error and len(categoryRefs) > 0; update
any callers or error handling as needed so VM creation aborts on category lookup
failures.
- Around line 910-913: The loop over clusters incorrectly accesses
clusters[i].Config.ClusterFunction before verifying Config is non-nil and
assumes index 0 exists; change the guard in the for-loop to first check
clusters[i].ExtId != nil and clusters[i].Config != nil, then ensure
len(clusters[i].Config.ClusterFunction) > 0 before indexing, and instead of only
checking ClusterFunction[0] compare all entries (e.g., iterate the
ClusterFunction slice) for clusterModels.CLUSTERFUNCTIONREF_PRISM_CENTRAL so any
position matches are accepted; update the condition around the continue to
reflect these checks in the code that operates on clusters.
- Around line 444-450: The current logic treats any error from findVMByUUID as
"not found" and proceeds to Create, risking duplicate VMs; change the flow in
the block that checks mscp.providerStatus.VmUUID so that after calling
findVMByUUID(ctx, mscp.nutanixClient, *mscp.providerStatus.VmUUID) you return
the error immediately unless the error explicitly indicates a not-found
condition (e.g., a sentinel NotFound error or HTTP 404 from the client); only
proceed to Create when you have a confirmed not-found, otherwise propagate the
lookup error up from this function (referencing mscp.providerStatus.VmUUID,
findVMByUUID and the surrounding Create caller).
- Around line 234-239: The code dereferences
mscp.providerSpecValidated.Cluster.UUID without ensuring Cluster/UUID is set,
causing a panic when GPU validation runs before cluster resolution; update the
GPU validation block in validateVMConfig (the section using
mscp.providerSpecValidated.Cluster.UUID and calling getGPUsForPEConverged) to
first check that mscp.providerSpecValidated.Cluster != nil and
mscp.providerSpecValidated.Cluster.UUID != nil and skip/return from GPU-specific
validation if either is nil so no dereference occurs.

In `@pkg/client/client.go`:
- Around line 41-42: The URL construction in resolveCredentials() currently uses
fmt.Sprintf("https://%s:%s", options.Credentials.Endpoint,
options.Credentials.Port) which breaks IPv6 literals; change it to build the
host:port with net.JoinHostPort(options.Credentials.Endpoint,
options.Credentials.Port) and then prefix with "https://" to set
options.Credentials.URL, and add the net import if missing so Client() and
V3Client() get a correct IPv6-safe Credentials.URL.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 96753691-6841-440a-8038-b652f00a11d9

📥 Commits

Reviewing files that changed from the base of the PR and between 391f79c and ee35623.

⛔ Files ignored due to path filters (288)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/aws/aws-sdk-go-v2/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/accountid_endpoint_mode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/arn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/checksum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/auto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/configuration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaults/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/defaultsmode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/from_ptr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/logging_generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/osname.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/osname_go115.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/recursion_detection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/request_id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/request_id_retriever.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi/transport_go117.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/header_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/message.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/restjson/decoder_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/none.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_ratelimit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive_token_bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/attempt_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/jitter_backoff.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/retryable_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/throttle_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retry/timeout_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/runtime.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/scope.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/presign_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/to_ptr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/content_type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/response_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/response_error_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/timeout_read_closer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/auth_scheme_preference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/defaultsmode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/env_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/local.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve_bearer_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_cached_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/static_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetDynamicData.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetIAMInfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetInstanceIdentityDocument.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetMetadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetRegion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetToken.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_op_GetUserData.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config/resolvers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/request_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/token_provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/bucket_region.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/buffered_read_seeker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_read_seeker_write_to.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_read_seeker_write_to_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_writer_read_from.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/default_writer_read_from_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/download.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/read_seeker_write_to.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/upload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/writer_read_from.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/scheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/bearer_token_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/bearer_token_signer_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/credentials_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/smithy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/auth/smithy/v4signer_adapter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/copy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/prettify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/string_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/context/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partition.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/endpoints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/ini.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/sections.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/tokenize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/ini/value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/middleware/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/rand/rand.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdk/interfaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdk/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sdkio/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/shareddefaults/shared_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/strings/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/docs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/sync/singleflight/singleflight.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/timeconv/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/credentials.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/compare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto/ecc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/header_rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/presign_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/smithy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/v4a.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/accept_encoding_gzip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/algorithms.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/aws_chunked_encoding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_add.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_checksum_metrics_tracking.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_compute_input_checksum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_setup_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/middleware_validate_output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/accesspoint_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/arn_member.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/outpost_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn/s3_object_lambda_arn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn_lookup.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/endpoint_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/host_id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/metadata.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/metadata_retriever.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/resource_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/response_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/response_error_middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/update_endpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/xml_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucketMetadataConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucketMetadataTableConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (11)
  • cmd/manager/main.go
  • go.mod
  • pkg/actuators/machine/actuator.go
  • pkg/actuators/machine/actuator_test.go
  • pkg/actuators/machine/machine_scope.go
  • pkg/actuators/machine/reconciler.go
  • pkg/actuators/machine/test_utils.go
  • pkg/actuators/machine/utils.go
  • pkg/actuators/machine/vm.go
  • pkg/client/client.go
  • pkg/client/state.go
💤 Files with no reviewable changes (1)
  • pkg/client/state.go
🚧 Files skipped from review as they are similar to previous changes (5)
  • pkg/actuators/machine/test_utils.go
  • pkg/actuators/machine/actuator.go
  • go.mod
  • pkg/actuators/machine/utils.go
  • pkg/actuators/machine/machine_scope.go

Comment thread pkg/actuators/machine/vm.go Outdated
Comment thread pkg/actuators/machine/vm.go
@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/retest

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/actuators/machine/machine_scope.go (1)

337-344: ⚠️ Potential issue | 🟡 Minor

Skip DNS/hostname addresses when the VM name is missing.

This still appends NodeInternalDNS and NodeHostName with Address: "" when Prism returns a VM without Name. That leaves empty addresses in machine status instead of omitting those entries.

Proposed fix
-	vmName := ""
-	if vm.Name != nil {
-		vmName = *vm.Name
-	}
-	nodeAddresses = append(nodeAddresses,
-		corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: vmName},
-		corev1.NodeAddress{Type: corev1.NodeHostName, Address: vmName},
-	)
+	if vm != nil && vm.Name != nil && *vm.Name != "" {
+		nodeAddresses = append(nodeAddresses,
+			corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: *vm.Name},
+			corev1.NodeAddress{Type: corev1.NodeHostName, Address: *vm.Name},
+		)
+	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/actuators/machine/machine_scope.go` around lines 337 - 344, The code
currently appends NodeInternalDNS and NodeHostName entries with an empty Address
when vm.Name is missing; update the logic around vmName/nodeAddresses so that
you only append the corev1.NodeAddress entries for NodeInternalDNS and
NodeHostName when vm.Name is non-nil and not the empty string (i.e., check
vm.Name != nil && *vm.Name != "" before calling append on nodeAddresses),
leaving other address appends unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/actuators/machine/vm.go`:
- Around line 946-965: The helper getPrismCentralCluster currently errors unless
it finds a Cluster with clusterModels.CLUSTERFUNCTIONREF_PRISM_CENTRAL; restore
the documented single-cluster fallback by returning the sole valid cluster when
the API returned exactly one cluster. Inside the loop over clusters (variable
clusters) keep the existing validation for ExtId/Config but record a fallback
when len(clusters) == 1 (or set a firstValid variable) and, if no PRISM_CENTRAL
entry is found, return that single valid cluster instead of failing; ensure you
still prefer any cluster whose Config.ClusterFunction contains
clusterModels.CLUSTERFUNCTIONREF_PRISM_CENTRAL.

---

Outside diff comments:
In `@pkg/actuators/machine/machine_scope.go`:
- Around line 337-344: The code currently appends NodeInternalDNS and
NodeHostName entries with an empty Address when vm.Name is missing; update the
logic around vmName/nodeAddresses so that you only append the corev1.NodeAddress
entries for NodeInternalDNS and NodeHostName when vm.Name is non-nil and not the
empty string (i.e., check vm.Name != nil && *vm.Name != "" before calling append
on nodeAddresses), leaving other address appends unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: bf27cf5e-47da-4730-82b0-ed76ad40edb1

📥 Commits

Reviewing files that changed from the base of the PR and between ee35623 and dd61e11.

📒 Files selected for processing (3)
  • pkg/actuators/machine/machine_scope.go
  • pkg/actuators/machine/vm.go
  • pkg/client/client.go

Comment thread pkg/actuators/machine/vm.go Outdated
@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/retest

@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/test regression-clusterinfra-nutanix-ipi-mapi

@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/test regression-clusterinfra-nutanix-ipi-mapi

@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/retest

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pkg/actuators/machine/machine_scope.go`:
- Around line 375-381: The code currently appends NodeInternalDNS and
NodeHostName entries even when vm.Name is empty; update the block that builds
nodeAddresses so it only appends corev1.NodeAddress{Type:
corev1.NodeInternalDNS, Address: vmName} and corev1.NodeAddress{Type:
corev1.NodeHostName, Address: vmName} when vm.Name is non-nil AND *vm.Name is
not the empty string (e.g., if vm.Name != nil && *vm.Name != "" { ... }). Use
vm.Name as the source (or keep vmName) and skip adding those two addresses
otherwise to avoid empty-address entries.

In `@pkg/actuators/machine/vm.go`:
- Around line 269-271: The field.Invalid call is passing the pointer gpu.Name
instead of the actual string; in the validation block around
getGPUFromListConverged(gpu, peGPUs) update the field value argument to pass the
dereferenced GPU name (e.g. use name := "" ; if gpu != nil && gpu.Name != nil {
name = *gpu.Name } and then field.Invalid(fldPath.Child("gpus", "name"), name,
err.Error())) so you safely handle nil pointers while reporting the real GPU
name; ensure references are made to getGPUFromListConverged, fldErrs, and
field.Invalid in this change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 72675193-8bbb-4fad-a986-ff1d5ea3751a

📥 Commits

Reviewing files that changed from the base of the PR and between dd61e11 and fe02c67.

📒 Files selected for processing (3)
  • pkg/actuators/machine/machine_scope.go
  • pkg/actuators/machine/vm.go
  • pkg/client/client.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/client/client.go

Comment thread pkg/actuators/machine/machine_scope.go Outdated
Comment thread pkg/actuators/machine/vm.go Outdated
@abhay-nutanix
Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 7, 2026

@abhay-nutanix: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/verify-deps d4a98b9 link true /test verify-deps

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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