3325
3325
@require_context
3326
def instance_type_get_all(context, inactive=False):
3328
Returns a dict describing all instance_types with name as key.
3326
def instance_type_get_all(context, inactive=False, filters=None):
3328
Returns all instance types.
3330
filters = filters or {}
3330
3331
session = get_session()
3332
inst_types = session.query(models.InstanceTypes).\
3333
options(joinedload('extra_specs')).\
3337
inst_types = session.query(models.InstanceTypes).\
3338
options(joinedload('extra_specs')).\
3339
filter_by(deleted=False).\
3344
for i in inst_types:
3345
inst_dict[i['name']] = _dict_with_extra_specs(i)
3332
partial = session.query(models.InstanceTypes)\
3333
.options(joinedload('extra_specs'))
3335
partial = partial.filter_by(deleted=False)
3337
if 'min_memory_mb' in filters:
3338
partial = partial.filter(
3339
models.InstanceTypes.memory_mb >= filters['min_memory_mb'])
3340
if 'min_local_gb' in filters:
3341
partial = partial.filter(
3342
models.InstanceTypes.local_gb >= filters['min_local_gb'])
3344
inst_types = partial.order_by("name").all()
3346
return [_dict_with_extra_specs(i) for i in inst_types]
3349
3349
@require_context