summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-04-30 13:38:18 +0000
committerGerrit Code Review <review@openstack.org>2013-04-30 13:38:18 +0000
commitf582052f97e091cb3cd27cc577b7067577ad723a (patch)
treefcae4da6a846dfd1c97f7c19989c2b5b4cc3c1fd /nova/db
parentad5f3e927334144599a6c73c4ba1f7f80f7b64e4 (diff)
parent48621685389a491d0519faf8fe52dc682e020c67 (diff)
Merge "Performance optimization for contrib.flavorextraspecs"
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/api.py5
-rw-r--r--nova/db/sqlalchemy/api.py12
2 files changed, 17 insertions, 0 deletions
diff --git a/nova/db/api.py b/nova/db/api.py
index f454a2d15..81350ec20 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -1313,6 +1313,11 @@ def instance_type_extra_specs_get(context, flavor_id):
return IMPL.instance_type_extra_specs_get(context, flavor_id)
+def instance_type_extra_specs_get_item(context, flavor_id, key):
+ """Get extra specs by key and flavor_id."""
+ return IMPL.instance_type_extra_specs_get_item(context, flavor_id, key)
+
+
def instance_type_extra_specs_delete(context, flavor_id, key):
"""Delete the given extra specs item."""
IMPL.instance_type_extra_specs_delete(context, flavor_id, key)
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 55be0da2d..a269dd263 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -3875,6 +3875,18 @@ def instance_type_extra_specs_get(context, flavor_id):
@require_context
+def instance_type_extra_specs_get_item(context, flavor_id, key):
+ result = _instance_type_extra_specs_get_query(context, flavor_id).\
+ filter(models.InstanceTypeExtraSpecs.key == key).\
+ first()
+ if not result:
+ raise exception.InstanceTypeExtraSpecsNotFound(
+ extra_specs_key=key, instance_type_id=flavor_id)
+
+ return {result["key"]: result["value"]}
+
+
+@require_context
def instance_type_extra_specs_delete(context, flavor_id, key):
_instance_type_extra_specs_get_query(context, flavor_id).\
filter(models.InstanceTypeExtraSpecs.key == key).\