Any feedback on this suggestion ? If there's a better way to implement the
patch I'm open to suggestions to change the impl. Being able to reliably
detect the config file version is really critical for libvirt to be able
to support creation of HVM domains across XenD versions.
On Fri, Aug 11, 2006 at 06:14:49PM +0100, Daniel P. Berrange wrote:
> On Thu, Aug 10, 2006 at 04:26:46PM +0100, Daniel P. Berrange wrote:
> > On Sun, Aug 06, 2006 at 01:26:57AM +0100, Christian Limpach wrote:
> > > Hi,
> > >
> > > Changeset 10921:4c2fab8f8c34 changes how disk and cdrom drives are
> > > configured for hvm domains. Disks no longer need the ioemu: prefix,
> > > it is ignored if it is present. Cdrom drives are now configured like
> > > disks by adding a :cdrom suffix to the target device (i.e.
> > > 'file:/root/mytest.iso,hdc:cdrom,r'). There is no default cdrom drive
> > > any longer, to create an empty cdrom drive, use ',hdc:cdrom,r'. Any
> > > of the 4 ide devices can be cdrom drives now.
> > >
> > > There is no compatibility support for the cdrom= option in old config
> > > files. I'll consider patches to add such compatibility support. The
> > > compatibility code should be implemented in xm.
> > Any suggestions on how an application talking to XenD should detect whether
> > to use the old or new format config for creating domains ?
> > The only version number available is under /xend/node :
> > (xen_major 3) (xen_minor 0) (xen_extra -unstable)
> > But as you can see, this doesn't let us determine version with fine enough
> > granularity to decide which format config to use for HVM. If working off
> > a formal release I assume the 'xen_extra' fragment would refer to the last
> > digit in the xen release, but alot of people / tools are running against
> > -unstable builds so xen_extra fragment isn't really sufficient.
> > I realize that the current XenD SEXPR interface will shortly be deprecated
> > in favour of a new XML-RPC interface, but this isn't happening until 3.0.4
> > at earliest. In the meantime apps really need a way to determine what config
> > format to use for talking to XenD. Perhaps we could add a trivial API
> > version
> > token to the SEXPR
> > (xend_sexpr_format 2)
> > To let people detect that they should use this new style HVM config ?
> Attached is the simplest possible patch which adds a 'xend_config_format'
> field to the XenD information block. When running 'xm info' it appears thus:
> # xm info
> host : 10.13.4.252
> release : 2.6.17-1.2157_FC5xen0
> version : #1 SMP Tue Jul 11 23:30:05 EDT 2006
> machine : x86_64
> ...snipped rest of data...
> cc_compile_domain : build.redhat.com
> cc_compile_date : Tue Jul 11 22:50:42 EDT 2006
> xend_config_format : 2
> It will also appear in the SEXPR returned when doing a GET on the
> /xend/node path in XenD's HTTP service:
> (system Linux)
> (host 10.13.4.252)
> (release 2.6.17-1.2157_FC5xen0)
> (version '#1 SMP Tue Jul 11 23:30:05 EDT 2006')
> (machine x86_64)
> ...snipped rest of data...
> (cc_compile_domain build.redhat.com)
> (cc_compile_date 'Tue Jul 11 22:50:42 EDT 2006')
> (xend_config_format 2)
> The patch sets the format to value '2' to indicate that we're on the version
> with the new style HVM configuration for CDROM devices. The old style having
> implicitly been version '1'.
> Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
> |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
> |=- Perl modules: http://search.cpan.org/~danberr/ -=|
> |=- Projects: http://freshmeat.net/~danielpb/ -=|
> |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
> diff -r 1d817bfc5ed9 tools/python/xen/xend/XendNode.py
> --- a/tools/python/xen/xend/XendNode.py Fri Aug 11 14:22:54 2006 +0100
> +++ b/tools/python/xen/xend/XendNode.py Fri Aug 11 13:06:08 2006 -0400
> @@ -46,7 +46,7 @@ class XendNode:
> return self.xc.bvtsched_global_get()
> def info(self):
> - return self.nodeinfo() + self.physinfo() + self.xeninfo()
> + return self.nodeinfo() + self.physinfo() + self.xeninfo() +
> def nodeinfo(self):
> (sys, host, rel, ver, mch) = os.uname()
> @@ -100,6 +100,10 @@ class XendNode:
> return [[k, info[k]] for k in ITEM_ORDER]
> + def xendinfo(self):
> + return [['xend_config_format', 2]]
> def instance():
> global inst
> Xen-devel mailing list
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
Xen-devel mailing list