@@ -17,6 +17,7 @@ package configuration
1717
1818import (
1919 "fmt"
20+ "sort"
2021
2122 "github.com/go-openapi/strfmt"
2223 parser "github.com/haproxytech/client-native/v6/config-parser"
@@ -153,12 +154,25 @@ func serializeUserlistSection(a StructuredToParserArgs, u *models.Userlist) erro
153154 if err != nil {
154155 return err
155156 }
156- for _ , user := range u .Users {
157+
158+ userNames := make ([]string , 0 , len (u .Users ))
159+ for name := range u .Users {
160+ userNames = append (userNames , name )
161+ }
162+ sort .Strings (userNames )
163+ for _ , username := range userNames {
164+ user := u .Users [username ]
157165 if err = p .Insert (parser .UserList , u .Name , "user" , SerializeUser (user ), - 1 ); err != nil {
158166 return a .HandleError (user .Username , "userlist" , u .Name , a .TID , a .TID == "" , err )
159167 }
160168 }
161- for _ , group := range u .Groups {
169+ groupNames := make ([]string , 0 , len (u .Groups ))
170+ for name := range u .Groups {
171+ groupNames = append (groupNames , name )
172+ }
173+ sort .Strings (groupNames )
174+ for _ , name := range groupNames {
175+ group := u .Groups [name ]
162176 if err = p .Insert (parser .UserList , u .Name , "group" , SerializeGroup (group ), - 1 ); err != nil {
163177 return a .HandleError (group .Name , "userlist" , u .Name , a .TID , a .TID == "" , err )
164178 }
0 commit comments