1
0
mirror of https://github.com/GNS3/gns3-server synced 2025-04-11 05:15:41 +00:00

Enable nested hardware virtualization by default for GNS3 VM running in VirtualBox. Fixes

No error is sent by VBoxManage is this feature is not available, for instance with Intel processors.
This commit is contained in:
grossmj 2019-10-09 14:50:00 +08:00
parent 2d777cac13
commit 6d1adea907
3 changed files with 12 additions and 3 deletions

View File

@ -226,8 +226,7 @@ class HyperVGNS3VM(BaseGNS3VM):
raise GNS3VMError("Could not find Hyper-V VM {}".format(self.vmname))
if not self._is_running():
log.info("Update GNS3 VM settings")
log.info("Update GNS3 VM settings (CPU and RAM)")
# set the number of vCPUs and amount of RAM
self._set_vcpus_ram(self.vcpus, self.ram)

View File

@ -214,8 +214,10 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
log.info('"{}" state is {}'.format(self._vmname, vm_state))
if vm_state == "poweroff":
log.info("Update GNS3 VM settings (CPU, RAM and Hardware Virtualization)")
await self.set_vcpus(self.vcpus)
await self.set_ram(self.ram)
await self.enable_nested_hw_virt()
if vm_state in ("poweroff", "saved"):
# start the VM if it is not running
@ -339,6 +341,14 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
await self._execute("modifyvm", [self._vmname, "--memory", str(ram)], timeout=3)
log.info("GNS3 VM RAM amount set to {}".format(ram))
async def enable_nested_hw_virt(self):
"""
Enable nested hardware virtualization for the GNS3 VM.
"""
await self._execute("modifyvm", [self._vmname, "--nested-hw-virt", "on"], timeout=3)
log.info("Nested hardware virtualization enabled")
async def set_hostonly_network(self, adapter_number, hostonly_network_name):
"""
Set a VirtualBox host-only network on a network adapter for the GNS3 VM.

View File

@ -147,7 +147,7 @@ class VMwareGNS3VM(BaseGNS3VM):
except VMwareError as e:
raise GNS3VMError("Could not list VMware VMs: {}".format(str(e)))
if not running:
log.info("Update GNS3 VM settings")
log.info("Update GNS3 VM settings (CPU, RAM and Hardware Virtualization)")
# set the number of vCPUs and amount of RAM
await self._set_vcpus_ram(self.vcpus, self.ram)
await self._set_extra_options()