@@ -419,7 +419,7 @@ func convertV1CustomerEncryptionKeyToBeta(v1Key *computev1.CustomerEncryptionKey
419
419
}
420
420
}
421
421
422
- func convertV1DiskToBetaDisk (v1Disk * computev1.Disk , provisionedThroughputOnCreate int64 ) * computebeta.Disk {
422
+ func convertV1DiskToBetaDisk (v1Disk * computev1.Disk ) * computebeta.Disk {
423
423
var dek * computebeta.CustomerEncryptionKey = nil
424
424
425
425
if v1Disk .DiskEncryptionKey != nil {
@@ -447,8 +447,8 @@ func convertV1DiskToBetaDisk(v1Disk *computev1.Disk, provisionedThroughputOnCrea
447
447
if v1Disk .ProvisionedIops > 0 {
448
448
betaDisk .ProvisionedIops = v1Disk .ProvisionedIops
449
449
}
450
- if provisionedThroughputOnCreate > 0 {
451
- betaDisk .ProvisionedThroughput = provisionedThroughputOnCreate
450
+ if v1Disk . ProvisionedThroughput > 0 {
451
+ betaDisk .ProvisionedThroughput = v1Disk . ProvisionedThroughput
452
452
}
453
453
454
454
return betaDisk
@@ -543,7 +543,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
543
543
544
544
if gceAPIVersion == GCEAPIVersionBeta {
545
545
var insertOp * computebeta.Operation
546
- betaDiskToCreate := convertV1DiskToBetaDisk (diskToCreate , 0 )
546
+ betaDiskToCreate := convertV1DiskToBetaDisk (diskToCreate )
547
547
betaDiskToCreate .MultiWriter = multiWriter
548
548
insertOp , err = cloud .betaService .RegionDisks .Insert (project , volKey .Region , betaDiskToCreate ).Context (ctx ).Do ()
549
549
if insertOp != nil {
@@ -619,13 +619,9 @@ func (cloud *CloudProvider) insertZonalDisk(
619
619
opName string
620
620
gceAPIVersion = GCEAPIVersionV1
621
621
)
622
- if multiWriter || containsBetaDiskType ( hyperdiskTypes , params . DiskType ) {
622
+ if multiWriter {
623
623
gceAPIVersion = GCEAPIVersionBeta
624
624
}
625
- storagePoolsEnabled := params .StoragePools != nil
626
- if storagePoolsEnabled {
627
- gceAPIVersion = GCEAPIVersionAlpha
628
- }
629
625
630
626
diskToCreate := & computev1.Disk {
631
627
Name : volKey .Name ,
@@ -638,6 +634,17 @@ func (cloud *CloudProvider) insertZonalDisk(
638
634
if params .ProvisionedIOPSOnCreate > 0 {
639
635
diskToCreate .ProvisionedIops = params .ProvisionedIOPSOnCreate
640
636
}
637
+ if params .ProvisionedThroughputOnCreate > 0 {
638
+ diskToCreate .ProvisionedThroughput = params .ProvisionedThroughputOnCreate
639
+ }
640
+
641
+ if params .StoragePools != nil {
642
+ sp := common .StoragePoolInZone (params .StoragePools , volKey .Zone )
643
+ if sp == nil {
644
+ return status .Errorf (codes .InvalidArgument , "cannot create disk in zone %q: no Storage Pools exist in zone" , volKey .Zone )
645
+ }
646
+ diskToCreate .StoragePool = sp .ResourceName
647
+ }
641
648
642
649
if snapshotID != "" {
643
650
_ , snapshotType , _ , err := common .SnapshotIDToProjectKey (snapshotID )
@@ -662,20 +669,20 @@ func (cloud *CloudProvider) insertZonalDisk(
662
669
KmsKeyName : params .DiskEncryptionKMSKey ,
663
670
}
664
671
}
672
+ diskToCreate .EnableConfidentialCompute = params .EnableConfidentialCompute
665
673
666
674
if gceAPIVersion == GCEAPIVersionBeta {
667
675
var insertOp * computebeta.Operation
668
- betaDiskToCreate := convertV1DiskToBetaDisk (diskToCreate , params . ProvisionedThroughputOnCreate )
676
+ betaDiskToCreate := convertV1DiskToBetaDisk (diskToCreate )
669
677
betaDiskToCreate .MultiWriter = multiWriter
670
- betaDiskToCreate .EnableConfidentialCompute = params .EnableConfidentialCompute
671
678
insertOp , err = cloud .betaService .Disks .Insert (project , volKey .Zone , betaDiskToCreate ).Context (ctx ).Do ()
672
679
if insertOp != nil {
673
680
opName = insertOp .Name
674
681
}
675
682
} else if gceAPIVersion == GCEAPIVersionAlpha {
676
683
var insertOp * computealpha.Operation
677
684
var storagePool * common.StoragePool
678
- if storagePoolsEnabled {
685
+ if params . StoragePools != nil {
679
686
storagePool = common .StoragePoolInZone (params .StoragePools , volKey .Zone )
680
687
if storagePool == nil {
681
688
return status .Errorf (codes .InvalidArgument , "cannot create disk in zone %q: no Storage Pools exist in zone" , volKey .Zone )
0 commit comments