File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -274,6 +274,19 @@ Value ApiListener::ConfigDeleteObjectAPIHandler(const MessageOrigin::Ptr& origin
274274
275275 ConfigObject::Ptr object = ctype->GetObject (objName);
276276
277+ // Check if the deletion is for an older object version
278+ double objVersion = params->Get (" version" );
279+ if (object && objVersion < object->GetVersion ()) {
280+ Log (LogNotice, " ApiListener" )
281+ << " Discarding 'config delete object' message"
282+ << " from '" << identity << " ' (endpoint: '" << endpoint->GetName () << " ', zone: '" << endpointZone->GetName () << " ')"
283+ << " for object '" << object->GetName ()
284+ << " ': Object version " << std::fixed << object->GetVersion ()
285+ << " is more recent than the deleted version " << std::fixed << objVersion << " ." ;
286+
287+ return Empty;
288+ }
289+
277290 if (!object) {
278291 Log (LogNotice, " ApiListener" )
279292 << " Could not delete non-existent object '" << objName << " ' with type '" << params->Get (" type" ) << " '." ;
You can’t perform that action at this time.
0 commit comments