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

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Thu Feb 13 18:33:01 UTC 2014


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]
-- 
1.8.5.3




More information about the Kimchi-devel mailing list