From 5b0343d3e131aadfd0e51a91f0671b57aac23662 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 6 Oct 2020 13:16:11 +0100 Subject: [PATCH] libvirt: Remove support for '[libvirt] use_usb_tablet' This was replaced by the '[DEFAULT] pointer_model' config option was back in the 14.0.0 (Newton) release. Change-Id: Ia39c0bad4c1c03b3ffb4a162c2afddb44ebaf6a1 Signed-off-by: Stephen Finucane --- nova/conf/libvirt.py | 20 ----- .../regressions/test_bug_1595962.py | 1 - nova/tests/unit/virt/libvirt/test_driver.py | 80 +++++-------------- nova/virt/libvirt/driver.py | 22 ++--- ...t-use_usb_tablet-opt-b01058905240b8ce.yaml | 6 ++ 5 files changed, 33 insertions(+), 96 deletions(-) create mode 100644 releasenotes/notes/remove-deprecated-libvirt-use_usb_tablet-opt-b01058905240b8ce.yaml diff --git a/nova/conf/libvirt.py b/nova/conf/libvirt.py index c1eb18beaa..424e97a8ed 100644 --- a/nova/conf/libvirt.py +++ b/nova/conf/libvirt.py @@ -218,26 +218,6 @@ Related options: config option. A more verbose output will help in debugging issues. * ``virt_type``: If you use ``lxc`` as virt_type it will be treated as a single partition image -"""), - cfg.BoolOpt('use_usb_tablet', - default=True, - deprecated_for_removal=True, - deprecated_reason="This option is being replaced by the " - "'pointer_model' option.", - deprecated_since='14.0.0', - help=""" -Enable a mouse cursor within a graphical VNC or SPICE sessions. - -This will only be taken into account if the VM is fully virtualized and VNC -and/or SPICE is enabled. If the node doesn't support a graphical framebuffer, -then it is valid to set this to False. - -Related options: - -* ``[vnc]enabled``: If VNC is enabled, ``use_usb_tablet`` will have an effect. -* ``[spice]enabled`` + ``[spice].agent_enabled``: If SPICE is enabled and the - spice agent is disabled, the config value of ``use_usb_tablet`` will have - an effect. """), cfg.StrOpt('live_migration_scheme', help=""" diff --git a/nova/tests/functional/regressions/test_bug_1595962.py b/nova/tests/functional/regressions/test_bug_1595962.py index bf1c7e53be..8eef0d3b7a 100644 --- a/nova/tests/functional/regressions/test_bug_1595962.py +++ b/nova/tests/functional/regressions/test_bug_1595962.py @@ -57,7 +57,6 @@ class TestSerialConsoleLiveMigrate(test.TestCase): self.flags(enabled=True, group="serial_console") self.flags(enabled=False, group="vnc") self.flags(enabled=False, group="spice") - self.flags(use_usb_tablet=False, group="libvirt") self.start_service('conductor') self.start_service('scheduler') diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 20b09920f1..36ea0185d1 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -5641,10 +5641,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_vnc_and_tablet(self): self.flags(enabled=True, group='vnc') - self.flags(virt_type='kvm', - use_usb_tablet=True, - group='libvirt') + self.flags(virt_type='kvm', group='libvirt') self.flags(enabled=False, group='spice') + self.flags(pointer_model='usbtablet') cfg = self._get_guest_config_with_graphics() @@ -5673,13 +5672,12 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_spice_and_tablet(self): self.flags(enabled=False, group='vnc') - self.flags(virt_type='kvm', - use_usb_tablet=True, - group='libvirt') + self.flags(virt_type='kvm', group='libvirt') self.flags(enabled=True, agent_enabled=False, server_listen='10.0.0.1', group='spice') + self.flags(pointer_model='usbtablet') cfg = self._get_guest_config_with_graphics() @@ -5710,12 +5708,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_spice_and_agent(self): self.flags(enabled=False, group='vnc') - self.flags(virt_type='kvm', - use_usb_tablet=True, - group='libvirt') - self.flags(enabled=True, - agent_enabled=True, - group='spice') + self.flags(virt_type='kvm', group='libvirt') + self.flags(enabled=True, agent_enabled=True, group='spice') + self.flags(pointer_model='usbtablet') cfg = self._get_guest_config_with_graphics() @@ -6154,11 +6149,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_type_xen(self): self.flags(enabled=True, group='vnc') - self.flags(virt_type='xen', - use_usb_tablet=False, - group='libvirt') - self.flags(enabled=False, - group='spice') + self.flags(virt_type='xen', group='libvirt') + self.flags(enabled=False, group='spice') drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) instance_ref = objects.Instance(**self.test_instance) @@ -6192,9 +6184,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, return_value=fields.Architecture.S390X) def test_get_guest_config_with_type_kvm_on_s390(self, mock_get_arch): self.flags(enabled=False, group='vnc') - self.flags(virt_type='kvm', - use_usb_tablet=False, - group='libvirt') + self.flags(virt_type='kvm', group='libvirt') self._stub_host_capabilities_cpu_arch(fields.Architecture.S390X) @@ -6237,11 +6227,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_type_xen_pae_hvm(self): self.flags(enabled=True, group='vnc') - self.flags(virt_type='xen', - use_usb_tablet=False, - group='libvirt') - self.flags(enabled=False, - group='spice') + self.flags(virt_type='xen', group='libvirt') + self.flags(enabled=False, group='spice') drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) instance_ref = objects.Instance(**self.test_instance) @@ -6267,11 +6254,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_type_xen_pae_pvm(self): self.flags(enabled=True, group='vnc') - self.flags(virt_type='xen', - use_usb_tablet=False, - group='libvirt') - self.flags(enabled=False, - group='spice') + self.flags(virt_type='xen', group='libvirt') + self.flags(enabled=False, group='spice') drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) instance_ref = objects.Instance(**self.test_instance) @@ -6291,12 +6275,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_config_with_vnc_and_spice(self): self.flags(enabled=True, group='vnc') - self.flags(virt_type='kvm', - use_usb_tablet=True, - group='libvirt') - self.flags(enabled=True, - agent_enabled=True, - group='spice') + self.flags(virt_type='kvm', group='libvirt') + self.flags(enabled=True, agent_enabled=True, group='spice') + self.flags(pointer_model='usbtablet') drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) instance_ref = objects.Instance(**self.test_instance) @@ -6392,7 +6373,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertIsNone(tablet) def test_get_guest_usb_tablet_wipe(self): - self.flags(use_usb_tablet=True, group='libvirt') + self.flags(pointer_model='usbtablet') tablet = self._test_get_guest_usb_tablet( True, True, fields.VMMode.HVM) @@ -6419,7 +6400,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertIsNone(tablet) def test_get_guest_usb_tablet_image_meta(self): - self.flags(use_usb_tablet=True, group='libvirt') + self.flags(pointer_model='usbtablet') image_meta = {"properties": {"hw_pointer_model": "usbtablet"}} tablet = self._test_get_guest_usb_tablet( @@ -6447,7 +6428,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertIsNone(tablet) def test_get_guest_usb_tablet_image_meta_no_vnc(self): - self.flags(use_usb_tablet=False, group='libvirt') self.flags(pointer_model=None) image_meta = {"properties": {"hw_pointer_model": "usbtablet"}} @@ -6456,22 +6436,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, self._test_get_guest_usb_tablet, False, False, fields.VMMode.HVM, True, image_meta=image_meta) - def test_get_guest_no_pointer_model_usb_tablet_set(self): - self.flags(use_usb_tablet=True, group='libvirt') - self.flags(pointer_model=None) - - tablet = self._test_get_guest_usb_tablet(True, True, fields.VMMode.HVM) - self.assertIsNotNone(tablet) - - def test_get_guest_no_pointer_model_usb_tablet_not_set(self): - self.flags(use_usb_tablet=False, group='libvirt') - self.flags(pointer_model=None) - - tablet = self._test_get_guest_usb_tablet(True, True, fields.VMMode.HVM) - self.assertIsNone(tablet) - def test_get_guest_pointer_model_usb_tablet(self): - self.flags(use_usb_tablet=False, group='libvirt') self.flags(pointer_model='usbtablet') tablet = self._test_get_guest_usb_tablet(True, True, fields.VMMode.HVM) self.assertIsNotNone(tablet) @@ -6484,7 +6449,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, def test_get_guest_pointer_model_usb_tablet_image_no_HVM(self): self.flags(pointer_model=None) - self.flags(use_usb_tablet=False, group='libvirt') image_meta = {"properties": {"hw_pointer_model": "usbtablet"}} self.assertRaises( exception.UnsupportedPointerModelRequested, @@ -7084,10 +7048,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, @mock.patch('nova.virt.libvirt.driver.os.path.exists') def test_get_guest_config_with_rng_dev_not_present(self, mock_path): - self.flags(virt_type='kvm', - use_usb_tablet=False, - rng_dev_path='/dev/hw_rng', - group='libvirt') + self.flags( + virt_type='kvm', rng_dev_path='/dev/hw_rng', group='libvirt') mock_path.return_value = False drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 840080006c..be421f2b2d 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -6374,16 +6374,6 @@ class LibvirtDriver(driver.ComputeDriver): def _get_guest_pointer_model(self, os_type, image_meta): pointer_model = image_meta.properties.get( 'hw_pointer_model', CONF.pointer_model) - if pointer_model is None and CONF.libvirt.use_usb_tablet: - # TODO(sahid): We set pointer_model to keep compatibility - # until the next release O*. It means operators can continue - # to use the deprecated option "use_usb_tablet" or set a - # specific device to use - pointer_model = "usbtablet" - LOG.warning('The option "use_usb_tablet" has been ' - 'deprecated for Newton in favor of the more ' - 'generic "pointer_model". Please update ' - 'nova.conf to address this change.') if pointer_model == "usbtablet": # We want a tablet if VNC is enabled, or SPICE is enabled and @@ -6394,7 +6384,7 @@ class LibvirtDriver(driver.ComputeDriver): CONF.spice.enabled and not CONF.spice.agent_enabled): return self._get_guest_usb_tablet(os_type) else: - if CONF.pointer_model or CONF.libvirt.use_usb_tablet: + if CONF.pointer_model: # For backward compatibility We don't want to break # process of booting an instance if host is configured # to use USB tablet without VNC or SPICE and SPICE @@ -6414,14 +6404,14 @@ class LibvirtDriver(driver.ComputeDriver): tablet.type = "tablet" tablet.bus = "usb" else: - if CONF.pointer_model or CONF.libvirt.use_usb_tablet: + if CONF.pointer_model: # For backward compatibility We don't want to break # process of booting an instance if virtual machine mode # is not configured as HVM. - LOG.warning('USB tablet requested for guests by host ' - 'configuration. In order to accept this ' - 'request the machine mode should be ' - 'configured as HVM.') + LOG.warning( + 'USB tablet requested for guests by host configuration. ' + 'In order to accept this request the machine mode should ' + 'be configured as HVM.') else: raise exception.UnsupportedPointerModelRequested( model="usbtablet") diff --git a/releasenotes/notes/remove-deprecated-libvirt-use_usb_tablet-opt-b01058905240b8ce.yaml b/releasenotes/notes/remove-deprecated-libvirt-use_usb_tablet-opt-b01058905240b8ce.yaml new file mode 100644 index 0000000000..95e9a1bb64 --- /dev/null +++ b/releasenotes/notes/remove-deprecated-libvirt-use_usb_tablet-opt-b01058905240b8ce.yaml @@ -0,0 +1,6 @@ +--- +upgrade: + - | + The ``[libvirt] use_usb_tablet`` config option, which was first deprecated + in the 14.0.0 (Newton) release, has now been removed. It has been replaced + by the ``[DEFAULT] pointer_model`` config option.