Skip to content

Commit 615efb5

Browse files
committed
provide IRI Volume Id from volumepoollet
1 parent d17f961 commit 615efb5

File tree

9 files changed

+41
-35
lines changed

9 files changed

+41
-35
lines changed

broker/volumebroker/server/event_list_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var _ = Describe("ListEvents", func() {
3737
res, err := srv.CreateVolume(ctx, &iri.CreateVolumeRequest{
3838
Volume: &iri.Volume{
3939
Metadata: &irimeta.ObjectMetadata{
40+
Id: "foo",
4041
Labels: map[string]string{
4142
volumepoolletv1alpha1.VolumeUIDLabel: "foobar",
4243
},
@@ -53,6 +54,10 @@ var _ = Describe("ListEvents", func() {
5354
Expect(err).NotTo(HaveOccurred())
5455
Expect(res).NotTo(BeNil())
5556

57+
DeferCleanup(srv.DeleteVolume, &iri.DeleteVolumeRequest{
58+
VolumeId: res.Volume.Metadata.Id,
59+
})
60+
5661
By("getting the ironcore volume")
5762
ironcoreVolume := &storagev1alpha1.Volume{}
5863
ironcoreVolumeKey := client.ObjectKey{Namespace: ns.Name, Name: res.Volume.Metadata.Id}

broker/volumebroker/server/volume_create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (s *Server) getIronCoreVolumeConfig(_ context.Context, volume *iri.Volume)
6969
ironcoreVolume := &storagev1alpha1.Volume{
7070
ObjectMeta: metav1.ObjectMeta{
7171
Namespace: s.namespace,
72-
Name: s.idGen.Generate(),
72+
Name: volume.Metadata.Id,
7373
Labels: utilsmaps.AppendMap(labels, map[string]string{
7474
volumebrokerv1alpha1.ManagerLabel: volumebrokerv1alpha1.VolumeBrokerManager,
7575
}),

broker/volumebroker/server/volume_create_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ var _ = Describe("CreateVolume", func() {
2727
res, err := srv.CreateVolume(ctx, &iri.CreateVolumeRequest{
2828
Volume: &iri.Volume{
2929
Metadata: &irimeta.ObjectMetadata{
30+
Id: "foo",
3031
Labels: map[string]string{
3132
volumepoolletv1alpha1.VolumeUIDLabel: "foobar",
3233
},
@@ -43,6 +44,10 @@ var _ = Describe("CreateVolume", func() {
4344
Expect(err).NotTo(HaveOccurred())
4445
Expect(res).NotTo(BeNil())
4546

47+
DeferCleanup(srv.DeleteVolume, &iri.DeleteVolumeRequest{
48+
VolumeId: res.Volume.Metadata.Id,
49+
})
50+
4651
By("getting the ironcore volume")
4752
ironcoreVolume := &storagev1alpha1.Volume{}
4853
ironcoreVolumeKey := client.ObjectKey{Namespace: ns.Name, Name: res.Volume.Metadata.Id}

broker/volumebroker/server/volume_delete_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ var _ = Describe("DeleteVolume", func() {
2424
createRes, err := srv.CreateVolume(ctx, &iri.CreateVolumeRequest{
2525
Volume: &iri.Volume{
2626
Metadata: &irimeta.ObjectMetadata{
27+
Id: "foo",
2728
Labels: map[string]string{
2829
volumepoolletv1alpha1.VolumeUIDLabel: "foobar",
2930
},

broker/volumebroker/server/volume_expand_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ var _ = Describe("ExpandVolume", func() {
4040
createRes, err := srv.CreateVolume(ctx, &iri.CreateVolumeRequest{
4141
Volume: &iri.Volume{
4242
Metadata: &irimeta.ObjectMetadata{
43+
Id: "foo",
4344
Labels: map[string]string{
4445
volumepoolletv1alpha1.VolumeUIDLabel: "foobar",
4546
},
@@ -56,6 +57,10 @@ var _ = Describe("ExpandVolume", func() {
5657
Expect(err).NotTo(HaveOccurred())
5758
Expect(createRes).NotTo(BeNil())
5859

60+
DeferCleanup(srv.DeleteVolume, &iri.DeleteVolumeRequest{
61+
VolumeId: createRes.Volume.Metadata.Id,
62+
})
63+
5964
By("checking the volume storage size")
6065
ironcoreVolume := &storagev1alpha1.Volume{}
6166
ironcoreVolumeKey := client.ObjectKey{Namespace: ns.Name, Name: createRes.Volume.Metadata.Id}

broker/volumebroker/server/volume_list_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
package server_test
55

66
import (
7+
"strconv"
8+
79
irimeta "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1"
810
iri "github.com/ironcore-dev/ironcore/iri/apis/volume/v1alpha1"
911
volumepoolletv1alpha1 "github.com/ironcore-dev/ironcore/poollet/volumepoollet/api/v1alpha1"
@@ -24,6 +26,7 @@ var _ = Describe("ListVolumes", func() {
2426
res, err := srv.CreateVolume(ctx, &iri.CreateVolumeRequest{
2527
Volume: &iri.Volume{
2628
Metadata: &irimeta.ObjectMetadata{
29+
Id: "foo" + strconv.Itoa(i),
2730
Labels: map[string]string{
2831
volumepoolletv1alpha1.VolumeUIDLabel: "foobar",
2932
},
@@ -39,6 +42,10 @@ var _ = Describe("ListVolumes", func() {
3942
Expect(err).NotTo(HaveOccurred())
4043
Expect(res).NotTo(BeNil())
4144
Volumes[i] = res.Volume
45+
46+
DeferCleanup(srv.DeleteVolume, &iri.DeleteVolumeRequest{
47+
VolumeId: res.Volume.Metadata.Id,
48+
})
4249
}
4350

4451
By("listing the Volumes")

iri/testing/volume/fake.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ func (r *FakeRuntimeService) CreateVolume(ctx context.Context, req *iri.CreateVo
133133
defer r.Unlock()
134134

135135
volume := req.Volume
136-
volume.Metadata.Id = r.idGen.Generate()
137136
volume.Metadata.CreatedAt = time.Now().UnixNano()
138137
volume.Status = &iri.VolumeStatus{}
139138

poollet/volumepoollet/controllers/volume_controller.go

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -81,32 +81,14 @@ func (r *VolumeReconciler) iriVolumeAnnotations(_ *storagev1alpha1.Volume) map[s
8181
return map[string]string{}
8282
}
8383

84-
func (r *VolumeReconciler) listIRIVolumesByKey(ctx context.Context, volumeKey client.ObjectKey) ([]*iri.Volume, error) {
84+
func (r *VolumeReconciler) getIRIVolumeByID(ctx context.Context, volumeID types.UID) ([]*iri.Volume, error) {
8585
res, err := r.VolumeRuntime.ListVolumes(ctx, &iri.ListVolumesRequest{
8686
Filter: &iri.VolumeFilter{
87-
LabelSelector: map[string]string{
88-
volumepoolletv1alpha1.VolumeNamespaceLabel: volumeKey.Namespace,
89-
volumepoolletv1alpha1.VolumeNameLabel: volumeKey.Name,
90-
},
87+
Id: string(volumeID),
9188
},
9289
})
9390
if err != nil {
94-
return nil, fmt.Errorf("error listing volumes by key: %w", err)
95-
}
96-
volumes := res.Volumes
97-
return volumes, nil
98-
}
99-
100-
func (r *VolumeReconciler) listIRIVolumesByUID(ctx context.Context, volumeUID types.UID) ([]*iri.Volume, error) {
101-
res, err := r.VolumeRuntime.ListVolumes(ctx, &iri.ListVolumesRequest{
102-
Filter: &iri.VolumeFilter{
103-
LabelSelector: map[string]string{
104-
volumepoolletv1alpha1.VolumeUIDLabel: string(volumeUID),
105-
},
106-
},
107-
})
108-
if err != nil {
109-
return nil, fmt.Errorf("error listing volumes by uid: %w", err)
91+
return nil, fmt.Errorf("error listing volumes by id: %w", err)
11092
}
11193
return res.Volumes, nil
11294
}
@@ -124,18 +106,18 @@ func (r *VolumeReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
124106
if !apierrors.IsNotFound(err) {
125107
return ctrl.Result{}, fmt.Errorf("error getting volume %s: %w", req.NamespacedName, err)
126108
}
127-
return r.deleteGone(ctx, log, req.NamespacedName)
109+
return r.deleteGone(ctx, log, volume.UID)
128110
}
129111
return r.reconcileExists(ctx, log, volume)
130112
}
131113

132-
func (r *VolumeReconciler) deleteGone(ctx context.Context, log logr.Logger, volumeKey client.ObjectKey) (ctrl.Result, error) {
114+
func (r *VolumeReconciler) deleteGone(ctx context.Context, log logr.Logger, volumeUID types.UID) (ctrl.Result, error) {
133115
log.V(1).Info("Delete gone")
134116

135-
log.V(1).Info("Listing iri volumes by key")
136-
volumes, err := r.listIRIVolumesByKey(ctx, volumeKey)
117+
log.V(1).Info("Listing iri volumes by Id")
118+
volumes, err := r.getIRIVolumeByID(ctx, volumeUID)
137119
if err != nil {
138-
return ctrl.Result{}, fmt.Errorf("error listing iri volumes by key: %w", err)
120+
return ctrl.Result{}, fmt.Errorf("error listing iri volumes by Id: %w", err)
139121
}
140122

141123
ok, err := r.deleteIRIVolumes(ctx, log, volumes)
@@ -206,7 +188,7 @@ func (r *VolumeReconciler) delete(ctx context.Context, log logr.Logger, volume *
206188
log.V(1).Info("Finalizer present")
207189

208190
log.V(1).Info("Listing volumes")
209-
volumes, err := r.listIRIVolumesByUID(ctx, volume.UID)
191+
volumes, err := r.getIRIVolumeByID(ctx, volume.UID)
210192
if err != nil {
211193
return ctrl.Result{}, fmt.Errorf("error listing volumes by uid: %w", err)
212194
}
@@ -245,6 +227,7 @@ func (r *VolumeReconciler) prepareIRIVolumeMetadata(volume *storagev1alpha1.Volu
245227
errs = append(errs, fmt.Errorf("error preparing iri volume labels: %w", err))
246228
}
247229
return &irimeta.ObjectMetadata{
230+
Id: string(volume.UID),
248231
Labels: labels,
249232
Annotations: r.iriVolumeAnnotations(volume),
250233
}, errs
@@ -375,9 +358,7 @@ func (r *VolumeReconciler) reconcile(ctx context.Context, log logr.Logger, volum
375358
log.V(1).Info("Listing volumes")
376359
res, err := r.VolumeRuntime.ListVolumes(ctx, &iri.ListVolumesRequest{
377360
Filter: &iri.VolumeFilter{
378-
LabelSelector: map[string]string{
379-
volumepoolletv1alpha1.VolumeUIDLabel: string(volume.UID),
380-
},
361+
Id: string(volume.UID),
381362
},
382363
})
383364
if err != nil {
@@ -415,7 +396,7 @@ func (r *VolumeReconciler) create(ctx context.Context, log logr.Logger, volume *
415396
return ctrl.Result{}, nil
416397
}
417398

418-
log.V(1).Info("Creating volume")
399+
log.V(1).Info("Creating volume", "volume before ", iriVolume)
419400
res, err := r.VolumeRuntime.CreateVolume(ctx, &iri.CreateVolumeRequest{
420401
Volume: iriVolume,
421402
})
@@ -427,14 +408,14 @@ func (r *VolumeReconciler) create(ctx context.Context, log logr.Logger, volume *
427408

428409
volumeID := iriVolume.Metadata.Id
429410
log = log.WithValues("VolumeID", volumeID)
430-
log.V(1).Info("Created")
411+
log.V(1).Info("Created", "volume after ", iriVolume)
431412

432413
log.V(1).Info("Updating status")
433414
if err := r.updateStatus(ctx, log, volume, iriVolume); err != nil {
434415
return ctrl.Result{}, fmt.Errorf("error updating volume status: %w", err)
435416
}
436417

437-
log.V(1).Info("Created")
418+
log.V(1).Info("Created", "volume after ", iriVolume)
438419
return ctrl.Result{}, nil
439420
}
440421

poollet/volumepoollet/controllers/volume_controller_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ var _ = Describe("VolumeController", func() {
6464

6565
_, iriVolume := GetSingleMapEntry(srv.Volumes)
6666

67+
Expect(iriVolume.Metadata.Id).To(Equal(string(volume.UID)))
6768
Expect(iriVolume.Spec.Image).To(Equal(""))
6869
Expect(iriVolume.Spec.Class).To(Equal(vc.Name))
6970
Expect(iriVolume.Spec.Encryption).To(BeNil())
@@ -156,6 +157,7 @@ var _ = Describe("VolumeController", func() {
156157

157158
_, iriVolume := GetSingleMapEntry(srv.Volumes)
158159

160+
Expect(iriVolume.Metadata.Id).To(Equal(string(volume.UID)))
159161
Expect(iriVolume.Spec.Image).To(Equal(""))
160162
Expect(iriVolume.Spec.Class).To(Equal(vc.Name))
161163
Expect(iriVolume.Spec.Resources.StorageBytes).To(Equal(size.Value()))
@@ -191,6 +193,7 @@ var _ = Describe("VolumeController", func() {
191193

192194
_, iriVolume := GetSingleMapEntry(srv.Volumes)
193195

196+
Expect(iriVolume.Metadata.Id).To(Equal(string(volume.UID)))
194197
Expect(iriVolume.Spec.Image).To(Equal(""))
195198
Expect(iriVolume.Spec.Class).To(Equal(expandableVc.Name))
196199
Expect(iriVolume.Spec.Resources.StorageBytes).To(Equal(size.Value()))

0 commit comments

Comments
 (0)