Skip to content

Make CloudDisk methods compatible with alphaDisk #1527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions pkg/gce-cloud-provider/compute/cloud-disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ func (d *CloudDisk) LocationType() meta.KeyType {
case d.betaDisk != nil:
zone = d.betaDisk.Zone
region = d.betaDisk.Region
case d.alphaDisk != nil:
zone = d.alphaDisk.Zone
region = d.alphaDisk.Region
}
switch {
case zone != "":
Expand All @@ -75,6 +78,8 @@ func (d *CloudDisk) GetUsers() []string {
return d.disk.Users
case d.betaDisk != nil:
return d.betaDisk.Users
case d.alphaDisk != nil:
return d.alphaDisk.Users
default:
return nil
}
Expand All @@ -86,6 +91,8 @@ func (d *CloudDisk) GetName() string {
return d.disk.Name
case d.betaDisk != nil:
return d.betaDisk.Name
case d.alphaDisk != nil:
return d.alphaDisk.Name
default:
return ""
}
Expand All @@ -97,6 +104,8 @@ func (d *CloudDisk) GetKind() string {
return d.disk.Kind
case d.betaDisk != nil:
return d.betaDisk.Kind
case d.alphaDisk != nil:
return d.alphaDisk.Kind
default:
return ""
}
Expand All @@ -108,6 +117,8 @@ func (d *CloudDisk) GetStatus() string {
return d.disk.Status
case d.betaDisk != nil:
return d.betaDisk.Status
case d.alphaDisk != nil:
return d.alphaDisk.Status
default:
return "Unknown"
}
Expand All @@ -123,6 +134,8 @@ func (d *CloudDisk) GetPDType() string {
pdType = d.disk.Type
case d.betaDisk != nil:
pdType = d.betaDisk.Type
case d.alphaDisk != nil:
pdType = d.alphaDisk.Type
default:
return ""
}
Expand All @@ -136,6 +149,8 @@ func (d *CloudDisk) GetSelfLink() string {
return d.disk.SelfLink
case d.betaDisk != nil:
return d.betaDisk.SelfLink
case d.alphaDisk != nil:
return d.alphaDisk.SelfLink
default:
return ""
}
Expand All @@ -147,6 +162,8 @@ func (d *CloudDisk) GetSizeGb() int64 {
return d.disk.SizeGb
case d.betaDisk != nil:
return d.betaDisk.SizeGb
case d.alphaDisk != nil:
return d.alphaDisk.SizeGb
default:
return -1
}
Expand All @@ -160,6 +177,8 @@ func (d *CloudDisk) setSizeGb(size int64) {
d.disk.SizeGb = size
case d.betaDisk != nil:
d.betaDisk.SizeGb = size
case d.alphaDisk != nil:
d.alphaDisk.SizeGb = size
}
}

Expand All @@ -169,6 +188,8 @@ func (d *CloudDisk) GetZone() string {
return d.disk.Zone
case d.betaDisk != nil:
return d.betaDisk.Zone
case d.alphaDisk != nil:
return d.alphaDisk.Zone
default:
return ""
}
Expand All @@ -180,6 +201,8 @@ func (d *CloudDisk) GetSnapshotId() string {
return d.disk.SourceSnapshotId
case d.betaDisk != nil:
return d.betaDisk.SourceSnapshotId
case d.alphaDisk != nil:
return d.alphaDisk.SourceSnapshotId
default:
return ""
}
Expand All @@ -191,6 +214,8 @@ func (d *CloudDisk) GetSourceDiskId() string {
return d.disk.SourceDiskId
case d.betaDisk != nil:
return d.betaDisk.SourceDiskId
case d.alphaDisk != nil:
return d.alphaDisk.SourceDiskId
default:
return ""
}
Expand All @@ -202,6 +227,8 @@ func (d *CloudDisk) GetImageId() string {
return d.disk.SourceImageId
case d.betaDisk != nil:
return d.betaDisk.SourceImageId
case d.alphaDisk != nil:
return d.alphaDisk.SourceImageId
default:
return ""
}
Expand All @@ -217,6 +244,10 @@ func (d *CloudDisk) GetKMSKeyName() string {
if dek := d.betaDisk.DiskEncryptionKey; dek != nil {
return dek.KmsKeyName
}
case d.alphaDisk != nil:
if dek := d.alphaDisk.DiskEncryptionKey; dek != nil {
return dek.KmsKeyName
}
}
return ""
}
Expand All @@ -227,6 +258,8 @@ func (d *CloudDisk) GetMultiWriter() bool {
return false
case d.betaDisk != nil:
return d.betaDisk.MultiWriter
case d.alphaDisk != nil:
return d.alphaDisk.MultiWriter
default:
return false
}
Expand All @@ -238,6 +271,21 @@ func (d *CloudDisk) GetEnableConfidentialCompute() bool {
return false
case d.betaDisk != nil:
return d.betaDisk.EnableConfidentialCompute
case d.alphaDisk != nil:
return d.alphaDisk.EnableConfidentialCompute
default:
return false
}
}

func (d *CloudDisk) GetEnableStoragePools() bool {
switch {
case d.disk != nil:
return false
case d.betaDisk != nil:
return false
case d.alphaDisk != nil:
return d.alphaDisk.StoragePool != ""
default:
return false
}
Expand Down
56 changes: 54 additions & 2 deletions pkg/gce-cloud-provider/compute/cloud-disk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package gcecloudprovider
import (
"testing"

computealpha "google.golang.org/api/compute/v0.alpha"
computebeta "google.golang.org/api/compute/v0.beta"
computev1 "google.golang.org/api/compute/v1"
)
Expand Down Expand Up @@ -55,12 +56,12 @@ func TestGetEnableConfidentialCompute(t *testing.T) {
expectedEnableConfidentialCompute: true,
},
{
name: "test disk withpit enableConfidentialCompute",
name: "test disk without enableConfidentialCompute",
diskVersion: CreateDiskWithConfidentialCompute(false, false, "hyperdisk-balanced"),
expectedEnableConfidentialCompute: false,
},
{
name: "test disk withpit enableConfidentialCompute",
name: "test disk without enableConfidentialCompute",
diskVersion: CreateDiskWithConfidentialCompute(false, false, "pd-standard"),
expectedEnableConfidentialCompute: false,
},
Expand All @@ -77,3 +78,54 @@ func TestGetEnableConfidentialCompute(t *testing.T) {
}
}
}

func TestGetEnableStoragePools(t *testing.T) {
testCases := []struct {
name string
cloudDisk *CloudDisk
expectedEnableStoragePools bool
}{
{
name: "v1 disk returns false",
cloudDisk: &CloudDisk{
disk: &computev1.Disk{},
},
expectedEnableStoragePools: false,
},
{
name: "beta disk returns false",
cloudDisk: &CloudDisk{
betaDisk: &computebeta.Disk{},
},
expectedEnableStoragePools: false,
},
{
name: "alpha disk without storage pool returns false",
cloudDisk: &CloudDisk{
alphaDisk: &computealpha.Disk{},
},
expectedEnableStoragePools: false,
},
{
name: "alpha disk with storage pool returns true",
cloudDisk: &CloudDisk{
alphaDisk: &computealpha.Disk{
StoragePool: "projects/my-project/zones/us-central1-a/storagePools/storagePool-1",
},
},
expectedEnableStoragePools: true,
},
}

for _, tc := range testCases {
t.Logf("Running test: %v", tc.name)
input := "GetEnableStoragePools()"
enableStoragePools := tc.cloudDisk.GetEnableStoragePools()
if enableStoragePools != tc.expectedEnableStoragePools {
t.Fatalf("%s got confidentialCompute value %t expected %t", input, enableStoragePools, tc.expectedEnableStoragePools)
}
if enableStoragePools != tc.expectedEnableStoragePools {
t.Fatalf("%s got confidentialCompute value %t expected %t", input, enableStoragePools, tc.expectedEnableStoragePools)
}
}
}