← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1866106] Re: Can't set "pointer_model = None" in nova.conf

 

The problem is in oslo.config I think right here:

https://github.com/openstack/oslo.config/blob/20a7cee3e3019d60c4b367bb76922a1db41d1750/oslo_config/types.py#L142

That's coercing the value None to a string 'None' so it fails. According
to Ben Nemec:

(02:13:48 PM) bnemec: The only way for a config opt to have a None value is for that to be the default and for the opt to be unset.
(02:14:14 PM) bnemec: So completely absent from the file, not something like "opt="

But that seems like a bug because I would think that code could be
smarter about not coercing the value if the value is None, None is a
valid choice and a default is set (so you need to override the default).

** Also affects: oslo.config
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1866106

Title:
  Can't set "pointer_model = None" in nova.conf

Status in OpenStack Compute (nova):
  Confirmed
Status in oslo.config:
  New

Bug description:
  Description
  ===========

  nova.conf includes option pointer_model. The help text in the config
  has 2 "possible values" sections (copied below) specifying either
  "None" or "<None>" as correct values. Neither of these is accepted by
  Nova. Here are the error messages from nova-compute.log:

  2020-03-03 11:05:17.233 228915 ERROR nova ConfigFileValueError: Value
  for option pointer_model is not valid: Valid values are [None,
  ps2mouse, usbtablet], but found '<None>'

  2020-03-03 11:06:24.761 229290 ERROR nova ConfigFileValueError: Value
  for option pointer_model is not valid: Valid values are [None,
  ps2mouse, usbtablet], but found 'None'

  #
  # Generic property to specify the pointer type.
  #
  # Input devices allow interaction with a graphical framebuffer. For
  # example to provide a graphic tablet for absolute cursor movement.
  #
  # If set, the 'hw_pointer_model' image property takes precedence over
  # this configuration option.
  #
  # Possible values:
  #
  # * None: Uses default behavior provided by drivers (mouse on PS2 for
  #         libvirt x86)
  # * ps2mouse: Uses relative movement. Mouse connected by PS2
  # * usbtablet: Uses absolute movement. Tablet connect by USB
  #
  # Related options:
  #
  # * usbtablet must be configured with VNC enabled or SPICE enabled and SPICE
  #   agent disabled. When used with libvirt the instance mode should be
  #   configured as HVM.
  #   (string value)
  # Possible values:
  # <None> - <No description provided>
  # ps2mouse - <No description provided>
  # usbtablet - <No description provided>
  #pointer_model = usbtablet

  
  Steps to reproduce
  ==================

  On an openstack hypervisor:
  1. Edit nova.conf and change line "#pointer_model = usbtablet" to either "pointer_model = None" or "pointer_model = <None>"
  2. Restart nova-compute service
  3. Tail nova-compute.log

  Expected result
  ===============

  Nova runs without errors and does not load the USB driver.

  Actual result
  =============

  Nova throws the error described above.

  Environment
  ===========

  1. Openstack version is Rocky:

  root@us01odc-p01-hv227:~#  dpkg -l | grep nova
  ii  nova-common                           2:18.2.1-0ubuntu1~cloud4                        all          OpenStack Compute - common files
  ii  nova-compute                          2:18.2.1-0ubuntu1~cloud4                        all          OpenStack Compute - compute node base
  ii  nova-compute-kvm                      2:18.2.1-0ubuntu1~cloud4                        all          OpenStack Compute - compute node (KVM)
  ii  nova-compute-libvirt                  2:18.2.1-0ubuntu1~cloud4                        all          OpenStack Compute - compute node libvirt support
  ii  python-nova                           2:18.2.1-0ubuntu1~cloud4                        all          OpenStack Compute Python 2 libraries
  ii  python-novaclient                     2:11.0.0-0ubuntu1~cloud0                        all          client library for OpenStack Compute API - Python 2.7

  2. Hypervisor: libvirt+KVM

  root@us01odc-p01-hv227:~# libvirtd --version
  libvirtd (libvirt) 4.0.0

  root@us01odc-p01-hv227:~# kvm --version
  QEMU emulator version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.21)
  Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

  3. Storage type: local LVM

  root@us01odc-p01-hv227:~# lvm version
    LVM version:     2.02.176(2) (2017-11-03)
    Library version: 1.02.145 (2017-11-03)
    Driver version:  4.39.0
    Configuration:   ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --exec-prefix= --bindir=/bin --libdir=/lib/x86_64-linux-gnu --sbindir=/sbin --with-usrlibdir=/usr/lib/x86_64-linux-gnu --with-optimisation=-O2 --with-cache=internal --with-clvmd=corosync --with-cluster=internal --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --with-default-pid-dir=/run --with-default-run-dir=/run/lvm --with-default-locking-dir=/run/lock/lvm --with-thin=internal --with-thin-check=/usr/sbin/thin_check --with-thin-dump=/usr/sbin/thin_dump --with-thin-repair=/usr/sbin/thin_repair --enable-applib --enable-blkid_wiping --enable-cmdlib --enable-cmirrord --enable-dmeventd --enable-dbus-service --enable-lvmetad --enable-lvmlockd-dlm --enable-lvmlockd-sanlock --enable-lvmpolld --enable-notify-dbus --enable-pkgconfig --enable-readline --enable-udev_rules --enable-udev_sync

  3. Networking: neutron

  Logs & Configs
  ==============

  nova-compute.log:
  2020-03-04 10:48:34.774 116036 ERROR nova
  2020-03-04 10:48:36.616 116046 INFO os_vif [-] Loaded VIF plugins: ovs, linux_bridge
  2020-03-04 10:48:36.688 116046 WARNING oslo_config.cfg [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Deprecated: Option "use_neutron" from group "DEFAULT" is deprecated for removal (
  nova-network is deprecated, as are any related configuration options.
  ).  Its value may be silently ignored in the future.
  2020-03-04 10:48:36.703 116046 WARNING oslo_config.cfg [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Deprecated: Option "enable" from group "cells" is deprecated for removal (Cells v1 is being replaced with Cells v2.).  Its value may be silently ignored in the future.
  2020-03-04 10:48:36.721 116046 INFO nova.virt.driver [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Loading compute driver 'libvirt.LibvirtDriver'
  2020-03-04 10:48:36.779 116046 WARNING oslo_config.cfg [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Deprecated: Option "firewall_driver" from group "DEFAULT" is deprecated for removal (
  nova-network is deprecated, as are any related configuration options.
  ).  Its value may be silently ignored in the future.
  2020-03-04 10:48:36.783 116046 WARNING os_brick.initiator.connectors.remotefs [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Connection details not present. RemoteFsClient may not initialize properly.
  2020-03-04 10:48:36.786 116046 CRITICAL nova [req-20c7f0dd-706b-41fa-b374-0b264184c2c4 - - - - -] Unhandled error: ConfigFileValueError: Value for option pointer_model is not valid: Valid values are [None, ps2mouse, usbtablet], but found 'None'
  2020-03-04 10:48:36.786 116046 ERROR nova Traceback (most recent call last):
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/bin/nova-compute", line 10, in <module>
  2020-03-04 10:48:36.786 116046 ERROR nova     sys.exit(main())
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/nova/cmd/compute.py", line 59, in main
  2020-03-04 10:48:36.786 116046 ERROR nova     service.wait()
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/nova/service.py", line 460, in wait
  2020-03-04 10:48:36.786 116046 ERROR nova     _launcher.wait()
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_service/service.py", line 392, in wait
  2020-03-04 10:48:36.786 116046 ERROR nova     status, signo = self._wait_for_exit_or_signal()
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_service/service.py", line 367, in _wait_for_exit_or_signal
  2020-03-04 10:48:36.786 116046 ERROR nova     self.conf.log_opt_values(LOG, logging.DEBUG)
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_config/cfg.py", line 3020, in log_opt_values
  2020-03-04 10:48:36.786 116046 ERROR nova     _sanitize(opt, getattr(self, opt_name)))
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_config/cfg.py", line 2636, in __getattr__
  2020-03-04 10:48:36.786 116046 ERROR nova     return self._get(name)
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_config/cfg.py", line 3070, in _get
  2020-03-04 10:48:36.786 116046 ERROR nova     value, loc = self._do_get(name, group, namespace)
  2020-03-04 10:48:36.786 116046 ERROR nova   File "/usr/lib/python2.7/dist-packages/oslo_config/cfg.py", line 3120, in _do_get
  2020-03-04 10:48:36.786 116046 ERROR nova     % (opt.name, str(ve)))
  2020-03-04 10:48:36.786 116046 ERROR nova ConfigFileValueError: Value for option pointer_model is not valid: Valid values are [None, ps2mouse, usbtablet], but found 'None'
  2020-03-04 10:48:36.786 116046 ERROR nova

  nova.conf:

  root@us01odc-p01-hv227:~# cat /etc/nova/nova.conf|grep -v ^#|grep -v ^$
  [DEFAULT]
  lock_path = /var/lock/nova
  state_path = /var/lib/nova
  default_ephemeral_format = ext3
  reserved_host_disk_mb = 62914
  reserved_host_memory_mb = 16384
  reserved_host_cpus = 2
  cpu_allocation_ratio = 1.0
  ram_allocation_ratio = 1.0
  my_ip = 10.195.50.242
  use_neutron = true
  firewall_driver = nova.virt.firewall.NoopFirewallDriver
  debug = false
  verbose = false
  transport_url = rabbit://openstack:<pwd>@us01odc-p01-ctrl1.internal.synopsys.com,openstack:<pwd>@us01odc-p01-ctrl2.internal.synopsys.com,openstack:<pwd>@us01odc-p01-ctrl3.internal.synopsys.com
  auth_strategy = keystone
  [api]
  auth_strategy = keystone
  [api_database]
  connection = sqlite:////var/lib/nova/nova_api.sqlite
  [barbican]
  [cache]
  [cells]
  enable = False
  [cinder]
  [compute]
  [conductor]
  [console]
  [consoleauth]
  [cors]
  [database]
  connection = sqlite:////var/lib/nova/nova.sqlite
  [devices]
  [ephemeral_storage_encryption]
  [filter_scheduler]
  [glance]
  api_server = http://us01odc-p01-lb.internal.synopsys.com:9292
  [guestfs]
  [healthcheck]
  [hyperv]
  [ironic]
  [key_manager]
  [keystone]
  [keystone_authtoken]
  auth_url = http://us01odc-p01-lb.internal.synopsys.com:5001/v3
  memcached_servers = us01odc-p01-ctrl1.internal.synopsys.com:11211,us01odc-p01-ctrl2.internal.synopsys.com:11211,us01odc-p01-ctrl3.internal.synopsys.com:11211
  auth_type = password
  project_domain_name = Default
  user_domain_name = Default
  project_name = service
  username = nova
  password = <pwd>
  [libvirt]
  virt_type = kvm
  cpu_mode = host-passthrough
  [matchmaker_redis]
  [metrics]
  [mks]
  [neutron]
  url = http://us01odc-p01-lb.internal.synopsys.com:29696
  service_metadata_proxy = True
  metadata_proxy_shared_secret = <pwd>
  auth_type = password
  auth_url = http://us01odc-p01-lb.internal.synopsys.com:5001/v3
  project_name = service
  project_domain_name = default
  username = neutron
  user_domain_name = default
  password = <pwd>
  region_name = us01-p01
  [notifications]
  [osapi_v21]
  [oslo_concurrency]
  lock_path = /var/lib/nova/tmp
  [oslo_messaging_amqp]
  [oslo_messaging_kafka]
  [oslo_messaging_notifications]
  [oslo_messaging_rabbit]
  [oslo_messaging_zmq]
  [oslo_middleware]
  [oslo_policy]
  [pci]
  [placement]
  os_region_name = openstack
  auth_type = password
  auth_url = http://us01odc-p01-lb.internal.synopsys.com:5001/v3
  project_name = service
  project_domain_name = Default
  username = placement
  user_domain_name = Default
  password = <pwd>
  region_name = us01-p01
  [placement_database]
  [powervm]
  [profiler]
  [quota]
  [rdp]
  [remote_debug]
  [scheduler]
  [serial_console]
  [service_user]
  [spice]
  [upgrade_levels]
  [vault]
  [vendordata_dynamic_auth]
  [vmware]
  [vnc]
  enabled = True
  server_listen = 0.0.0.0
  server_proxyclient_address = 10.195.50.242
  novncproxy_base_url = http://us01odc-p01-lb.internal.synopsys.com:16080/vnc_auto.html
  [workarounds]
  [wsgi]
  [xenserver]
  [xvp]
  [zvm]

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1866106/+subscriptions


References