)]}'
{"doc/source/contributor/api.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"916e98cd3edbe2fa0941bda29c7bd26d51444073","unresolved":false,"context_lines":[{"line_number":201,"context_line":"The API samples tests are made of two parts:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* The API sample for the reference docs. These are found under path"},{"line_number":204,"context_line":"  ``doc/api_samples/``. There is typically one directory per API extension"},{"line_number":205,"context_line":"  with subdirectories per microversion for that API extension. The unversioned"},{"line_number":206,"context_line":"  samples are used for the base v2.0 / v2.1 APIs."},{"line_number":207,"context_line":"* Corresponding API sample templates found under path"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_6ba9b179","line":204,"range":{"start_line":204,"start_character":65,"end_line":204,"end_character":74},"updated":"2017-12-21 18:58:49.000000000","message":"Alex is trying to remove \"extension\" from the code. Then I guess we want to use \"resource\" instead of \"extension\" to avoid confusion.","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb48ccf9dff691c357c7cb030612b96593c6f5f","unresolved":false,"context_lines":[{"line_number":201,"context_line":"The API samples tests are made of two parts:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* The API sample for the reference docs. These are found under path"},{"line_number":204,"context_line":"  ``doc/api_samples/``. There is typically one directory per API extension"},{"line_number":205,"context_line":"  with subdirectories per microversion for that API extension. The unversioned"},{"line_number":206,"context_line":"  samples are used for the base v2.0 / v2.1 APIs."},{"line_number":207,"context_line":"* Corresponding API sample templates found under path"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_cb3a3de6","line":204,"range":{"start_line":204,"start_character":65,"end_line":204,"end_character":74},"in_reply_to":"bf8cb3f7_6ba9b179","updated":"2017-12-21 19:17:04.000000000","message":"Hmm, but we have multiple API extensions that act on the same resource, and that\u0027s not really how the tests and samples are laid out.\n\nMaybe I should just remove \u0027extension\u0027 - does that still make it clear that it\u0027s one directory per API? Or how about \"API handler\"? or controller, or router.","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ce34ed4657b52d8628b3de6458f71f1c4a7d8de9","unresolved":false,"context_lines":[{"line_number":201,"context_line":"The API samples tests are made of two parts:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* The API sample for the reference docs. These are found under path"},{"line_number":204,"context_line":"  ``doc/api_samples/``. There is typically one directory per API extension"},{"line_number":205,"context_line":"  with subdirectories per microversion for that API extension. The unversioned"},{"line_number":206,"context_line":"  samples are used for the base v2.0 / v2.1 APIs."},{"line_number":207,"context_line":"* Corresponding API sample templates found under path"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_f62604b8","line":204,"range":{"start_line":204,"start_character":65,"end_line":204,"end_character":74},"in_reply_to":"bf8cb3f7_cb3a3de6","updated":"2017-12-21 19:22:14.000000000","message":"Nice point.\nI think it is great to restructure tests and samples directories for API resources instead of API extensions in long-term.\nCurrent structure is making confusions as you said, and we might want to see clear structure.","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"32b73f1d80e50f6ebf9d8113a28cd9820b0c27db","unresolved":false,"context_lines":[{"line_number":201,"context_line":"The API samples tests are made of two parts:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* The API sample for the reference docs. These are found under path"},{"line_number":204,"context_line":"  ``doc/api_samples/``. There is typically one directory per API extension"},{"line_number":205,"context_line":"  with subdirectories per microversion for that API extension. The unversioned"},{"line_number":206,"context_line":"  samples are used for the base v2.0 / v2.1 APIs."},{"line_number":207,"context_line":"* Corresponding API sample templates found under path"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_d698a06b","line":204,"range":{"start_line":204,"start_character":65,"end_line":204,"end_character":74},"in_reply_to":"bf8cb3f7_f62604b8","updated":"2017-12-21 19:42:25.000000000","message":"I don\u0027t know what you call this:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/user_data.py\n\nIf it\u0027s not called an extension of the servers API.","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"916e98cd3edbe2fa0941bda29c7bd26d51444073","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* The API sample for the reference docs. These are found under path"},{"line_number":204,"context_line":"  ``doc/api_samples/``. There is typically one directory per API extension"},{"line_number":205,"context_line":"  with subdirectories per microversion for that API extension. The unversioned"},{"line_number":206,"context_line":"  samples are used for the base v2.0 / v2.1 APIs."},{"line_number":207,"context_line":"* Corresponding API sample templates found under path"},{"line_number":208,"context_line":"  ``nova/tests/functional/api_sample_tests/api_samples``. These have a similar"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_8bcbd551","line":205,"range":{"start_line":205,"start_character":52,"end_line":205,"end_character":61},"updated":"2017-12-21 18:58:49.000000000","message":"ditto","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"916e98cd3edbe2fa0941bda29c7bd26d51444073","unresolved":false,"context_lines":[{"line_number":224,"context_line":"``tox -r -e api-samples``. This relies, of course, upon the test and templates"},{"line_number":225,"context_line":"being correct for the test to pass, which may take some iteration."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"In general, if you are adding a new microversion to an existing API extension,"},{"line_number":228,"context_line":"it is easiest to simply copy an existing test and modify it for the new"},{"line_number":229,"context_line":"microversion and the new samples/templates."},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_8bd0b5f9","line":227,"range":{"start_line":227,"start_character":68,"end_line":227,"end_character":77},"updated":"2017-12-21 18:58:49.000000000","message":"ditto","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"916e98cd3edbe2fa0941bda29c7bd26d51444073","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The functional API samples tests are not the simplest thing in the world to"},{"line_number":232,"context_line":"get used to, and can be very frustrating at times when they fail in not"},{"line_number":233,"context_line":"obvious ways. If you need help debugging a functional API sample test failure,"},{"line_number":234,"context_line":"feel free to post your work-in-progress change for review and ask for help in"},{"line_number":235,"context_line":"the ``openstack-nova`` freenode IRC channel."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_2b0ba98e","line":233,"range":{"start_line":233,"start_character":31,"end_line":233,"end_character":40},"updated":"2017-12-21 18:58:49.000000000","message":"\"for debugging\"?","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb48ccf9dff691c357c7cb030612b96593c6f5f","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The functional API samples tests are not the simplest thing in the world to"},{"line_number":232,"context_line":"get used to, and can be very frustrating at times when they fail in not"},{"line_number":233,"context_line":"obvious ways. If you need help debugging a functional API sample test failure,"},{"line_number":234,"context_line":"feel free to post your work-in-progress change for review and ask for help in"},{"line_number":235,"context_line":"the ``openstack-nova`` freenode IRC channel."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_2b1f296d","line":233,"range":{"start_line":233,"start_character":31,"end_line":233,"end_character":40},"in_reply_to":"bf8cb3f7_2b0ba98e","updated":"2017-12-21 19:17:04.000000000","message":"I think what is written makes more sense.","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ce34ed4657b52d8628b3de6458f71f1c4a7d8de9","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The functional API samples tests are not the simplest thing in the world to"},{"line_number":232,"context_line":"get used to, and can be very frustrating at times when they fail in not"},{"line_number":233,"context_line":"obvious ways. If you need help debugging a functional API sample test failure,"},{"line_number":234,"context_line":"feel free to post your work-in-progress change for review and ask for help in"},{"line_number":235,"context_line":"the ``openstack-nova`` freenode IRC channel."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8cb3f7_9640d837","line":233,"range":{"start_line":233,"start_character":31,"end_line":233,"end_character":40},"in_reply_to":"bf8cb3f7_2b1f296d","updated":"2017-12-21 19:22:14.000000000","message":"I just felt \"for\" is forgotten.\n\nor \"help debugging\" \u003d \"help (which is) debugging\" ?","commit_id":"6fe212fd2e80a5b9137ec6627db19cf90c6e6e5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf7a328a57d1c96198954ba1b6558933a76f9393","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Modularity"},{"line_number":114,"context_line":"~~~~~~~~~~"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The Nova REST API is separated into different controllers in the directory"},{"line_number":117,"context_line":"\u0027nova/api/openstack/compute/\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Because microversions are supported in the Nova REST API, the API can be"},{"line_number":120,"context_line":"extended without any new controller. But for code readability, the Nova REST API"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf8cb3f7_b63b9c36","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":29},"updated":"2017-12-21 19:47:09.000000000","message":"This says \"controllers\" so maybe we should just be consistent and say controllers below instead of extensions.","commit_id":"252a27a0ec801ab7c46326bbccc4f315b07bbe41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8075d7badaacb0ee1866170e567c3f1514589268","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Modularity"},{"line_number":114,"context_line":"~~~~~~~~~~"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The Nova REST API is separated into different controllers in the directory"},{"line_number":117,"context_line":"\u0027nova/api/openstack/compute/\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Because microversions are supported in the Nova REST API, the API can be"},{"line_number":120,"context_line":"extended without any new controller. But for code readability, the Nova REST API"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf8cb3f7_824ac852","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":29},"in_reply_to":"bf8cb3f7_973bef36","updated":"2017-12-22 13:52:28.000000000","message":"Done","commit_id":"252a27a0ec801ab7c46326bbccc4f315b07bbe41"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"26d7951151ef4768db4a5e763476d155860cf30b","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Modularity"},{"line_number":114,"context_line":"~~~~~~~~~~"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The Nova REST API is separated into different controllers in the directory"},{"line_number":117,"context_line":"\u0027nova/api/openstack/compute/\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Because microversions are supported in the Nova REST API, the API can be"},{"line_number":120,"context_line":"extended without any new controller. But for code readability, the Nova REST API"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf8cb3f7_973bef36","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":29},"in_reply_to":"bf8cb3f7_b63b9c36","updated":"2017-12-22 02:06:19.000000000","message":"yea, it is better, I know few files under that directory have multiple controllers, but I think it is fine.\n\nI\u0027m looking for new name for this method also https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/routes.py#L113\n\nI\u0027m thinking of the \u0027register_subcontroller\u0027.","commit_id":"252a27a0ec801ab7c46326bbccc4f315b07bbe41"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"4b035fd76f1e40b8ebe7de3bba6587f261eaf80f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"~~~~~~~~~~"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The Nova REST API is separated into different controllers in the directory"},{"line_number":117,"context_line":"\u0027nova/api/openstack/compute/\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Because microversions are supported in the Nova REST API, the API can be"},{"line_number":120,"context_line":"extended without any new controller. But for code readability, the Nova REST API"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf8cb3f7_7ae3a034","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":29},"updated":"2017-12-23 10:08:44.000000000","message":"``nova/api/openstack/compute/``\n\na nit unrelated.","commit_id":"749f1ecbc5f3bf0a499bec328b158bf2b1d69240"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6d5d355ff6164c684ccd83e820b5429cce26215c","unresolved":false,"context_lines":[{"line_number":246,"context_line":"* Adding new request and/or response parameters with a new microversion"},{"line_number":247,"context_line":"* Marking existing parameters as deprecated in a new microversion"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"More information on the compute API reference format and conventions can"},{"line_number":250,"context_line":"be found here: https://wiki.openstack.org/wiki/NovaAPIRef"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"For more detailed documentation of certain aspects of the API, consider"},{"line_number":253,"context_line":"writing something into the compute API guide found under path"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf8cb3f7_ff80f88d","line":250,"range":{"start_line":249,"start_character":0,"end_line":250,"end_character":57},"updated":"2017-12-25 05:33:33.000000000","message":"Nice!","commit_id":"749f1ecbc5f3bf0a499bec328b158bf2b1d69240"}]}
