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?

Reply via email to