Skip to content

Commit 58c27dd

Browse files
committed
switch to use snapshots.insert instead of disks.createsnapshot
1 parent e3f0d26 commit 58c27dd

File tree

1 file changed

+22
-52
lines changed

1 file changed

+22
-52
lines changed

pkg/gce-cloud-provider/compute/gce-compute.go

+22-52
Original file line numberDiff line numberDiff line change
@@ -1264,9 +1264,8 @@ func opIsDone(op *computev1.Operation) (bool, error) {
12641264

12651265
func (cloud *CloudProvider) GetInstanceOrError(ctx context.Context, instanceZone, instanceName string) (*computev1.Instance, error) {
12661266
klog.V(5).Infof("Getting instance %v from zone %v", instanceName, instanceZone)
1267-
svc := cloud.service
12681267
project := cloud.project
1269-
instance, err := svc.Instances.Get(project, instanceZone, instanceName).Do()
1268+
instance, err := cloud.service.Instances.Get(project, instanceZone, instanceName).Do()
12701269
if err != nil {
12711270
return nil, err
12721271
}
@@ -1275,8 +1274,7 @@ func (cloud *CloudProvider) GetInstanceOrError(ctx context.Context, instanceZone
12751274

12761275
func (cloud *CloudProvider) GetSnapshot(ctx context.Context, project, snapshotName string) (*computev1.Snapshot, error) {
12771276
klog.V(5).Infof("Getting snapshot %v", snapshotName)
1278-
svc := cloud.service
1279-
snapshot, err := svc.Snapshots.Get(project, snapshotName).Context(ctx).Do()
1277+
snapshot, err := cloud.service.Snapshots.Get(project, snapshotName).Context(ctx).Do()
12801278
if err != nil {
12811279
return nil, err
12821280
}
@@ -1308,20 +1306,38 @@ func (cloud *CloudProvider) CreateSnapshot(ctx context.Context, project string,
13081306
return nil, err
13091307
}
13101308

1309+
snapshotToCreate := &computev1.Snapshot{
1310+
Name: snapshotName,
1311+
StorageLocations: snapshotParams.StorageLocations,
1312+
Description: description,
1313+
Labels: snapshotParams.Labels,
1314+
SourceDisk: cloud.GetDiskSourceURI(project, volKey),
1315+
}
13111316
switch volKey.Type() {
13121317
case meta.Zonal:
13131318
if description == "" {
13141319
description = "Snapshot created by GCE-PD CSI Driver"
13151320
}
1316-
return cloud.createZonalDiskSnapshot(ctx, project, volKey, snapshotName, snapshotParams, description)
13171321
case meta.Regional:
13181322
if description == "" {
13191323
description = "Regional Snapshot created by GCE-PD CSI Driver"
13201324
}
1321-
return cloud.createRegionalDiskSnapshot(ctx, project, volKey, snapshotName, snapshotParams, description)
13221325
default:
13231326
return nil, fmt.Errorf("could not create snapshot, key was neither zonal nor regional, instead got: %v", volKey.String())
13241327
}
1328+
_, err = cloud.service.Snapshots.Insert(project, snapshotToCreate).Context(ctx).Do()
1329+
1330+
if err != nil {
1331+
return nil, err
1332+
}
1333+
1334+
snapshot, err := cloud.waitForSnapshotCreation(ctx, project, snapshotName)
1335+
1336+
if err == nil {
1337+
err = cloud.attachTagsToResource(ctx, snapshotParams.ResourceTags, project, snapshot.Id, snapshotsType, "", false, resourceManagerHostSubPath)
1338+
}
1339+
1340+
return snapshot, err
13251341
}
13261342

13271343
func (cloud *CloudProvider) CreateImage(ctx context.Context, project string, volKey *meta.Key, imageName string, snapshotParams common.SnapshotParameters) (*computev1.Image, error) {
@@ -1497,52 +1513,6 @@ func (cloud *CloudProvider) resizeRegionalDisk(ctx context.Context, project stri
14971513
return requestGb, nil
14981514
}
14991515

1500-
func (cloud *CloudProvider) createZonalDiskSnapshot(ctx context.Context, project string, volKey *meta.Key, snapshotName string, snapshotParams common.SnapshotParameters, description string) (*computev1.Snapshot, error) {
1501-
snapshotToCreate := &computev1.Snapshot{
1502-
Name: snapshotName,
1503-
StorageLocations: snapshotParams.StorageLocations,
1504-
Description: description,
1505-
Labels: snapshotParams.Labels,
1506-
}
1507-
1508-
_, err := cloud.service.Disks.CreateSnapshot(project, volKey.Zone, volKey.Name, snapshotToCreate).Context(ctx).Do()
1509-
1510-
if err != nil {
1511-
return nil, err
1512-
}
1513-
1514-
snapshot, err := cloud.waitForSnapshotCreation(ctx, project, snapshotName)
1515-
1516-
if err == nil {
1517-
err = cloud.attachTagsToResource(ctx, snapshotParams.ResourceTags, project, snapshot.Id, snapshotsType, "", false, resourceManagerHostSubPath)
1518-
}
1519-
1520-
return snapshot, err
1521-
}
1522-
1523-
func (cloud *CloudProvider) createRegionalDiskSnapshot(ctx context.Context, project string, volKey *meta.Key, snapshotName string, snapshotParams common.SnapshotParameters, description string) (*computev1.Snapshot, error) {
1524-
snapshotToCreate := &computev1.Snapshot{
1525-
Name: snapshotName,
1526-
StorageLocations: snapshotParams.StorageLocations,
1527-
Description: description,
1528-
Labels: snapshotParams.Labels,
1529-
}
1530-
1531-
_, err := cloud.service.RegionDisks.CreateSnapshot(project, volKey.Region, volKey.Name, snapshotToCreate).Context(ctx).Do()
1532-
if err != nil {
1533-
return nil, err
1534-
}
1535-
1536-
snapshot, err := cloud.waitForSnapshotCreation(ctx, project, snapshotName)
1537-
1538-
if err == nil {
1539-
err = cloud.attachTagsToResource(ctx, snapshotParams.ResourceTags, project, snapshot.Id, snapshotsType, "", false, resourceManagerHostSubPath)
1540-
}
1541-
1542-
return snapshot, err
1543-
1544-
}
1545-
15461516
func (cloud *CloudProvider) waitForSnapshotCreation(ctx context.Context, project, snapshotName string) (*computev1.Snapshot, error) {
15471517
ticker := time.NewTicker(time.Second)
15481518
defer ticker.Stop()

0 commit comments

Comments
 (0)