From 827d3593452c2892d5076fb0d2548b73a39ab262 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 03:33:31 +0000 Subject: Refactoring instance_type_get_all --- nova/api/ec2/admin.py | 5 +++-- nova/api/openstack/flavors.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'nova/api') diff --git a/nova/api/ec2/admin.py b/nova/api/ec2/admin.py index 75e029509..c1b1fa53a 100644 --- a/nova/api/ec2/admin.py +++ b/nova/api/ec2/admin.py @@ -126,8 +126,9 @@ class AdminController(object): def describe_instance_types(self, context, **_kwargs): """Returns all active instance types data (vcpus, memory, etc.)""" - return {'instanceTypeSet': [instance_dict(v) for v in - db.instance_type_get_all(context).values()]} + inst_types = db.instance_type_get_all(context) + inst_type_dicts = [instance_dict(i) for i in inst_types] + return {'instanceTypeSet': inst_type_dicts} def describe_user(self, _context, name, **_kwargs): """Returns user data, including access and secret keys.""" diff --git a/nova/api/openstack/flavors.py b/nova/api/openstack/flavors.py index 8a310c900..d83c0d52f 100644 --- a/nova/api/openstack/flavors.py +++ b/nova/api/openstack/flavors.py @@ -44,10 +44,10 @@ class Controller(object): def _get_flavors(self, req, is_detail=True): """Helper function that returns a list of flavor dicts.""" ctxt = req.environ['nova.context'] - flavors = db.api.instance_type_get_all(ctxt) + inst_types = db.api.instance_type_get_all(ctxt) builder = self._get_view_builder(req) - items = [builder.build(flavor, is_detail=is_detail) - for flavor in flavors.values()] + items = [builder.build(inst_type, is_detail=is_detail) + for inst_type in inst_types] return items def show(self, req, id): -- cgit From ec2a93ca94e3d8ce436858380fc2c46963c76e05 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 16:29:36 +0000 Subject: Adding flavor filtering --- nova/api/openstack/flavors.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/flavors.py b/nova/api/openstack/flavors.py index d83c0d52f..0fd31abb5 100644 --- a/nova/api/openstack/flavors.py +++ b/nova/api/openstack/flavors.py @@ -43,8 +43,14 @@ class Controller(object): def _get_flavors(self, req, is_detail=True): """Helper function that returns a list of flavor dicts.""" + filters = {} + if 'minRam' in req.params: + filters['min_memory_mb'] = req.params['minRam'] + if 'minDisk' in req.params: + filters['min_local_gb'] = req.params['minDisk'] + ctxt = req.environ['nova.context'] - inst_types = db.api.instance_type_get_all(ctxt) + inst_types = db.api.instance_type_get_all(ctxt, filters=filters) builder = self._get_view_builder(req) items = [builder.build(inst_type, is_detail=is_detail) for inst_type in inst_types] -- cgit From 57a67cf27a51e6849bff6236f896ecbee6345250 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 17:49:35 -0500 Subject: Adding OSAPI tests for flavor filtering --- nova/api/openstack/flavors.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/flavors.py b/nova/api/openstack/flavors.py index 0fd31abb5..b9dd96f4e 100644 --- a/nova/api/openstack/flavors.py +++ b/nova/api/openstack/flavors.py @@ -45,9 +45,16 @@ class Controller(object): """Helper function that returns a list of flavor dicts.""" filters = {} if 'minRam' in req.params: - filters['min_memory_mb'] = req.params['minRam'] + try: + filters['min_memory_mb'] = int(req.params['minRam']) + except ValueError: + pass # ignore bogus values per spec + if 'minDisk' in req.params: - filters['min_local_gb'] = req.params['minDisk'] + try: + filters['min_local_gb'] = int(req.params['minDisk']) + except ValueError: + pass # ignore bogus values per spec ctxt = req.environ['nova.context'] inst_types = db.api.instance_type_get_all(ctxt, filters=filters) -- cgit