)]}'
{"id":"openstack%2Fapi-sig~301846","triplet_id":"openstack%2Fapi-sig~master~Iacb7cb7cddef32b3cabd371255ae8443ce5beb80","project":"openstack/api-sig","branch":"master","topic":"cd/etags","hashtags":[],"change_id":"Iacb7cb7cddef32b3cabd371255ae8443ce5beb80","subject":"Description of how to use etags to avoid lost updates","status":"MERGED","created":"2016-04-05 17:31:04.000000000","updated":"2016-05-26 16:09:39.000000000","submitted":"2016-05-26 16:09:39.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"308db0b9f4be48b0baca53134167819d2b20c99e","_number":301846,"virtual_id_number":301846,"owner":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},{"value":0,"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},{"value":2,"date":"2016-05-26 16:09:39.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},{"value":0,"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":0,"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},{"value":0,"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"recommended":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":1,"date":"2016-05-19 16:59:38.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},{"value":0,"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2016-05-19 17:21:12.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},{"value":1,"date":"2016-04-18 14:49:30.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":1,"date":"2016-04-18 14:54:47.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":1,"date":"2016-04-19 16:40:03.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},{"value":2,"date":"2016-05-19 16:15:06.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},{"value":0,"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},{"value":0,"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":0,"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},{"value":1,"date":"2016-05-26 16:03:14.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-04-05 17:37:15.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2016-04-07 08:26:37.000000000","updated_by":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"reviewer":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"state":"REVIEWER"},{"updated":"2016-04-07 14:35:58.000000000","updated_by":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"reviewer":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"state":"REVIEWER"},{"updated":"2016-04-18 14:49:30.000000000","updated_by":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"reviewer":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"state":"REVIEWER"},{"updated":"2016-04-18 14:54:47.000000000","updated_by":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"reviewer":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"state":"REVIEWER"},{"updated":"2016-04-19 16:40:03.000000000","updated_by":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"reviewer":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"state":"REVIEWER"},{"updated":"2016-05-19 16:59:38.000000000","updated_by":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"reviewer":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"state":"REVIEWER"},{"updated":"2016-05-19 17:21:12.000000000","updated_by":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"reviewer":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"state":"REVIEWER"},{"updated":"2016-05-26 16:03:14.000000000","updated_by":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"reviewer":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"state":"REVIEWER"},{"updated":"2016-05-26 16:09:39.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"be2a13fb04e6d4c7cd08845ac21c059c099244cf","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:31:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d8649f14c7ec2c8ac60d67d71163ccb8f389baa1","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:33:51.000000000","message":"Patch Set 1:\n\n(3 comments)\n\nannotated with some comments about parts I\u0027m not sure about","accounts_in_message":[],"_revision_number":1},{"id":"ac4b6a8d457e4324d9dbf201139d4056aa7bc752","author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"date":"2016-04-05 17:35:48.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nLooks excellent, one small typo. I\u0027m curious how we could actually implement this across projects in a practical fashion.","accounts_in_message":[],"_revision_number":1},{"id":"6027270dc76f29c37ad2017ce8444fa34b1b91b1","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2016-04-05 17:37:15.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nMight be good to call out what entity exactly in a typical service would be the responsible party for generating and enforcing the etags.","accounts_in_message":[],"_revision_number":1},{"id":"a5c0d77e1fc08d3833e794324af5a6fc8251d8d0","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:42:41.000000000","message":"Patch Set 1:\n\n(3 comments)\n\nthanks very much for the typo suggestions, new version on way.\n\nWith regard to common tooling: http://p.anticdent.org/2a2t","accounts_in_message":[],"_revision_number":1},{"id":"d0cb148879f4f305fdf5d46131df4255cd4a72b2","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:42:58.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"66a3bbe351e8e96c9833fc1b6660e2f4b6020f5f","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:45:16.000000000","message":"Patch Set 1:\n\nAlex had another good question that needs to be resolved and put in this document before it can be good to go:\n\nhttp://p.anticdent.org/3PGa","accounts_in_message":[],"_revision_number":1},{"id":"a79f4b53c8cd4a4379b92a038127519a1961fc53","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 17:56:38.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nmore annotations","accounts_in_message":[],"_revision_number":2},{"id":"4ebe0f7a0a328402c3e455ebdf2feb70da5f8948","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-04-05 17:58:41.000000000","message":"Patch Set 2: Code-Review-1\n\n(1 comment)\n\nminor flub, otherwise lgtm","accounts_in_message":[],"_revision_number":2},{"id":"c35273d01b47807e10247fb8800e46c9177f6741","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-05 18:06:10.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/2/check/gate-api-wg-docs/3a322e4//doc/build/html/ : SUCCESS in 3m 51s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/2/check/gate-api-wg-python27/1d2515d/ : SUCCESS in 2m 13s","accounts_in_message":[],"_revision_number":2},{"id":"041695175c1471fd24540be0fb052d6cab09650e","author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"date":"2016-04-05 19:07:39.000000000","message":"Patch Set 1:\n\nMissing details:\n\nviews .v. sub views of an object: Should they use the same etag? I think they should\n\nDetail list views: should that include etags?\n\nShould etags be in the body or only the header? (header is tricky to get at with curl, for example)","accounts_in_message":[],"_revision_number":1},{"id":"5c2f14a03a8320e34b050ea85ba5f10ae089364d","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-05 20:00:13.000000000","message":"Patch Set 2:\n\nThanks for the comments Duncan, will try to integrate some of that in the next version (which will be some time tomorrow). However I wanted to address one thing you said:\n\n\"views .v. sub views of an object: Should they use the same etag? I think they should\"\n\nIn the context of making API guidelines, there are no objects or views. There are resources and child resources (which are themselves just resources). View and objects are artifacts of how the server chooses to manage state.\n\nHowever I remember the conversation we had about /resource/details v /resource/metadata. I\u0027ll try to address that (and the other things).","accounts_in_message":[],"_revision_number":2},{"id":"6f555c2bc6eece68f81046cae160e8b0ceb0ca1f","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-06 12:17:09.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"4ffb8f0ff28089bf0669412ad224f12e2446358b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-06 12:22:04.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/3/check/gate-api-wg-docs/0cf2cf4//doc/build/html/ : SUCCESS in 2m 41s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/3/check/gate-api-wg-python27/b72bdd5/ : SUCCESS in 2m 00s","accounts_in_message":[],"_revision_number":3},{"id":"1db939a35a3086d1623ae48b576c83c1270f4b3b","author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"date":"2016-04-06 12:25:46.000000000","message":"Patch Set 3:\n\n(1 comment)\n\nTiny typo?\n\nOther than that, it\u0027s great, thanks.","accounts_in_message":[],"_revision_number":3},{"id":"097090ec0763663997ec95c120faf5d72175ed01","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-06 12:30:25.000000000","message":"Patch Set 3:\n\n(1 comment)\n\nPromising to fix baldly with something less flowery on next commit.","accounts_in_message":[],"_revision_number":3},{"id":"35776666507f8feef254bec68ff344f4b425412f","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-04-06 19:50:51.000000000","message":"Patch Set 3:\n\naside from the baldly issue, lgtm. thanks Chris!","accounts_in_message":[],"_revision_number":3},{"id":"af0e42e95a5d2afbdc4dc551c10d74b0810004b5","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-07 11:40:59.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"f74a7adb8f99f1e054fd6da51b83d09aae13f33e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-07 11:50:13.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/4/check/gate-api-wg-docs/ae89cd6//doc/build/html/ : SUCCESS in 1m 27s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/4/check/gate-api-wg-python27/1f41257/ : SUCCESS in 6m 17s","accounts_in_message":[],"_revision_number":4},{"id":"575cce6a2dc2b999abf6c836cfdecb3b9852c667","author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"date":"2016-04-07 14:35:58.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"e1b610faa04ab2e4a4ef8c68a48f344c562bfad9","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-04-07 16:05:46.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"1b8157abf47ec51078eb2cf4b3b47649062c6ff1","author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"date":"2016-04-07 16:16:37.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"39477c5f7f08151f6bd7009f3b0e77ac9aa6cb2f","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-07 17:13:17.000000000","message":"Patch Set 4: Code-Review-1\n\n(2 comments)\n\nresponding on canonical comments from etoews\n\nthe -1 is proxied from my colleague who reviewed this and blanched at the parenthetical statement","accounts_in_message":[],"_revision_number":4},{"id":"5fdd0a51cfa0adb22ddac09d8a0a5e50e62ba99d","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-07 19:09:22.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"040ada179b1338856efbb947ffa90f3643ab6863","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-04-07 19:24:32.000000000","message":"Patch Set 5: Code-Review+1\n\ni\u0027m still good with this","accounts_in_message":[],"_revision_number":5},{"id":"6a572445a3954ec8c4a7eab2cff3a17cffe22009","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-07 20:24:47.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/5/check/gate-api-wg-docs/02368f8//doc/build/html/ : SUCCESS in 2m 54s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/5/check/gate-api-wg-python27/f1749b6/ : SUCCESS in 2m 51s","accounts_in_message":[],"_revision_number":5},{"id":"ce8770c2dc22deeaeedd47501fcb175798d31031","author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"date":"2016-04-11 16:05:58.000000000","message":"Patch Set 5: Code-Review-1\n\nIn general I\u0027m in favor of this. The spec doesn\u0027t address how an ETag may be used with a search/browse results set itself though. For example, if I search a list of resources for name\u003dfoo, and use some pagination parameters, should the ETag be unique for this particular request? For all results, even though I constrained my results to a particular page? How about sorting?","accounts_in_message":[],"_revision_number":5},{"id":"6ffe6a430dc2b2f1dafeaf0f90265de3f77c7761","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-11 16:30:05.000000000","message":"Patch Set 5:\n\n\"The spec doesn\u0027t address how an ETag may be used with a search/browse results set itself though.\"\n\nYeah, I\u0027ve specifically avoided trying to address the ETag header used in collection resources and only mentioned etag proxies within the body of collection representations.\n\nThis is because of the points you mention and also because the the ETag produced when request a collection would not be used in any kind of lost update handling situation.\n\nI do think it could be useful to make some guidelines about etags in general but it is a huge topic full of corner cases and I didn\u0027t want all that to put a stop on this particular issue which itself was only done so that another review could move forward. That one is: https://review.openstack.org/#/c/281511/","accounts_in_message":[],"_revision_number":5},{"id":"65f53d58ebd7a32d75c37a3604c38db65f580911","author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"date":"2016-04-11 19:31:47.000000000","message":"Patch Set 5: Code-Review+1","accounts_in_message":[],"_revision_number":5},{"id":"237d95a709a4557d9785914a16b329089bcfb893","author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"date":"2016-04-11 22:29:32.000000000","message":"Patch Set 5: Code-Review+1\n\nThat\u0027s fair; frankly we\u0027d end up bikeshedding about collection etags as much as we did about collection pagination.\n\nWith that in mind, and if another revision is incoming, would you mind adding language that explicitly restricts the scope of this specification? Something like \"Yes we know there\u0027s other cases, we\u0027re only focusing on these\".","accounts_in_message":[],"_revision_number":5},{"id":"ec294284ad2ab8cf059f80b4a66d926f99ff958a","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2016-04-12 11:31:04.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"051b33f3ff0b5f6f8e0033039af00e1523eae30d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-12 11:34:41.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/6/check/gate-api-wg-docs/22cc0fe//doc/build/html/ : SUCCESS in 2m 36s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/6/check/gate-api-wg-python27/f85ced3/ : SUCCESS in 1m 51s","accounts_in_message":[],"_revision_number":6},{"id":"d49dcbc8ecdfcc0eba35898ea47ea0fcfa99540f","author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"date":"2016-04-18 14:49:30.000000000","message":"Patch Set 6: Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"c7f9fcb1331518dc3dd0eb2218e95e70555d341d","author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"date":"2016-04-18 14:54:47.000000000","message":"Patch Set 6: Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"02544408182904a534cfcb59ad2c3c933f0e5aca","author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"date":"2016-04-19 16:40:03.000000000","message":"Patch Set 6: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"59baba42a6344ee60fddd1730e1623e7ac6169d6","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-04-21 16:22:56.000000000","message":"Patch Set 6: Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"dd1c552adea88abb5d82d8c846ea665e03256c08","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-05-19 16:15:06.000000000","message":"Patch Set 6: Code-Review+2\n\nproposing for freeze on May 19 2016","accounts_in_message":[],"_revision_number":6},{"id":"90eb34b5fd3cf2eec7175d1f208f985048dcafd4","author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"date":"2016-05-19 16:59:38.000000000","message":"Patch Set 6: Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"24d80a2d957e5203c30433a85de7d4f43ee8a4e3","author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"date":"2016-05-19 17:21:12.000000000","message":"Patch Set 6: Code-Review+1\n\nrecheck\n\nJenkins\u0027 Doc build\u0027s missing, no problems per-se","accounts_in_message":[],"_revision_number":6},{"id":"ba58aba29cc5fbbd9268dd7a86c0f488e5bb9bac","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-19 18:35:39.000000000","message":"Patch Set 6:\n\nBuild succeeded (check pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/6/check/gate-api-wg-docs/5327759//doc/build/html/ : SUCCESS in 2m 57s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/6/check/gate-api-wg-python27/df0a270/ : SUCCESS in 2m 55s","accounts_in_message":[],"_revision_number":6},{"id":"7d0efe0fdfc06fd839b4ed26a78d62d98f9efc63","author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"date":"2016-05-26 16:03:14.000000000","message":"Patch Set 6: Workflow+1","accounts_in_message":[],"_revision_number":6},{"id":"93435dd0460e7cb8d0b2a680f43ffaa1f07b4c67","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-26 16:05:12.000000000","message":"Patch Set 6: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"cbb3441325c513958cc47b2b6a0f62985f3d1e61","date":"2016-05-26 16:09:39.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":6},{"id":"f92addeff62c957e0370930e5a28710a01c736f5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-26 16:09:39.000000000","message":"Patch Set 6: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-api-wg-docs http://docs-draft.openstack.org/46/301846/6/gate/gate-api-wg-docs/8d4e999//doc/build/html/ : SUCCESS in 3m 43s\n- gate-api-wg-python27 http://logs.openstack.org/46/301846/6/gate/gate-api-wg-python27/8076b5c/ : SUCCESS in 3m 07s","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"959e6cdceb5dfc70edf9fcb56adf4be91869d63a","revisions":{"bfc2eb9874c521d386aabad45cf1d9d2eb3c998a":{"kind":"REWORK","_number":1,"created":"2016-04-05 17:31:04.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/1"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:30:46.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/bfc2eb9874c521d386aabad45cf1d9d2eb3c998a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/bfc2eb9874c521d386aabad45cf1d9d2eb3c998a"}]},"branch":"refs/heads/master"},"b489dfaf2deb09595df874d5611bd7f02f307902":{"kind":"REWORK","_number":2,"created":"2016-04-05 17:42:58.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/2"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:42:51.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/b489dfaf2deb09595df874d5611bd7f02f307902"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/b489dfaf2deb09595df874d5611bd7f02f307902"}]},"branch":"refs/heads/master"},"30dc5a2a08841d5675e999532e82820447c22043":{"kind":"REWORK","_number":3,"created":"2016-04-06 12:17:09.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/3"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-06 12:16:56.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/30dc5a2a08841d5675e999532e82820447c22043"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/30dc5a2a08841d5675e999532e82820447c22043"}]},"branch":"refs/heads/master"},"b27e5115aeef51ccba801dcae28314b7e0f25eb5":{"kind":"REWORK","_number":4,"created":"2016-04-07 11:40:59.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/4"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-07 11:40:45.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/b27e5115aeef51ccba801dcae28314b7e0f25eb5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/b27e5115aeef51ccba801dcae28314b7e0f25eb5"}]},"branch":"refs/heads/master"},"eb271d21cdd31adde796f5d96577c10d581da5ff":{"kind":"REWORK","_number":5,"created":"2016-04-07 19:09:22.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/5"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-07 19:09:12.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/eb271d21cdd31adde796f5d96577c10d581da5ff"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/eb271d21cdd31adde796f5d96577c10d581da5ff"}]},"branch":"refs/heads/master"},"959e6cdceb5dfc70edf9fcb56adf4be91869d63a":{"kind":"REWORK","_number":6,"created":"2016-04-12 11:31:04.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/46/301846/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/api-sig","ref":"refs/changes/46/301846/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/api-sig refs/changes/46/301846/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/api-sig refs/changes/46/301846/6"}}},"commit":{"parents":[{"commit":"51ee38477404af653b3036444eda2bc99152db5f","subject":"Merge \"Added tags restrictions to the tagging guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/51ee38477404af653b3036444eda2bc99152db5f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-05 17:29:28.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2016-04-12 11:30:11.000000000","tz":60},"subject":"Description of how to use etags to avoid lost updates","message":"Description of how to use etags to avoid lost updates\n\nThis new document describes etags and how they can be used to\navoid the lost update problem. To avoid confusion it contains an\nintroduction that explains that it does not cover all of the many\nuse and corner cases for etags.\n\nChange-Id: Iacb7cb7cddef32b3cabd371255ae8443ce5beb80\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/959e6cdceb5dfc70edf9fcb56adf4be91869d63a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/api-sig/commit/959e6cdceb5dfc70edf9fcb56adf4be91869d63a"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
