hvm: propagate qrexec/guiagent setting from template

Do it only in one way - i.e. support the situation where template
doesn't have tools installed, but child VM does.
This commit is contained in:
Marek Marczykowski-Górecki 2013-12-13 22:47:20 +01:00
parent ac9823e6f1
commit 73c38d8d1c

View File

@ -60,8 +60,12 @@ class QubesHVm(QubesVm):
attrs['drive'] = { 'save': 'str(self.drive)' }
attrs['maxmem'].pop('save')
attrs['timezone'] = { 'default': 'localtime', 'save': 'str(self.timezone)' }
attrs['qrexec_installed'] = { 'default': False, 'save': 'str(self.qrexec_installed)' }
attrs['guiagent_installed'] = { 'default' : False, 'save': 'str(self.guiagent_installed)' }
attrs['qrexec_installed'] = { 'default': False,
'attr': '_qrexec_installed',
'save': 'str(self._qrexec_installed)' }
attrs['guiagent_installed'] = { 'default' : False,
'attr': '_guiagent_installed',
'save': 'str(self._guiagent_installed)' }
attrs['_start_guid_first']['eval'] = 'True'
attrs['services']['default'] = "{'meminfo-writer': False}"
@ -110,6 +114,28 @@ class QubesHVm(QubesVm):
attrs += [ 'guiagent_installed' ]
return attrs
@property
def qrexec_installed(self):
return self._qrexec_installed or \
bool(self.template and self.template.qrexec_installed)
@qrexec_installed.setter
def qrexec_installed(self, value):
if self.template and self.template.qrexec_installed and not value:
print >>sys.stderr, "WARNING: When qrexec_installed set in template, it will be propagated to the VM"
self._qrexec_installed = value
@property
def guiagent_installed(self):
return self._guiagent_installed or \
bool(self.template and self.template.guiagent_installed)
@guiagent_installed.setter
def guiagent_installed(self, value):
if self.template and self.template.guiagent_installed and not value:
print >>sys.stderr, "WARNING: When guiagent_installed set in template, it will be propagated to the VM"
self._guiagent_installed = value
def create_on_disk(self, verbose, source_template = None):
if dry_run:
return