[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