make sure proper exceptions are raised for ec2 id conversion and add tests
This commit is contained in:
@@ -972,7 +972,7 @@ class ImageCommands(object):
|
|||||||
try:
|
try:
|
||||||
internal_id = ec2utils.ec2_id_to_id(old_image_id)
|
internal_id = ec2utils.ec2_id_to_id(old_image_id)
|
||||||
image = self.image_service.show(context, internal_id)
|
image = self.image_service.show(context, internal_id)
|
||||||
except exception.NotFound:
|
except (exception.InvalidEc2Id, exception.ImageNotFound):
|
||||||
image = self.image_service.show_by_name(context, old_image_id)
|
image = self.image_service.show_by_name(context, old_image_id)
|
||||||
return image['id']
|
return image['id']
|
||||||
|
|
||||||
|
|||||||
@@ -28,10 +28,12 @@ import StringIO
|
|||||||
import webob
|
import webob
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
|
from nova import exception
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.api import ec2
|
from nova.api import ec2
|
||||||
from nova.api.ec2 import cloud
|
|
||||||
from nova.api.ec2 import apirequest
|
from nova.api.ec2 import apirequest
|
||||||
|
from nova.api.ec2 import cloud
|
||||||
|
from nova.api.ec2 import ec2utils
|
||||||
from nova.auth import manager
|
from nova.auth import manager
|
||||||
|
|
||||||
|
|
||||||
@@ -101,6 +103,21 @@ class XmlConversionTestCase(test.TestCase):
|
|||||||
self.assertEqual(conv('-0'), 0)
|
self.assertEqual(conv('-0'), 0)
|
||||||
|
|
||||||
|
|
||||||
|
class Ec2utilsTestCase(test.TestCase):
|
||||||
|
def test_ec2_id_to_id(self):
|
||||||
|
self.assertEqual(ec2utils.ec2_id_to_id('i-0000001e'), 30)
|
||||||
|
self.assertEqual(ec2utils.ec2_id_to_id('ami-1d'), 29)
|
||||||
|
|
||||||
|
def test_bad_ec2_id(self):
|
||||||
|
self.assertRaises(exception.InvalidEc2Id,
|
||||||
|
ec2utils.ec2_id_to_id,
|
||||||
|
'badone')
|
||||||
|
|
||||||
|
def test_id_to_ec2_id(self):
|
||||||
|
self.assertEqual(ec2utils.id_to_ec2_id(30), 'i-0000001e')
|
||||||
|
self.assertEqual(ec2utils.id_to_ec2_id(29, 'ami-%08x'), 'ami-0000001d')
|
||||||
|
|
||||||
|
|
||||||
class ApiEc2TestCase(test.TestCase):
|
class ApiEc2TestCase(test.TestCase):
|
||||||
"""Unit test for the cloud controller on an EC2 API"""
|
"""Unit test for the cloud controller on an EC2 API"""
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user