Remove implementation_signature check
Remove the unnecessary checking of implementation signature of current resource with the prev_resource in needs_update. It seems prev_resource is always resource from the backup_stack and there would be no difference. If there is a change of implementation class, it would have been already handled[1] [1] https://github.com/openstack/heat/blob/master/heat/engine/update.py#L139-L140 Change-Id: I1df84986cbc4bae7bcdbaae8b5aacbfa7adaec32
This commit is contained in:
parent
6caa70c00b
commit
b1e320ea66
@ -427,15 +427,6 @@ class Resource(object):
|
||||
else:
|
||||
return ri.name == resource_type
|
||||
|
||||
def implementation_signature(self):
|
||||
"""Return a tuple defining the implementation.
|
||||
|
||||
This should be broken down into a definition and an
|
||||
implementation version.
|
||||
"""
|
||||
|
||||
return (self.__class__.__name__, self.support_status.version)
|
||||
|
||||
def identifier(self):
|
||||
"""Return an identifier for this resource."""
|
||||
return identifier.ResourceIdentifier(resource_name=self.name,
|
||||
@ -865,15 +856,6 @@ class Resource(object):
|
||||
and self.status == self.COMPLETE):
|
||||
raise exception.UpdateReplace(self)
|
||||
|
||||
if prev_resource is not None:
|
||||
cur_class_def, cur_ver = self.implementation_signature()
|
||||
prev_class_def, prev_ver = prev_resource.implementation_signature()
|
||||
|
||||
if prev_class_def != cur_class_def:
|
||||
raise exception.UpdateReplace(self.name)
|
||||
if prev_ver != cur_ver:
|
||||
return True
|
||||
|
||||
if before != after.freeze():
|
||||
return True
|
||||
|
||||
|
@ -11,12 +11,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils import excutils
|
||||
import six
|
||||
|
||||
@ -530,12 +528,3 @@ class StackResource(resource.Resource):
|
||||
|
||||
def _resolve_attribute(self, name):
|
||||
return self.get_output(name)
|
||||
|
||||
def implementation_signature(self):
|
||||
schema_names = ([prop for prop in self.properties_schema] +
|
||||
[at for at in self.attributes_schema])
|
||||
schema_hash = hashlib.sha256(';'.join(schema_names))
|
||||
definition = {'template': self.child_template(),
|
||||
'files': self.stack.t.files}
|
||||
definition_hash = hashlib.sha256(jsonutils.dumps(definition))
|
||||
return (schema_hash.hexdigest(), definition_hash.hexdigest())
|
||||
|
@ -178,10 +178,6 @@ class TemplateResource(stack_resource.StackResource):
|
||||
self._get_resource_info(definition)
|
||||
self._generate_schema(definition)
|
||||
|
||||
def implementation_signature(self):
|
||||
self._generate_schema(self.t)
|
||||
return super(TemplateResource, self).implementation_signature()
|
||||
|
||||
def template_data(self):
|
||||
# we want to have the latest possible template.
|
||||
# 1. look in files
|
||||
|
@ -19,7 +19,6 @@ from oslo_config import cfg
|
||||
from oslo_messaging import exceptions as msg_exceptions
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
import testtools
|
||||
|
||||
from heat.common import exception
|
||||
from heat.common import template_format
|
||||
@ -207,20 +206,6 @@ class StackResourceTest(StackResourceBaseTest):
|
||||
|
||||
self.assertEqual(0, delete_nested.call_count)
|
||||
|
||||
@testtools.skipIf(six.PY3, "needs a separate change")
|
||||
def test_implementation_signature(self):
|
||||
self.parent_resource.child_template = mock.Mock(
|
||||
return_value=self.simple_template)
|
||||
sig1, sig2 = self.parent_resource.implementation_signature()
|
||||
self.assertEqual('7b0eaabb5b82b9e90804d42e0bb739035588cb797'
|
||||
'82427770646686ca2235028', sig1)
|
||||
self.assertEqual('8fa647d036b8f36909386e1e1004539dfae7a8e88'
|
||||
'c24aac0d85399e881421301', sig2)
|
||||
self.parent_stack.t.files["foo"] = "bar"
|
||||
sig1a, sig2a = self.parent_resource.implementation_signature()
|
||||
self.assertEqual(sig1, sig1a)
|
||||
self.assertNotEqual(sig2, sig2a)
|
||||
|
||||
def test_propagated_files(self):
|
||||
"""Test passing of the files map in the top level to the child.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user