diff options
Diffstat (limited to 'yardstick/orchestrator/heat.py')
-rw-r--r-- | yardstick/orchestrator/heat.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py index 5afa4151e..bfc1f7061 100644 --- a/yardstick/orchestrator/heat.py +++ b/yardstick/orchestrator/heat.py @@ -22,13 +22,13 @@ import time from oslo_serialization import jsonutils from oslo_utils import encodeutils -import shade from shade._heat import event_utils -import yardstick.common.openstack_utils as op_utils +from yardstick.common import constants as consts from yardstick.common import exceptions from yardstick.common import template_format -from yardstick.common import constants as consts +from yardstick.common import openstack_utils as op_utils + log = logging.getLogger(__name__) @@ -41,10 +41,11 @@ _DEPLOYED_STACKS = {} class HeatStack(object): """Represents a Heat stack (deployed template) """ - def __init__(self, name): + def __init__(self, name, os_cloud_config=None): self.name = name self.outputs = {} - self._cloud = shade.openstack_cloud() + os_cloud_config = {} if not os_cloud_config else os_cloud_config + self._cloud = op_utils.get_shade_client(**os_cloud_config) self._stack = None def _update_stack_tracking(self): @@ -152,10 +153,12 @@ name (i.e. %s). # short hand for resources part of template self.resources = self._template['resources'] - def __init__(self, name, template_file=None, heat_parameters=None): + def __init__(self, name, template_file=None, heat_parameters=None, + os_cloud_config=None): self.name = name self.keystone_client = None self.heat_parameters = {} + self._os_cloud_config = {} if not os_cloud_config else os_cloud_config # heat_parameters is passed to heat in stack create, empty dict when # yardstick creates the template (no get_param in resources part) @@ -229,7 +232,11 @@ name (i.e. %s). name = "%s-%s" % (server_name, volume_name) + # TODO(elfoley): Fix this on master, it is a bug, and exposes untested + # code. Yardstick will crash when heat context uses volume. + # pylint: disable=no-value-for-parameter volume_id = op_utils.get_volume_id(volume_name) + # pylint: enable=no-value-for-parameter if not volume_id: volume_id = {'get_resource': volume_name} self.resources[name] = { @@ -622,7 +629,7 @@ name (i.e. %s). log.info("Creating stack '%s' START", self.name) start_time = time.time() - stack = HeatStack(self.name) + stack = HeatStack(self.name, os_cloud_config=self._os_cloud_config) stack.create(self._template, self.heat_parameters, block, timeout) if not block: |