[openstack-dev] [Neutron] Bump the RPC version required for port_update - AgentNotifierApi

Russell Bryant rbryant at redhat.com
Mon Apr 27 16:20:48 UTC 2015

On 04/27/2015 12:09 PM, Rossella Sblendido wrote:
> Hello all,
> I am working at the blueprint "Restructure the L2 agent" [1] .
> One of the work item of this blueprint is to modify the port_update
> message to include the attributes of the ports that were modified. This
> is implemented in this patch [2] .
> The client side of the RPC is in AgentNotifierApi , the server side is
> implemented in the L2 agent. A problem arises since now the vendor
> plugins are out of the tree. If they use a custom L2 agent (like for
> example the Ryu plugin) when the patch is merged they will get an
> UnsupportedVersion error if the version is not bumped in their agent too.
> I am writing this email as heads up and also to ask a question. The
> port_update signature on the server side is like this:
> def port_update(self, context, **kwargs)
> kwargs is used, no specific parameter is specified. If a new key is
> added like in this case, the minor version of the RPC should be bumped
> anyway? I think so.

Yes, if a new parameter is added, the minor version should be bumped.

IMO, it should just be done in Neutron and the backend repos will have
to deal with it.  Ideally there is CI in place that catches the API
change and they will adapt quickly.  That's just the reality of having
the repos split up like this.

The alternative is to implement a "version_cap" option in Neutron that
lets an administrator set a max version of messages allowed to be sent.
 Nova has a set of options like this for use during live upgrades.  The
client side has to check to see if it's allowed to send the newest
version and if not, it falls back to an older version it knows how to
send.  This adds complexity for both development and operations, so it'd
be better to avoid it unless really necessary.

Russell Bryant

More information about the OpenStack-dev mailing list