Hello,
I am trying to setup an Openstack Queens with multi-hypervisor environment (KVM + ESXi).
I have been following the OVSvAPP solution described in https://wiki.openstack.org/wiki/Neutron/Networking-vSphere.
The problem is that I cannot get past this error no matter what type of OVSvAPP config, the devstack installation fails when trying to start-up the OVSvAPP agent, below is the error log:
stack@ovsvapp:~$ python /usr/local/bin/neutron-ovsvapp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ovsvapp_agent.ini
/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
""")
INFO neutron.common.config [-] Logging enabled!
INFO neutron.common.config [-] /usr/local/bin/neutron-ovsvapp-agent version 13.0.0.0rc2.dev121
DEBUG neutron.common.config [-] command line: /usr/local/bin/neutron-ovsvapp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ovsvapp_agent.ini {{(pid=1754) setup_logging /opt/stack/neutron/neutron/common/config.py:103}}
INFO networking_vsphere.service [-] Loading agent: networking_vsphere.agent.ovsvapp_agent.OVSvAppAgent.
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_create 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_update 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_delete 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_create 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_update 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_delete 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn n=1 command(idx=0): BridgeExistsCommand(name=br-int) {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:84}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Transaction caused no change {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:121}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn n=1 command(idx=0): DbAddCommand(column=protocols, record=br-int, values=(['OpenFlow10', 'OpenFlow11', 'OpenFlow12', 'OpenFlow13', 'OpenFlow14'],), table=Bridge) {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:84}}
ERROR ovsdbapp.backend.ovs_idl.transaction [-] Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/connection.py", line 99, in run
txn.results.put(txn.do_commit())
File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 86, in do_commit
command.run_idl(txn)
File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 151, in run_idl
idlutils.db_replace_record(value))
File "/usr/local/lib/python2.7/dist-packages/ovs/db/idl.py", line 897, in addvalue
column_value.add(key)
TypeError: unhashable type: 'list'
Devstack local.conf used :
[root@ovsvapp2 git]# cat /opt/stack/devstack/local.conf
[[local|localrc]]
GIT_BASE=${GIT_BASE:-https://git.openstack.org}
enable_plugin networking-vsphere https://github.com/openstack/networking-vsphere
OVSVAPP_MODE=agent
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovsvapp
OVSVAPP_VCENTER_IP=10.10.5.152
<email address hidden>
OVSVAPP_VCENTER_PASSWORD=Changeme
OVSVAPP_ESX_HOSTNAME=10.10.5.153
OVSVAPP_CLUSTER_DVS_MAPPING=TOCVCD01/tocesx01.emslabw3.local/Cluster:DSwitch2
OVSVAPP_TENANT_NETWORK_TYPES=vxlan
OVSVAPP_LOCAL_IP=10.10.5.170
OVSVAPP_PHYSICAL_BRIDGE=br-ethx
OVSVAPP_PHYSICAL_INTERFACE=ens192
OVSVAPP_BRIDGE_MAPPINGS=physnet1:br-ethx
OVSVAPP_TRUNK_INTERFACE=ens256
TUNNEL_BRIDGE=br-tun
SECURITY_BRIDGE=br-sec
OVSVAPP_SECURITY_BRIDGE_MAPPINGS=br-sec:ens256
OVSVAPP_AGENT_BINARY=/usr/local/bin/neutron-ovsvapp-agent
OVSVAPP_CONF_FILENAME=ovsvapp_agent.ini
VMWARE_DVS_UPLINK_MAPPING=physnet2:DSwitch-DVUplinks-115
VMWARE_DVS_ENABLE_SG=True
VMWARE_DVS_FW_DRIVER=networking_vsphere.agent.firewalls.vcenter_firewall.DVSFirewallDriver
disable_service q-agt
Latest openvswitch-2.9.0 and ovsdbapp 0.10.1 used.
Please note that the protocols can be added manually like below command:
ovs-vsctl set bridge br-int protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14.
I don’t think the VAPP ML2 config is in anyway affecting this error, since it’s reproduceable with : python /usr/local/bin/neutron-ovsvapp-agent (without referencing the config).
Hope that you can help .
Regards,
Cristian