mirror of
https://github.com/GNS3/gns3-server.git
synced 2025-01-31 13:23:48 +02:00
parent
a2dfeab315
commit
da72a9501a
@ -41,6 +41,9 @@ class VirtualBox(BaseManager):
|
|||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self._vboxmanage_path = None
|
self._vboxmanage_path = None
|
||||||
|
# It seem starting two VM in paralell can be an issue:
|
||||||
|
# https://github.com/GNS3/gns3-server/issues/190
|
||||||
|
self.start_lock = asyncio.Lock()
|
||||||
self._execute_lock = asyncio.Lock()
|
self._execute_lock = asyncio.Lock()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -178,23 +178,24 @@ class VirtualBoxVM(BaseVM):
|
|||||||
if vm_state != "poweroff" and vm_state != "saved":
|
if vm_state != "poweroff" and vm_state != "saved":
|
||||||
raise VirtualBoxError("VirtualBox VM not powered off or saved")
|
raise VirtualBoxError("VirtualBox VM not powered off or saved")
|
||||||
|
|
||||||
yield from self._set_network_options()
|
with (yield from self.manager.start_lock):
|
||||||
yield from self._set_serial_console()
|
yield from self._set_network_options()
|
||||||
|
yield from self._set_serial_console()
|
||||||
|
|
||||||
args = [self._vmname]
|
args = [self._vmname]
|
||||||
if self._headless:
|
if self._headless:
|
||||||
args.extend(["--type", "headless"])
|
args.extend(["--type", "headless"])
|
||||||
result = yield from self.manager.execute("startvm", args)
|
result = yield from self.manager.execute("startvm", args)
|
||||||
log.info("VirtualBox VM '{name}' [{id}] started".format(name=self.name, id=self.id))
|
log.info("VirtualBox VM '{name}' [{id}] started".format(name=self.name, id=self.id))
|
||||||
log.debug("Start result: {}".format(result))
|
log.debug("Start result: {}".format(result))
|
||||||
|
|
||||||
# add a guest property to let the VM know about the GNS3 name
|
# add a guest property to let the VM know about the GNS3 name
|
||||||
yield from self.manager.execute("guestproperty", ["set", self._vmname, "NameInGNS3", self.name])
|
yield from self.manager.execute("guestproperty", ["set", self._vmname, "NameInGNS3", self.name])
|
||||||
# add a guest property to let the VM know about the GNS3 project directory
|
# add a guest property to let the VM know about the GNS3 project directory
|
||||||
yield from self.manager.execute("guestproperty", ["set", self._vmname, "ProjectDirInGNS3", self.working_dir])
|
yield from self.manager.execute("guestproperty", ["set", self._vmname, "ProjectDirInGNS3", self.working_dir])
|
||||||
|
|
||||||
if self._enable_remote_console and self._console is not None:
|
if self._enable_remote_console and self._console is not None:
|
||||||
self._start_remote_console()
|
self._start_remote_console()
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user