Convergence: Allow creating stacks of empty templates
Change-Id: I25449a69a4565c2433832845b70cf32bc1cf53a9
This commit is contained in:
parent
a42055b07b
commit
d4087af830
@ -991,15 +991,19 @@ class Stack(collections.Mapping):
|
|||||||
self.convergence_dependencies.graph().edges()]}
|
self.convergence_dependencies.graph().edges()]}
|
||||||
self.store()
|
self.store()
|
||||||
|
|
||||||
for rsrc_id, is_update in self.convergence_dependencies.leaves():
|
leaves = set(self.convergence_dependencies.leaves())
|
||||||
LOG.info(_LI("Triggering resource %(rsrc_id)s "
|
if not any(leaves):
|
||||||
"for %(is_update)s update"),
|
self.mark_complete(self.current_traversal)
|
||||||
{'rsrc_id': rsrc_id, 'is_update': is_update})
|
else:
|
||||||
input_data = {'input_data': {},
|
for rsrc_id, is_update in self.convergence_dependencies.leaves():
|
||||||
'adopt_stack_data': self.adopt_stack_data}
|
LOG.info(_LI("Triggering resource %(rsrc_id)s "
|
||||||
self.worker_client.check_resource(self.context, rsrc_id,
|
"for %(is_update)s update"),
|
||||||
self.current_traversal,
|
{'rsrc_id': rsrc_id, 'is_update': is_update})
|
||||||
input_data, is_update)
|
input_data = {'input_data': {},
|
||||||
|
'adopt_stack_data': self.adopt_stack_data}
|
||||||
|
self.worker_client.check_resource(self.context, rsrc_id,
|
||||||
|
self.current_traversal,
|
||||||
|
input_data, is_update)
|
||||||
|
|
||||||
def _get_best_existing_rsrc_db(self, rsrc_name):
|
def _get_best_existing_rsrc_db(self, rsrc_name):
|
||||||
candidate = None
|
candidate = None
|
||||||
|
@ -189,6 +189,16 @@ class StackConvergenceCreateUpdateDeleteTest(common.HeatTestCase):
|
|||||||
super(StackConvergenceCreateUpdateDeleteTest, self).setUp()
|
super(StackConvergenceCreateUpdateDeleteTest, self).setUp()
|
||||||
cfg.CONF.set_override('convergence_engine', True)
|
cfg.CONF.set_override('convergence_engine', True)
|
||||||
|
|
||||||
|
@mock.patch.object(parser.Stack, 'mark_complete')
|
||||||
|
def test_converge_empty_template(self, mock_mc, mock_cr):
|
||||||
|
empty_tmpl = templatem.Template.create_empty_template()
|
||||||
|
stack = parser.Stack(utils.dummy_context(), 'empty_tmpl_stack',
|
||||||
|
empty_tmpl, convergence=True)
|
||||||
|
stack.store()
|
||||||
|
stack.converge_stack(template=stack.t, action=stack.CREATE)
|
||||||
|
self.assertFalse(mock_cr.called)
|
||||||
|
mock_mc.assert_called_once_with(stack.current_traversal)
|
||||||
|
|
||||||
def test_conv_wordpress_single_instance_stack_create(self, mock_cr):
|
def test_conv_wordpress_single_instance_stack_create(self, mock_cr):
|
||||||
stack = tools.get_stack('test_stack', utils.dummy_context(),
|
stack = tools.get_stack('test_stack', utils.dummy_context(),
|
||||||
convergence=True)
|
convergence=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user