mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-11 04:36:48 +00:00
fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt
- A named CPU model is written without check='none' and with fallback='forbid': libvirt checks before the start that the host runs it, and it is not swapped for another model. - Mode maximum is written as that mode; it was written as a model named maximum. - Model names up to 64 characters: the -noTSX and -IBRS models, the ones a mixed set of hosts needs, were refused at 20. - The mode or model is checked against the host's capabilities when the VM is defined, from the page and the API alike; no CPU element (QEMU's oldest default CPU) is no longer offered. - The default CPU mode setting offers the modes the new VM dialog has; no-model and custom, which matched none of them, become host-model.
This commit is contained in:
parent
2a773f6ec0
commit
2e1f29961c
15 changed files with 139 additions and 19 deletions
|
|
@ -99,3 +99,17 @@ class DescriptionsTestCase(TestCase):
|
|||
with self.subTest(key=key):
|
||||
self.assertLessEqual(len(text), limit)
|
||||
self.assertEqual(AppSettings.objects.get(key=key).description, text)
|
||||
|
||||
|
||||
cpu_mode = importlib.import_module("appsettings.migrations.0022_cpu_mode_choices")
|
||||
|
||||
|
||||
class CpuModeChoicesTestCase(TestCase):
|
||||
def test_the_default_cpu_mode_is_one_the_new_vm_dialog_offers(self):
|
||||
for old, new in (("no-model", "host-model"), ("custom", "host-model"), ("host-passthrough", "host-passthrough")):
|
||||
with self.subTest(old=old):
|
||||
AppSettings.objects.filter(key="INSTANCE_CPU_DEFAULT_MODE").update(
|
||||
value=old, choices="no-model,host-model,host-passthrough,custom")
|
||||
cpu_mode.fix_cpu_mode(apps, SimpleNamespace(connection=connection))
|
||||
setting = AppSettings.objects.get(key="INSTANCE_CPU_DEFAULT_MODE")
|
||||
self.assertEqual((setting.value, setting.choices), (new, "host-model,host-passthrough,maximum"))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue