[libvirt] [PATCH 0/2] Fix interface state transitions logic

Daniel P. Berrange berrange at redhat.com
Thu Dec 12 14:57:43 UTC 2013


On Thu, Dec 12, 2013 at 07:54:34AM -0700, Eric Blake wrote:
> On 12/12/2013 07:41 AM, Daniel P. Berrange wrote:
> > 
> > The usage you describe here is not within the scope of the
> > virInterfaceCreate()  API IMHO. If we want users to have the
> > ability to "re start" an interface without taking it offline
> > first, then we should add another API that explicitly supports
> > that use case.
> 
> Or even a flag to the existing argument that says to restart if already
> running, where the normal case of not having the flag is an error if
> already running.
> 
> > Overloading a single virInterfaceCreate to support two different use
> > cases puts applications in an impossible position if they *want* to
> > see an error from attempting to start an already active interface.
> 
> Overloading without the use of a flag bit, that is.

In this scenario I'd prefer a separate API. Flags are good when they
are tweaking some aspect of behaviour but leaving the overall semantics
of the method intact.

A virInterfaceCreate API call is a lifecycle operation, which should
result in a lifecycle change (and event emission) upon success. Just
doing a refresh of the config isn't a lifecycle change and would not
be expected to trigger any lifecycle events either. This is different
enough that I think it would belong in a separate API.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list