Problem Description:
Adding first stitchport via modify slice is successful but results in broken manifest
All subsequent modifies fail
Root Cause
Manifest is missing properties for StitchPort, Link and interface object
Missing properties for StitchPort and Link Object
For createSlice, requestModel is added to the manifest before any embedding logic is invoked or manifest is generated in RequestWorkflow::run(). So when ModifyHandler::createManifest() is invoked, element StitchPort and Link already exists and have interfaces, ModifyHandler::createManifest() just adds properties to the existing elements.
However, in case of modifySlice, requestModel is not added to the manifest. So when ModifyHandler::createManifest() is invoked, element StitchPort and Link do not exist, ModifyHandler::createManifest() only adds some properties to the elements and the properties which are assumed to be propagated from request are missing.
Missing properties for Interface object
ReservationConverter::setDependency() which is invoked only for createSlice or for added elements via modifySlice. For modified reservations, ReservationConverter::modifyReservations() is being invoked and this function does not set the GUID and hostInterfaceName.
Fix
StitchPort and Link object in case of modify are being copied from the request
Interface object GUID is being set at the creation of interface instead of setDependency
Additional Issues
During the testing of the above fix, I noticed that deleting a StitchPort via modifySlice does not clear the controllerAssignedLabel set and manifest. This prevents re-adding a stitchport with same label.
Fix
Clearing slice local controllerAssignedLabel in SyncTags thread
Removed all the interfaces when updating manifest for a delete instead of removing only one interface
NOTE: This branch does not contain OSSRH changes. I am facing problems with running code with OSSRH changes with SOAP interface. I working to resolve that. I may have to submit this code without OSSRH changes if SOAP issue is not resolved.
Code changes to address issue: https://github.com/RENCI-NRIG/orca5/issues/223
Problem Description: Adding first stitchport via modify slice is successful but results in broken manifest All subsequent modifies fail
Root Cause Manifest is missing properties for StitchPort, Link and interface object
Missing properties for StitchPort and Link Object For createSlice, requestModel is added to the manifest before any embedding logic is invoked or manifest is generated in RequestWorkflow::run(). So when ModifyHandler::createManifest() is invoked, element StitchPort and Link already exists and have interfaces, ModifyHandler::createManifest() just adds properties to the existing elements.
However, in case of modifySlice, requestModel is not added to the manifest. So when ModifyHandler::createManifest() is invoked, element StitchPort and Link do not exist, ModifyHandler::createManifest() only adds some properties to the elements and the properties which are assumed to be propagated from request are missing.
Missing properties for Interface object ReservationConverter::setDependency() which is invoked only for createSlice or for added elements via modifySlice. For modified reservations, ReservationConverter::modifyReservations() is being invoked and this function does not set the GUID and hostInterfaceName.
Fix StitchPort and Link object in case of modify are being copied from the request Interface object GUID is being set at the creation of interface instead of setDependency
Additional Issues During the testing of the above fix, I noticed that deleting a StitchPort via modifySlice does not clear the controllerAssignedLabel set and manifest. This prevents re-adding a stitchport with same label.
Fix Clearing slice local controllerAssignedLabel in SyncTags thread Removed all the interfaces when updating manifest for a delete instead of removing only one interface
NOTE: This branch does not contain OSSRH changes. I am facing problems with running code with OSSRH changes with SOAP interface. I working to resolve that. I may have to submit this code without OSSRH changes if SOAP issue is not resolved.