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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to