<div dir="ltr">Hi All, <div><br></div><div>During tempest sprint in Montreal, as we were writing API tests, we noticed a behavior which we believed is an issue with the Neutron API (or perhaps documentation or both)</div><div>
<br></div><div>Let me start with a question: </div><div><br></div><div>If one executes an api to create/delete/update a neutron resource, what is the API's contract with the user? In other words, if a user gets a response code 204 for a delete operation or 201 for create operation - should they assume that the operation is successfully completed? </div>
<div><br></div><div>Based upon the API document, the answer seems to be YES. </div><div>Based upon the behavior answer seems to be MAYBE - what does this mean? </div><div>It simply means that Neutron DB has been updated, but, the back-ends may not have completed the operation. </div>
<div><br></div><div>This means, as an example, if a create operation is performed on a same resource immediately after it has been successfully deleted (i.e. 204 returned), there is a possibility that create operation may fail. </div>
<div><br></div><div>If the tests (or real life applications) are not written carefully, there is a possibility of intermittent failures, and they will become very apparent in a stress type situations. </div><div><br></div>
<div>We discussed this with some of Neutron core developers who were present in the room and they shared their wisdom on the subject. We decided that we put this out on the mailing list for the benefit of wider audience - and, hence the motivation of this email. </div>
<div><br></div><div>Are there any plans to address or document this? </div><div><br></div><div>-Sukhdev</div><div><br></div><div><br></div><div> <br></div></div>