summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/utils/heat_utils.py
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-07-31 12:26:19 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-07-31 12:26:19 -0600
commitdc24c3d90a7a3068256381d815c689b3f243707f (patch)
treee7093116f7388dba23527dddd912bd8d04df92b2 /snaps/openstack/utils/heat_utils.py
parentb003647b70545008405294c4268e62fa87c18574 (diff)
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 <s.pisarski@cablelabs.com>
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):
"""