From 4e887d0b04ce26fee125dded6e62a926ce580e86 Mon Sep 17 00:00:00 2001 From: wenxin <85589661@qq.com> Date: Wed, 2 Sep 2020 14:20:07 +0800 Subject: [PATCH] sort application list in inverse order of created time. --- pkg/oam/application.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/oam/application.go b/pkg/oam/application.go index d3bddd522..87e0344a5 100644 --- a/pkg/oam/application.go +++ b/pkg/oam/application.go @@ -7,6 +7,7 @@ import ( "github.com/cloud-native-application/rudrx/pkg/application" apierrors "k8s.io/apimachinery/pkg/api/errors" "os" + "sort" "github.com/cloud-native-application/rudrx/pkg/server/apis" @@ -26,6 +27,18 @@ type ComponentMeta struct { Component corev1alpha2.Component `json:"-"` } +type componentMetaList []ComponentMeta + +func (comps componentMetaList) Len() int { + return len(comps) +} +func (comps componentMetaList) Swap(i, j int) { + comps[i], comps[j] = comps[j], comps[i] +} +func (comps componentMetaList) Less(i, j int) bool { + return comps[i].CreatedTime > comps[j].CreatedTime +} + type Option struct { // Optional filter, if specified, only components in such app will be listed AppName string @@ -44,7 +57,7 @@ type DeleteOptions struct { Get component list */ func ListComponents(ctx context.Context, c client.Client, opt Option) ([]ComponentMeta, error) { - var componentMetaList []ComponentMeta + var componentMetaList componentMetaList var applicationList corev1alpha2.ApplicationConfigurationList if opt.AppName != "" { @@ -83,6 +96,7 @@ func ListComponents(ctx context.Context, c client.Client, opt Option) ([]Compone }) } } + sort.Stable(componentMetaList) return componentMetaList, nil }