<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Jul 27, 2016, at 1:26 PM, Hongbin Lu <<a href="mailto:hongbin.lu@huawei.com" class="">hongbin.lu@huawei.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">Here is the guideline to evaluate an API change:<span class="Apple-converted-space"> </span><a href="http://specs.openstack.org/openstack/api-wg/guidelines/evaluating_api_changes.html" style="color: purple; text-decoration: underline;" class="">http://specs.openstack.org/openstack/api-wg/guidelines/evaluating_api_changes.html</a><span class="Apple-converted-space"> </span>.
 In particular, I highlight the followings:<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">"""<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">The following types of changes are acceptable when conditionally added as a new API extension:<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">* Adding an optional property to a resource representation which may be supplied by clients, assuming the API previously would ignore this property.<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">* …<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">The following types of changes are generally not considered acceptable:<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">* A change such that a request which was successful before now results in an error response<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">* Changing the semantics of a property in a resource representation which may be supplied by clients.<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">* …<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">"""<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">Above all, as Ton mentioned, just adding a new option (--rollback) looks OK. However, the implementation should not break the existing behaviors. In particular,
 the proposed patch (<a href="https://review.openstack.org/#/c/343478/4/magnum/api/controllers/v1/bay.py" style="color: purple; text-decoration: underline;" class="">https://review.openstack.org/#/c/343478/4/magnum/api/controllers/v1/bay.py</a>) changes the
 request parameters and their types, which is considered to be unacceptable (unless bumping the microversion). To deal with that, I think there are two options:<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">1. Modify the proposed patch to make it backward-compatible. In particular, it should keep the existing properties as is (don’t change their types and semantics).
 The new option should be optional and it should be ignored if clients are sending the old requests.</span></div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
Use the #1 approach above, please.</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""><o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">2. Keep the proposed patch as is, but bumping the microversion. You need to wait for this patch [1] to merge, and reference the microversion guide [1] to bump
 the version. In addition, it is highly recommended to follow the standard deprecation policy [2]. That means i) print a deprecated warning if old APIs are used, ii) document how to migrate from old APIs to new APIs, and iii) remove the old APIs after the deprecation
 period.</span></div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
You can do this as well, but please don’t consider this an OR choice.</div>
<div class=""><br class="">
</div>
<div class="">Adrian</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""><o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">[1]<span class="Apple-converted-space"> </span><a href="https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html" style="color: purple; text-decoration: underline;" class="">https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html</a><o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">[2]<span class="Apple-converted-space"> </span><a href="https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html" style="color: purple; text-decoration: underline;" class="">https://governance.openstack.org/reference/tags/assert_follows-standard-deprecation.html</a><o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">Best regards,<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">Hongbin<o:p class=""></o:p></span></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""> </span></div>
<div style="border-style: none none none solid; border-left-color: blue; border-left-width: 1.5pt; padding: 0cm 0cm 0cm 4pt;" class="">
<div class="">
<div style="border-style: solid none none; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding: 3pt 0cm 0cm;" class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<b class=""><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif;" class="">From:</span></b><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif;" class=""><span class="Apple-converted-space"> </span>Ton Ngo [<a href="mailto:ton@us.ibm.com" style="color: purple; text-decoration: underline;" class="">mailto:ton@us.ibm.com</a>]<span class="Apple-converted-space"> </span><br class="">
<b class="">Sent:</b><span class="Apple-converted-space"> </span>July-27-16 9:36 AM<br class="">
<b class="">To:</b><span class="Apple-converted-space"> </span>OpenStack Development Mailing List (not for usage questions)<br class="">
<b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [openstack-dev] [magnum] Support for bay rollback may break magnum API backward compatibility<o:p class=""></o:p></span></div>
</div>
</div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<o:p class=""> </o:p></div>
<p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
Hi Wenzhi,<br class="">
Looks like you are adding the new --rollback option to bay-update. If the user does not specify this new option,<span class="Apple-converted-space"> </span><br class="">
then bay-update behaves the same as before; in other words, if it fails, then the state of the bay will be left<br class="">
in the partially updated mode. Is this correct? If so, this does change the API, but does not seem to break<span class="Apple-converted-space"> </span><br class="">
backward compatibility.<br class="">
Ton Ngo,<br class="">
<br class="">
<span id="cid:image001.gif@01D1E81A.F1E6E610" class=""><image001.gif></span><span style="color: rgb(66, 66, 130);" class="">"Wenzhi Yu (yuywz)" ---07/27/2016 04:13:07 AM---Hi folks, I am working on a patch [1] to add bay rollback machanism on update failure.
 But it seems</span><br class="">
<br class="">
<span style="font-size: 10pt; color: rgb(95, 95, 95);" class="">From:<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt;" class="">"Wenzhi Yu (yuywz)" <<a href="mailto:wenzhi_yu@163.com" style="color: purple; text-decoration: underline;" class="">wenzhi_yu@163.com</a>></span><br class="">
<span style="font-size: 10pt; color: rgb(95, 95, 95);" class="">To:<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt;" class="">"openstack-dev" <<a href="mailto:openstack-dev@lists.openstack.org" style="color: purple; text-decoration: underline;" class="">openstack-dev@lists.openstack.org</a>></span><br class="">
<span style="font-size: 10pt; color: rgb(95, 95, 95);" class="">Date:<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt;" class="">07/27/2016 04:13 AM</span><br class="">
<span style="font-size: 10pt; color: rgb(95, 95, 95);" class="">Subject:<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt;" class="">[openstack-dev] [magnum] Support for bay rollback may break magnum API backward compatibility</span><o:p class=""></o:p></p>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">
<hr size="2" width="100%" noshade="" align="left" style="color: rgb(128, 145, 165);" class="">
</div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">
<br class="">
<br class="">
<br class="">
<span style="font-size: 13.5pt;" class="">Hi folks,</span><br class="">
<br class="">
<span style="font-size: 13.5pt;" class="">I am working on a patch [1] to add bay rollback machanism on update failure. But it seems to break magnum API</span><br class="">
<span style="font-size: 13.5pt;" class="">backward compatibility.</span><br class="">
<br class="">
<span style="font-size: 13.5pt; color: rgb(0, 0, 17);" class="">I'm not sure how to deal with this, can you please give me your suggestion? Thanks!</span><br class="">
<br class="">
<span style="font-size: 13.5pt; color: rgb(0, 0, 17);" class="">[1]<a href="https://review.openstack.org/#/c/343478/" style="color: purple; text-decoration: underline;" class="">https://review.openstack.org/#/c/343478/</a></span><br class="">
<br class="">
<span style="font-family: Verdana, sans-serif; color: silver;" class="">2016-07-27</span><o:p class=""></o:p></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">
<hr size="2" width="100%" align="left" class="">
</div>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; font-size: 12pt; font-family: 'Times New Roman', serif;">
<br class="">
<span style="font-family: Verdana, sans-serif; color: silver;" class="">Best Regards,</span><br class="">
<span style="font-family: Verdana, sans-serif; color: silver;" class="">Wenzhi Yu (yuywz)</span><tt style="font-family: 'Courier New';" class=""><span style="font-size: 10pt;" class="">__________________________________________________________________________</span></tt><span style="font-size: 10pt; font-family: 'Courier New';" class=""><br class="">
<tt style="font-family: 'Courier New';" class="">OpenStack Development Mailing List (not for usage questions)</tt><br class="">
<tt style="font-family: 'Courier New';" class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" style="color: purple; text-decoration: underline;" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a></tt><br class="">
<tt style="font-family: 'Courier New';" class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" style="color: purple; text-decoration: underline;" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt><br class="">
</span><br class="">
<br class="">
<o:p class=""></o:p></p>
</div>
</div>
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">__________________________________________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">OpenStack
 Development Mailing List (not for usage questions)</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Unsubscribe:<span class="Apple-converted-space"> </span></span><a href="mailto:OpenStack-dev-request@lists.openstack.org" style="color: purple; text-decoration: underline; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">OpenStack-dev-request@lists.openstack.org</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">?subject:unsubscribe</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" style="color: purple; text-decoration: underline; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
</div>
</blockquote>
</div>
<br class="">
</body>
</html>