<div dir="ltr"><div>Hello,<br><br>I would like to use this opportunity upcoming to decide things related to one of features that I am implementing.<br><br>To prevent lost-update problem, the user in the next Ironic API versions will have the ability to use the entity tag for each resource.<br>Thus, in order to send conditional request he has to have at least some representation on client side.<br><br>So there is a question on how to implement better storing resource (with ETAG) representation in ironic CLI (see <a href="https://review.openstack.org/#/c/381991/">https://review.openstack.org/#/c/381991/</a>)<br><br>The proposals are following, I will specify some in the spec:<br><br>- During update send get and afterwards update with current representation (descreases performance and changes the general behaviour, but hides the behaviour from user)<br><br>- Force user to do ``ironic node-show <node>`` and afterwards he will do update<br>putting entity tag manually<br><br>- Or he may be advised to do sth like<br><br>``node=$(ironic node-show <node>)`` <br><br>and then he can send sth like<br><br>``ironic node-update $node``and resource will call manager and update itself (doing it through the resource is the similar way in python-novaclient for some requests).<br><br>In these two last cases user is forced again to do additional actions to perform a simple command. Need to be discussed if it is a good way to change behaviour like that<br><br><br>- Cache resource representation at client side using e.g. requests-cache<br><br>- Cache resource representation at ironic api middleware (or contribute caching to pecan to make it available for other projects)<br><br>There are many conflicting opinions basically on this question, so need to be decided in which direction to go, and what is the most reasonable, standard, logical manner.<br><br>Thank you for comments in advance.<br><br><br><br>Best regards, <br>Galyna Zholtkevych<br>Mirantis Inc<br><br>IRC nickname:galyna</div></div>