@@ -52,40 +52,6 @@ const (
52
52
attachableDiskTypePersistent = "PERSISTENT"
53
53
)
54
54
55
- func getRequestCapacity (capRange * csi.CapacityRange ) (int64 , error ) {
56
- // TODO: Take another look at these casts/caps. Make sure this func is correct
57
- var capBytes int64
58
- // Default case where nothing is set
59
- if capRange == nil {
60
- capBytes = MinimumVolumeSizeInBytes
61
- return capBytes , nil
62
- }
63
-
64
- rBytes := capRange .GetRequiredBytes ()
65
- rSet := rBytes > 0
66
- lBytes := capRange .GetLimitBytes ()
67
- lSet := lBytes > 0
68
-
69
- if lSet && rSet && lBytes < rBytes {
70
- return 0 , fmt .Errorf ("Limit bytes %v is less than required bytes %v" , lBytes , rBytes )
71
- }
72
- if lSet && lBytes < MinimumVolumeSizeInBytes {
73
- return 0 , fmt .Errorf ("Limit bytes %v is less than minimum volume size: %v" , lBytes , MinimumVolumeSizeInBytes )
74
- }
75
-
76
- // If Required set just set capacity to that which is Required
77
- if rSet {
78
- capBytes = rBytes
79
- }
80
-
81
- // Limit is more than Required, but larger than Minimum. So we just set capcity to Minimum
82
- // Too small, default
83
- if capBytes < MinimumVolumeSizeInBytes {
84
- capBytes = MinimumVolumeSizeInBytes
85
- }
86
- return capBytes , nil
87
- }
88
-
89
55
func (gceCS * GCEControllerServer ) CreateVolume (ctx context.Context , req * csi.CreateVolumeRequest ) (* csi.CreateVolumeResponse , error ) {
90
56
// TODO: Check create zone against Driver zone. They must MATCH
91
57
glog .Infof ("CreateVolume called with request %v" , * req )
@@ -371,31 +337,6 @@ func (gceCS *GCEControllerServer) ControllerUnpublishVolume(ctx context.Context,
371
337
return & csi.ControllerUnpublishVolumeResponse {}, nil
372
338
}
373
339
374
- // TODO: This abstraction isn't great. We shouldn't need diskIsAttached AND diskIsAttachedAndCompatible to duplicate code
375
- func diskIsAttached (volume * compute.Disk , instance * compute.Instance ) bool {
376
- for _ , disk := range instance .Disks {
377
- if disk .DeviceName == volume .Name {
378
- // Disk is attached to node
379
- return true
380
- }
381
- }
382
- return false
383
- }
384
-
385
- func diskIsAttachedAndCompatible (volume * compute.Disk , instance * compute.Instance , volumeCapability * csi.VolumeCapability , readWrite string ) (bool , error ) {
386
- for _ , disk := range instance .Disks {
387
- if disk .DeviceName == volume .Name {
388
- // Disk is attached to node
389
- if disk .Mode != readWrite {
390
- return true , fmt .Errorf ("disk mode does not match. Got %v. Want %v" , disk .Mode , readWrite )
391
- }
392
- // TODO: Check volume_capability.
393
- return true , nil
394
- }
395
- }
396
- return false , nil
397
- }
398
-
399
340
func (gceCS * GCEControllerServer ) ValidateVolumeCapabilities (ctx context.Context , req * csi.ValidateVolumeCapabilitiesRequest ) (* csi.ValidateVolumeCapabilitiesResponse , error ) {
400
341
// TODO: Factor out the volume capability functionality and use as validation in all other functions as well
401
342
glog .V (5 ).Infof ("Using default ValidateVolumeCapabilities" )
@@ -459,3 +400,61 @@ func (gceCS *GCEControllerServer) DeleteSnapshot(ctx context.Context, req *csi.D
459
400
func (gceCS * GCEControllerServer ) ListSnapshots (ctx context.Context , req * csi.ListSnapshotsRequest ) (* csi.ListSnapshotsResponse , error ) {
460
401
return nil , status .Error (codes .Unimplemented , "" )
461
402
}
403
+
404
+ func getRequestCapacity (capRange * csi.CapacityRange ) (int64 , error ) {
405
+ // TODO: Take another look at these casts/caps. Make sure this func is correct
406
+ var capBytes int64
407
+ // Default case where nothing is set
408
+ if capRange == nil {
409
+ capBytes = MinimumVolumeSizeInBytes
410
+ return capBytes , nil
411
+ }
412
+
413
+ rBytes := capRange .GetRequiredBytes ()
414
+ rSet := rBytes > 0
415
+ lBytes := capRange .GetLimitBytes ()
416
+ lSet := lBytes > 0
417
+
418
+ if lSet && rSet && lBytes < rBytes {
419
+ return 0 , fmt .Errorf ("Limit bytes %v is less than required bytes %v" , lBytes , rBytes )
420
+ }
421
+ if lSet && lBytes < MinimumVolumeSizeInBytes {
422
+ return 0 , fmt .Errorf ("Limit bytes %v is less than minimum volume size: %v" , lBytes , MinimumVolumeSizeInBytes )
423
+ }
424
+
425
+ // If Required set just set capacity to that which is Required
426
+ if rSet {
427
+ capBytes = rBytes
428
+ }
429
+
430
+ // Limit is more than Required, but larger than Minimum. So we just set capcity to Minimum
431
+ // Too small, default
432
+ if capBytes < MinimumVolumeSizeInBytes {
433
+ capBytes = MinimumVolumeSizeInBytes
434
+ }
435
+ return capBytes , nil
436
+ }
437
+
438
+ func diskIsAttached (volume * compute.Disk , instance * compute.Instance ) bool {
439
+ for _ , disk := range instance .Disks {
440
+ if disk .DeviceName == volume .Name {
441
+ // Disk is attached to node
442
+ return true
443
+ }
444
+ }
445
+ return false
446
+ }
447
+
448
+ func diskIsAttachedAndCompatible (volume * compute.Disk , instance * compute.Instance , volumeCapability * csi.VolumeCapability , readWrite string ) (bool , error ) {
449
+ for _ , disk := range instance .Disks {
450
+ if disk .DeviceName == volume .Name {
451
+ // Disk is attached to node
452
+ if disk .Mode != readWrite {
453
+ return true , fmt .Errorf ("disk mode does not match. Got %v. Want %v" , disk .Mode , readWrite )
454
+ }
455
+ // TODO: Check volume_capability.
456
+ return true , nil
457
+ }
458
+ }
459
+ return false , nil
460
+ }
0 commit comments