On Wed, Dec 14, 2011 at 03:54:52PM +0100, Kevin Wolf wrote:
> Am 13.12.2011 14:52, schrieb Stefan Hajnoczi:
> > diff --git a/hmp.c b/hmp.c
> > index 66d9d0f..c16d6a1 100644
> > --- a/hmp.c
> > +++ b/hmp.c
> > @@ -499,6 +499,46 @@ void hmp_info_pci(Monitor *mon)
> > qapi_free_PciInfoList(info);
> > }
> >
> > +void hmp_info_block_jobs(Monitor *mon)
> > +{
> > + BlockJobInfoList *list;
> > + Error *err = NULL;
> > +
> > + list = qmp_query_block_jobs(&err);
> > + assert(!err);
> > +
> > + if (!list) {
> > + monitor_printf(mon, "No active jobs\n");
> > + return;
> > + }
> > +
> > + while (list) {
> > + /* The HMP output for streaming jobs is special because
> > historically it
> > + * was different from other job types so applications may depend
> > on the
> > + * exact string.
> > + */
>
> Er, what? This is new code. What HMP clients use this string? I know
> that libvirt already got support for this before we implemented it, but
> shouldn't that be QMP only?
Libvirt HMP uses this particular string, which turned out to be
sub-optimal once I realized we might support other types of block jobs
in the future.
You can still build libvirt HMP-only by disabling the yajl library
dependency. The approach I've taken is to make the interfaces available
over both HMP and QMP (and so has the libvirt-side code).
In any case, we have defined both HMP and QMP. Libvirt implements both
and I don't think there's a reason to provide only QMP.
Luiz: For future features, are we supposed to provide only QMP
interfaces, not HMP?
Stefan