Files
PandaX/apps/devops/services/k8s/pvc/pvc_detail.go
2022-01-22 17:07:04 +08:00

36 lines
1.1 KiB
Go

package pvc
import (
"context"
"fmt"
"pandax/base/global"
v1 "k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
// PersistentVolumeClaimDetail provides the presentation layer view of Kubernetes Persistent Volume Claim resource.
type PersistentVolumeClaimDetail struct {
// Extends list item structure.
PersistentVolumeClaim `json:",inline"`
}
// GetPersistentVolumeClaimDetail returns detailed information about a persistent volume claim
func GetPersistentVolumeClaimDetail(client kubernetes.Interface, namespace string, name string) (*PersistentVolumeClaimDetail, error) {
global.Log.Info(fmt.Sprintf("Getting details of %s persistent volume claim", name))
pvc, err := client.CoreV1().PersistentVolumeClaims(namespace).Get(context.TODO(), name, metaV1.GetOptions{})
if err != nil {
return nil, err
}
return getPersistentVolumeClaimDetail(*pvc), nil
}
func getPersistentVolumeClaimDetail(pvc v1.PersistentVolumeClaim) *PersistentVolumeClaimDetail {
return &PersistentVolumeClaimDetail{
PersistentVolumeClaim: toPersistentVolumeClaim(pvc),
}
}