@@ -3615,15 +3615,21 @@ def test_get_guest_config_with_spice_and_agent(self):
36153615 self.assertEqual(cfg.devices[5].type, "spice")
36163616 self.assertEqual(cfg.devices[6].type, "qxl")
36173617
3618+ @mock.patch.object(host.Host, 'get_guest')
3619+ @mock.patch.object(libvirt_driver.LibvirtDriver,
3620+ '_get_serial_ports_from_guest')
36183621 @mock.patch('nova.console.serial.acquire_port')
36193622 @mock.patch('nova.virt.hardware.get_number_of_serial_ports',
36203623 return_value=1)
36213624 @mock.patch.object(libvirt_driver.libvirt_utils, 'get_arch',)
36223625 def test_create_serial_console_devices_based_on_arch(self, mock_get_arch,
3623- mock_get_port_number,
3624- mock_acquire_port):
3626+ mock_get_port_number,
3627+ mock_acquire_port,
3628+ mock_ports,
3629+ mock_guest):
36253630 self.flags(enabled=True, group='serial_console')
36263631 drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
3632+ instance = objects.Instance(**self.test_instance)
36273633
36283634 expected = {arch.X86_64: vconfig.LibvirtConfigGuestSerial,
36293635 arch.S390: vconfig.LibvirtConfigGuestConsole,
@@ -3635,40 +3641,44 @@ def test_create_serial_console_devices_based_on_arch(self, mock_get_arch,
36353641 mock_get_arch.return_value = guest_arch
36363642 guest = vconfig.LibvirtConfigGuest()
36373643
3638- drvr._create_consoles(virt_type="kvm", guest=guest, log_path="",
3639- flavor={}, image_meta={}, caps=caps)
3644+ drvr._create_consoles(virt_type="kvm", guest=guest,
3645+ instance=instance, flavor={},
3646+ image_meta={}, caps=caps)
36403647 self.assertEqual(2, len(guest.devices))
36413648 console_device = guest.devices[0]
36423649 self.assertIsInstance(console_device, device_type)
36433650 self.assertEqual("tcp", console_device.type)
36443651
3652+ @mock.patch.object(host.Host, 'get_guest')
3653+ @mock.patch.object(libvirt_driver.LibvirtDriver,
3654+ '_get_serial_ports_from_guest')
36453655 @mock.patch('nova.virt.hardware.get_number_of_serial_ports',
36463656 return_value=4)
36473657 @mock.patch.object(libvirt_driver.libvirt_utils, 'get_arch',
36483658 side_effect=[arch.X86_64, arch.S390, arch.S390X])
36493659 def test_create_serial_console_devices_with_limit_exceeded_based_on_arch(
3650- self, mock_get_arch, mock_get_port_number):
3660+ self, mock_get_arch, mock_get_port_number, mock_ports, mock_guest ):
36513661 self.flags(enabled=True, group='serial_console')
36523662 self.flags(virt_type="qemu", group='libvirt')
36533663 flavor = 'fake_flavor'
36543664 image_meta = objects.ImageMeta()
36553665 drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
36563666 caps = drvr._host.get_capabilities()
36573667 guest = vconfig.LibvirtConfigGuest()
3658- log_path = ""
3668+ instance = objects.Instance(**self.test_instance)
36593669 self.assertRaises(exception.SerialPortNumberLimitExceeded,
36603670 drvr._create_consoles,
3661- "kvm", guest, log_path , flavor, image_meta, caps)
3671+ "kvm", guest, instance , flavor, image_meta, caps)
36623672 mock_get_arch.assert_called_with(image_meta)
36633673 mock_get_port_number.assert_called_with(flavor,
36643674 image_meta)
36653675
3666- drvr._create_consoles("kvm", guest, log_path , flavor, image_meta, caps)
3676+ drvr._create_consoles("kvm", guest, instance , flavor, image_meta, caps)
36673677 mock_get_arch.assert_called_with(image_meta)
36683678 mock_get_port_number.assert_called_with(flavor,
36693679 image_meta)
36703680
3671- drvr._create_consoles("kvm", guest, log_path , flavor, image_meta, caps)
3681+ drvr._create_consoles("kvm", guest, instance , flavor, image_meta, caps)
36723682 mock_get_arch.assert_called_with(image_meta)
36733683 mock_get_port_number.assert_called_with(flavor,
36743684 image_meta)
@@ -7903,24 +7913,27 @@ def test_update_volume_xml_no_connection_info(self):
79037913 drvr._get_volume_config)
79047914 self.assertEqual(target_xml, config)
79057915
7916+ @mock.patch.object(libvirt_driver.LibvirtDriver,
7917+ '_get_serial_ports_from_guest')
79067918 @mock.patch.object(fakelibvirt.virDomain, "migrateToURI2")
79077919 @mock.patch.object(fakelibvirt.virDomain, "XMLDesc")
79087920 def test_live_migration_update_serial_console_xml(self, mock_xml,
7909- mock_migrate):
7921+ mock_migrate, mock_get ):
79107922 self.compute = importutils.import_object(CONF.compute_manager)
79117923 instance_ref = self.test_instance
79127924
79137925 xml_tmpl = ("<domain type='kvm'>"
79147926 "<devices>"
79157927 "<console type='tcp'>"
7916- "<source mode='bind' host='{addr}' service='10000'/>"
7928+ "<source mode='bind' host='{addr}' service='{port}'/>"
7929+ "<target type='serial' port='0'/>"
79177930 "</console>"
79187931 "</devices>"
79197932 "</domain>")
79207933
7921- initial_xml = xml_tmpl.format(addr='9.0.0.1')
7934+ initial_xml = xml_tmpl.format(addr='9.0.0.1', port='10100' )
79227935
7923- target_xml = xml_tmpl.format(addr='9.0.0.12')
7936+ target_xml = xml_tmpl.format(addr='9.0.0.12', port='10200' )
79247937 target_xml = etree.tostring(etree.fromstring(target_xml))
79257938
79267939 # Preparing mocks
@@ -7935,7 +7948,8 @@ def test_live_migration_update_serial_console_xml(self, mock_xml,
79357948 serial_listen_addr='9.0.0.12',
79367949 target_connect_addr=None,
79377950 bdms=[],
7938- block_migration=False)
7951+ block_migration=False,
7952+ serial_listen_ports=[10200])
79397953 dom = fakelibvirt.virDomain
79407954 guest = libvirt_guest.Guest(dom)
79417955 drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
0 commit comments