summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/utils/heat_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'snaps/openstack/utils/heat_utils.py')
-rw-r--r--snaps/openstack/utils/heat_utils.py22
1 files changed, 16 insertions, 6 deletions
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):
"""