Hello Socorro.
This patch I proposed was not applied. So the arguments you're using to
create a new storage volume are not correct.
To create a new storage volume allocated to a specific VM, you need
execute two REST requests:
1. POST /storagepools/<pool>/storagevolumes {capacity:..., format:..}
2. POST /vms/<name>/storages {vol:..}
The idea for UI is, in storage tab of the VM edit screen, add the option
to create a new empty storage volume, asking the user the capacity and
format for the new volume. Then, UI will execute the above 2 POSTs
requests to create the volume and attach it to the VM the user is editing.
Best regards,
Paulo Vital.
On 01/28/2016 05:36 PM, Socorro Stoppler wrote:
Hi Paulo/Aline,
I've been working on the UI for this and ran into some errors.
Therefore, before proceeding, I thought I'd run the curl command just to
make sure I'm able to create this new storage volume w/out the UI's
involvement. Here's the error that I got:
I would've thought the API would create whatever was needed in order to
be able to create new storage volume. What am I doing wrong?
Thanks!
-Socorro
On 11/11/2015 05:43 AM, pvital(a)linux.vnet.ibm.com wrote:
> From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
>
> Changes in V2:
> * Updated test cases
> * Modified dictionary return of parameters
>
> V1:
>
> Add back-end support to create new storage volume (new virtual disk) when
> attaching disk to a guest created before.
>
> There are three essential parameters to create the new volume:
> * vol: Storage volume name of disk image, that should be 'new_vol'.
> * capacity: The total space which can be used to store new volumes.
> The unit is bytes.
> * format: The format of the defined Storage Volume. Only used when creating
> a storage volume with 'capacity'.
>
> To test this patch:
>
> $ curl -k -u test -H "Content-Type: application/json" -H "Accept:
application/json"
'https://localhost:8001/plugins/kimchi/vms/kimchi-vm-new/storages' -X POST -d
'{ "vol": "new_vol", "type": "disk",
"pool": "default", "format": "qcow2",
"capacity": 1024 }'
> Enter host password for user 'test':
> {
> "bus":"virtio",
>
"path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683-e89015b3ba11
> -1.img",
> "type":"disk",
> "dev":"vdb",
> "format":"qcow2"
> }
>
> $ curl -k -u test -H "Content-Type: application/json" -H "Accept:
application/json"
'https://localhost:8001/plugins/kimchi/vms/kimchi-vm-new/storages' -X GET
> Enter host password for user 'test':
> [
> {
> "bus":"virtio",
> "path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683
> -e89015b3ba11-0.img",
> "type":"disk",
> "dev":"vda",
> "format":"qcow2"
> },
> {
> "bus":"virtio",
> "path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683
> -e89015b3ba11-1.img",
> "type":"disk",
> "dev":"vdb",
> "format":"qcow2"
> },
> {
> "bus":"ide",
> "path":"/var/lib/kimchi/tests/ubuntu14.04.iso",
> "type":"cdrom",
> "dev":"hdc",
> "format":"raw"
> }
> ]
>
>
> Paulo Vital (1):
> Create new storage volume when attaching disk to a guest.
>
> src/wok/plugins/kimchi/API.json | 12 ++++++++++++
> src/wok/plugins/kimchi/docs/API.md | 6 +++++-
> src/wok/plugins/kimchi/i18n.py | 1 +
> src/wok/plugins/kimchi/model/vmstorages.py | 28 +++++++++++++++++++++++++++-
> src/wok/plugins/kimchi/tests/test_model.py | 25 +++++++++++++++++++++++++
> 5 files changed, 70 insertions(+), 2 deletions(-)
>