)]}'
{"doc/source/contributor/index.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8a6df458bc642687c3fdd8d40096c7ccd5978b4a","unresolved":false,"context_lines":[{"line_number":236,"context_line":"``extract_json``."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"When a handler needs to read or write the data store it should use methods on"},{"line_number":239,"context_line":"the objects found in the `placement.objects.resource_provider` package. Doing"},{"line_number":240,"context_line":"so requires a context which is provided to the handler method via the WSGI"},{"line_number":241,"context_line":"environment. It can be retrieved as follows::"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_aab4de82","line":239,"updated":"2018-09-07 14:24:08.000000000","message":"currently true, but in the future likely to be on one of the modules on the objects package. fine for adjusting later","commit_id":"b848a778ff5f8011971fe239d87dc595b7fe1d0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"81599709a5715808061831c6efcd14bf00c8786e","unresolved":false,"context_lines":[{"line_number":236,"context_line":"``extract_json``."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"When a handler needs to read or write the data store it should use methods on"},{"line_number":239,"context_line":"the objects found in the `placement.objects.resource_provider` package. Doing"},{"line_number":240,"context_line":"so requires a context which is provided to the handler method via the WSGI"},{"line_number":241,"context_line":"environment. It can be retrieved as follows::"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_6a5b1f53","line":239,"in_reply_to":"3f79a3b5_aab4de82","updated":"2018-09-07 20:12:02.000000000","message":"gah, I had this change locally, not sure how it was missed in the update","commit_id":"b848a778ff5f8011971fe239d87dc595b7fe1d0b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8a6df458bc642687c3fdd8d40096c7ccd5978b4a","unresolved":false,"context_lines":[{"line_number":274,"context_line":"utility code is tested with unit tests found in `placement/tests/unit`. The"},{"line_number":275,"context_line":"back-end objects are tested with a combination of unit and functional tests"},{"line_number":276,"context_line":"found in ``placement/tests/unit/objects/test_resource_provider.py`` and"},{"line_number":277,"context_line":"`placement/tests/functional/db`. Add unit and non-gabbi functional tests in the"},{"line_number":278,"context_line":"same way."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"When writing tests for handler code (that is, the code found in"},{"line_number":281,"context_line":"``placement/handlers``) a good rule of thumb is that if you feel like there"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_8a5b2252","line":278,"range":{"start_line":277,"start_character":33,"end_line":278,"end_character":9},"updated":"2018-09-07 14:24:08.000000000","message":"this sentence doesn\u0027t really make much sense any more. The previous sentence was basically saying \"non-gabbi tests are in the same as other tests in nova\".\n\nNow \"same way\" doesn\u0027t really have a referent.","commit_id":"b848a778ff5f8011971fe239d87dc595b7fe1d0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"81599709a5715808061831c6efcd14bf00c8786e","unresolved":false,"context_lines":[{"line_number":274,"context_line":"utility code is tested with unit tests found in `placement/tests/unit`. The"},{"line_number":275,"context_line":"back-end objects are tested with a combination of unit and functional tests"},{"line_number":276,"context_line":"found in ``placement/tests/unit/objects/test_resource_provider.py`` and"},{"line_number":277,"context_line":"`placement/tests/functional/db`. Add unit and non-gabbi functional tests in the"},{"line_number":278,"context_line":"same way."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"When writing tests for handler code (that is, the code found in"},{"line_number":281,"context_line":"``placement/handlers``) a good rule of thumb is that if you feel like there"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_ea340ffd","line":278,"range":{"start_line":277,"start_character":33,"end_line":278,"end_character":9},"in_reply_to":"3f79a3b5_8a5b2252","updated":"2018-09-07 20:12:02.000000000","message":"Sorry, I was trying to say, \"use the existing unit tests as examples for writing more unit tests, and use the existing functional tests as examples for writing more functional tests,\" but that pretty much goes without saying, huh. I\u0027ll just remove the sentence.","commit_id":"b848a778ff5f8011971fe239d87dc595b7fe1d0b"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"cef71937620b4f324cf0796c53bfeaefa6c3af33","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Overview"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The Nova project introduced the placement service as part of the Newton"},{"line_number":22,"context_line":"release. The service provides an HTTP API to manage inventories of different"},{"line_number":23,"context_line":"classes of resources, such as disk or virtual cpus, made available by entities"},{"line_number":24,"context_line":"called resource providers. Information provided through the placement API is"},{"line_number":25,"context_line":"intended to enable more effective accounting of resources in an OpenStack"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_7c40c206","line":22,"range":{"start_line":21,"start_character":49,"end_line":22,"end_character":7},"updated":"2018-09-08 14:58:04.000000000","message":"and extracted in Steins... could be noted *after* all extraction processes are done?","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d7cd8b7f428dcbd91bfd0da10272758600a1993","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Overview"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The Nova project introduced the placement service as part of the Newton"},{"line_number":22,"context_line":"release. The service provides an HTTP API to manage inventories of different"},{"line_number":23,"context_line":"classes of resources, such as disk or virtual cpus, made available by entities"},{"line_number":24,"context_line":"called resource providers. Information provided through the placement API is"},{"line_number":25,"context_line":"intended to enable more effective accounting of resources in an OpenStack"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_4fc26055","line":22,"range":{"start_line":21,"start_character":49,"end_line":22,"end_character":7},"in_reply_to":"3f79a3b5_7c40c206","updated":"2018-09-15 17:38:05.000000000","message":"I think it\u0027s appropriate to mention it now. Done.","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"cef71937620b4f324cf0796c53bfeaefa6c3af33","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":".. note:: If your change requires new methods or new objects in the"},{"line_number":246,"context_line":"          `resource_provider` package, after you\u0027ve made sure that you really"},{"line_number":247,"context_line":"          do need those new methods or objects (you may not!) make those"},{"line_number":248,"context_line":"          changes in a patch that is separate from and prior to the HTTP API"},{"line_number":249,"context_line":"          change."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_7cd0c2c8","line":246,"range":{"start_line":246,"start_character":11,"end_line":246,"end_character":28},"updated":"2018-09-08 14:58:04.000000000","message":"This should be changed as well to `placement.objects`.","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d7cd8b7f428dcbd91bfd0da10272758600a1993","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":".. note:: If your change requires new methods or new objects in the"},{"line_number":246,"context_line":"          `resource_provider` package, after you\u0027ve made sure that you really"},{"line_number":247,"context_line":"          do need those new methods or objects (you may not!) make those"},{"line_number":248,"context_line":"          changes in a patch that is separate from and prior to the HTTP API"},{"line_number":249,"context_line":"          change."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_0fa228ae","line":246,"range":{"start_line":246,"start_character":11,"end_line":246,"end_character":28},"in_reply_to":"3f79a3b5_7cd0c2c8","updated":"2018-09-15 17:38:05.000000000","message":"Done","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"cef71937620b4f324cf0796c53bfeaefa6c3af33","unresolved":false,"context_lines":[{"line_number":310,"context_line":"the arc of API interaction that they test."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"The gabbi tests are integrated into the functional tox target, loaded via"},{"line_number":313,"context_line":"``placement/tests/functional/test_placement_api.py``. If you"},{"line_number":314,"context_line":"want to run just the gabbi tests one way to do so is::"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    tox -efunctional test_placement_api"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_7c9e8206","line":313,"range":{"start_line":313,"start_character":29,"end_line":313,"end_character":47},"updated":"2018-09-08 14:58:04.000000000","message":"Need to keep an eye on [1] which renames test_placement_api to test_api...\n\n[1] https://review.openstack.org/#/c/600506/","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d7cd8b7f428dcbd91bfd0da10272758600a1993","unresolved":false,"context_lines":[{"line_number":310,"context_line":"the arc of API interaction that they test."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"The gabbi tests are integrated into the functional tox target, loaded via"},{"line_number":313,"context_line":"``placement/tests/functional/test_placement_api.py``. If you"},{"line_number":314,"context_line":"want to run just the gabbi tests one way to do so is::"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    tox -efunctional test_placement_api"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_cfabd085","line":313,"range":{"start_line":313,"start_character":29,"end_line":313,"end_character":47},"in_reply_to":"3f79a3b5_7c9e8206","updated":"2018-09-15 17:38:05.000000000","message":"Good eye. That popped in the rebase too.","commit_id":"19468717f997751153b59aa2a3ac8b9edc04b1f3"}],"doc/source/contributor/placement.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3a77dd60ba9803d1ddaf0cbc7053455aa951e086","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. TODO(efried):: Fix the links in this section to point to the placement doc"},{"line_number":22,"context_line":"                  root (:placement-doc:`placement service \u003c\u003e` presumably?) when"},{"line_number":23,"context_line":"                  it exists."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"The Nova project introduced the :doc:`placement service \u003c/user/placement\u003e` as"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b7723e49","line":22,"updated":"2018-09-05 09:52:26.000000000","message":"It\u0027s a link to the same build of docs so it would be just \u0027:doc:\u0027\n\nMeaning that what we see a couple lines below ought to work one the doc tree and tox job is adjusted in ways similar to what has been done for api-ref in https://review.openstack.org/#/c/599524/","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ed6fab7125507f9c07e28e2347e99864ce3518a8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. TODO(efried):: Fix the links in this section to point to the placement doc"},{"line_number":22,"context_line":"                  root (:placement-doc:`placement service \u003c\u003e` presumably?) when"},{"line_number":23,"context_line":"                  it exists."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"The Nova project introduced the :doc:`placement service \u003c/user/placement\u003e` as"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_f8cdde2f","line":22,"in_reply_to":"3f79a3b5_b7723e49","updated":"2018-09-06 21:20:37.000000000","message":"removed in the rebase onto the build-docs patch, which will let us see how it renders so we can make more informed comments.","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3a77dd60ba9803d1ddaf0cbc7053455aa951e086","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":".. TODO(efried):: Fix the link in this paragraph to point to the placement doc"},{"line_number":140,"context_line":"                  root (:placement-doc:`placement service \u003c\u003e` presumably?) when"},{"line_number":141,"context_line":"                  it exists."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"The placement API makes use of `microversions`_ to allow the release of new"},{"line_number":144,"context_line":"features on an opt in basis. See :doc:`/user/placement` for an up to date"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_57b2cae6","line":141,"updated":"2018-09-05 09:52:26.000000000","message":"same","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"24ff3240fa3b79a1e994cb61d5cf0832c34059c0","unresolved":false,"context_lines":[{"line_number":145,"context_line":"history of the available microversions."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The rules around when a microversion is needed are modeled after those of the"},{"line_number":148,"context_line":":nova-doc:`Nova compute API \u003c/contributor/microversions\u003e`. When adding a new"},{"line_number":149,"context_line":"microversion there are a few bits of required housekeeping that must be done in"},{"line_number":150,"context_line":"the code:"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_11cd49b6","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":57},"updated":"2018-09-04 23:08:13.000000000","message":"Not sure if this link is built right.","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3a77dd60ba9803d1ddaf0cbc7053455aa951e086","unresolved":false,"context_lines":[{"line_number":145,"context_line":"history of the available microversions."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The rules around when a microversion is needed are modeled after those of the"},{"line_number":148,"context_line":":nova-doc:`Nova compute API \u003c/contributor/microversions\u003e`. When adding a new"},{"line_number":149,"context_line":"microversion there are a few bits of required housekeeping that must be done in"},{"line_number":150,"context_line":"the code:"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_37e2aed5","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":57},"in_reply_to":"3f79a3b5_11cd49b6","updated":"2018-09-05 09:52:26.000000000","message":"Is \u0027\u003cservice\u003e-doc\u0027 a thing?","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3a77dd60ba9803d1ddaf0cbc7053455aa951e086","unresolved":false,"context_lines":[{"line_number":246,"context_line":"``extract_json``."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"When a handler needs to read or write the data store it should use methods on"},{"line_number":249,"context_line":"the objects found in the `placement.objects.resource_provider` package. Doing"},{"line_number":250,"context_line":"so requires a context which is provided to the handler method via the WSGI"},{"line_number":251,"context_line":"environment. It can be retrieved as follows::"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_37fb8e7b","line":249,"updated":"2018-09-05 09:52:26.000000000","message":"since we now have more than just resource_provider.py in the objects directory, may as well refer to the parent package?","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ed6fab7125507f9c07e28e2347e99864ce3518a8","unresolved":false,"context_lines":[{"line_number":246,"context_line":"``extract_json``."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"When a handler needs to read or write the data store it should use methods on"},{"line_number":249,"context_line":"the objects found in the `placement.objects.resource_provider` package. Doing"},{"line_number":250,"context_line":"so requires a context which is provided to the handler method via the WSGI"},{"line_number":251,"context_line":"environment. It can be retrieved as follows::"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b86d2633","line":249,"in_reply_to":"3f79a3b5_37fb8e7b","updated":"2018-09-06 21:20:37.000000000","message":"Done","commit_id":"3f1dd04ef5cbf0f47c283654d1671b56d813eb9d"}]}
