Merge branch 'klass-attr'

* klass-attr:
  Fix setting kernel property
  use 'klass' property instead of actual VM object class
This commit is contained in:
Marek Marczykowski-Górecki 2017-10-08 16:55:33 +02:00
commit 058b813690
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724
4 changed files with 8 additions and 25 deletions

View File

@ -63,7 +63,7 @@ class NewVmDlg(QDialog, Ui_NewVMDlg):
self.template_vm, self.template_vm,
self.app, None, self.app, None,
self.app.default_template, self.app.default_template,
(lambda vm: isinstance(vm, qubesadmin.vm.TemplateVM)), (lambda vm: vm.klass == 'TemplateVM'),
allow_internal=False, allow_default=True, allow_none=False) allow_internal=False, allow_default=True, allow_none=False)
self.netvm_list, self.netvm_idx = utils.prepare_vm_choice( self.netvm_list, self.netvm_idx = utils.prepare_vm_choice(

View File

@ -32,7 +32,6 @@ from .ui_globalsettingsdlg import *
from configparser import ConfigParser from configparser import ConfigParser
from qubesadmin.utils import parse_size, updates_vms_status from qubesadmin.utils import parse_size, updates_vms_status
from qubesadmin.vm import TemplateVM
qmemman_config_path = '/etc/qubes/qmemman.conf' qmemman_config_path = '/etc/qubes/qmemman.conf'
@ -104,7 +103,7 @@ class GlobalSettingsWindow(Ui_GlobalSettings, QDialog):
self.default_netvm_combo.setCurrentIndex(self.netvm_idx) self.default_netvm_combo.setCurrentIndex(self.netvm_idx)
#default template #default template
templates = [vm for vm in all_vms if isinstance(vm, TemplateVM)] templates = [vm for vm in all_vms if vm.klass == 'TemplateVM']
self.template_idx = -1 self.template_idx = -1
current_template = self.qvm_collection.default_template current_template = self.qvm_collection.default_template

View File

@ -248,12 +248,12 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog):
self.vmlabel.setVisible(True) self.vmlabel.setVisible(True)
self.vmlabel.setEnabled(not self.vm.is_running()) self.vmlabel.setEnabled(not self.vm.is_running())
if isinstance(self.vm, qubesadmin.vm.AppVM): if self.vm.klass == 'AppVM':
self.template_list, self.template_idx = utils.prepare_vm_choice( self.template_list, self.template_idx = utils.prepare_vm_choice(
self.template_name, self.template_name,
self.vm, 'template', self.vm, 'template',
self.vm.app.default_template, self.vm.app.default_template,
(lambda vm: isinstance(vm, qubesadmin.vm.TemplateVM)), (lambda vm: vm.klass == 'TemplateVM'),
allow_default=True, allow_none=False) allow_default=True, allow_none=False)
else: else:
self.template_name.setEnabled(False) self.template_name.setEnabled(False)
@ -476,7 +476,7 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog):
self.default_dispvm, self.default_dispvm,
self.vm, 'default_dispvm', self.vm, 'default_dispvm',
self.vm.app.default_dispvm, self.vm.app.default_dispvm,
(lambda vm: isinstance(vm, qubesadmin.vm.DispVM)), (lambda vm: vm.klass == 'DispVM'),
allow_default=True, allow_none=True) allow_default=True, allow_none=True)
def __apply_advanced_tab__(self): def __apply_advanced_tab__(self):
@ -504,23 +504,7 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog):
if hasattr(self.vm, "kernel") and self.kernel_groupbox.isVisible(): if hasattr(self.vm, "kernel") and self.kernel_groupbox.isVisible():
try: try:
if self.kernel.currentIndex() != self.kernel_idx: if self.kernel.currentIndex() != self.kernel_idx:
new_kernel = str(self.kernel.currentText()) self.vm.kernel = self.kernel_list[self.kernel.currentIndex()]
new_kernel = new_kernel.split(' ')[0]
uses_default_kernel = False
if new_kernel == "default":
kernel = self.app.get_default_kernel()
uses_default_kernel = True
elif new_kernel == "none":
kernel = None
else:
kernel = new_kernel
self.vm.kernel = kernel
# Set self.vm.uses_default_kernel after self.vm.kernel to ensure that
# the correct value persists after QubesVm.kernel resets self.vm.uses_default_kernel
# to False.
self.vm.uses_default_kernel = uses_default_kernel
self.anything_changed = True self.anything_changed = True
except Exception as ex: except Exception as ex:
msg.append(str(ex)) msg.append(str(ex))

View File

@ -28,7 +28,7 @@ import qubesadmin
from PyQt4.QtGui import QIcon from PyQt4.QtGui import QIcon
def _filter_internal(vm): def _filter_internal(vm):
return (not isinstance(vm, qubesadmin.vm.AdminVM) return (not vm.klass == 'AdminVM'
and not vm.features.get('internal', False)) and not vm.features.get('internal', False))
def prepare_choice(widget, holder, propname, choice, default, def prepare_choice(widget, holder, propname, choice, default,
@ -87,7 +87,7 @@ def prepare_choice(widget, holder, propname, choice, default,
text = str(item) text = str(item)
if item is qubesadmin.DEFAULT and is_default \ if item is qubesadmin.DEFAULT and is_default \
or item is not qubesadmin.DEFAULT and item is oldvalue: or item is not qubesadmin.DEFAULT and item == oldvalue:
text += ' (current)' text += ' (current)'
idx = i idx = i