summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2011-05-11 18:33:49 +0000
committerTarmac <>2011-05-11 18:33:49 +0000
commit1d7b698feefe1634dd4f1f3a1fc30e8480952fd9 (patch)
treee7b384536bd627e58c42fac9c60bae3c0e74020e /nova/api
parentb0ce21ed8f0be3c84e5f530549860c4916934f4e (diff)
parent3b0b69ddc02f57859b351d6d354a12d5955c09f1 (diff)
downloadnova-1d7b698feefe1634dd4f1f3a1fc30e8480952fd9.tar.gz
nova-1d7b698feefe1634dd4f1f3a1fc30e8480952fd9.tar.xz
nova-1d7b698feefe1634dd4f1f3a1fc30e8480952fd9.zip
Fixes an issue with conversion of images that was introduced by exception refactoring. This makes the exceptions when trying to locate an ec2 id clearer and also adds some tests for the conversion methods.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py2
-rw-r--r--nova/api/ec2/ec2utils.py5
2 files changed, 5 insertions, 2 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 092b80fa2..be5dd38a0 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -906,7 +906,7 @@ class CloudController(object):
try:
internal_id = ec2utils.ec2_id_to_id(ec2_id)
return self.image_service.show(context, internal_id)
- except ValueError:
+ except (exception.InvalidEc2Id, exception.ImageNotFound):
try:
return self.image_service.show_by_name(context, ec2_id)
except exception.NotFound:
diff --git a/nova/api/ec2/ec2utils.py b/nova/api/ec2/ec2utils.py
index 1ac48163c..163aa4ed2 100644
--- a/nova/api/ec2/ec2utils.py
+++ b/nova/api/ec2/ec2utils.py
@@ -21,7 +21,10 @@ from nova import exception
def ec2_id_to_id(ec2_id):
"""Convert an ec2 ID (i-[base 16 number]) to an instance id (int)"""
- return int(ec2_id.split('-')[-1], 16)
+ try:
+ return int(ec2_id.split('-')[-1], 16)
+ except ValueError:
+ raise exception.InvalidEc2Id(ec2_id=ec2_id)
def id_to_ec2_id(instance_id, template='i-%08x'):