[Kimchi-devel] [PATCH v6 (BACKEND) 5/5] Storagepool SCSI/FC: Modify backend errors messages to use i18n system

Aline Manera alinefm at linux.vnet.ibm.com
Thu Feb 13 22:25:47 UTC 2014


Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>

I will join this patch to those when the changes were made at first time 
before applying

On 02/13/2014 04:33 PM, Rodrigo Trujillo wrote:
> This patch modifies the backend error exception return messages to use
> i18n.py and be tranlatable.
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
>   src/kimchi/API.json      | 6 ++++--
>   src/kimchi/i18n.py       | 4 ++++
>   src/kimchi/mockmodel.py  | 5 +++--
>   src/kimchi/model/host.py | 2 +-
>   src/kimchi/model/vms.py  | 2 +-
>   5 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/src/kimchi/API.json b/src/kimchi/API.json
> index 84a9da7..f93f540 100644
> --- a/src/kimchi/API.json
> +++ b/src/kimchi/API.json
> @@ -92,7 +92,8 @@
>                           },
>                           "adapter_name": {
>                               "description": "SCSI host name",
> -                            "type": "string"
> +                            "type": "string",
> +                            "error": "KCHPOOL0030E"
>                           },
>                           "auth": {
>                               "description": "Storage back-end authentication information",
> @@ -157,7 +158,8 @@
>                       "description": "list of scsi volumes to be assigned to the new VM.",
>                       "type": "array",
>                       "items": { "type": "string" },
> -                    "uniqueItems": true
> +                    "uniqueItems": true,
> +                    "error": "KCHVM0018E"
>                   }
>               }
>           },
> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
> index 03d1052..603adab 100644
> --- a/src/kimchi/i18n.py
> +++ b/src/kimchi/i18n.py
> @@ -73,6 +73,8 @@ messages = {
>       "KCHVM0014E": _("Supported virtual machine graphics are spice or VNC"),
>       "KCHVM0015E": _("Graphics address to listen on must be IPv4 or IPv6"),
>       "KCHVM0016E": _("Specify a template to create a virtual machine from"),
> +    "KCHVM0017E": _("Volume list (LUNs names) not given."),
> +    "KCHVM0018E": _("Virtual machine volumes must be a list of strings with distinct LUNs names."),
>
>       "KCHVMIF0001E": _("Interface %(iface)s does not exist in virtual machine %(name)s"),
>       "KCHVMIF0002E": _("Network %(network)s specified for virtual machine %(name)s does not exist"),
> @@ -129,6 +131,7 @@ messages = {
>       "KCHPOOL0027E": _("%(disk)s is not a valid disk/partition. Could not add it to the pool %(pool)s."),
>       "KCHPOOL0028E": _("Error while extending logical pool %(pool)s. Details: %(err)s"),
>       "KCHPOOL0029E": _("The parameter disks only can be updated for logical storage pool."),
> +    "KCHPOOL0030E": _("The SCSI host adapter name must be a string."),
>
>       "KCHVOL0001E": _("Storage volume %(name)s already exists"),
>       "KCHVOL0002E": _("Storage volume %(name)s does not exist in storage pool %(pool)s"),
> @@ -175,6 +178,7 @@ messages = {
>
>       "KCHHOST0001E": _("Unable to shutdown host machine as there are running virtual machines"),
>       "KCHHOST0002E": _("Unable to reboot host machine as there are running virtual machines"),
> +    "KCHHOST0003E": _("Node device '%(name)s' not found"),
>
>       "KCHOBJST0001E": _("Unable to find %(item)s in datastore"),
>
> diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
> index 98715af..481498f 100644
> --- a/src/kimchi/mockmodel.py
> +++ b/src/kimchi/mockmodel.py
> @@ -160,7 +160,7 @@ class MockModel(object):
>           if pool.info['type'] == 'scsi':
>               vm.disk_paths = []
>               if not params.get('volumes'):
> -                raise MissingParameter("Volume list (LUNs names) not given.")
> +                raise MissingParameter('KCHVM0017E')
>               for vol in params['volumes']:
>                   vm.disk_paths.append({'pool': pool.name,
>                                         'volume': vol})
> @@ -315,7 +315,8 @@ class MockModel(object):
>                   pool.info['path'] = '/dev/disk/by-path'
>                   pool.info['source'] = params['source']
>                   if not pool.info['source'].get('adapter_name'):
> -                    raise MissingParameter('adapter_name')
> +                    raise MissingParameter('KCHPOOL0004E',
> +                              {'item': 'adapter_name', 'name': name})
>                   for vol in ['unit:0:0:1','unit:0:0:2',
>                               'unit:0:0:3','unit:0:0:4']:
>                       mockvol = MockStorageVolume(name, vol,
> diff --git a/src/kimchi/model/host.py b/src/kimchi/model/host.py
> index bc75ec4..514f672 100644
> --- a/src/kimchi/model/host.py
> +++ b/src/kimchi/model/host.py
> @@ -244,7 +244,7 @@ class DeviceModel(object):
>           try:
>               dev_xml = conn.nodeDeviceLookupByName(nodedev_name).XMLDesc(0)
>           except:
> -            raise NotFoundError('Node device "%s" not found' % nodedev_name)
> +            raise NotFoundError('KCHHOST0003E', {'name': nodedev_name})
>           cap_type = xmlutils.xpath_get_text(
>               dev_xml, '/device/capability/capability/@type')
>           wwnn = xmlutils.xpath_get_text(
> diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
> index a215352..d8807ec 100644
> --- a/src/kimchi/model/vms.py
> +++ b/src/kimchi/model/vms.py
> @@ -197,7 +197,7 @@ class VMsModel(object):
>           vol_list = []
>           if t._get_storage_type() == 'scsi':
>               if not params.get('volumes'):
> -                raise MissingParameter("Volume list (LUNs names) not given.")
> +                raise MissingParameter('KCHVM0017E')
>               else:
>                   # Get system path of the LUNs
>                   pool = t.info['storagepool'].split('/')[-1]




More information about the Kimchi-devel mailing list