'Update the stack.
Compare the current stack with newstack,
and where necessary create/update/delete the resources until
this stack aligns with newstack.
Note update of existing stack resources depends on update
being implemented in the underlying resource types
Update will fail if it exceeds the specified timeout. The default is
60 minutes, set in the constructor'

@profiler.trace('Stack.update', hide_args=False)
@reset_state_on_error
def update(self, newstack, msg_queue=None):

    self.updated_time = oslo_timeutils.utcnow()
    updater = scheduler.TaskRunner(self.update_task, newstack, msg_queue=msg_queue)
    updater()
