[Kimchi-devel] [kimchi-devel][PATCHv3 1/6] Update docs and json schema of storage volume upload

Royce Lv lvroyce at linux.vnet.ibm.com
Tue Mar 3 06:20:53 UTC 2015


On 02/09/2015 08:45 AM, Aline Manera wrote:
>
> On 28/01/2015 11:20, lvroyce at linux.vnet.ibm.com wrote:
>> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>>
>> File upload will use the same REST api as 'capacity' type when creating
>> storage volume. Uploading will be implemented by following storage 
>> volume
>> update.
>>
>> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
>> ---
>>   docs/API.md         |  7 +++++--
>>   src/kimchi/API.json | 19 +++++++++++++++++++
>>   src/kimchi/i18n.py  |  1 +
>>   3 files changed, 25 insertions(+), 2 deletions(-)
>>
>> diff --git a/docs/API.md b/docs/API.md
>> index 5c4ccd3..d61e9b1 100644
>> --- a/docs/API.md
>> +++ b/docs/API.md
>> @@ -474,13 +474,12 @@ 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.
>
> What happen when I want to upload a file?
Use a POST with "capacity" first, and then multiple "PUT" to transfer 
data to this volume. I will add this to commit msg next version.
>
>>       * name: The name of the Storage Volume
>>       * type: The type of the defined 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
>> -    * 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
>
> Will the upload function only use PUT requests?
> The PUT request is to update an existing entry which will not be the 
> case in first time.
>
>>   **Actions (POST):**
>>
>> diff --git a/src/kimchi/API.json b/src/kimchi/API.json
>> index 0cfa20c..52ce4c3 100644
>> --- a/src/kimchi/API.json
>> +++ b/src/kimchi/API.json
>> @@ -221,6 +221,25 @@
>>                   }
>>               }
>>           },
>> +        "storagevolume_update": {
>> +            "type": "object",
>> +            "properties": {
>> +                "chunk": {
>> +                    "description": "Upload storage volume chunk"
>> +                },
>> +                "index": {
>> +                    "description": "Chunk index of uploaded storage 
>> volume",
>> +                    "type": "string",
>> +                    "error": "KCHVOL0024E"
>> +                },
>> +                "chunk_size": {
>> +                    "description": "Chunk size of uploaded storage 
>> volume",
>> +                    "type": "string",
>> +                    "error": "KCHVOL0024E"
>> +                }
>> +            },
>
> I think all those data is required, right?
ACK, will fix this.
>
>> +            "additionalProperties": false
>> +        },
>>           "vms_create": {
>>               "type": "object",
>>               "error": "KCHVM0016E",
>> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
>> index 4eccc3e..0a31cd5 100644
>> --- a/src/kimchi/i18n.py
>> +++ b/src/kimchi/i18n.py
>> @@ -210,6 +210,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"),
>>
>>       "KCHIFACE0001E": _("Interface %(name)s does not exist"),
>>
>




More information about the Kimchi-devel mailing list