You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by ma...@apache.org on 2026/10/16 09:15:15 UTC

(yunikorn-core) branch master updated: [YUNIKORN-3511] Update go compiler and net/x/http for CVE fixes (#1194)

This is an automated email from the ASF dual-hosted git repository.

manirajv06 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 048abb81 [YUNIKORN-3511] Update go compiler and net/x/http for CVE fixes (#1194)
048abb81 is described below

commit 048abb81c372910237980d90919f1903eabaaf2f
Author: Wilfred Spiegelenburg <wi...@apache.org>
AuthorDate: Fri Oct 16 14:44:36 2026 +0530

    [YUNIKORN-3511] Update go compiler and net/x/http for CVE fixes (#1194)
    
    Compiler version update and net/x/http covering the following CVEs:
    * CVE-2026-97032
    * CVE-2026-78659
    * CVE-2026-97031
    * CVE-2026-94440
    * CVE-2026-56866
    * CVE-2026-94439
    * CVE-2026-78669
    * CVE-2026-56857
    * CVE-2026-78667
    * CVE-2026-78663
    
    Update golangci-lint for Go 1.27
    Fix for newly detected lint issues, excluding most of the test code to
    reduce the code churn.
    Update linter to 2.14.0
    The typecheck fails with: export data version 5 is greater than maximum
    supported version 4
    Upgrading seems to solve the issue.
    
    Closes: #1194
    
    Signed-off-by: mani <ma...@gmail.com>
---
 .go_version                                        |   2 +-
 .golangci.yml                                      |   3 +
 Makefile                                           |   2 +-
 go.mod                                             |   8 +-
 go.sum                                             |  16 +--
 pkg/common/resources/resources_test.go             |   2 +-
 pkg/common/resources/tracked_resources.go          |   2 +-
 .../security/usergroup_ldap_resolver_test.go       |   2 +-
 pkg/metrics/init.go                                |   4 +
 pkg/metrics/queue.go                               |   8 +-
 pkg/metrics/queue_test.go                          |   6 +-
 pkg/metrics/scheduler.go                           |  10 +-
 pkg/metrics/scheduler_test.go                      |  32 ++---
 pkg/scheduler/placement/fixed_rule.go              |   6 +-
 pkg/scheduler/placement/fixed_rule_test.go         |  10 +-
 pkg/scheduler/placement/placement.go               |   5 +
 pkg/scheduler/placement/placement_test.go          |   2 +-
 pkg/scheduler/placement/provided_rule.go           |   2 +-
 pkg/scheduler/placement/provided_rule_test.go      |   6 +-
 pkg/scheduler/placement/tag_rule.go                |   2 +-
 pkg/scheduler/placement/tag_rule_test.go           |   8 +-
 pkg/scheduler/placement/testrule.go                |   2 +-
 pkg/scheduler/placement/user_rule.go               |   2 +-
 pkg/scheduler/placement/user_rule_test.go          |   6 +-
 pkg/scheduler/ugm/queue_tracker.go                 |   6 +-
 pkg/webservice/routes.go                           | 156 +++++++++++----------
 26 files changed, 164 insertions(+), 146 deletions(-)

diff --git a/.go_version b/.go_version
index 24cffb85..b0c101e6 100644
--- a/.go_version
+++ b/.go_version
@@ -1 +1 @@
-1.26
+1.27
diff --git a/.golangci.yml b/.golangci.yml
index 39d1ecb5..faba5f53 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -31,6 +31,9 @@ linters:
     govet:
       enable:
         - shadow
+    goconst:
+      min-occurrences: 5
+      ignore-tests: true
     funlen:
       lines: 120
       statements: 80
diff --git a/Makefile b/Makefile
index be9e1acc..175ba2e9 100644
--- a/Makefile
+++ b/Makefile
@@ -102,7 +102,7 @@ endif
 endif
 
 # golangci-lint
-GOLANGCI_LINT_VERSION=2.10.1
+GOLANGCI_LINT_VERSION=2.14.0
 GOLANGCI_LINT_PATH=${TOOLS_DIR}/golangci-lint-v$(GOLANGCI_LINT_VERSION)
 GOLANGCI_LINT_BIN=$(GOLANGCI_LINT_PATH)/golangci-lint
 GOLANGCI_LINT_ARCHIVEBASE=golangci-lint-$(GOLANGCI_LINT_VERSION)-$(OS)-$(EXEC_ARCH)
diff --git a/go.mod b/go.mod
index c2da526c..0b66b7cc 100644
--- a/go.mod
+++ b/go.mod
@@ -51,10 +51,10 @@ require (
 	github.com/petermattis/goid v0.0.0-20260725062400-500c67a39b75 // indirect
 	github.com/prometheus/procfs v0.21.1 // indirect
 	go.uber.org/multierr v1.11.0 // indirect
-	golang.org/x/crypto v0.57.0 // indirect
-	golang.org/x/net v0.59.0 // indirect
-	golang.org/x/sys v0.48.0 // indirect
-	golang.org/x/text v0.42.0 // indirect
+	golang.org/x/crypto v0.58.0 // indirect
+	golang.org/x/net v0.61.0 // indirect
+	golang.org/x/sys v0.49.0 // indirect
+	golang.org/x/text v0.43.0 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20260918162117-cecb64721679 // indirect
 	google.golang.org/protobuf v1.36.12 // indirect
 )
diff --git a/go.sum b/go.sum
index b6accd16..d07076f8 100644
--- a/go.sum
+++ b/go.sum
@@ -73,16 +73,16 @@ go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ=
 go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ=
 go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw=
 go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg=
-golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M=
-golang.org/x/crypto v0.57.0/go.mod h1:Fdz0i5U6CoizGwLda9DttjSk6qlZo25zYNtR+ycvuZA=
+golang.org/x/crypto v0.58.0 h1:COkYLr4k7nDI4r6QtMML2AfzeIswWHAJthLS6K/M/54=
+golang.org/x/crypto v0.58.0/go.mod h1:Xh+kl5A+M0gMiWDytH2Hhr5Z7WbNCpv/eB/EFgfSk+w=
 golang.org/x/exp v0.0.0-20260727155853-b88d891fe743 h1:ex206bKw+v3K0dm3andkrIF+ijyQKJG1pLgwQ2PYdQM=
 golang.org/x/exp v0.0.0-20260727155853-b88d891fe743/go.mod h1:EdfpwwqSu+0Li0mzskwHU6FWDV3t9Q+RZDo3QMUtL3Q=
-golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues=
-golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg=
-golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
-golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
-golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
-golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
+golang.org/x/net v0.61.0 h1:RR+6j/BTBCrggOLugxa+66R8FvoN6MHlzDlZIbN9YFw=
+golang.org/x/net v0.61.0/go.mod h1:WgDCOTH8iwtB66T4/GfI94AHo/hhdb7Hah9NDseQfiI=
+golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA=
+golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
+golang.org/x/text v0.43.0 h1:1QivrlhwAsnMOcqgOdl9my7s9OyZl8O5/UGUTJVXoWc=
+golang.org/x/text v0.43.0/go.mod h1:hbSIYA/amXcRXTFSZqh8tWHEoqRvvbKPJ2uz/KU+a+s=
 golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
 golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
 gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
diff --git a/pkg/common/resources/resources_test.go b/pkg/common/resources/resources_test.go
index 24baf4fa..9aa50162 100644
--- a/pkg/common/resources/resources_test.go
+++ b/pkg/common/resources/resources_test.go
@@ -2466,7 +2466,7 @@ func TestResource_Prune(t *testing.T) {
 			original := NewResourceFromMap(tt.input)
 			original.Prune()
 			assert.Equal(t, len(tt.output), len(original.Resources), "unexpected resource types returned")
-			assert.Assert(t, maps.Equal(original.Resources, tt.output), "resource type maps are not equal")
+			assert.Assert(t, maps.Equal(original.Resources, tt.output), "resource type maps are not equal") //nolint: govet
 		})
 	}
 }
diff --git a/pkg/common/resources/tracked_resources.go b/pkg/common/resources/tracked_resources.go
index f5cbd09d..1fd68b68 100644
--- a/pkg/common/resources/tracked_resources.go
+++ b/pkg/common/resources/tracked_resources.go
@@ -120,7 +120,7 @@ func (tr *TrackedResource) EqualsDAO(right map[string]map[string]int64) bool {
 	for k, v := range tr.TrackedResourceMap {
 		if inner, ok := right[k]; !ok {
 			return false
-		} else if !maps.Equal(v.DAOMap(), inner) {
+		} else if !maps.Equal(v.DAOMap(), inner) { //nolint: govet
 			return false
 		}
 	}
diff --git a/pkg/common/security/usergroup_ldap_resolver_test.go b/pkg/common/security/usergroup_ldap_resolver_test.go
index a9995ad8..f4e39f49 100644
--- a/pkg/common/security/usergroup_ldap_resolver_test.go
+++ b/pkg/common/security/usergroup_ldap_resolver_test.go
@@ -352,7 +352,7 @@ func TestLDAPLookupGroupIds(t *testing.T) {
 			lu.access = newMockLdapAccess(mockResult, nil)
 			groups, err := lu.LDAPLookupGroupIds(u)
 			assert.NilError(t, err)
-			assert.Assert(t, slices.Equal(groups, tt.groups), "group slices are not equal")
+			assert.Assert(t, slices.Equal(groups, tt.groups), "group slices are not equal") //nolint: govet
 		})
 	}
 
diff --git a/pkg/metrics/init.go b/pkg/metrics/init.go
index 18b4a2e4..6fa34e39 100644
--- a/pkg/metrics/init.go
+++ b/pkg/metrics/init.go
@@ -33,6 +33,10 @@ const (
 	EventSubsystem = "event"
 	// MetricNameInvalidByteReplacement byte used to replace invalid bytes in prometheus metric names
 	MetricNameInvalidByteReplacement = '_'
+
+	StateLabel  = "state"
+	LevelLabel  = "level"
+	ResultLabel = "result"
 )
 
 var once sync.Once
diff --git a/pkg/metrics/queue.go b/pkg/metrics/queue.go
index 5c32a1cd..646ea238 100644
--- a/pkg/metrics/queue.go
+++ b/pkg/metrics/queue.go
@@ -77,7 +77,7 @@ func InitQueueMetrics(name string) *QueueMetrics {
 			Name:        "queue_app",
 			ConstLabels: prometheus.Labels{"queue": name},
 			Help:        "Queue application metrics. State of the application includes `new`, `accepted`, `rejected`, `running`, `failing`, `failed`, `resuming`, `completing`, `completed`, `revived`.",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	q.containerMetrics = prometheus.NewCounterVec(
 		prometheus.CounterOpts{
@@ -85,7 +85,7 @@ func InitQueueMetrics(name string) *QueueMetrics {
 			Subsystem: replaceStr,
 			Name:      "queue_container",
 			Help:      "Queue container metrics. State of the attempt includes `allocated`, `released`.",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	q.resourceMetricsLabel = prometheus.NewGaugeVec(
 		prometheus.GaugeOpts{
@@ -93,7 +93,7 @@ func InitQueueMetrics(name string) *QueueMetrics {
 			Name:        "queue_resource",
 			ConstLabels: prometheus.Labels{"queue": name},
 			Help:        "Queue resource metrics. State of the resource includes `guaranteed`, `max`, `allocated`, `pending`, `preempting`, `maxRunningApps`.",
-		}, []string{"state", "resource"})
+		}, []string{StateLabel, "resource"})
 
 	q.appTerminalMetrics = prometheus.NewCounterVec(
 		prometheus.CounterOpts{
@@ -101,7 +101,7 @@ func InitQueueMetrics(name string) *QueueMetrics {
 			Name:        "queue_app_total",
 			ConstLabels: prometheus.Labels{"queue": name},
 			Help:        "Total number of applications that reached a terminal state. State includes `completed`, `failed`, `rejected`.",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	var queueMetricsList = []prometheus.Collector{
 		q.appMetrics,
diff --git a/pkg/metrics/queue_test.go b/pkg/metrics/queue_test.go
index 84cc46b8..d820f47e 100644
--- a/pkg/metrics/queue_test.go
+++ b/pkg/metrics/queue_test.go
@@ -302,7 +302,7 @@ func verifyAppMetrics(t *testing.T, expectedState string) {
 		assert.Equal(t, 2, len(labels))
 		assert.Equal(t, "queue", *labels[0].Name)
 		assert.Equal(t, "root.test", *labels[0].Value)
-		assert.Equal(t, "state", *labels[1].Name)
+		assert.Equal(t, StateLabel, *labels[1].Name)
 		assert.Equal(t, expectedState, *labels[1].Value)
 	}
 
@@ -320,7 +320,7 @@ func verifyContainerMetrics(t *testing.T, expectedState string, value float64) {
 			assert.Equal(t, dto.MetricType_COUNTER, metric.GetType())
 			m := metric.Metric[0]
 			assert.Equal(t, 1, len(m.Label))
-			assert.Equal(t, "state", *m.Label[0].Name)
+			assert.Equal(t, StateLabel, *m.Label[0].Name)
 			assert.Equal(t, expectedState, *m.Label[0].Value)
 			assert.Assert(t, m.Counter != nil)
 			assert.Equal(t, value, *m.Counter.Value)
@@ -342,7 +342,7 @@ func verifyResourceMetricsLabel(t *testing.T, expectedState, expectedResource st
 		assert.Equal(t, "root.test", *labels[0].Value)
 		assert.Equal(t, "resource", *labels[1].Name)
 		assert.Equal(t, expectedResource, *labels[1].Value)
-		assert.Equal(t, "state", *labels[2].Name)
+		assert.Equal(t, StateLabel, *labels[2].Name)
 		assert.Equal(t, expectedState, *labels[2].Value)
 	}
 
diff --git a/pkg/metrics/scheduler.go b/pkg/metrics/scheduler.go
index ac9de124..cff7226a 100644
--- a/pkg/metrics/scheduler.go
+++ b/pkg/metrics/scheduler.go
@@ -84,7 +84,7 @@ func InitSchedulerMetrics() *SchedulerMetrics {
 			Subsystem: SchedulerSubsystem,
 			Name:      "container_allocation_attempt_total",
 			Help:      "Total number of attempts to allocate containers. State of the attempt includes `allocated`, `rejected`, `error`, `released`",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	s.applicationSubmission = prometheus.NewCounterVec(
 		prometheus.CounterOpts{
@@ -92,7 +92,7 @@ func InitSchedulerMetrics() *SchedulerMetrics {
 			Subsystem: SchedulerSubsystem,
 			Name:      "application_submission_total",
 			Help:      "Total number of application submissions. State of the attempt includes `new`, `accepted` and `rejected`.",
-		}, []string{"result"})
+		}, []string{ResultLabel})
 
 	s.application = prometheus.NewGaugeVec(
 		prometheus.GaugeOpts{
@@ -100,7 +100,7 @@ func InitSchedulerMetrics() *SchedulerMetrics {
 			Subsystem: SchedulerSubsystem,
 			Name:      "application_total",
 			Help:      "Total number of applications. State of the application includes `running`, `resuming`, `failing`, `completing`, `completed` and `failed`.",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	s.node = prometheus.NewGaugeVec(
 		prometheus.GaugeOpts{
@@ -108,7 +108,7 @@ func InitSchedulerMetrics() *SchedulerMetrics {
 			Subsystem: SchedulerSubsystem,
 			Name:      "node",
 			Help:      "Total number of nodes. State of the node includes `active` and `failed`.",
-		}, []string{"state"})
+		}, []string{StateLabel})
 
 	s.schedulingLatency = prometheus.NewHistogram(
 		prometheus.HistogramOpts{
@@ -137,7 +137,7 @@ func InitSchedulerMetrics() *SchedulerMetrics {
 			Name:      "node_sorting_latency_milliseconds",
 			Help:      "Latency of all nodes sorting, in seconds.",
 			Buckets:   prometheus.ExponentialBuckets(0.0001, 10, 8), // start from 0.1ms
-		}, []string{"level"})
+		}, []string{LevelLabel})
 
 	s.tryNodeLatency = prometheus.NewHistogram(
 		prometheus.HistogramOpts{
diff --git a/pkg/metrics/scheduler_test.go b/pkg/metrics/scheduler_test.go
index 0dde612c..c7f942cd 100644
--- a/pkg/metrics/scheduler_test.go
+++ b/pkg/metrics/scheduler_test.go
@@ -38,10 +38,10 @@ func TestDrainingNodes(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncDrainingNodes()
-	verifyMetric(t, 1, "draining", "yunikorn_scheduler_node", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "draining", "yunikorn_scheduler_node", dto.MetricType_GAUGE, StateLabel)
 
 	sm.DecDrainingNodes()
-	verifyMetric(t, 0, "draining", "yunikorn_scheduler_node", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "draining", "yunikorn_scheduler_node", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestTotalDecommissionedNodes(t *testing.T) {
@@ -49,7 +49,7 @@ func TestTotalDecommissionedNodes(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalDecommissionedNodes()
-	verifyMetric(t, 1, "decommissioned", "yunikorn_scheduler_node", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "decommissioned", "yunikorn_scheduler_node", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestTryPreemptionLatency(t *testing.T) {
@@ -101,14 +101,14 @@ func TestSchedulerApplicationsRunning(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsRunning()
-	verifyMetric(t, 1, "running", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "running", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err := sm.GetTotalApplicationsRunning()
 	assert.NilError(t, err)
 	assert.Equal(t, curr, 1)
 
 	sm.DecTotalApplicationsRunning()
-	verifyMetric(t, 0, "running", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "running", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestSchedulerApplicationsCompleting(t *testing.T) {
@@ -116,10 +116,10 @@ func TestSchedulerApplicationsCompleting(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsCompleting()
-	verifyMetric(t, 1, "completing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "completing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	sm.DecTotalApplicationsCompleting()
-	verifyMetric(t, 0, "completing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "completing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestSchedulerApplicationsResuming(t *testing.T) {
@@ -127,14 +127,14 @@ func TestSchedulerApplicationsResuming(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsResuming()
-	verifyMetric(t, 1, "resuming", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "resuming", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err := sm.GetTotalApplicationsResuming()
 	assert.NilError(t, err)
 	assert.Equal(t, curr, 1)
 
 	sm.DecTotalApplicationsResuming()
-	verifyMetric(t, 0, "resuming", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "resuming", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestSchedulerApplicationsFailing(t *testing.T) {
@@ -142,10 +142,10 @@ func TestSchedulerApplicationsFailing(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsFailing()
-	verifyMetric(t, 1, "failing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "failing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	sm.DecTotalApplicationsFailing()
-	verifyMetric(t, 0, "failing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "failing", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestSchedulerApplicationsCompleted(t *testing.T) {
@@ -153,14 +153,14 @@ func TestSchedulerApplicationsCompleted(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsCompleted()
-	verifyMetric(t, 1, "completed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "completed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err := sm.GetTotalApplicationsCompleted()
 	assert.NilError(t, err)
 	assert.Equal(t, curr, 1)
 
 	sm.DecTotalApplicationsCompleted()
-	verifyMetric(t, 0, "completed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "completed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err = sm.GetTotalApplicationsCompleted()
 	assert.NilError(t, err)
@@ -172,14 +172,14 @@ func TestSchedulerApplicationsRevived(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsRevived()
-	verifyMetric(t, 1, "revived", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "revived", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err := sm.GetTotalApplicationsRevived()
 	assert.NilError(t, err)
 	assert.Equal(t, curr, 1)
 
 	sm.DecTotalApplicationsRevived()
-	verifyMetric(t, 0, "revived", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 0, "revived", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 
 	curr, err = sm.GetTotalApplicationsRevived()
 	assert.NilError(t, err)
@@ -191,7 +191,7 @@ func TestSchedulerApplicationsFailed(t *testing.T) {
 	defer unregisterMetrics()
 
 	sm.IncTotalApplicationsFailed()
-	verifyMetric(t, 1, "failed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, "state")
+	verifyMetric(t, 1, "failed", "yunikorn_scheduler_application_total", dto.MetricType_GAUGE, StateLabel)
 }
 
 func TestSchedulingCycle(t *testing.T) {
diff --git a/pkg/scheduler/placement/fixed_rule.go b/pkg/scheduler/placement/fixed_rule.go
index a12e021c..7946f01d 100644
--- a/pkg/scheduler/placement/fixed_rule.go
+++ b/pkg/scheduler/placement/fixed_rule.go
@@ -54,9 +54,9 @@ func (fr *fixedRule) ruleDAO() *dao.RuleDAO {
 	return &dao.RuleDAO{
 		Name: fr.getName(),
 		Parameters: map[string]string{
-			"queue":     fr.queue,
-			"create":    strconv.FormatBool(fr.create),
-			"qualified": strconv.FormatBool(fr.qualified),
+			"queue":   fr.queue,
+			create:    strconv.FormatBool(fr.create),
+			qualified: strconv.FormatBool(fr.qualified),
 		},
 		ParentRule: pDAO,
 		Filter:     fr.filter.filterDAO(),
diff --git a/pkg/scheduler/placement/fixed_rule_test.go b/pkg/scheduler/placement/fixed_rule_test.go
index 078d3bc3..738f7c99 100644
--- a/pkg/scheduler/placement/fixed_rule_test.go
+++ b/pkg/scheduler/placement/fixed_rule_test.go
@@ -273,22 +273,22 @@ func Test_fixedRule_ruleDAO(t *testing.T) {
 		{
 			"base",
 			configs.PlacementRule{Name: "fixed", Value: "default"},
-			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", "qualified": "false", "create": "false"}},
+			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", qualified: "false", create: "false"}},
 		},
 		{
-			"qualified",
+			qualified,
 			configs.PlacementRule{Name: "fixed", Value: "root.default"},
-			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "root.default", "qualified": "true", "create": "false"}},
+			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "root.default", qualified: "true", create: "false"}},
 		},
 		{
 			"parent",
 			configs.PlacementRule{Name: "fixed", Value: "default", Create: true, Parent: &configs.PlacementRule{Name: "test", Create: true}},
-			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", "qualified": "false", "create": "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{"create": "true"}}},
+			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", qualified: "false", create: "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{create: "true"}}},
 		},
 		{
 			"filter",
 			configs.PlacementRule{Name: "fixed", Value: "default", Create: true, Filter: configs.Filter{Type: filterAllow, Groups: []string{"group1", "group2"}}},
-			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", "qualified": "false", "create": "true"}, Filter: &dao.FilterDAO{Type: filterAllow, GroupList: []string{"group1", "group2"}}},
+			&dao.RuleDAO{Name: "fixed", Parameters: map[string]string{"queue": "default", qualified: "false", create: "true"}, Filter: &dao.FilterDAO{Type: filterAllow, GroupList: []string{"group1", "group2"}}},
 		},
 	}
 	for _, tt := range tests {
diff --git a/pkg/scheduler/placement/placement.go b/pkg/scheduler/placement/placement.go
index dd18b29f..b9007c1e 100644
--- a/pkg/scheduler/placement/placement.go
+++ b/pkg/scheduler/placement/placement.go
@@ -33,6 +33,11 @@ import (
 	"github.com/apache/yunikorn-core/pkg/webservice/dao"
 )
 
+const (
+	create    = "create"
+	qualified = "qualified"
+)
+
 // ErrorRejected is the standard error returned if placement has failed
 var ErrorRejected = errors.New("application rejected: no placement rule matched")
 
diff --git a/pkg/scheduler/placement/placement_test.go b/pkg/scheduler/placement/placement_test.go
index a97ab208..2cac1433 100644
--- a/pkg/scheduler/placement/placement_test.go
+++ b/pkg/scheduler/placement/placement_test.go
@@ -399,7 +399,7 @@ partitions:
 		{"provided not exist", "unknown", "", tags, user},
 		{"provided parent", "root.parent", "", tags, user},
 		{"acl deny", "root.acldeny", "", tags, deny},
-		{"create", "unknown", "root.namespace", map[string]string{"namespace": "namespace"}, user},
+		{create, "unknown", "root.namespace", map[string]string{"namespace": "namespace"}, user},
 		{"deny create", "unknown", "", map[string]string{"namespace": "namespace"}, deny},
 		{"forced exist", providedQ, providedQ, map[string]string{siCommon.AppTagCreateForce: "true"}, user},
 		{"forced and create", "unknown", "root.namespace", map[string]string{siCommon.AppTagCreateForce: "true", "namespace": "namespace"}, user},
diff --git a/pkg/scheduler/placement/provided_rule.go b/pkg/scheduler/placement/provided_rule.go
index fc911055..6f247a9e 100644
--- a/pkg/scheduler/placement/provided_rule.go
+++ b/pkg/scheduler/placement/provided_rule.go
@@ -52,7 +52,7 @@ func (pr *providedRule) ruleDAO() *dao.RuleDAO {
 	return &dao.RuleDAO{
 		Name: pr.getName(),
 		Parameters: map[string]string{
-			"create": strconv.FormatBool(pr.create),
+			create: strconv.FormatBool(pr.create),
 		},
 		ParentRule: pDAO,
 		Filter:     pr.filter.filterDAO(),
diff --git a/pkg/scheduler/placement/provided_rule_test.go b/pkg/scheduler/placement/provided_rule_test.go
index b1ef26e0..fbb29ad1 100644
--- a/pkg/scheduler/placement/provided_rule_test.go
+++ b/pkg/scheduler/placement/provided_rule_test.go
@@ -326,17 +326,17 @@ func Test_providedRule_ruleDAO(t *testing.T) {
 		{
 			"base",
 			configs.PlacementRule{Name: "provided"},
-			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{"create": "false"}},
+			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{create: "false"}},
 		},
 		{
 			"parent",
 			configs.PlacementRule{Name: "provided", Create: true, Parent: &configs.PlacementRule{Name: "test", Create: true}},
-			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{"create": "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{"create": "true"}}},
+			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{create: "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{create: "true"}}},
 		},
 		{
 			"filter",
 			configs.PlacementRule{Name: "provided", Create: false, Filter: configs.Filter{Type: filterDeny, Users: []string{"john*"}}},
-			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{"create": "false"}, Filter: &dao.FilterDAO{Type: filterDeny, UserExp: "john*"}},
+			&dao.RuleDAO{Name: "provided", Parameters: map[string]string{create: "false"}, Filter: &dao.FilterDAO{Type: filterDeny, UserExp: "john*"}},
 		},
 	}
 	for _, tt := range tests {
diff --git a/pkg/scheduler/placement/tag_rule.go b/pkg/scheduler/placement/tag_rule.go
index 4364548d..3c25138f 100644
--- a/pkg/scheduler/placement/tag_rule.go
+++ b/pkg/scheduler/placement/tag_rule.go
@@ -54,7 +54,7 @@ func (tr *tagRule) ruleDAO() *dao.RuleDAO {
 		Name: tr.getName(),
 		Parameters: map[string]string{
 			"tagName": tr.tagName,
-			"create":  strconv.FormatBool(tr.create),
+			create:    strconv.FormatBool(tr.create),
 		},
 		ParentRule: pDAO,
 		Filter:     tr.filter.filterDAO(),
diff --git a/pkg/scheduler/placement/tag_rule_test.go b/pkg/scheduler/placement/tag_rule_test.go
index bf9a56fb..15ad97e5 100644
--- a/pkg/scheduler/placement/tag_rule_test.go
+++ b/pkg/scheduler/placement/tag_rule_test.go
@@ -344,22 +344,22 @@ func Test_tagRule_ruleDAO(t *testing.T) {
 		{
 			"base",
 			configs.PlacementRule{Name: "tag", Value: "namespace"},
-			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "namespace", "create": "false"}},
+			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "namespace", create: "false"}},
 		},
 		{
 			"mixedcase",
 			configs.PlacementRule{Name: "tag", Value: "MixedCaseTag"},
-			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "mixedcasetag", "create": "false"}},
+			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "mixedcasetag", create: "false"}},
 		},
 		{
 			"parent",
 			configs.PlacementRule{Name: "tag", Value: "one", Create: true, Parent: &configs.PlacementRule{Name: "test", Create: true}},
-			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "one", "create": "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{"create": "true"}}},
+			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "one", create: "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{create: "true"}}},
 		},
 		{
 			"filter",
 			configs.PlacementRule{Name: "tag", Value: "two", Create: true, Filter: configs.Filter{Type: filterDeny, Groups: []string{"group[0-9]"}}},
-			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "two", "create": "true"}, Filter: &dao.FilterDAO{Type: filterDeny, GroupExp: "group[0-9]"}},
+			&dao.RuleDAO{Name: "tag", Parameters: map[string]string{"tagName": "two", create: "true"}, Filter: &dao.FilterDAO{Type: filterDeny, GroupExp: "group[0-9]"}},
 		},
 	}
 	for _, tt := range tests {
diff --git a/pkg/scheduler/placement/testrule.go b/pkg/scheduler/placement/testrule.go
index e27a6581..017f098c 100644
--- a/pkg/scheduler/placement/testrule.go
+++ b/pkg/scheduler/placement/testrule.go
@@ -47,7 +47,7 @@ func (tr *testRule) ruleDAO() *dao.RuleDAO {
 	return &dao.RuleDAO{
 		Name: types.Test,
 		Parameters: map[string]string{
-			"create": strconv.FormatBool(tr.create),
+			create: strconv.FormatBool(tr.create),
 		},
 		ParentRule: pDAO,
 		Filter:     tr.filter.filterDAO(),
diff --git a/pkg/scheduler/placement/user_rule.go b/pkg/scheduler/placement/user_rule.go
index 21ff9b95..a2a90af1 100644
--- a/pkg/scheduler/placement/user_rule.go
+++ b/pkg/scheduler/placement/user_rule.go
@@ -49,7 +49,7 @@ func (ur *userRule) ruleDAO() *dao.RuleDAO {
 	return &dao.RuleDAO{
 		Name: ur.getName(),
 		Parameters: map[string]string{
-			"create": strconv.FormatBool(ur.create),
+			create: strconv.FormatBool(ur.create),
 		},
 		ParentRule: pDAO,
 		Filter:     ur.filter.filterDAO(),
diff --git a/pkg/scheduler/placement/user_rule_test.go b/pkg/scheduler/placement/user_rule_test.go
index da6b3b93..18e4be6b 100644
--- a/pkg/scheduler/placement/user_rule_test.go
+++ b/pkg/scheduler/placement/user_rule_test.go
@@ -242,17 +242,17 @@ func Test_userRule_ruleDAO(t *testing.T) {
 		{
 			"base",
 			configs.PlacementRule{Name: "user"},
-			&dao.RuleDAO{Name: "user", Parameters: map[string]string{"create": "false"}},
+			&dao.RuleDAO{Name: "user", Parameters: map[string]string{create: "false"}},
 		},
 		{
 			"parent",
 			configs.PlacementRule{Name: "user", Create: true, Parent: &configs.PlacementRule{Name: "test", Create: true}},
-			&dao.RuleDAO{Name: "user", Parameters: map[string]string{"create": "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{"create": "true"}}},
+			&dao.RuleDAO{Name: "user", Parameters: map[string]string{create: "true"}, ParentRule: &dao.RuleDAO{Name: "test", Parameters: map[string]string{create: "true"}}},
 		},
 		{
 			"filter",
 			configs.PlacementRule{Name: "user", Create: true, Filter: configs.Filter{Type: filterDeny, Users: []string{"user"}}},
-			&dao.RuleDAO{Name: "user", Parameters: map[string]string{"create": "true"}, Filter: &dao.FilterDAO{Type: filterDeny, UserList: []string{"user"}}},
+			&dao.RuleDAO{Name: "user", Parameters: map[string]string{create: "true"}, Filter: &dao.FilterDAO{Type: filterDeny, UserList: []string{"user"}}},
 		},
 	}
 	for _, tt := range tests {
diff --git a/pkg/scheduler/ugm/queue_tracker.go b/pkg/scheduler/ugm/queue_tracker.go
index 9ce73b2f..7b6c3dbf 100644
--- a/pkg/scheduler/ugm/queue_tracker.go
+++ b/pkg/scheduler/ugm/queue_tracker.go
@@ -272,7 +272,7 @@ func (qt *QueueTracker) getMaxResources() map[string]*resources.Resource {
 	maxRes := map[string]*resources.Resource{qt.queuePath: qt.maxResources}
 	for _, cqt := range qt.childQueueTrackers {
 		childUsage := cqt.getMaxResources()
-		maps.Copy(maxRes, childUsage)
+		maps.Copy(maxRes, childUsage) //nolint: govet
 	}
 	return maxRes
 }
@@ -286,7 +286,7 @@ func (qt *QueueTracker) getMaxApplications() map[string]uint64 {
 	maxApps := map[string]uint64{qt.queuePath: qt.maxRunningApps}
 	for _, cqt := range qt.childQueueTrackers {
 		childApps := cqt.getMaxApplications()
-		maps.Copy(maxApps, childApps)
+		maps.Copy(maxApps, childApps) //nolint: govet
 	}
 	return maxApps
 }
@@ -300,7 +300,7 @@ func (qt *QueueTracker) getUsedResources() map[string]*resources.Resource {
 	maxRes := map[string]*resources.Resource{qt.queuePath: qt.resourceUsage}
 	for _, cqt := range qt.childQueueTrackers {
 		childUsage := cqt.getUsedResources()
-		maps.Copy(maxRes, childUsage)
+		maps.Copy(maxRes, childUsage) //nolint: govet
 	}
 	return maxRes
 }
diff --git a/pkg/webservice/routes.go b/pkg/webservice/routes.go
index b7589a98..60938ca2 100644
--- a/pkg/webservice/routes.go
+++ b/pkg/webservice/routes.go
@@ -32,28 +32,34 @@ type route struct {
 
 type routes []route
 
+const (
+	clusterRoute   = "Cluster"
+	schedulerRoute = "Scheduler"
+	systemRoute    = "System"
+)
+
 var webRoutes = routes{
 	// endpoints to retrieve general cluster info
 	route{
-		"Cluster",
-		"GET",
+		clusterRoute,
+		http.MethodGet,
 		"/ws/v1/clusters",
 		getClusterInfo,
 	},
 	route{
-		"Cluster",
-		"GET",
+		clusterRoute,
+		http.MethodGet,
 		"/ws/v1/metrics",
 		getMetrics,
 	},
 	route{
-		"Cluster",
-		"GET",
+		clusterRoute,
+		http.MethodGet,
 		"/ws/v1/config",
 		getClusterConfig,
 	},
 	route{
-		"Cluster",
+		clusterRoute,
 		"POST",
 		"/ws/v1/validate-conf",
 		validateConf,
@@ -61,128 +67,128 @@ var webRoutes = routes{
 
 	// endpoints to retrieve general scheduler info
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/history/apps",
 		getApplicationHistory,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/history/containers",
 		getContainerHistory,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partitions",
 		getPartitions,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/placementrules",
 		getPartitionRules,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/queues",
 		getPartitionQueues,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/queue/:queue",
 		getPartitionQueue,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/nodes",
 		getPartitionNodes,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/node/:node",
 		getPartitionNode,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/queue/:queue/applications",
 		getQueueApplications,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/queue/:queue/application/:application",
 		getApplication,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/application/:application",
 		getApplication,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/applications/:state",
 		getPartitionApplicationsByState,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/queue/:queue/applications/:state",
 		getQueueApplicationsByState,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/usage/users",
 		getUsersResourceUsage,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/usage/user/:user",
 		getUserResourceUsage,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/usage/groups",
 		getGroupsResourceUsage,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/partition/:partition/usage/group/:group",
 		getGroupResourceUsage,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/events/batch",
 		getEvents,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/events/stream",
 		getStream,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/scheduler/healthcheck",
 		checkHealthStatus,
 	},
 	route{
-		"Scheduler",
-		"GET",
+		schedulerRoute,
+		http.MethodGet,
 		"/ws/v1/scheduler/node-utilizations",
 		getNodeUtilisations,
 	},
@@ -194,80 +200,80 @@ var webRoutes = routes{
 	// All pprof endpoints provide profiling data in the format expected by the pprof visualization tool.
 	// We need to explicitly register all handlers as we do not use the DefaultServeMux
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/stack",
 		HandlerFunc: getStackInfo,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/fullstatedump",
 		HandlerFunc: getFullStateDump,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/heap",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/threadcreate",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/goroutine",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/allocs",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/block",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/mutex",
 		HandlerFunc: pprof.Index,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/cmdline",
 		HandlerFunc: pprof.Cmdline,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/profile",
 		HandlerFunc: pprof.Profile,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/symbol",
 		HandlerFunc: pprof.Symbol,
 	},
 	route{
-		Name:        "System",
-		Method:      "GET",
+		Name:        systemRoute,
+		Method:      http.MethodGet,
 		Pattern:     "/debug/pprof/trace",
 		HandlerFunc: pprof.Trace,
 	},


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org