properties lost modification during destroying
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Murano |
New
|
Undecided
|
Unassigned |
Bug Description
There is ObjectsCopy and Objects for each murano environment. When deploying an environment, ObjectsCopy and Objects would be loaded into object store at the same time. Then objects in ObjectsCopy would be compared with those in Objects to retrieve the destroyed objects and '.destroy' method of these objects would be called. After all destroying methods were called, ObjectsCopy would be replaced by Objects, and all modification on properties would be lost because the data stored under objects of ObjectsCopy. Thus it would cause a strange problem, the modification on properties of objects other than the destroyed objects such as kubernetes cluster endpoints or kubernetes pod definition would be lost. The reason is that the modification was stored in nodes under ObjectsCopy not Objects.
The best way to solve the problem is that store the destroyed objects along with current objects with a mark of 'DELETED', then load only Objects, find the objects with 'DELETED' mark and call '.destroy' method, delete the objects with the 'DELETED', go back the normal execution steps at the last.