Skip to content

NE-2451: Implement probe_dns_local diagnostic tool#176

Open
bentito wants to merge 3 commits intoopenshift:mainfrom
bentito:feat/NE-2451-probe-dns-local
Open

NE-2451: Implement probe_dns_local diagnostic tool#176
bentito wants to merge 3 commits intoopenshift:mainfrom
bentito:feat/NE-2451-probe-dns-local

Conversation

@bentito
Copy link

@bentito bentito commented Mar 10, 2026

This PR implements an active tool that generates network traffic to verify DNS connectivity and resolution.

This PR implements DNS probing from the server: probe_dns_local (NE-2451)

  • Description: Run a DNS query using local libraries on the MCP server host.
  • It uses the standard Go DNS library (github.com/miekg/dns) and defaults to A record requests if no type is explicitly supplied.
  • It allows for shimming the Exchange function through an interface for offline unit testing without external dependencies.
  • Fixes NE-2451: https://issues.redhat.com/browse/NE-2451

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 10, 2026
@openshift-ci
Copy link

openshift-ci bot commented Mar 10, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: bentito
Once this PR has been reviewed and has the lgtm label, please assign kaustubh-pande 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

@bentito bentito force-pushed the feat/NE-2451-probe-dns-local branch from c6889eb to 7391991 Compare March 10, 2026 18:34
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 10, 2026
@bentito bentito force-pushed the feat/NE-2451-probe-dns-local branch from 7391991 to 804593c Compare March 10, 2026 18:42
@bentito bentito changed the title Implement probe_dns_local diagnostic tool netedge: Implement probe_dns_local diagnostic tool Mar 10, 2026
@bentito bentito changed the title netedge: Implement probe_dns_local diagnostic tool NE-2451: Implement probe_dns_local diagnostic tool Mar 10, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 10, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@bentito: This pull request references NE-2451 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR implements an active tool that generates network traffic to verify DNS connectivity and resolution.

This PR implements DNS probing from the server: probe_dns_local (NE-2451)

  • Description: Run a DNS query using local libraries on the MCP server host.
  • It uses the standard Go DNS library (github.com/miekg/dns) and defaults to A record requests if no type is explicitly supplied.
  • It allows for shimming the Exchange function through an interface for offline unit testing without external dependencies.
  • Fixes NE-2451: https://issues.redhat.com/browse/NE-2451

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 openshift-eng/jira-lifecycle-plugin repository.

@matzew
Copy link
Member

matzew commented Mar 11, 2026

Thanks for the split of actual change and vendor noise 🙃

bentito added a commit to bentito/openshift-mcp-server that referenced this pull request Mar 12, 2026
- Set ClusterAware to false for probe_dns_local

- Improve robust IPv6-aware address port handling

- Use api.NewToolCallResultStructured for structured tool output
bentito added 3 commits March 13, 2026 16:43
- Set ClusterAware to false for probe_dns_local

- Improve robust IPv6-aware address port handling

- Use api.NewToolCallResultStructured for structured tool output
@bentito bentito force-pushed the feat/NE-2451-probe-dns-local branch from f7c0746 to 134fc9c Compare March 13, 2026 20:47
@coderabbitai
Copy link

coderabbitai bot commented Mar 13, 2026

Walkthrough

This pull request introduces a local DNS probe tool for the MCP server. It adds direct module dependencies for mcp-go and dns libraries, implements a DNS probe handler with configurable client injection, defines result structures, and includes comprehensive table-driven tests with a mock DNS client.

Changes

Cohort / File(s) Summary
Module Dependencies
go.mod
Added direct dependencies for github.com/mark3labs/mcp-go v0.45.0 and github.com/miekg/dns v1.1.57; added indirect dependencies including generic-list-go, jsonparser, jsonschema, and golang.org/x tooling packages.
DNS Probe Tool Implementation
pkg/toolsets/netedge/probe_dns_local.go, pkg/toolsets/netedge/toolset.go
Introduced new DNS probe handler with dnsExchange interface for testability, defaultDNSClient wrapper, DNSResult struct for JSON serialization, and probeDNSLocalHandler with parameter validation, FQDN normalization, port defaulting, DNS type resolution, and structured result building. Registered tool in toolset.
Test Coverage
pkg/toolsets/netedge/probe_dns_local_test.go
Added comprehensive table-driven test suite with mockDNSClient implementation covering successful queries, validation errors, invalid record types, network failures, default behavior, and port augmentation for IPv4/IPv6 servers.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link

@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.

🧹 Nitpick comments (2)
pkg/toolsets/netedge/probe_dns_local.go (1)

68-69: Consider configuring explicit timeout on the DNS client.

The dns.Client is initialized without an explicit timeout. While the library has internal defaults, setting an explicit timeout (e.g., 5-10 seconds) would improve predictability and prevent potential hangs when probing unresponsive servers.

♻️ Suggested improvement
-var activeDNSClient dnsExchange = &defaultDNSClient{client: new(dns.Client)}
+var activeDNSClient dnsExchange = &defaultDNSClient{client: &dns.Client{
+	Timeout: 10 * time.Second,
+}}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/toolsets/netedge/probe_dns_local.go` around lines 68 - 69, The DNS client
is created without an explicit timeout which can hang probes; update the
initialization of activeDNSClient (and the defaultDNSClient.client field of type
dns.Client) to set a sensible Timeout (e.g., 5–10 seconds) on the dns.Client
instance and ensure the time package is imported; specifically replace
new(dns.Client) with an explicitly constructed &dns.Client{Timeout: 5 *
time.Second} (or configured constant) so defaultDNSClient.client uses that timed
client.
pkg/toolsets/netedge/probe_dns_local_test.go (1)

166-170: Consider resetting the mock client for better test isolation.

The mock client is only set when tt.mockClient != nil, which means tests without a mock (like "missing name parameter") inherit the client from a previous test. While this works because those tests fail before Exchange is called, the pattern is fragile if test order changes or logic is modified.

♻️ Suggested improvement
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
+			// Reset to original client for isolation
+			activeDNSClient = origClient
 			if tt.mockClient != nil {
 				activeDNSClient = tt.mockClient
 			}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/toolsets/netedge/probe_dns_local_test.go` around lines 166 - 170, Tests
set activeDNSClient only when tt.mockClient != nil, causing state leakage
between subtests; reset or restore the global before/after each run to guarantee
isolation. Inside the t.Run closure for the table-driven tests, capture the
original activeDNSClient, then if tt.mockClient != nil assign it, and use defer
to restore the original (or alternatively set activeDNSClient = nil at the start
of each subtest) so tests like the "missing name parameter" cannot inherit a
previous mock.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pkg/toolsets/netedge/probe_dns_local_test.go`:
- Around line 166-170: Tests set activeDNSClient only when tt.mockClient != nil,
causing state leakage between subtests; reset or restore the global before/after
each run to guarantee isolation. Inside the t.Run closure for the table-driven
tests, capture the original activeDNSClient, then if tt.mockClient != nil assign
it, and use defer to restore the original (or alternatively set activeDNSClient
= nil at the start of each subtest) so tests like the "missing name parameter"
cannot inherit a previous mock.

In `@pkg/toolsets/netedge/probe_dns_local.go`:
- Around line 68-69: The DNS client is created without an explicit timeout which
can hang probes; update the initialization of activeDNSClient (and the
defaultDNSClient.client field of type dns.Client) to set a sensible Timeout
(e.g., 5–10 seconds) on the dns.Client instance and ensure the time package is
imported; specifically replace new(dns.Client) with an explicitly constructed
&dns.Client{Timeout: 5 * time.Second} (or configured constant) so
defaultDNSClient.client uses that timed client.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6003540a-7996-424f-af8e-0787404e193c

📥 Commits

Reviewing files that changed from the base of the PR and between cfa14b8 and 134fc9c.

⛔ Files ignored due to path filters (296)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/bahlo/generic-list-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bahlo/generic-list-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bahlo/generic-list-go/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/Dockerfile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/bytes_safe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/bytes_unsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/escape.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/fuzz.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/oss-fuzz-build.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/buger/jsonparser/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/COPYING is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/reflect_comments.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/invopop/jsonschema/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/elicitation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/http.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/inprocess.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/oauth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/roots.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/sampling.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/sse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/stdio.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/inprocess.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/interface.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/oauth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/oauth_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/sse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/stdio.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/streamable_http.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/client/transport/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/prompts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/resources.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/tasks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/tools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/typed_tools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/mcp/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/completion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/ctx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/elicitation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/hooks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/http_transport_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/inprocess_session.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/request_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/roots.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/sampling.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/session.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/sse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/stdio.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/streamable_http.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/server/task_hooks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mark3labs/mcp-go/util/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/.codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/CODEOWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/CONTRIBUTORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/Makefile.fuzz is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/Makefile.release is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/acceptfunc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/clientconfig.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dane.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dnssec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dnssec_keygen.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dnssec_keyscan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/dnssec_privkey.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/duplicate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/edns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/fuzz.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/generate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/labels.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/listen_no_reuseport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/listen_reuseport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/msg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/msg_helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/msg_truncate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/nsecx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/privaterr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/reverse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/sanitize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/scan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/scan_rr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/serve_mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/sig0.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/smimea.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/svcb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/tlsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/tools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/tsig.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/udp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/udp_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/xfr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/zduplicate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/zmsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/miekg/dns/ztypes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/orderedmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/wk8/go-ordered-map/v2/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/mod/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/mod/PATENTS is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/mod/semver/semver.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/asm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/instructions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/setter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/vm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/bpf/vm_instructions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/iana/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/cmsghdr_zos_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/complete_dontwait.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/complete_nodontwait.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/empty.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/error_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/error_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/iovec_32bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/iovec_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/iovec_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/norace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/race.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/rawconn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/rawconn_msg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/socket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_const_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_386.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_mips.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_mips64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_mips64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_mipsle.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_linux_s390x.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_netbsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/sys_zos_s390x.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_freebsd_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_mips64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socket/zsys_zos_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/batch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_pktinfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/control_zos.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/dgramopt.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/endpoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/genericopt.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/iana.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/icmp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/icmp_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/icmp_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/packet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/payload.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/payload_cmsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/payload_nocmsg.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sockopt.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sockopt_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sockopt_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_asmreq.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_asmreqn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_bpf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_bpf_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_dragonfly.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_ssmreq.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_stub.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/sys_zos.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/zsys_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/zsys_dragonfly.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (4)
  • go.mod
  • pkg/toolsets/netedge/probe_dns_local.go
  • pkg/toolsets/netedge/probe_dns_local_test.go
  • pkg/toolsets/netedge/toolset.go

@openshift-ci
Copy link

openshift-ci bot commented Mar 13, 2026

@bentito: The following tests 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/test 134fc9c link true /test test
ci/prow/lint 134fc9c link true /test lint

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

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants