Skip to content
This repository has been archived by the owner on Nov 27, 2023. It is now read-only.

Commit

Permalink
Bug fix - Nova boot (flavor id) + unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Harsha committed Jul 17, 2014
1 parent d465298 commit e20414f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 11 deletions.
18 changes: 7 additions & 11 deletions jumpgate/compute/drivers/sl/flavors.py
Expand Up @@ -12,17 +12,13 @@ def __init__(self, app, flavors):
self.flavors = flavors

def on_get(self, req, resp, flavor_id, tenant_id=None):
try:
flavor_id = int(flavor_id)
except ValueError:
return error_handling.not_found(resp, 'Flavor could not be found')

if flavor_id not in self.flavors:
return error_handling.not_found(resp, 'Flavor could not be found')

flavor = get_flavor_details(self.app, req, self.flavors[flavor_id],
detail=True)
resp.body = {'flavor': flavor}
for flavor in self.flavors:
if str(flavor_id) == flavor['id']:
flavor = get_flavor_details(self.app, req,
flavor, detail=True)
resp.body = {'flavor': flavor}
return
return error_handling.not_found(resp, 'Flavor could not be found')


class FlavorsV2(object):
Expand Down
29 changes: 29 additions & 0 deletions tests/jumpgate-tests/compute/test_flavors.py
Expand Up @@ -236,3 +236,32 @@ def test_on_get_flavor_list_duplicate_flavors_invalid(self):

def tearDown(self):
flavor_list_loader.Flavors._flavors = None


class TestFlavorV2(unittest.TestCase):
def perform_flavor_detail(self, tenant_id, flavor_list, flavor_id):
env = get_client_env()
self.req = falcon.Request(env)
self.resp = falcon.Response()
self.app = mock.MagicMock()
instance = flavors.FlavorV2(app=self.app, flavors=flavor_list)
instance.on_get(self.req, self.resp, flavor_id, tenant_id)

def test_on_get(self):
self.perform_flavor_detail(TENANT_ID, FLAVOR_LIST, 3)
self.assertEquals(list(self.resp.body.keys()), ['flavor'])
flavor_detail_keys = ['name', 'links', 'ram',
'OS-FLV-DISABLED:disabled', 'vcpus',
'OS-FLV-DISK-TYPE:disk_type', 'swap',
'rxtx_factor', 'os-flavor-access:is_public',
'OS-FLV-EXT-DATA:ephemeral', 'disk', 'id']
self.assertEquals(set(self.resp.body['flavor'].keys()),
set(flavor_detail_keys))
self.assertEquals(self.resp.status, '200 OK')

def test_on_get_fail_flavor_not_found(self):
self.perform_flavor_detail(TENANT_ID, FLAVOR_LIST, 42)
self.assertEquals(self.resp.body, {'notFound':
{'message': 'Flavor could not '
'be found', 'code': '404'}})
self.assertEquals(self.resp.status, 404)

0 comments on commit e20414f

Please sign in to comment.