[libvirt] [PATCH v2] DBus: introduce virDBusIsServiceEnabled

Daniel P. Berrange berrange at redhat.com
Wed Sep 11 14:36:43 UTC 2013


On Wed, Sep 11, 2013 at 01:50:27PM +0100, Daniel P. Berrange wrote:
> On Wed, Sep 11, 2013 at 11:15:02AM +0800, Gao feng wrote:
> > This patch introduces virDBusIsServiceEnabled, we can use
> > this method to get if the service is supported.
> > 
> > In one case, if org.freedesktop.machine1 is unavailable on
> > host, we should skip creating machine through systemd.
> > 
> > Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
> > ---
> >  src/util/virdbus.c    | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
> >  src/util/virdbus.h    |  1 +
> >  src/util/virsystemd.c | 17 +++++--------
> >  3 files changed, 73 insertions(+), 11 deletions(-)
> > 
> > diff --git a/src/util/virdbus.c b/src/util/virdbus.c
> > index 62c31be..ad3045a 100644
> > --- a/src/util/virdbus.c
> > +++ b/src/util/virdbus.c
> > @@ -1207,6 +1207,66 @@ int virDBusMessageRead(DBusMessage *msg,
> >      return ret;
> >  }
> >  
> > +/**
> > + * virDBusIsServiceEnabled:
> > + * @name: service name
> > + *
> > + * Retruns 0 if service is available, -1 on fatal error, or -2 if service is not available
> > + */
> > +int virDBusIsServiceEnabled(const char *name)
> > +{
> > +    DBusConnection *conn;
> > +    DBusMessage *reply = NULL;
> > +    DBusMessageIter iter, sub;
> > +    int ret = -1;
> > +
> > +    if (!virDBusHasSystemBus())
> > +        return -2;
> > +
> > +    conn = virDBusGetSystemBus();
> > +
> > +    if (virDBusCallMethod(conn,
> > +                          &reply,
> > +                          "org.freedesktop.DBus",
> > +                          "/org/freedesktop/DBus",
> > +                          "org.freedesktop.DBus",
> > +                          "ListActivatableNames",
> > +                          DBUS_TYPE_INVALID) < 0) {
> > +
> > +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> > +                       _("ListActivatableNames failed"));
> 
> ACK, but no need for this, since virDBusCallMethod will already have
> reported the error.
> 
> I'll remove this virReportError and push it, so no need to repost.

I suck for forgetting to run 'make check' before pushing. I've just applied
a fix for the test suite problems.

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