On Thu, Nov 16, 2006 at 10:36:29AM -0500, Daniel Veillard wrote:
On Fri, Nov 03, 2006 at 11:56:55AM -0500, Daniel Veillard wrote:
> On Fri, Nov 03, 2006 at 11:36:32AM -0500, Lon Hohberger wrote:
> > On Fri, 2006-11-03 at 10:53 -0500, Daniel Veillard wrote:
> > > - can we implement it with current xen, again yes, we should be able
> > > if we have a full connection (root) to do the same as 'xm
dump-core'
> >
> > Yes, given that xm dump-core can do it ;)
> >
> > > - is the API clean enough, I guess the semantic is relatively clear
> > > instead of stating 'If you set the lowest-bit in flags' I
would rather
> > > define a DumpFlags enum and state that flags is an or'ing of any
of them
> > > I would probably name the function virDomainDumpCore though to not
> > > confuse with virDomainSave
> >
> > Totally correct here, it should be an enum of flags (with only one
> > defined initially; I don't know what other flags there might be.
> >
> > > So yes, why not, you want to work on it ? Or should I (or any
candidate).
> >
> > Give me a few; I'll check on this. I don't have problems trying it,
but
> > I will have a learning curve of course.
>
> Let's see if I was to do it I would:
> 0/ check out a CVS tree
http://libvirt.org/downloads.html
> 1/ look how xm communicate with xend on that command
Bad news, I looked at this and it seems xm can only use the XML-RPC interface
to xend to request the dump command, while libvirt uses the HTTP POST interface.
Adding the support would either require to hack xend or add support for the
intermediary xml-rpc access which was added in 3.0.2 and likely to disapear soon
when the new Xen API is used by xm.
Good news: the fix at the xend level is fairly small and has been accepted
upstream:
http://lists.xensource.com/archives/html/xen-devel/2006-11/msg01120.html
http://lists.xensource.com/archives/html/xen-devel/2006-11/msg01121.html
So adding dump support was a matter of introducing the new API and calling
the usual xend back-end code. I added it and commited it, it's a new entry
point in the driver interface, I still kept the extra flags argument, even if
upon inspection xend doesn't use any of the 'live' or 'crash' argument
it
exposes at this API, I just didn't defined any constant for it at this point.
So the new entry is just:
int virDomainCoreDump (virDomainPtr domain, const char *to, int flags);
I commited it to CVS, I also added the 'dump' command to virsh taking the
filename as the only argument (after the domain name or id).
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/