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:
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user