From dc24c3d90a7a3068256381d815c689b3f243707f Mon Sep 17 00:00:00 2001 From: spisarski Date: Mon, 31 Jul 2017 12:26:19 -0600 Subject: Changed heat_utils#get_stack_by_name to get_stack. Added stack_settings parameter to allow for more robust queries based on the known settings as required. JIRA: SNAPS-158 Change-Id: I538826f822307365b1afe997b71280b9ea500eab Signed-off-by: spisarski --- snaps/openstack/utils/heat_utils.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'snaps/openstack/utils/heat_utils.py') diff --git a/snaps/openstack/utils/heat_utils.py b/snaps/openstack/utils/heat_utils.py index ae367a0..a91a21c 100644 --- a/snaps/openstack/utils/heat_utils.py +++ b/snaps/openstack/utils/heat_utils.py @@ -41,19 +41,29 @@ def heat_client(os_creds): region_name=os_creds.region_name) -def get_stack_by_name(heat_cli, stack_name): +def get_stack(heat_cli, stack_settings=None, stack_name=None): """ - Returns a domain Stack object + Returns the first domain Stack object found. When stack_setting + is not None, the filter created will take the name attribute. When + stack_settings is None and stack_name is not, stack_name will be used + instead. When both are None, the first stack object received will be + returned, else None :param heat_cli: the OpenStack heat client - :param stack_name: the name of the heat stack + :param stack_settings: a StackSettings object + :param stack_name: the name of the heat stack to return :return: the Stack domain object else None """ - stacks = heat_cli.stacks.list(**{'name': stack_name}) + + stack_filter = dict() + if stack_settings: + stack_filter['stack_name'] = stack_settings.name + elif stack_name: + stack_filter['stack_name'] = stack_name + + stacks = heat_cli.stacks.list(**stack_filter) for stack in stacks: return Stack(name=stack.identifier, stack_id=stack.id) - return None - def get_stack_by_id(heat_cli, stack_id): """ -- cgit 1.2.3-korg