Activity log for bug #1317300

Date Who What changed Old value New value Message
2014-05-07 23:05:16 aeva black bug added bug
2014-05-07 23:06:38 aeva black ironic: importance Undecided Medium
2014-05-07 23:06:41 aeva black ironic: status New Triaged
2014-05-07 23:13:13 aeva black description At the moment, ironic's rpcapi module is specifying a target (minimum) RPC version of 1.0 -- however, none of the methods added after 1.0 indicate in which minor version they were added. Thus, this module believes all methods are available in any version of the server greater than 1.0, which is clearly untrue. They're all available in the _current_ version. Additionally, certain rpcapi version changes prior to 1.15 included backwards-incompatible changes and were allowed in anyway, because they were early in Ironic's evolution. After reading http://docs.openstack.org/developer/oslo.messaging/target.html#target-versions I'm fairly sure that we're currently Doing It Wrong. As the project is growing up, it's time we start Doing It Right. So ... Nova uses a much more sophisticated approach to versioning RPC on the client side with both a min and max version, including specifying the minor version that a method was added in, so the client knows not to send it to servers with a minor version less than that. I think we should do something similar (if not the same), starting with pinning the minimum RPC version supported by the client to 1.15 At the moment, ironic's rpcapi module is specifying a target (minimum) RPC version of 1.0 -- however, none of the methods added after 1.0 indicate in which minor version they were added. Thus, this module believes all methods are available in any version of the server greater than 1.0, which is clearly untrue. They're all available in the _current_ version. Additionally, certain rpcapi version changes prior to 1.15 included backwards-incompatible changes and were allowed in anyway, because they were early in Ironic's evolution. After reading http://docs.openstack.org/developer/oslo.messaging/target.html#target-versions I'm fairly sure that we're currently Doing It Wrong. As the project is growing up, it's time we start Doing It Right. So ... Nova uses a much more sophisticated approach to versioning RPC on the client side with both a min and max version, including specifying the minor version that a method was added in, so the client knows not to send it to servers with a minor version less than that. I think we should do something similar (if not the same), starting with pinning the minimum RPC version supported by the client to 1.15, and then go on to add proper version tagging on future methods, and enforcing a policy of non-backwards-incompatible changes to existing methods without a major version bump.
2014-05-08 15:46:30 OpenStack Infra ironic: status Triaged In Progress
2014-05-08 15:46:30 OpenStack Infra ironic: assignee Ruby Loo (rloo)
2014-05-08 15:59:21 Ruby Loo ironic: assignee Ruby Loo (rloo)
2014-05-08 15:59:44 Ruby Loo ironic: assignee Devananda van der Veen (devananda)
2014-05-20 08:43:21 Lucas Alvares Gomes ironic: assignee Devananda van der Veen (devananda) Lucas Alvares Gomes (lucasagomes)
2014-08-11 16:22:11 Lucas Alvares Gomes ironic: status In Progress Fix Committed
2014-09-04 16:19:44 Thierry Carrez ironic: status Fix Committed Fix Released
2014-09-04 16:19:44 Thierry Carrez ironic: milestone juno-3
2014-10-16 09:59:09 Thierry Carrez ironic: milestone juno-3 2014.2