@@ -3,8 +3,8 @@ package main
3
3
import (
4
4
"fmt"
5
5
"os"
6
- "time"
7
6
7
+ "github.com/scaleway/scaleway-sdk-go/api/block/v1"
8
8
"github.com/scaleway/scaleway-sdk-go/api/instance/v1"
9
9
"github.com/scaleway/scaleway-sdk-go/scw"
10
10
)
@@ -13,6 +13,7 @@ const (
13
13
envOrgID = "SCW_DEFAULT_ORGANIZATION_ID"
14
14
envAccessKey = "SCW_ACCESS_KEY"
15
15
envSecretKey = "SCW_SECRET_KEY"
16
+ envProjectID = "SCW_DEFAULT_PROJECT_ID"
16
17
envInstanceID = "INSTANCE_ID"
17
18
envInstanceZone = "INSTANCE_ZONE"
18
19
)
@@ -39,12 +40,14 @@ func main() {
39
40
// Create SDK objects for Scaleway Instance product
40
41
instanceAPI := instance .NewAPI (client )
41
42
42
- if err := createSnapshots (instanceAPI ); err != nil {
43
+ blockAPI := block .NewAPI (client )
44
+
45
+ if err := createSnapshots (instanceAPI , blockAPI ); err != nil {
43
46
panic (err )
44
47
}
45
48
}
46
49
47
- func createSnapshots (instanceAPI * instance.API ) error {
50
+ func createSnapshots (instanceAPI * instance.API , blockAPI * block. API ) error {
48
51
gotInstance , err := instanceAPI .GetServer (& instance.GetServerRequest {
49
52
ServerID : os .Getenv ("INSTANCE_ID" ),
50
53
Zone : scw .Zone (os .Getenv ("INSTANCE_ZONE" )),
@@ -53,25 +56,17 @@ func createSnapshots(instanceAPI *instance.API) error {
53
56
return fmt .Errorf ("error while getting instance %w" , err )
54
57
}
55
58
56
- now := time .Now ().Format (time .DateOnly )
57
-
58
59
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 ),
69
64
})
70
65
if err != nil {
71
66
return fmt .Errorf ("error while creating snapshot %w" , err )
72
67
}
73
68
74
- fmt .Println ("created snapshot " , snapshotResp .Snapshot . ID )
69
+ fmt .Println ("created snapshot " , snapshotResp .ID )
75
70
}
76
71
77
72
return nil
0 commit comments