← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1470363] [NEW] pci_passthrough_whitelist should support single quotes for keys and values

 

Public bug reported:

When having the following in /etc/nova/nova.conf

pci_passthrough_whitelist={'devname':'enp5s0f1',
'physical_network':'physnet2'}

Nova compute fails to start and I get the error:

2015-07-01 09:48:03.610 4791 ERROR nova.openstack.common.threadgroup [req-b86e5da5-a24e-4eb6-bebd-0ec36fc08021 - - - - -] Invalid PCI devices Whitelist config Invalid entry: '{'devname':'enp5s0f1', 'physical_network':'physnet2'}'
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 145, in wait
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     x.wait()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 47, in wait
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self.thread.wait()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 175, in wait
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self._exit_event.wait()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return hubs.get_hub().switch()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 294, in switch
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self.greenlet.switch()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     result = function(*args, **kwargs)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 497, in run_service
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     service.start()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/service.py", line 183, in start
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.manager.pre_start_hook()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1291, in pre_start_hook
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.update_available_resource(nova.context.get_admin_context())
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6246, in update_available_resource
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     rt = self._get_resource_tracker(nodename)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 715, in _get_resource_tracker
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     nodename)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 78, in __init__
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.pci_filter = pci_whitelist.get_pci_devices_filter()
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 109, in get_pci_devices_filter
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return PciHostDevicesWhiteList(CONF.pci_passthrough_whitelist)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 89, in __init__
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.specs = self._parse_white_list_from_config(whitelist_spec)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 56, in _parse_white_list_from_config
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     reason=_("Invalid entry: '%s'") % jsonspec)
2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup PciConfigInvalidWhitelist: Invalid PCI devices Whitelist config Invalid entry: '{'devname':'enp5s0f1', 'physical_network':'physnet2'}'


When using double quotes there is no problem:
pci_passthrough_whitelist={"devname":"enp5s0f1", "physical_network":"physnet2"}

Version
======
python-nova-2015.1.0-13.el7ost.noarch

** Affects: nova
     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/1470363

Title:
  pci_passthrough_whitelist should support single quotes for keys and
  values

Status in OpenStack Compute (Nova):
  New

Bug description:
  When having the following in /etc/nova/nova.conf

  pci_passthrough_whitelist={'devname':'enp5s0f1',
  'physical_network':'physnet2'}

  Nova compute fails to start and I get the error:

  2015-07-01 09:48:03.610 4791 ERROR nova.openstack.common.threadgroup [req-b86e5da5-a24e-4eb6-bebd-0ec36fc08021 - - - - -] Invalid PCI devices Whitelist config Invalid entry: '{'devname':'enp5s0f1', 'physical_network':'physnet2'}'
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 145, in wait
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     x.wait()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 47, in wait
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self.thread.wait()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 175, in wait
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self._exit_event.wait()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return hubs.get_hub().switch()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 294, in switch
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return self.greenlet.switch()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     result = function(*args, **kwargs)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 497, in run_service
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     service.start()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/service.py", line 183, in start
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.manager.pre_start_hook()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1291, in pre_start_hook
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.update_available_resource(nova.context.get_admin_context())
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6246, in update_available_resource
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     rt = self._get_resource_tracker(nodename)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 715, in _get_resource_tracker
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     nodename)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 78, in __init__
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.pci_filter = pci_whitelist.get_pci_devices_filter()
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 109, in get_pci_devices_filter
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     return PciHostDevicesWhiteList(CONF.pci_passthrough_whitelist)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 89, in __init__
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     self.specs = self._parse_white_list_from_config(whitelist_spec)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/site-packages/nova/pci/whitelist.py", line 56, in _parse_white_list_from_config
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup     reason=_("Invalid entry: '%s'") % jsonspec)
  2015-07-01 09:48:03.610 4791 TRACE nova.openstack.common.threadgroup PciConfigInvalidWhitelist: Invalid PCI devices Whitelist config Invalid entry: '{'devname':'enp5s0f1', 'physical_network':'physnet2'}'

  
  When using double quotes there is no problem:
  pci_passthrough_whitelist={"devname":"enp5s0f1", "physical_network":"physnet2"}

  Version
  ======
  python-nova-2015.1.0-13.el7ost.noarch

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


Follow ups

References