I'm coming to the conclusion that a neutron port cannot be modelled as a heat resource, at least for server interfaces.
Calling nova interface-detach doesn't only detach the port from the server, it also deletes the port! Also, deleting a nova server will delete associated ports even when the port was passed in by ID.
At this point I think this needs to be added to the list of things which doesn't work during stack-update. The fix will be to extend the server networks property schema so that port properties can be specified inline, and port lifecycle is managed entirely within the server resource.
I'm coming to the conclusion that a neutron port cannot be modelled as a heat resource, at least for server interfaces.
Calling nova interface-detach doesn't only detach the port from the server, it also deletes the port! Also, deleting a nova server will delete associated ports even when the port was passed in by ID.
At this point I think this needs to be added to the list of things which doesn't work during stack-update. The fix will be to extend the server networks property schema so that port properties can be specified inline, and port lifecycle is managed entirely within the server resource.