From af76350bfb2eaabb22ad19fccf1412d26a226004 Mon Sep 17 00:00:00 2001
From: Dmitrii Stepanov <d.stepanov@yadro.com>
Date: Fri, 21 Mar 2025 13:19:28 +0300
Subject: [PATCH] [#1695] qos: Sort tags by asc

Change-Id: Ia23e392bb49d2536096de2ba07fc6f8fb7ac0489
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
---
 internal/qos/limiter.go  |  2 +-
 internal/qos/stats.go    |  6 +++---
 internal/qos/tags.go     | 24 ++++++++++++------------
 internal/qos/validate.go |  4 ++--
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/internal/qos/limiter.go b/internal/qos/limiter.go
index 82f9917a5..98d254fd0 100644
--- a/internal/qos/limiter.go
+++ b/internal/qos/limiter.go
@@ -74,7 +74,7 @@ func createScheduler(config limits.OpConfig) (scheduler, error) {
 
 func converToSchedulingTags(limits []limits.IOTagConfig) map[string]scheduling.TagInfo {
 	result := make(map[string]scheduling.TagInfo)
-	for _, tag := range []IOTag{IOTagClient, IOTagBackground, IOTagInternal, IOTagPolicer, IOTagWritecache, IOTagTreeSync} {
+	for _, tag := range []IOTag{IOTagBackground, IOTagClient, IOTagInternal, IOTagPolicer, IOTagTreeSync, IOTagWritecache} {
 		result[tag.String()] = scheduling.TagInfo{
 			Share: defaultShare,
 		}
diff --git a/internal/qos/stats.go b/internal/qos/stats.go
index aa4d4caf9..3ecfad9f9 100644
--- a/internal/qos/stats.go
+++ b/internal/qos/stats.go
@@ -3,13 +3,13 @@ package qos
 const unknownStatsTag = "unknown"
 
 var statTags = map[string]struct{}{
-	IOTagClient.String():     {},
 	IOTagBackground.String(): {},
+	IOTagClient.String():     {},
+	IOTagCritical.String():   {},
 	IOTagInternal.String():   {},
 	IOTagPolicer.String():    {},
-	IOTagWritecache.String(): {},
-	IOTagCritical.String():   {},
 	IOTagTreeSync.String():   {},
+	IOTagWritecache.String(): {},
 	unknownStatsTag:          {},
 }
 
diff --git a/internal/qos/tags.go b/internal/qos/tags.go
index 2781dec76..e3f7cafd6 100644
--- a/internal/qos/tags.go
+++ b/internal/qos/tags.go
@@ -10,33 +10,33 @@ import (
 type IOTag string
 
 const (
-	IOTagClient     IOTag = "client"
-	IOTagInternal   IOTag = "internal"
 	IOTagBackground IOTag = "background"
+	IOTagClient     IOTag = "client"
+	IOTagCritical   IOTag = "critical"
+	IOTagInternal   IOTag = "internal"
+	IOTagPolicer    IOTag = "policer"
 	IOTagTreeSync   IOTag = "treesync"
 	IOTagWritecache IOTag = "writecache"
-	IOTagPolicer    IOTag = "policer"
-	IOTagCritical   IOTag = "critical"
 
 	ioTagUnknown IOTag = ""
 )
 
 func FromRawString(s string) (IOTag, error) {
 	switch s {
-	case string(IOTagCritical):
-		return IOTagCritical, nil
-	case string(IOTagClient):
-		return IOTagClient, nil
-	case string(IOTagInternal):
-		return IOTagInternal, nil
 	case string(IOTagBackground):
 		return IOTagBackground, nil
-	case string(IOTagWritecache):
-		return IOTagWritecache, nil
+	case string(IOTagClient):
+		return IOTagClient, nil
+	case string(IOTagCritical):
+		return IOTagCritical, nil
+	case string(IOTagInternal):
+		return IOTagInternal, nil
 	case string(IOTagPolicer):
 		return IOTagPolicer, nil
 	case string(IOTagTreeSync):
 		return IOTagTreeSync, nil
+	case string(IOTagWritecache):
+		return IOTagWritecache, nil
 	default:
 		return ioTagUnknown, fmt.Errorf("unknown tag %s", s)
 	}
diff --git a/internal/qos/validate.go b/internal/qos/validate.go
index 75bf4f4b9..d4475e38b 100644
--- a/internal/qos/validate.go
+++ b/internal/qos/validate.go
@@ -42,12 +42,12 @@ func validateOpConfig(c limits.OpConfig) error {
 
 func validateTags(configTags []limits.IOTagConfig) error {
 	tags := map[IOTag]tagConfig{
+		IOTagBackground: {},
 		IOTagClient:     {},
 		IOTagInternal:   {},
-		IOTagBackground: {},
-		IOTagWritecache: {},
 		IOTagPolicer:    {},
 		IOTagTreeSync:   {},
+		IOTagWritecache: {},
 	}
 	for _, t := range configTags {
 		tag, err := FromRawString(t.Tag)