If we run the NVP plugin with a shiny new version of NVP we might get stacktraces like the following:
Traceback (most recent call last):
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 84, in resource
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource result = method(request=request, **args)
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 405, in create
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource obj = obj_creator(request.context, **kwargs)
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/plugins/nicira/NeutronPlugin.py", line 1577, in create_router
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource nexthop)
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/plugins/nicira/nvplib.py", line 90, in dispatch_version_dependent_function
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource func = (NVPLIB_FUNC_DICT[func_name][v.major].get(v.minor) or
2013-08-27 10:39:58.131 8604 TRACE neutron.api.v2.resource KeyError: NN
Where NN is the version major that's missing from NVPLIB_FUNC_DICT. Currently we support 2.x and 3.x. But what happens when 4 or 5 come along? We can decide to assume the plugin is not supported on newer versions of the NVP platform, and fail gracefully, or we can fall back on a known version in the hope that backward compatibility is preserved. Either way, it'd be good not to leave this stacktrace as it is.
Fix proposed to branch: master /review. openstack. org/43941
Review: https:/