Skip to content

Commit bf480f0

Browse files
authored
Merge pull request kubernetes-csi#162 from NetApp/fix-nocaps-tests
Use real volumes when testing no capabilities
2 parents a25d0b1 + 55066f2 commit bf480f0

File tree

2 files changed

+85
-4
lines changed

2 files changed

+85
-4
lines changed

pkg/sanity/controller.go

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,16 +604,56 @@ var _ = DescribeSanity("Controller Service", func(sc *SanityContext) {
604604

605605
It("should fail when no volume capabilities are provided", func() {
606606

607-
_, err := c.ValidateVolumeCapabilities(
607+
// Create Volume First
608+
By("creating a single node writer volume")
609+
name := uniqueString("sanity-controller-validate-nocaps")
610+
611+
vol, err := c.CreateVolume(
612+
context.Background(),
613+
&csi.CreateVolumeRequest{
614+
Name: name,
615+
VolumeCapabilities: []*csi.VolumeCapability{
616+
{
617+
AccessType: &csi.VolumeCapability_Mount{
618+
Mount: &csi.VolumeCapability_MountVolume{},
619+
},
620+
AccessMode: &csi.VolumeCapability_AccessMode{
621+
Mode: csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
622+
},
623+
},
624+
},
625+
Secrets: sc.Secrets.CreateVolumeSecret,
626+
Parameters: sc.Config.TestVolumeParameters,
627+
},
628+
)
629+
Expect(err).NotTo(HaveOccurred())
630+
Expect(vol).NotTo(BeNil())
631+
Expect(vol.GetVolume()).NotTo(BeNil())
632+
Expect(vol.GetVolume().GetVolumeId()).NotTo(BeEmpty())
633+
cl.RegisterVolume(name, VolumeInfo{VolumeID: vol.GetVolume().GetVolumeId()})
634+
635+
_, err = c.ValidateVolumeCapabilities(
608636
context.Background(),
609637
&csi.ValidateVolumeCapabilitiesRequest{
610-
VolumeId: "id",
638+
VolumeId: vol.GetVolume().GetVolumeId(),
611639
})
612640
Expect(err).To(HaveOccurred())
613641

614642
serverError, ok := status.FromError(err)
615643
Expect(ok).To(BeTrue())
616644
Expect(serverError.Code()).To(Equal(codes.InvalidArgument))
645+
646+
By("cleaning up deleting the volume")
647+
648+
_, err = c.DeleteVolume(
649+
context.Background(),
650+
&csi.DeleteVolumeRequest{
651+
VolumeId: vol.GetVolume().GetVolumeId(),
652+
Secrets: sc.Secrets.DeleteVolumeSecret,
653+
},
654+
)
655+
Expect(err).NotTo(HaveOccurred())
656+
cl.UnregisterVolume(name)
617657
})
618658

619659
It("should return appropriate values (no optional values added)", func() {

pkg/sanity/node.go

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,39 @@ var _ = DescribeSanity("Node Service", func(sc *SanityContext) {
297297
})
298298

299299
It("should fail when no volume capability is provided", func() {
300-
_, err := c.NodeStageVolume(
300+
301+
// Create Volume First
302+
By("creating a single node writer volume")
303+
name := uniqueString("sanity-node-stage-nocaps")
304+
305+
vol, err := s.CreateVolume(
306+
context.Background(),
307+
&csi.CreateVolumeRequest{
308+
Name: name,
309+
VolumeCapabilities: []*csi.VolumeCapability{
310+
{
311+
AccessType: &csi.VolumeCapability_Mount{
312+
Mount: &csi.VolumeCapability_MountVolume{},
313+
},
314+
AccessMode: &csi.VolumeCapability_AccessMode{
315+
Mode: csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
316+
},
317+
},
318+
},
319+
Secrets: sc.Secrets.CreateVolumeSecret,
320+
Parameters: sc.Config.TestVolumeParameters,
321+
},
322+
)
323+
Expect(err).NotTo(HaveOccurred())
324+
Expect(vol).NotTo(BeNil())
325+
Expect(vol.GetVolume()).NotTo(BeNil())
326+
Expect(vol.GetVolume().GetVolumeId()).NotTo(BeEmpty())
327+
cl.RegisterVolume(name, VolumeInfo{VolumeID: vol.GetVolume().GetVolumeId()})
328+
329+
_, err = c.NodeStageVolume(
301330
context.Background(),
302331
&csi.NodeStageVolumeRequest{
303-
VolumeId: "id",
332+
VolumeId: vol.GetVolume().GetVolumeId(),
304333
StagingTargetPath: sc.Config.StagingPath,
305334
PublishContext: map[string]string{
306335
"device": device,
@@ -313,6 +342,18 @@ var _ = DescribeSanity("Node Service", func(sc *SanityContext) {
313342
serverError, ok := status.FromError(err)
314343
Expect(ok).To(BeTrue())
315344
Expect(serverError.Code()).To(Equal(codes.InvalidArgument))
345+
346+
By("cleaning up deleting the volume")
347+
348+
_, err = s.DeleteVolume(
349+
context.Background(),
350+
&csi.DeleteVolumeRequest{
351+
VolumeId: vol.GetVolume().GetVolumeId(),
352+
Secrets: sc.Secrets.DeleteVolumeSecret,
353+
},
354+
)
355+
Expect(err).NotTo(HaveOccurred())
356+
cl.UnregisterVolume(name)
316357
})
317358
})
318359

0 commit comments

Comments
 (0)