[Kimchi-devel] [PATCH][KIMCHI] Fix problems in storage volumes clone and fix Issue: #700

Aline Manera alinefm at linux.vnet.ibm.com
Thu Dec 10 20:47:27 UTC 2015


Could you, please, add a test case to cover this?
So we can guarantee we will not have regression in future.

On 09/12/2015 20:21, Rodrigo Trujillo wrote:
> This patch fixes following problems:
> - Properly defines the parameters passed to clone functions
>    handler;
> - Defines a json to check parameters;
> - Adds right parameter names in docs/API.md;
> - Also includes a new error message.
>
> Fixes https://github.com/kimchi-project/kimchi/issues/700
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
>   API.json                  | 17 +++++++++++++++++
>   control/storagevolumes.py |  4 +++-
>   docs/API.md               |  4 ++--
>   i18n.py                   |  1 +
>   4 files changed, 23 insertions(+), 3 deletions(-)
>
> diff --git a/API.json b/API.json
> index 2b64d07..98b8c3f 100644
> --- a/API.json
> +++ b/API.json
> @@ -225,6 +225,23 @@
>               },
>               "additionalProperties": false
>           },
> +        "storagevolume_clone": {
> +            "type": "object",
> +            "error": "KCHVOL0030E",
> +            "properties": {
> +                "new_pool": {
> +                    "description": "Storage pool where clone will be created",
> +                    "type": "string",
> +                    "error": "KCHPOOL0016E"
> +                },
> +                "new_name": {
> +                    "description": "New name of the volume clone.",
> +                    "type": "string",
> +                    "error": "KCHVOL0013E"
> +                }
> +            },
> +            "additionalProperties": false
> +        },
>           "vms_create": {
>               "type": "object",
>               "error": "KCHVM0016E",
> diff --git a/control/storagevolumes.py b/control/storagevolumes.py
> index f920dee..67980dd 100644
> --- a/control/storagevolumes.py
> +++ b/control/storagevolumes.py
> @@ -47,7 +47,9 @@ class StorageVolume(Resource):
>           self.uri_fmt = '/storagepools/%s/storagevolumes/%s'
>           self.resize = self.generate_action_handler('resize', ['size'])
>           self.wipe = self.generate_action_handler('wipe')
> -        self.clone = self.generate_action_handler_task('clone')
> +        self.clone = self.generate_action_handler_task('clone',
> +                                                       ['new_pool',
> +                                                        'new_name'])
>
>       @property
>       def data(self):
> diff --git a/docs/API.md b/docs/API.md
> index 1c4ee50..3ff4eff 100644
> --- a/docs/API.md
> +++ b/docs/API.md
> @@ -576,8 +576,8 @@ A interface represents available network interface on VM.
>               The unit is bytes
>   * wipe: Wipe a Storage Volume
>   * clone: Clone a Storage Volume.
> -    * pool: The name of the destination pool (optional).
> -    * name: The new storage volume name (optional).
> +    * new_pool: The name of the destination pool (optional).
> +    * new_name: The new storage volume name (optional).
>
>
>   ### Collection: Interfaces
> diff --git a/i18n.py b/i18n.py
> index cf67085..96729ef 100644
> --- a/i18n.py
> +++ b/i18n.py
> @@ -247,6 +247,7 @@ messages = {
>       "KCHVOL0027E": _("The storage volume %(vol)s is not under an upload process."),
>       "KCHVOL0028E": _("The upload chunk data will exceed the storage volume size."),
>       "KCHVOL0029E": _("Unable to upload chunk data to storage volume. Details: %(err)s."),
> +    "KCHVOL0030E": _("Storage volume clone function expects only these optional parameters: 'new_pool' and 'new_name'"),
>
>       "KCHIFACE0001E": _("Interface %(name)s does not exist"),
>




More information about the Kimchi-devel mailing list