diff options
| author | Rick Harris <rconradharris@gmail.com> | 2011-09-21 16:29:36 +0000 |
|---|---|---|
| committer | Rick Harris <rconradharris@gmail.com> | 2011-09-21 16:29:36 +0000 |
| commit | ec2a93ca94e3d8ce436858380fc2c46963c76e05 (patch) | |
| tree | 7ef167c96c10ccb5c307b6cbc31930edc462693d /nova/db | |
| parent | 275f58c5649653632b8c28b66b59ff19d2cdf366 (diff) | |
Adding flavor filtering
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/api.py | 5 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/nova/db/api.py b/nova/db/api.py index 8c4c78374..f776953db 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -1349,9 +1349,10 @@ def instance_type_create(context, values): return IMPL.instance_type_create(context, values) -def instance_type_get_all(context, inactive=False): +def instance_type_get_all(context, inactive=False, filters=None): """Get all instance types.""" - return IMPL.instance_type_get_all(context, inactive) + return IMPL.instance_type_get_all( + context, inactive=inactive, filters=filters) def instance_type_get(context, id): diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a42ee8616..3aa5c59bb 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -3322,16 +3322,24 @@ def _dict_with_extra_specs(inst_type_query): @require_context -def instance_type_get_all(context, inactive=False): +def instance_type_get_all(context, inactive=False, filters=None): """ Returns all instance types. """ + filters = filters or {} session = get_session() partial = session.query(models.InstanceTypes)\ .options(joinedload('extra_specs')) if not inactive: partial = partial.filter_by(deleted=False) + if 'min_memory_mb' in filters: + partial = partial.filter( + models.InstanceTypes.memory_mb >= filters['min_memory_mb']) + if 'min_local_gb' in filters: + partial = partial.filter( + models.InstanceTypes.local_gb >= filters['min_local_gb']) + inst_types = partial.order_by("name").all() return [_dict_with_extra_specs(i) for i in inst_types] |
