create server from snapshot
Opened this issue · 2 comments
tormath1 commented
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
Image
field 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
Volumes
is there an expected key format ? I use0
to 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
Codelax commented
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
tormath1 commented
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?