qubes/vm: fix kernels_dir
This commit is contained in:
parent
a686e810b9
commit
8d3edbf133
@ -34,6 +34,10 @@ class AdminVM(qubes.vm.qubesvm.QubesVM):
|
|||||||
default=None,
|
default=None,
|
||||||
doc='Dom0 cannot have netvm')
|
doc='Dom0 cannot have netvm')
|
||||||
|
|
||||||
|
kernel = qubes.property('netvm', setter=qubes.property.forbidden,
|
||||||
|
default=None,
|
||||||
|
doc='There are other ways to set kernel for Dom0.')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def xid(self):
|
def xid(self):
|
||||||
'''Always ``0``.
|
'''Always ``0``.
|
||||||
@ -53,6 +57,16 @@ class AdminVM(qubes.vm.qubesvm.QubesVM):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def kernels_dir(self):
|
||||||
|
'''Always :py:obj:`None`.
|
||||||
|
|
||||||
|
.. seealso:
|
||||||
|
:py:attr:`qubes.vm.qubesvm.QubesVM.kernels_dir`
|
||||||
|
'''
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
# XXX probably unneeded, will return None as we don't have netvm
|
# XXX probably unneeded, will return None as we don't have netvm
|
||||||
# @property
|
# @property
|
||||||
# def ip(self):
|
# def ip(self):
|
||||||
|
@ -333,6 +333,20 @@ class QubesVM(qubes.vm.BaseVM):
|
|||||||
return self.storage.volatile_img
|
return self.storage.volatile_img
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def kernels_dir(self):
|
||||||
|
'''Directory where kernel resides.
|
||||||
|
|
||||||
|
If :py:attr:`self.kernel` is :py:obj:`None`, the this points inside
|
||||||
|
:py:attr:`self.dir_path`
|
||||||
|
'''
|
||||||
|
return os.path.join(
|
||||||
|
qubes.config.system_path['qubes_kernels_base_dir'], self.kernel) \
|
||||||
|
if self.kernel is not None \
|
||||||
|
else os.path.join(self.dir_path,
|
||||||
|
qubes.config.vm_files['kernels_subdir'])
|
||||||
|
|
||||||
|
|
||||||
# XXX shouldn't this go elsewhere?
|
# XXX shouldn't this go elsewhere?
|
||||||
@property
|
@property
|
||||||
def updateable(self):
|
def updateable(self):
|
||||||
@ -450,9 +464,9 @@ class QubesVM(qubes.vm.BaseVM):
|
|||||||
# Initialize VM image storage class
|
# Initialize VM image storage class
|
||||||
self.storage = qubes.storage.get_storage(self)
|
self.storage = qubes.storage.get_storage(self)
|
||||||
|
|
||||||
if hasattr(self, 'kernels_dir'):
|
if self.kernels_dir is not None: # it is None for AdminVM
|
||||||
self.storage.modules_img = os.path.join(self.kernels_dir,
|
self.storage.modules_img = os.path.join(self.kernels_dir,
|
||||||
"modules.img")
|
'modules.img')
|
||||||
self.storage.modules_img_rw = self.kernel is None
|
self.storage.modules_img_rw = self.kernel is None
|
||||||
|
|
||||||
# fire hooks
|
# fire hooks
|
||||||
@ -581,10 +595,6 @@ class QubesVM(qubes.vm.BaseVM):
|
|||||||
self.fire_event('property-set:conf_file', 'conf_file',
|
self.fire_event('property-set:conf_file', 'conf_file',
|
||||||
new_conf, old_conf)
|
new_conf, old_conf)
|
||||||
|
|
||||||
if hasattr(self, 'kernels_dir') and self.kernels_dir is not None:
|
|
||||||
self.kernels_dir = self.kernels_dir.replace(
|
|
||||||
old_dirpath, new_dirpath)
|
|
||||||
|
|
||||||
self._update_libvirt_domain()
|
self._update_libvirt_domain()
|
||||||
|
|
||||||
|
|
||||||
@ -1726,15 +1736,6 @@ class QubesVM(qubes.vm.BaseVM):
|
|||||||
# XXX probably will be obsoleted by .events_enabled
|
# XXX probably will be obsoleted by .events_enabled
|
||||||
# "_do_not_reset_firewall": { "func": lambda x: False },
|
# "_do_not_reset_firewall": { "func": lambda x: False },
|
||||||
|
|
||||||
# XXX WTF?
|
|
||||||
# "kernels_dir": {
|
|
||||||
# # for backward compatibility (or another rare case): kernel=None ->
|
|
||||||
# # kernel in VM dir
|
|
||||||
# "func": lambda x: \
|
|
||||||
# os.path.join(system_path["qubes_kernels_base_dir"],
|
|
||||||
# self.kernel) if self.kernel is not None \
|
|
||||||
# else os.path.join(self.dir_path,
|
|
||||||
# vm_files["kernels_subdir"]) },
|
|
||||||
# "_start_guid_first": { "func": lambda x: False },
|
# "_start_guid_first": { "func": lambda x: False },
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user