[hermes] ananke: go:S1192 #226

Open
opened 2026-09-29 14:19:43 +00:00 by hermes-automation · 0 comments

SonarQube reports go:S1192 in internal/cluster/orchestrator_longhorn_reconcile.go. The build is green; this is a standing finding, not a failure.

What is wrong

The literal "longhorn-system" is hard-coded three times (in queryLonghornNodes, queryLonghornManagerDaemonSet, and longhornManagerPodsByNode) instead of being defined once as a named constant, which is what go:S1192 flags.

Ariadne opened no pull request for it: no automated patch was possible for this finding.

Facts

  • gitea — Define a constant instead of duplicating this literal "longhorn-system" 3 times. (CRITICAL, 6min estimated) (internal/cluster/orchestrator_longhorn_reconcile.go:136)

Suggested fix (not applied)

Hermes could not open a pull request for this, so the change below was not written, validated, or pushed anywhere. It is a starting point for whoever picks this up, not a reviewed patch.

internal/cluster/orchestrator_longhorn_reconcile.go — Add a package-level constant longhornNamespace = "longhorn-system" near the type declarations and reference it at all three kubectl call sites instead of repeating the string literal. This removes the duplication the rule flags without changing any behavior.

const longhornNamespace = "longhorn-system"

// queryLonghornNodes ...
func (o *Orchestrator) queryLonghornNodes(ctx context.Context) (longhornNodeList, error) {
	out, err := o.kubectl(ctx, 30*time.Second, "-n", longhornNamespace, "get", "nodes.longhorn.io", "-o", "json")
	...
}

// queryLonghornManagerDaemonSet ...
func (o *Orchestrator) queryLonghornManagerDaemonSet(ctx context.Context) (daemonSetResource, error) {
	out, err := o.kubectl(ctx, 20*time.Second, "-n", longhornNamespace, "get", "daemonset", "longhorn-manager", "-o", "json")
	...
}

// longhornManagerPodsByNode ...
func (o *Orchestrator) longhornManagerPodsByNode(ctx context.Context, selector map[string]string) (map[string]struct{}, error) {
	args := []string{"-n", longhornNamespace, "get", "pods", "-o", "json"}
	...
}

Filed automatically by Ariadne from a Hermes Agent diagnosis (run run_37c3e613f93b41e5ae4628ecafc2764d). Hermes has no write access to this repository; no files or infrastructure were changed.

SonarQube reports **go:S1192** in `internal/cluster/orchestrator_longhorn_reconcile.go`. The build is green; this is a standing finding, not a failure. ## What is wrong The literal "longhorn-system" is hard-coded three times (in queryLonghornNodes, queryLonghornManagerDaemonSet, and longhornManagerPodsByNode) instead of being defined once as a named constant, which is what go:S1192 flags. Ariadne opened no pull request for it: no automated patch was possible for this finding. ## Facts - **gitea** — Define a constant instead of duplicating this literal "longhorn-system" 3 times. (CRITICAL, 6min estimated) (`internal/cluster/orchestrator_longhorn_reconcile.go:136`) ## Suggested fix (not applied) Hermes could not open a pull request for this, so the change below was not written, validated, or pushed anywhere. It is a starting point for whoever picks this up, not a reviewed patch. **`internal/cluster/orchestrator_longhorn_reconcile.go`** — Add a package-level constant longhornNamespace = "longhorn-system" near the type declarations and reference it at all three kubectl call sites instead of repeating the string literal. This removes the duplication the rule flags without changing any behavior. ``` const longhornNamespace = "longhorn-system" // queryLonghornNodes ... func (o *Orchestrator) queryLonghornNodes(ctx context.Context) (longhornNodeList, error) { out, err := o.kubectl(ctx, 30*time.Second, "-n", longhornNamespace, "get", "nodes.longhorn.io", "-o", "json") ... } // queryLonghornManagerDaemonSet ... func (o *Orchestrator) queryLonghornManagerDaemonSet(ctx context.Context) (daemonSetResource, error) { out, err := o.kubectl(ctx, 20*time.Second, "-n", longhornNamespace, "get", "daemonset", "longhorn-manager", "-o", "json") ... } // longhornManagerPodsByNode ... func (o *Orchestrator) longhornManagerPodsByNode(ctx context.Context, selector map[string]string) (map[string]struct{}, error) { args := []string{"-n", longhornNamespace, "get", "pods", "-o", "json"} ... } ``` ## Links - SonarQube finding: https://quality.bstein.dev/project/issues?resolved=false&id=ananke&open=AZ-IckL-1fRfbdzqD-5R - Full evidence bundle and audit trail live in Ariadne at `/api/admin/audit/events`, event types `hermes_autotriage_incident` and `hermes_autotriage_diagnosis`. Filed automatically by Ariadne from a Hermes Agent diagnosis (run [run_37c3e613f93b41e5ae4628ecafc2764d](https://triage.bstein.dev/chat?resume=run_37c3e613f93b41e5ae4628ecafc2764d)). Hermes has no write access to this repository; no files or infrastructure were changed. <!-- hermes-triage job=ananke classification=go:S1192 incident=sonar/ananke/go:S1192/AZ-IckL-1fRfbdzqD-5R -->
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: titan/ananke#226
No description provided.