Skip to content

Commit 31cdfec

Browse files
committed
fix for Hibernating Filter
1 parent de43a47 commit 31cdfec

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

pkg/app/AppListingService.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
"go.opentelemetry.io/otel"
3737
"golang.org/x/exp/slices"
3838
"net/http"
39+
"sigs.k8s.io/kustomize/kyaml/sliceutil"
3940
"strconv"
4041
"strings"
4142
"time"
@@ -378,6 +379,14 @@ func (impl AppListingServiceImpl) FetchAppsByEnvironmentV2(fetchAppListingReques
378379
if len(fetchAppListingRequest.Namespaces) != 0 && len(fetchAppListingRequest.Environments) == 0 {
379380
return []*AppView.AppEnvironmentContainer{}, 0, nil
380381
}
382+
383+
// fun to check if "HIBERNATING" exists in fetchAppListingRequest.AppStatuses
384+
isFilteredOnHibernatingStatus := impl.isFilteredOnHibernatingStatus(fetchAppListingRequest)
385+
// remove ""HIBERNATING" from fetchAppListingRequest.AppStatuses
386+
if isFilteredOnHibernatingStatus {
387+
fetchAppListingRequest.AppStatuses = sliceutil.Remove(fetchAppListingRequest.AppStatuses, "HIBERNATING")
388+
}
389+
381390
appListingFilter := helper.AppListingFilter{
382391
Environments: fetchAppListingRequest.Environments,
383392
Statuses: fetchAppListingRequest.Statuses,
@@ -431,9 +440,29 @@ func (impl AppListingServiceImpl) FetchAppsByEnvironmentV2(fetchAppListingReques
431440
if err != nil {
432441
impl.Logger.Errorw("error, UpdateAppStatusForHelmTypePipelines", "envIds", envIds, "err", err)
433442
}
443+
444+
// apply filter for "HIBERNATING" status
445+
if isFilteredOnHibernatingStatus {
446+
filteredContainers := make([]*AppView.AppEnvironmentContainer, 0)
447+
for _, container := range envContainers {
448+
if container.AppStatus == "HIBERNATING" {
449+
filteredContainers = append(filteredContainers, container)
450+
}
451+
}
452+
envContainers = filteredContainers
453+
}
434454
return envContainers, appSize, nil
435455
}
436456

457+
func (impl AppListingServiceImpl) isFilteredOnHibernatingStatus(fetchAppListingRequest FetchAppListingRequest) bool {
458+
if fetchAppListingRequest.AppStatuses != nil && len(fetchAppListingRequest.AppStatuses) > 0 {
459+
if slices.Contains(fetchAppListingRequest.AppStatuses, "HIBERNATING") {
460+
return true
461+
}
462+
}
463+
return false
464+
}
465+
437466
func (impl AppListingServiceImpl) ISLastReleaseStopType(appId, envId int) (bool, error) {
438467
override, err := impl.pipelineOverrideRepository.GetLatestRelease(appId, envId)
439468
if err != nil && !util.IsErrNoRows(err) {

0 commit comments

Comments
 (0)