)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"79fc38059b008fe5bcfc037c91130a2f0405d7ed","unresolved":false,"context_lines":[{"line_number":17,"context_line":"index.rst) it\u0027s better than nothing and provides some useful"},{"line_number":18,"context_line":"structuring on what to do next."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This is a long way from being hooked up with CI to deply the"},{"line_number":21,"context_line":"generated docs, but we should be able to get there eventually."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ifb4d91d39db0e49b55952e37cdfc9f63dcd37aa3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a71b18c_877f1bdf","line":20,"range":{"start_line":20,"start_character":51,"end_line":20,"end_character":56},"updated":"2016-12-11 23:46:40.000000000","message":"Nit: typo","commit_id":"2d533199d865c252aafa75e2671c584a9e381fe0"}],"placement-api-ref/source/conf.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3b3b6f44846e9de525c5186a512808015f843e52","unresolved":false,"context_lines":[{"line_number":194,"context_line":"# html_file_suffix \u003d \u0027\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# Output file base name for HTML help builder."},{"line_number":197,"context_line":"htmlhelp_basename \u003d \u0027novadoc\u0027"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"# -- Options for LaTeX output -------------------------------------------------"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_52537ee1","line":197,"updated":"2017-01-02 17:59:38.000000000","message":"placementdoc?","commit_id":"2d533199d865c252aafa75e2671c584a9e381fe0"}],"placement-api-ref/source/get-.json":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"65de76d506ab2906a6e2f42a45379cfd656d3508","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"versions\" : ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"min_version\" : \"1.0\","}],"source_content_type":"application/json","patch_set":3,"id":"da36d5c6_7e18d475","line":1,"updated":"2017-02-23 16:51:04.000000000","message":"Just curiosity why dash is in get-.json file name?","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"553855a9ed47a0315e0ab4b83b220d4ed21ec94a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"versions\" : ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"min_version\" : \"1.0\","}],"source_content_type":"application/json","patch_set":3,"id":"da36d5c6_c1bc81bd","line":1,"in_reply_to":"da36d5c6_7e18d475","updated":"2017-02-23 16:58:51.000000000","message":"Because this is describing making a GET request on / but putting that in a file name is no good.\n\nMight make sense to rename this to get-root.json","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"33d085e5fe3b7a7a366af39c9b5280118e7c058e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"versions\" : ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"min_version\" : \"1.0\","}],"source_content_type":"application/json","patch_set":3,"id":"ffe62b97_1e3729b3","line":1,"in_reply_to":"da36d5c6_c1bc81bd","updated":"2017-03-24 12:30:30.000000000","message":"Changed to get-root.json.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"}],"placement-api-ref/source/index.rst":[{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"bea192acc921d57c140a00f3623ac99b0edda02f","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Response"},{"line_number":29,"context_line":"--------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  - versions: versions"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5201f7_13531c3a","line":30,"updated":"2017-01-06 16:40:47.000000000","message":"Response Parameter Table? Response schema may be going a bit far.","commit_id":"de47e3620da1555e60992a8e4f22c7b115b02a9c"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"bea192acc921d57c140a00f3623ac99b0edda02f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Response Example"},{"line_number":39,"context_line":"----------------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":".. literalinclude:: get-.json"},{"line_number":42,"context_line":"   :language: javascript"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5201f7_7343886c","line":40,"updated":"2017-01-06 16:40:47.000000000","message":"Good, really think the API ref examples need a better header.","commit_id":"de47e3620da1555e60992a8e4f22c7b115b02a9c"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"65de76d506ab2906a6e2f42a45379cfd656d3508","unresolved":false,"context_lines":[{"line_number":19,"context_line":"List Versions"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. rest_method:: GET /"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Fetch information about all known major versions of the placement API,"},{"line_number":25,"context_line":"including information about the minimum and maximum microversions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_21747d66","line":22,"updated":"2017-02-23 16:51:04.000000000","message":"Does it have some prefix like \u0027placement\u0027 or it\u0027s just root?","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"553855a9ed47a0315e0ab4b83b220d4ed21ec94a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"List Versions"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. rest_method:: GET /"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Fetch information about all known major versions of the placement API,"},{"line_number":25,"context_line":"including information about the minimum and maximum microversions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_41d091f6","line":22,"in_reply_to":"da36d5c6_21747d66","updated":"2017-02-23 16:58:51.000000000","message":"Where placement is hosted in a web server is up to the deployer, so the URLs here are from whatever the mount point is in the wsgi server. May be /placement, may be /foo or may be \u0027\u0027.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"}],"tools/placement_api_docs.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0d23e91b12b6e523d73609e935a9f3a55c62ad0f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from nova.api.openstack.placement import handler"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"ORDERED_METHODS \u003d [\u0027GET\u0027, \u0027POST\u0027, \u0027PUT\u0027, \u0027PATCH\u0027, \u0027DELETE\u0027]"},{"line_number":19,"context_line":"\"\"\"A humane ordering of HTTP methods for sorted output.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def _header_line(map_entry):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_19054779","line":19,"updated":"2016-12-09 22:41:00.000000000","message":"nit: this should be a comment above the line it describes, not a docstring.","commit_id":"2d533199d865c252aafa75e2671c584a9e381fe0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3b3b6f44846e9de525c5186a512808015f843e52","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from nova.api.openstack.placement import handler"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"ORDERED_METHODS \u003d [\u0027GET\u0027, \u0027POST\u0027, \u0027PUT\u0027, \u0027PATCH\u0027, \u0027DELETE\u0027]"},{"line_number":19,"context_line":"\"\"\"A humane ordering of HTTP methods for sorted output.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def _header_line(map_entry):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_926326b1","line":19,"in_reply_to":"3a71b18c_16f0aa90","updated":"2017-01-02 17:59:38.000000000","message":"Yeah, technically the code above is correct. docstrings describing a constant or attribute should be below the thing being described.","commit_id":"2d533199d865c252aafa75e2671c584a9e381fe0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"656099062b4b89f87474ca5cdf0979fbdf9b0109","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from nova.api.openstack.placement import handler"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"ORDERED_METHODS \u003d [\u0027GET\u0027, \u0027POST\u0027, \u0027PUT\u0027, \u0027PATCH\u0027, \u0027DELETE\u0027]"},{"line_number":19,"context_line":"\"\"\"A humane ordering of HTTP methods for sorted output.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def _header_line(map_entry):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_16f0aa90","line":19,"in_reply_to":"3a71b18c_19054779","updated":"2016-12-10 11:17:24.000000000","message":"I was hoping that was going to cause pydoc to make that part of the docs, but apparently not (I just tested and was disappointed).","commit_id":"2d533199d865c252aafa75e2671c584a9e381fe0"}],"tox.ini":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"765306588ae53f0ab102b79f0efab2e11b5cf9b8","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  # Check that all included JSON files are valid JSON"},{"line_number":97,"context_line":"  bash -c \u0027! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2\u003e\u00261 \u003e /dev/null | grep -B1 -v ^python\u0027"},{"line_number":98,"context_line":"  # Check that all placement api routes are in the documentation"},{"line_number":99,"context_line":"  python tools/placement_api_docs.py placement-api-ref/source/index.rst"},{"line_number":100,"context_line":"  oslo-config-generator --config-file\u003detc/nova/nova-config-generator.conf"},{"line_number":101,"context_line":"  oslopolicy-sample-generator --config-file\u003detc/nova/nova-policy-generator.conf"},{"line_number":102,"context_line":"  oslopolicy-list-redundant --namespace nova"}],"source_content_type":"text/x-properties","patch_set":2,"id":"ba5201f7_3f79f7c8","line":99,"updated":"2017-01-05 13:29:06.000000000","message":"this probably actually needs to go in the placement-api-ref target below, because upstream docs jobs actually just run:\n\npython setup.py build_sphinx","commit_id":"de47e3620da1555e60992a8e4f22c7b115b02a9c"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"65de76d506ab2906a6e2f42a45379cfd656d3508","unresolved":false,"context_lines":[{"line_number":120,"context_line":"  oslopolicy-policy-generator --namespace nova --output-file etc/nova/policy.yaml.merged"},{"line_number":121,"context_line":"  sphinx-build -W -b html api-guide/source api-guide/build/html"},{"line_number":122,"context_line":"  sphinx-build -W -b html api-ref/source api-ref/build/html"},{"line_number":123,"context_line":"  sphinx-build -W -b html placement-api-ref/source placement-api-ref/build/html"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"[testenv:api-guide]"},{"line_number":126,"context_line":"# This environment is called from CI scripts to test and publish"}],"source_content_type":"text/x-properties","patch_set":3,"id":"da36d5c6_1e4198a9","line":123,"updated":"2017-02-23 16:51:04.000000000","message":"nit: command can be defined in some sh-script to avoid duplication.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"553855a9ed47a0315e0ab4b83b220d4ed21ec94a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"  oslopolicy-policy-generator --namespace nova --output-file etc/nova/policy.yaml.merged"},{"line_number":121,"context_line":"  sphinx-build -W -b html api-guide/source api-guide/build/html"},{"line_number":122,"context_line":"  sphinx-build -W -b html api-ref/source api-ref/build/html"},{"line_number":123,"context_line":"  sphinx-build -W -b html placement-api-ref/source placement-api-ref/build/html"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"[testenv:api-guide]"},{"line_number":126,"context_line":"# This environment is called from CI scripts to test and publish"}],"source_content_type":"text/x-properties","patch_set":3,"id":"da36d5c6_e1098585","line":123,"in_reply_to":"da36d5c6_1e4198a9","updated":"2017-02-23 16:58:51.000000000","message":"Since that script would just remove `-W -b html` but keep the other arguments, it doesn\u0027t seem worth it?","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"65de76d506ab2906a6e2f42a45379cfd656d3508","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  rm -rf api-ref/build"},{"line_number":136,"context_line":"  sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"[testenv:placement-api-ref]"},{"line_number":139,"context_line":"# This environment is called from CI scripts to test and publish"},{"line_number":140,"context_line":"# the Placement API Ref to developer.openstack.org."},{"line_number":141,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":3,"id":"da36d5c6_4add0bdf","line":138,"updated":"2017-02-23 16:51:04.000000000","message":"There is an issue with building this target with py3 tox which is a default option for Ubuntu 16.04.\nI believe it\u0027s the reason why basepython \u003d python2.7 was added for docs.\nThe error I\u0027ve got:\nCould not import extension os_api_ref (exception: No module named \u0027httplib\u0027) due httplib was renamed in py3.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"553855a9ed47a0315e0ab4b83b220d4ed21ec94a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  rm -rf api-ref/build"},{"line_number":136,"context_line":"  sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"[testenv:placement-api-ref]"},{"line_number":139,"context_line":"# This environment is called from CI scripts to test and publish"},{"line_number":140,"context_line":"# the Placement API Ref to developer.openstack.org."},{"line_number":141,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":3,"id":"da36d5c6_e157c557","line":138,"in_reply_to":"da36d5c6_4add0bdf","updated":"2017-02-23 16:58:51.000000000","message":"Ah, okay, I\u0027ll fix that when there\u0027s a new version.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"33d085e5fe3b7a7a366af39c9b5280118e7c058e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  rm -rf api-ref/build"},{"line_number":136,"context_line":"  sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"[testenv:placement-api-ref]"},{"line_number":139,"context_line":"# This environment is called from CI scripts to test and publish"},{"line_number":140,"context_line":"# the Placement API Ref to developer.openstack.org."},{"line_number":141,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":3,"id":"ffe62b97_bef71df6","line":138,"in_reply_to":"da36d5c6_e157c557","updated":"2017-03-24 12:30:30.000000000","message":"It works now without a fix.","commit_id":"1f6afc412e00686ce659f38e0089c048488ca227"}]}
