Fix stack_get_by_name does not list nested stack issue

The nested stack's owner_id is not None. When querying a result
filtered with owner_id=None, then nested stacks will not be
listed. The fix is to filter stack_get_by_name by stack name only and
add a new API stack_get_by_name_and_owner_id to filter via stack name
and owner id.

Change-Id: I659104f4936b567222108c211f77473ef35638c6
Closes-Bug: #1240892
This commit is contained in:
JUN JIE NAN
2013-12-11 15:01:16 +08:00
parent 700563477c
commit 444bc4363a
4 changed files with 55 additions and 7 deletions

View File

@@ -111,8 +111,13 @@ def stack_get(context, stack_id, show_deleted=False, tenant_safe=True):
tenant_safe=tenant_safe)
def stack_get_by_name(context, stack_name, owner_id=None):
return IMPL.stack_get_by_name(context, stack_name, owner_id=owner_id)
def stack_get_by_name_and_owner_id(context, stack_name, owner_id):
return IMPL.stack_get_by_name_and_owner_id(context, stack_name,
owner_id=owner_id)
def stack_get_by_name(context, stack_name):
return IMPL.stack_get_by_name(context, stack_name)
def stack_get_all(context):

View File

@@ -237,7 +237,7 @@ def resource_get_all_by_stack(context, stack_id):
return results
def stack_get_by_name(context, stack_name, owner_id=None):
def stack_get_by_name_and_owner_id(context, stack_name, owner_id):
query = soft_delete_aware_query(context, models.Stack).\
filter_by(tenant=context.tenant_id).\
filter_by(name=stack_name).\
@@ -246,6 +246,14 @@ def stack_get_by_name(context, stack_name, owner_id=None):
return query.first()
def stack_get_by_name(context, stack_name):
query = soft_delete_aware_query(context, models.Stack).\
filter_by(tenant=context.tenant_id).\
filter_by(name=stack_name)
return query.first()
def stack_get(context, stack_id, show_deleted=False, tenant_safe=True):
result = model_query(context, models.Stack).get(stack_id)