mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-25 11:46:43 +01:00
Merge pull request #5754 from steven-zou/sort_chart_list
Sort the chart list before returning
This commit is contained in:
commit
8b6a17e395
@ -5,6 +5,8 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Masterminds/semver"
|
||||
@ -45,6 +47,7 @@ type ChartInfo struct {
|
||||
Name string
|
||||
TotalVersions uint32 `json:"total_versions"`
|
||||
Created time.Time
|
||||
Updated time.Time
|
||||
Icon string
|
||||
Home string
|
||||
Deprecated bool
|
||||
@ -135,6 +138,16 @@ func (cho *ChartOperator) GetChartList(content []byte) ([]*ChartInfo, error) {
|
||||
}
|
||||
}
|
||||
|
||||
//Sort the chart list by the updated time which is the create time
|
||||
//of the latest version of the chart.
|
||||
sort.Slice(chartList, func(i, j int) bool {
|
||||
if chartList[i].Updated.Equal(chartList[j].Updated) {
|
||||
return strings.Compare(chartList[i].Name, chartList[j].Name) < 0
|
||||
}
|
||||
|
||||
return chartList[i].Updated.After(chartList[j].Updated)
|
||||
})
|
||||
|
||||
return chartList, nil
|
||||
}
|
||||
|
||||
|
@ -35,15 +35,8 @@ func TestGetChartList(t *testing.T) {
|
||||
t.Fatalf("Length of chart list should be 2, but we got %d now", len(infos))
|
||||
}
|
||||
|
||||
foundHarbor := false
|
||||
for _, chart := range infos {
|
||||
if chart.Name == "harbor" {
|
||||
foundHarbor = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !foundHarbor {
|
||||
t.Fatal("Expect chart named with 'harbor' but got nothing")
|
||||
firstInSortedList := infos[0]
|
||||
if firstInSortedList.Name != "harbor" {
|
||||
t.Fatalf("Expect the fist item of the sorted list to be 'harbor' but got '%s'", firstInSortedList.Name)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user