scaleway-sdk-go
scaleway-sdk-go copied to clipboard
create server from snapshot
Hello folks, I'm trying to create a server from an existing snapshot with:
res, err := a.instance.CreateServer(&instance.CreateServerRequest{
Name: "my-name",
Volumes: map[string]*instance.VolumeServerTemplate{
"0": {
BaseSnapshot: "my-snapshot-uuid",
VolumeType: instance.VolumeVolumeTypeLSSD,
},
},
...
})
It fails with:
scaleway-sdk-go: invalid argument(s): image does not respect constraint, required key not provided; volumes.0.base_snapshot does not respect constraint, extra keys not allowed; volumes.0.id does not respect constraint, required key not provided; volumes.0.volume_type does not respect constraint, not a valid value
I have two questions:
- It seems that the
Imagefield is required but I don't use an image since I'm using a snapshot to boot the instance so I'm not sure what to do with this. - In the
Volumesis there an expected key format ? I use0to match what I've seen in the API calls when creating an instance from a snapshot on the web console.
Thanks for any guidance :D
Hi, A Volume name is missing for the request to work, I understand that the error message is misleading, validation is subject to improvements.
You can find details about this behavior in our API doc. For the use case "Create a volume from a snapshot", you need to specify those fields in your volume:
- base_snapshot
- name
- volume_type
Ah yes perfect - providing a volume name did the trick. Out of curiosity, why do we need to provide the volume name and its ID? I would expect the ID to be enough or I miss something?