Hi, I'm writing a network plugin that tracks the location of the virtual machine (and then reacts).
There're interface methods in NetworkGuru and NetworkElement that can be used for this purpose. The location of the virtual machine is provided by DeployDestination, which will be passed in NetworkGuru#reserve and NetworkElement#prepare. The two methods are called at the time VM starts up. The problem is that, in migration those methods are not called. There is NetworkManager#prepareNicForMigration, and it is called before the VM migration. But NetworkManagerImpl does not call NetworkGuru#reserve and NetworkElement#prepare. This makes tracking the vm location impossible. We need to add calls in NetworkManagerImpl. And then, after the migration, NetworkGuru#release and NetworkElement#release should be called, otherwise the network resources that plugin reserved will be kept even when the vm leaves off. So one more proposal is that we add one interface method NetworkManager#releaseNicForMigrated to call those methods. To let the plugin Guru or Elements know it is migration or normal server startup/shutdown, ReservationContext will be useful. Do this proposal make sense?