DBNotAllowed raised if trying to create network with VlanManager from nova-manage network create
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Dan Smith |
Bug Description
Steps to reproduce:
- Setup a devstack from scratch using nova-network
- delete the default network
# nova-manage network delete 10.0.0.0/24
- change nova.conf to use VlanManager:
network_manager = nova.network.
- restart nova-network
- create a new network with a vlan id:
nova-manage network create --label=network --fixed_range_v4 10.0.1.0/24 --vlan 42
- boot a vm on the cirros image:
nova --debug boot --flavor 1 --image 0b969819-
Expected behavior: The new VM goes to Active state
Actual behavior: The new VM goes to Error state, also nova-network log has this exception:
a7-abaf-
2014-04-07 15:32:02.137 ERROR nova.network [req-87a65a9e-
result = function(*args, **kwargs)
File "/usr/local/
yield lambda: self._dispatch_
File "/usr/local/
incoming.
File "/usr/local/
return self._do_
File "/usr/local/
result = getattr(endpoint, method)(ctxt, **new_args)
File "/opt/stack/
**kwargs)
File "/opt/stack/
requested_
File "/opt/stack/
networks = self.db.
File "/opt/stack/
return IMPL.project_
File "/opt/stack/
stacktrace = "".join(
I think the exception was introduced by this patch that disables direct database access from nova-network: https:/
However, VlanManager still relies on database access for the given scenario, and there are 3 other places in manager.py that rely on direct db access:
devuser@
1389: vifs = self.db.
1446: vif = self.db.
1837: networks = self.db.
1914: not self.db.
Therefore, I cannot currently use conductor with nova-network VlanManager, which is a regression from Havana.
===
devstack defaults the network_manager to FlatDHCPManager so we don't test VlanManager in the gate.
tags: | removed: icehouse-rc-potential |
Changed in nova: | |
milestone: | icehouse-rc2 → 2014.1 |
Patch is here: https:/ /review. openstack. org/#/c/ 86190/