
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 :|