'Simulates update without actually updating the resource.
Raises UpdateReplace, if replacement is required or returns True,
if in-place update is required.'

def preview_update(self, after, before, after_props, before_props, prev_resource, check_init_complete=False):

    if self._needs_update(after, before, after_props, before_props, prev_resource, check_init_complete):
        tmpl_diff = self.update_template_diff(after.freeze(), before)
        if (tmpl_diff and self.needs_replace_with_tmpl_diff(tmpl_diff)):
            raise UpdateReplace(self)
        self.update_template_diff_properties(after_props, before_props)
        return True
