@@ -3,8 +3,8 @@ package main
33import (
44 "fmt"
55 "os"
6- "time"
76
7+ "github.com/scaleway/scaleway-sdk-go/api/block/v1"
88 "github.com/scaleway/scaleway-sdk-go/api/instance/v1"
99 "github.com/scaleway/scaleway-sdk-go/scw"
1010)
@@ -13,6 +13,7 @@ const (
1313 envOrgID = "SCW_DEFAULT_ORGANIZATION_ID"
1414 envAccessKey = "SCW_ACCESS_KEY"
1515 envSecretKey = "SCW_SECRET_KEY"
16+ envProjectID = "SCW_DEFAULT_PROJECT_ID"
1617 envInstanceZone = "SCW_ZONE"
1718 envInstanceID = "INSTANCE_ID"
1819)
@@ -39,12 +40,14 @@ func main() {
3940 // Create SDK objects for Scaleway Instance product
4041 instanceAPI := instance .NewAPI (client )
4142
42- if err := createSnapshots (instanceAPI ); err != nil {
43+ blockAPI := block .NewAPI (client )
44+
45+ if err := createSnapshots (instanceAPI , blockAPI ); err != nil {
4346 panic (err )
4447 }
4548}
4649
47- func createSnapshots (instanceAPI * instance.API ) error {
50+ func createSnapshots (instanceAPI * instance.API , blockAPI * block. API ) error {
4851 gotInstance , err := instanceAPI .GetServer (& instance.GetServerRequest {
4952 ServerID : os .Getenv (envInstanceID ),
5053 Zone : scw .Zone (os .Getenv (envInstanceZone )),
@@ -53,25 +56,17 @@ func createSnapshots(instanceAPI *instance.API) error {
5356 return fmt .Errorf ("error while getting instance %w" , err )
5457 }
5558
56- now := time .Now ().Format (time .DateOnly )
57-
5859 for _ , volume := range gotInstance .Server .Volumes {
59- snapshotName := fmt .Sprintf ("snap-vol-%s-%s-%s" ,
60- volume .VolumeType .String (),
61- now ,
62- os .Getenv (envInstanceZone ))
63-
64- snapshotResp , err := instanceAPI .CreateSnapshot (& instance.CreateSnapshotRequest {
65- Name : snapshotName ,
66- VolumeID : & volume .ID ,
67- VolumeType : instance .SnapshotVolumeType (volume .VolumeType ),
68- Zone : scw .Zone (os .Getenv (envInstanceZone )),
60+ snapshotResp , err := blockAPI .CreateSnapshot (& block.CreateSnapshotRequest {
61+ Zone : scw .Zone (os .Getenv (envInstanceZone )),
62+ VolumeID : volume .ID ,
63+ ProjectID : os .Getenv (envProjectID ),
6964 })
7065 if err != nil {
7166 return fmt .Errorf ("error while creating snapshot %w" , err )
7267 }
7368
74- fmt .Println ("created snapshot " , snapshotResp .Snapshot . ID )
69+ fmt .Println ("created snapshot " , snapshotResp .ID )
7570 }
7671
7772 return nil
0 commit comments