Merge pull request #712 from GNS3/set_qemu_uuid

Set Qemu uuid for csr1000v
This commit is contained in:
Jeremy Grossmann 2016-10-04 20:55:11 -06:00 committed by GitHub
commit 46e1fbda60
2 changed files with 25 additions and 2 deletions

View File

@ -1480,6 +1480,7 @@ class QemuVM(BaseNode):
(to be passed to subprocess.Popen()) (to be passed to subprocess.Popen())
""" """
additional_options = self._options.strip()
command = [self.qemu_path] command = [self.qemu_path]
command.extend(["-name", self._name]) command.extend(["-name", self._name])
command.extend(["-m", "{}M".format(self._ram)]) command.extend(["-m", "{}M".format(self._ram)])
@ -1496,6 +1497,8 @@ class QemuVM(BaseNode):
command.extend(cdrom_option) command.extend(cdrom_option)
command.extend((yield from self._disk_options())) command.extend((yield from self._disk_options()))
command.extend(self._linux_boot_options()) command.extend(self._linux_boot_options())
if "-uuid" not in additional_options:
command.extend(["-uuid", self._id])
if self._console_type == "telnet": if self._console_type == "telnet":
command.extend(self._serial_options()) command.extend(self._serial_options())
elif self._console_type == "vnc": elif self._console_type == "vnc":
@ -1505,7 +1508,6 @@ class QemuVM(BaseNode):
command.extend(self._monitor_options()) command.extend(self._monitor_options())
command.extend((yield from self._network_options())) command.extend((yield from self._network_options()))
command.extend(self._graphic()) command.extend(self._graphic())
additional_options = self._options.strip()
if additional_options: if additional_options:
try: try:
command.extend(shlex.split(additional_options)) command.extend(shlex.split(additional_options))

View File

@ -431,6 +431,8 @@ def test_build_command(vm, loop, fake_qemu_binary, port_manager):
"cpus=1", "cpus=1",
"-boot", "-boot",
"order=c", "order=c",
"-uuid",
vm.id,
"-serial", "-serial",
"telnet:127.0.0.1:{},server,nowait".format(vm.console), "telnet:127.0.0.1:{},server,nowait".format(vm.console),
"-net", "-net",
@ -440,6 +442,19 @@ def test_build_command(vm, loop, fake_qemu_binary, port_manager):
] ]
def test_build_command_manual_uuid(vm, loop, fake_qemu_binary, port_manager):
"""
If user has set a uuid we keep it
"""
vm.options = "-uuid e1c307a4-896f-11e6-81a5-3c07547807cc"
os.environ["DISPLAY"] = "0:0"
with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()) as process:
cmd = loop.run_until_complete(asyncio.async(vm._build_command()))
assert "e1c307a4-896f-11e6-81a5-3c07547807cc" in cmd
assert vm.id not in cmd
def test_build_command_kvm(linux_platform, vm, loop, fake_qemu_binary, port_manager): def test_build_command_kvm(linux_platform, vm, loop, fake_qemu_binary, port_manager):
""" """
Qemu 2.4 introduce an issue with KVM Qemu 2.4 introduce an issue with KVM
@ -460,6 +475,8 @@ def test_build_command_kvm(linux_platform, vm, loop, fake_qemu_binary, port_mana
"-enable-kvm", "-enable-kvm",
"-boot", "-boot",
"order=c", "order=c",
"-uuid",
vm.id,
"-serial", "-serial",
"telnet:127.0.0.1:{},server,nowait".format(vm.console), "telnet:127.0.0.1:{},server,nowait".format(vm.console),
"-net", "-net",
@ -491,6 +508,8 @@ def test_build_command_kvm_2_4(linux_platform, vm, loop, fake_qemu_binary, port_
"smm=off", "smm=off",
"-boot", "-boot",
"order=c", "order=c",
"-uuid",
vm.id,
"-serial", "-serial",
"telnet:127.0.0.1:{},server,nowait".format(vm.console), "telnet:127.0.0.1:{},server,nowait".format(vm.console),
"-net", "-net",
@ -525,6 +544,8 @@ def test_build_command_two_adapters(vm, loop, fake_qemu_binary, port_manager):
"cpus=1", "cpus=1",
"-boot", "-boot",
"order=c", "order=c",
"-uuid",
vm.id,
"-serial", "-serial",
"telnet:127.0.0.1:{},server,nowait".format(vm.console), "telnet:127.0.0.1:{},server,nowait".format(vm.console),
"-net", "-net",