Delete db resources not in template
When migrating stacks to convergence, if there are resources in the database that are not in the current_template_id of the stack, they are possibly of no isue, so it would better to delete those resources from db to avoid any future update issues. Change-Id: Ica99cec6765d22d7ee2262e2d402b2e98cb5bd5e Story: #2004071 Task: 27092
This commit is contained in:
parent
f12fb69cb2
commit
43583b4a32
@ -2242,7 +2242,16 @@ class Stack(collections.Mapping):
|
||||
db_rsrcs = self.db_active_resources_get()
|
||||
if db_rsrcs is not None:
|
||||
for res in db_rsrcs.values():
|
||||
res.update_and_save(values=values)
|
||||
# delete db resources not in current_template_id
|
||||
try:
|
||||
self.defn.resource_definition(res.name)
|
||||
except KeyError:
|
||||
LOG.warning("Resource %(res)s not found in template "
|
||||
"for stack %(st)s, deleting from db.",
|
||||
{'res': res.name, 'st': self.id})
|
||||
resource_objects.Resource.delete(self.context, res.id)
|
||||
else:
|
||||
res.update_and_save(values=values)
|
||||
self.set_resource_deps()
|
||||
self.current_traversal = uuidutils.generate_uuid()
|
||||
self.convergence = True
|
||||
|
Loading…
Reference in New Issue
Block a user