# HG changeset patch # User "Jeremy Katz " # Node ID 3d91ee7c86ec9316d7552218e21ab0d921a93a1e # Parent 082ece02e135a31f75c5e5240abfc857977373b8 make features an attribute of the domain info rather than the image so that it doesn't have to be kept up with in the image and bootloader diff -r 082ece02e135 -r 3d91ee7c86ec tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Tue Apr 25 21:17:18 2006 -0400 +++ b/tools/python/xen/xend/XendDomainInfo.py Tue Apr 25 21:18:56 2006 -0400 @@ -132,6 +132,7 @@ ROUNDTRIPPING_CONFIG_ENTRIES = [ ('memory', int), ('maxmem', int), ('bootloader', str), + ('features', str), ] ROUNDTRIPPING_CONFIG_ENTRIES += VM_CONFIG_PARAMS @@ -549,6 +550,7 @@ class XendDomainInfo: defaultInfo('on_poweroff', lambda: "destroy") defaultInfo('on_reboot', lambda: "restart") defaultInfo('on_crash', lambda: "restart") + defaultInfo('features', lambda: "") defaultInfo('cpu', lambda: None) defaultInfo('cpus', lambda: []) defaultInfo('cpu_weight', lambda: 1.0) @@ -775,6 +777,9 @@ class XendDomainInfo: """For use only by image.py and XendCheckpoint.py""" return self.console_port + def getFeatures(self): + """For use only by image.py.""" + return self.info['features'] def getVCpuCount(self): return self.info['vcpus'] diff -r 082ece02e135 -r 3d91ee7c86ec tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Tue Apr 25 21:17:18 2006 -0400 +++ b/tools/python/xen/xend/image.py Tue Apr 25 21:18:56 2006 -0400 @@ -68,7 +68,6 @@ class ImageHandler: self.kernel = None self.ramdisk = None self.cmdline = None - self.features = None self.configure(imageConfig, deviceConfig) @@ -90,7 +89,6 @@ class ImageHandler: if args: self.cmdline += " " + args self.ramdisk = get_cfg("ramdisk", '') - self.features = get_cfg("features", '') self.vm.storeVm(("image/ostype", self.ostype), ("image/kernel", self.kernel), @@ -177,7 +175,7 @@ class LinuxImageHandler(ImageHandler): log.debug("cmdline = %s", self.cmdline) log.debug("ramdisk = %s", self.ramdisk) log.debug("vcpus = %d", self.vm.getVCpuCount()) - log.debug("features = %s", self.features) + log.debug("features = %s", self.vm.getFeatures()) return xc.linux_build(dom = self.vm.getDomid(), image = self.kernel, @@ -185,7 +183,7 @@ class LinuxImageHandler(ImageHandler): console_evtchn = console_evtchn, cmdline = self.cmdline, ramdisk = self.ramdisk, - features = self.features) + features = self.vm.getFeatures()) class HVMImageHandler(ImageHandler): diff -r 082ece02e135 -r 3d91ee7c86ec tools/python/xen/xm/create.py --- a/tools/python/xen/xm/create.py Tue Apr 25 21:17:18 2006 -0400 +++ b/tools/python/xen/xm/create.py Tue Apr 25 21:18:56 2006 -0400 @@ -456,8 +456,6 @@ def configure_image(vals): config_image.append(['root', cmdline_root]) if vals.extra: config_image.append(['args', vals.extra]) - if vals.features: - config_image.append(['features', vals.features]) if vals.builder == 'hvm': configure_hvm(config_image, vals) @@ -638,7 +636,7 @@ def make_config(vals): config.append([n, v]) map(add_conf, ['name', 'memory', 'maxmem', 'restart', 'on_poweroff', - 'on_reboot', 'on_crash', 'vcpus']) + 'on_reboot', 'on_crash', 'vcpus', 'features']) if vals.uuid is not None: config.append(['uuid', vals.uuid])