From c2247af22c347f22af89845483342137e15d9c2c Mon Sep 17 00:00:00 2001 From: Artsiom Koltun Date: Thu, 29 Jun 2023 13:58:03 +0200 Subject: [PATCH] Test middleend Stats with non-AIP compliant names. Signed-off-by: Artsiom Koltun --- pkg/middleend/encryption_test.go | 8 ++++++++ pkg/middleend/qos.go | 12 ++++++------ pkg/middleend/qos_test.go | 8 ++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/pkg/middleend/encryption_test.go b/pkg/middleend/encryption_test.go index 4de87265..e02b1735 100644 --- a/pkg/middleend/encryption_test.go +++ b/pkg/middleend/encryption_test.go @@ -1020,6 +1020,14 @@ func TestMiddleEnd_EncryptedVolumeStats(t *testing.T) { fmt.Sprintf("unable to find key %v", server.ResourceIDToVolumeName("unknown-id")), false, }, + "malformed name": { + "-ABC-DEF", + nil, + []string{""}, + codes.Unknown, + fmt.Sprintf("segment '%s': not a valid DNS name", "-ABC-DEF"), + false, + }, } // run tests diff --git a/pkg/middleend/qos.go b/pkg/middleend/qos.go index 7e01dd45..e3468da7 100644 --- a/pkg/middleend/qos.go +++ b/pkg/middleend/qos.go @@ -200,15 +200,15 @@ func (s *Server) QosVolumeStats(_ context.Context, in *pb.QosVolumeStatsRequest) log.Printf("error: %v", err) return nil, err } - // Validate that a resource name conforms to the restrictions outlined in AIP-122. - // if err := resourcename.Validate(in.VolumeId.Value); err != nil { - // log.Printf("error: %v", err) - // return nil, err - // } - // fetch object from the database if in.VolumeId == nil || in.VolumeId.Value == "" { return nil, status.Error(codes.InvalidArgument, "volume_id cannot be empty") } + // Validate that a resource name conforms to the restrictions outlined in AIP-122. + if err := resourcename.Validate(in.VolumeId.Value); err != nil { + log.Printf("error: %v", err) + return nil, err + } + // fetch object from the database volume, ok := s.volumes.qosVolumes[in.VolumeId.Value] if !ok { err := status.Errorf(codes.NotFound, "unable to find key %s", in.VolumeId.Value) diff --git a/pkg/middleend/qos_test.go b/pkg/middleend/qos_test.go index c99808a7..f590802d 100644 --- a/pkg/middleend/qos_test.go +++ b/pkg/middleend/qos_test.go @@ -1026,6 +1026,14 @@ func TestMiddleEnd_QosVolumeStats(t *testing.T) { errMsg: "", start: true, }, + "malformed name": { + in: &_go.ObjectKey{Value: "-ABC-DEF"}, + out: nil, + spdk: []string{""}, + errCode: codes.Unknown, + errMsg: fmt.Sprintf("segment '%s': not a valid DNS name", "-ABC-DEF"), + start: false, + }, } for name, tt := range tests { t.Run(name, func(t *testing.T) {