@@ -36,6 +36,7 @@ import (
36
36
"go.opentelemetry.io/otel"
37
37
"golang.org/x/exp/slices"
38
38
"net/http"
39
+ "sigs.k8s.io/kustomize/kyaml/sliceutil"
39
40
"strconv"
40
41
"strings"
41
42
"time"
@@ -378,6 +379,14 @@ func (impl AppListingServiceImpl) FetchAppsByEnvironmentV2(fetchAppListingReques
378
379
if len (fetchAppListingRequest .Namespaces ) != 0 && len (fetchAppListingRequest .Environments ) == 0 {
379
380
return []* AppView.AppEnvironmentContainer {}, 0 , nil
380
381
}
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
+
381
390
appListingFilter := helper.AppListingFilter {
382
391
Environments : fetchAppListingRequest .Environments ,
383
392
Statuses : fetchAppListingRequest .Statuses ,
@@ -431,9 +440,29 @@ func (impl AppListingServiceImpl) FetchAppsByEnvironmentV2(fetchAppListingReques
431
440
if err != nil {
432
441
impl .Logger .Errorw ("error, UpdateAppStatusForHelmTypePipelines" , "envIds" , envIds , "err" , err )
433
442
}
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
+ }
434
454
return envContainers , appSize , nil
435
455
}
436
456
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
+
437
466
func (impl AppListingServiceImpl ) ISLastReleaseStopType (appId , envId int ) (bool , error ) {
438
467
override , err := impl .pipelineOverrideRepository .GetLatestRelease (appId , envId )
439
468
if err != nil && ! util .IsErrNoRows (err ) {
0 commit comments