From 87cb36c94464e7b320ba888092c79870b6d2b353 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Fri, 21 May 2021 07:55:53 -0700 Subject: [PATCH] Fix PVC list so it's only tenant PVCs. Fix NPE on pod listing. (#764) --- .../src/screens/Console/Storage/StoragePVCs.tsx | 2 +- restapi/admin_tenants.go | 17 ++++++++++------- restapi/admin_volumes.go | 7 ++++++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/portal-ui/src/screens/Console/Storage/StoragePVCs.tsx b/portal-ui/src/screens/Console/Storage/StoragePVCs.tsx index c24d29cd0..8b398d31e 100644 --- a/portal-ui/src/screens/Console/Storage/StoragePVCs.tsx +++ b/portal-ui/src/screens/Console/Storage/StoragePVCs.tsx @@ -69,7 +69,7 @@ const StorageVolumes = ({ .invoke("GET", `/api/v1/list-pvcs`) .then((res: IPVCsResponse) => { let volumes = get(res, "pvcs", []); - setRecords(volumes); + setRecords(volumes ? volumes : []); setLoading(false); }) .catch((err) => { diff --git a/restapi/admin_tenants.go b/restapi/admin_tenants.go index 05cb64e5c..a57e35926 100644 --- a/restapi/admin_tenants.go +++ b/restapi/admin_tenants.go @@ -1391,14 +1391,17 @@ func getTenantPodsResponse(session *models.Principal, params admin_api.GetTenant return nil, prepareError(err) } retval := []*models.TenantPod{} - for i := range pods.Items { - restarts := int64(pods.Items[i].Status.ContainerStatuses[0].RestartCount) - retval = append(retval, &models.TenantPod{Name: &pods.Items[i].ObjectMeta.Name, - Status: string(pods.Items[i].Status.Phase), - TimeCreated: pods.Items[i].CreationTimestamp.Unix(), - PodIP: pods.Items[i].Status.PodIP, + for _, pod := range pods.Items { + var restarts int64 = 0 + if len(pod.Status.ContainerStatuses) > 0 { + restarts = int64(pod.Status.ContainerStatuses[0].RestartCount) + } + retval = append(retval, &models.TenantPod{Name: &pod.ObjectMeta.Name, + Status: string(pod.Status.Phase), + TimeCreated: pod.CreationTimestamp.Unix(), + PodIP: pod.Status.PodIP, Restarts: restarts, - Node: pods.Items[i].Spec.NodeName}) + Node: pod.Spec.NodeName}) } return retval, nil } diff --git a/restapi/admin_volumes.go b/restapi/admin_volumes.go index 9fe7e5fd4..3e26dcdb0 100644 --- a/restapi/admin_volumes.go +++ b/restapi/admin_volumes.go @@ -19,6 +19,8 @@ package restapi import ( "context" + miniov1 "github.com/minio/operator/pkg/apis/minio.min.io/v1" + "github.com/go-openapi/runtime/middleware" "github.com/minio/console/cluster" "github.com/minio/console/models" @@ -47,7 +49,10 @@ func getPVCsResponse(session *models.Principal) (*models.ListPVCsResponse, *mode return nil, prepareError(err) } - listOpts := metav1.ListOptions{} + // Filter Tenant PVCs. They keep their v1 tenant annotation + listOpts := metav1.ListOptions{ + LabelSelector: miniov1.TenantLabel, + } // List all PVCs listAllPvcs, err2 := clientset.CoreV1().PersistentVolumeClaims("").List(ctx, listOpts)