Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit d22d879

Browse files
authored
Merge pull request #37 from gossion/guwe/csi
Add function to get pv,pvc
2 parents b3a8c55 + 5010dbe commit d22d879

2 files changed

Lines changed: 29 additions & 3 deletions

File tree

internal/commands/root/root.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,15 @@ func runRootCommandWithProviderAndClient(ctx context.Context, pInit provider.Ini
118118
secretInformer := scmInformerFactory.Core().V1().Secrets()
119119
configMapInformer := scmInformerFactory.Core().V1().ConfigMaps()
120120
serviceInformer := scmInformerFactory.Core().V1().Services()
121-
122-
rm, err := manager.NewResourceManager(podInformer.Lister(), secretInformer.Lister(), configMapInformer.Lister(), serviceInformer.Lister())
121+
pvcInformer := scmInformerFactory.Core().V1().PersistentVolumeClaims()
122+
pvInformer := scmInformerFactory.Core().V1().PersistentVolumes()
123+
124+
rm, err := manager.NewResourceManager(podInformer.Lister(),
125+
secretInformer.Lister(),
126+
configMapInformer.Lister(),
127+
serviceInformer.Lister(),
128+
pvcInformer.Lister(),
129+
pvInformer.Lister())
123130
if err != nil {
124131
return errors.Wrap(err, "could not create resource manager")
125132
}

manager/resource.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,24 @@ type ResourceManager struct {
2828
secretLister corev1listers.SecretLister
2929
configMapLister corev1listers.ConfigMapLister
3030
serviceLister corev1listers.ServiceLister
31+
pvcLister corev1listers.PersistentVolumeClaimLister
32+
pvLister corev1listers.PersistentVolumeLister
3133
}
3234

3335
// NewResourceManager returns a ResourceManager with the internal maps initialized.
34-
func NewResourceManager(podLister corev1listers.PodLister, secretLister corev1listers.SecretLister, configMapLister corev1listers.ConfigMapLister, serviceLister corev1listers.ServiceLister) (*ResourceManager, error) {
36+
func NewResourceManager(podLister corev1listers.PodLister,
37+
secretLister corev1listers.SecretLister,
38+
configMapLister corev1listers.ConfigMapLister,
39+
serviceLister corev1listers.ServiceLister,
40+
pvcLister corev1listers.PersistentVolumeClaimLister,
41+
pvLister corev1listers.PersistentVolumeLister) (*ResourceManager, error) {
3542
rm := ResourceManager{
3643
podLister: podLister,
3744
secretLister: secretLister,
3845
configMapLister: configMapLister,
3946
serviceLister: serviceLister,
47+
pvcLister: pvcLister,
48+
pvLister: pvLister,
4049
}
4150
return &rm, nil
4251
}
@@ -65,3 +74,13 @@ func (rm *ResourceManager) GetSecret(name, namespace string) (*v1.Secret, error)
6574
func (rm *ResourceManager) ListServices() ([]*v1.Service, error) {
6675
return rm.serviceLister.List(labels.Everything())
6776
}
77+
78+
// GetPersistentVolumeClaim retrieves the specified pvc from Kubernetes
79+
func (rm *ResourceManager) GetPersistentVolumeClaim(name, namespace string) (*v1.PersistentVolumeClaim, error) {
80+
return rm.pvcLister.PersistentVolumeClaims(namespace).Get(name)
81+
}
82+
83+
// GetPersistentVolume retrieves the specified pv from Kubernetes
84+
func (rm *ResourceManager) GetPersistentVolume(name string) (*v1.PersistentVolume, error) {
85+
return rm.pvLister.Get(name)
86+
}

0 commit comments

Comments
 (0)