[Kimchi-devel] [kimchi-devel][PATCHv4 1/7] Update docs and json schema of storage volume upload
Aline Manera
alinefm at linux.vnet.ibm.com
Mon May 4 19:29:45 UTC 2015
On 22/04/2015 05:02, lvroyce at linux.vnet.ibm.com wrote:
> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>
> Volume upload will use the same REST api as 'capacity' type when creating
> storage volume. Following data transfer is implemented by several storage volume
> update:
> POST /storagepools/<pool-name>/storagevolumes/
> {"capacity": 1000000, "format": "raw", "name": "volume-1"}
> PUT /storagepools/<pool-name>/storagevolumes/volume-1
> {"index": "0", "chunk_size": "1024", "chunk": form-data}
> PUT /storagepools/<pool-name>/storagevolumes/volume-1
> {"index": "1", "chunk_size": "1024", "chunk": form-data}
> ...
> PUT /storagepools/<pool-name>/storagevolumes/volume-1
> {"index": "1024", "chunk_size": "1024", "chunk": form-data}
>
> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
> ---
> docs/API.md | 7 +++++--
> src/kimchi/API.json | 22 ++++++++++++++++++++++
> src/kimchi/i18n.py | 1 +
> 3 files changed, 28 insertions(+), 2 deletions(-)
>
> diff --git a/docs/API.md b/docs/API.md
> index 3f7925f..2e71989 100644
> --- a/docs/API.md
> +++ b/docs/API.md
> @@ -474,14 +474,13 @@ A interface represents available network interface on VM.
> in the defined Storage Pool
> * **POST**: Create a new Storage Volume in the Storage Pool
> The return resource is a task resource * See Resource: Task *
> - Only one of 'file', 'capacity', 'url' can be specified.
> + Only one of 'capacity', 'url' can be specified.
> * name: The name of the Storage Volume
> * capacity: The total space which can be used to store volumes
> The unit is bytes
> * format: The format of the defined Storage Volume. Only used when creating
> a storage volume with 'capacity'.
> * file: File to be uploaded, passed through form data
> - * url: URL to be downloaded
>
> ### Resource: Storage Volume
>
> @@ -508,6 +507,10 @@ A interface represents available network interface on VM.
>
> * **DELETE**: Remove the Storage Volume
> * **POST**: *See Storage Volume Actions*
> +* **PUT**: Upload storage volume chunk
> + * index: Chunk index of the slice in file.
> + * chunk_size: Chunk size of the slice in Bytes.
> + * chunk: Actual data of uploaded file
>
> **Actions (POST):**
>
> diff --git a/src/kimchi/API.json b/src/kimchi/API.json
> index 474661c..9df1dc0 100644
> --- a/src/kimchi/API.json
> +++ b/src/kimchi/API.json
> @@ -222,6 +222,28 @@
> }
> }
> },
> + "storagevolume_update": {
> + "type": "object",
> + "properties": {
> + "chunk": {
> + "description": "Upload storage volume chunk",
> + "required": true
> + },
'error' message is missing for 'chunk' parameter.
> + "index": {
> + "description": "Chunk index of uploaded storage volume",
> + "type": "string",
> + "error": "KCHVOL0024E",
> + "required": true
> + },
> + "chunk_size": {
> + "description": "Chunk size of uploaded storage volume",
> + "type": "string",
> + "error": "KCHVOL0024E",
> + "required": true
> + }
> + },
> + "additionalProperties": false
> + },
> "vms_create": {
> "type": "object",
> "error": "KCHVM0016E",
> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
> index c8986cf..c012a62 100644
> --- a/src/kimchi/i18n.py
> +++ b/src/kimchi/i18n.py
> @@ -215,6 +215,7 @@ messages = {
> "KCHVOL0021E": _("Storage volume URL must be http://, https://, ftp:// or ftps://."),
> "KCHVOL0022E": _("Unable to access file %(url)s. Please, check it."),
> "KCHVOL0023E": _("Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: %(err)s"),
> + "KCHVOL0024E": _("Upload volume chunk index, size and total size must be integer"),
'total size' is not in used for storage volume update.
You should have the message according to it.
>
> "KCHIFACE0001E": _("Interface %(name)s does not exist"),
>
More information about the Kimchi-devel
mailing list