diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2011-05-11 18:33:49 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-05-11 18:33:49 +0000 |
| commit | 1d7b698feefe1634dd4f1f3a1fc30e8480952fd9 (patch) | |
| tree | e7b384536bd627e58c42fac9c60bae3c0e74020e /nova/api | |
| parent | b0ce21ed8f0be3c84e5f530549860c4916934f4e (diff) | |
| parent | 3b0b69ddc02f57859b351d6d354a12d5955c09f1 (diff) | |
| download | nova-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.py | 2 | ||||
| -rw-r--r-- | nova/api/ec2/ec2utils.py | 5 |
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'): |
