)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"664d0cb8f4d81e80ff4d026e3a05b0fa24a2ee7f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Spec: V1 API rating modules endpoints migration to V2 API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"See migrate_v1_rating_modules_api_endpoints_to_v2.rst for details."},{"line_number":10,"context_line":"Updated based on Luka\u0027s feedback."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ic52d0162b478ebcd353e2e3fbf224937222d816e"},{"line_number":13,"context_line":"Story: 2006572"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_4fe5e209","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":33},"updated":"2019-10-03 11:47:48.000000000","message":"Not relevant","commit_id":"85c93b5bb87f100e3053d6f2b73341ab02a36f84"}],"doc/source/index.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"76ff4b1fab3eb08b22060f5a6ef59a327596d7ce","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"   specs/ocata/*"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Ussuri"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":".. toctree::"},{"line_number":50,"context_line":"   :glob:"},{"line_number":51,"context_line":"   :maxdepth: 1"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   specs/ussuri/*"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":56,"context_line":"Indices and tables"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_753c64e0","line":53,"range":{"start_line":46,"start_character":0,"end_line":53,"end_character":17},"updated":"2019-09-30 14:46:18.000000000","message":"Please put this to the top of the index, specs are in reverse-chronological order.\n\nAlso, you need to leave two blank lines after the section, otherwise formatting will be broken","commit_id":"d327c7127ae080dea5dba778fb46d7d203bcc788"}],"specs/ussuri/migrate_v1_rating_modules_api_endpoints_to_v2.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2006572"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"With the v1 api being frozen, migrating endpoints that are not present in the v2"},{"line_number":14,"context_line":"api is nessecary to achieve a complete v2 API with both existing v1 features and"},{"line_number":15,"context_line":"new v2 ones. This spec is about the `/v1/rating/modules` endpoints."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_55547dca","line":13,"range":{"start_line":13,"start_character":12,"end_line":13,"end_character":15},"updated":"2019-09-19 09:32:59.000000000","message":"Consistency: API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2006572"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"With the v1 api being frozen, migrating endpoints that are not present in the v2"},{"line_number":14,"context_line":"api is nessecary to achieve a complete v2 API with both existing v1 features and"},{"line_number":15,"context_line":"new v2 ones. This spec is about the `/v1/rating/modules` endpoints."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_556d5d96","line":14,"range":{"start_line":14,"start_character":7,"end_line":14,"end_character":16},"updated":"2019-09-19 09:32:59.000000000","message":"\"necessary\". I\u0027d prefer \"required\" though, easier to understand.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2006572"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"With the v1 api being frozen, migrating endpoints that are not present in the v2"},{"line_number":14,"context_line":"api is nessecary to achieve a complete v2 API with both existing v1 features and"},{"line_number":15,"context_line":"new v2 ones. This spec is about the `/v1/rating/modules` endpoints."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_755179d8","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":3},"updated":"2019-09-19 09:32:59.000000000","message":"API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The v2 api does not feature endpoints present in the v1 api. The v2 api uses"},{"line_number":21,"context_line":"Flask, while the v1 api uses WSME + pecan. The code and api features are thus"},{"line_number":22,"context_line":"split between different frameworks and endpoints. This is not ideal for"},{"line_number":23,"context_line":"contributors and api users."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b5f5b1cd","line":20,"range":{"start_line":20,"start_character":56,"end_line":20,"end_character":59},"updated":"2019-09-19 09:32:59.000000000","message":"API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The v2 api does not feature endpoints present in the v1 api. The v2 api uses"},{"line_number":21,"context_line":"Flask, while the v1 api uses WSME + pecan. The code and api features are thus"},{"line_number":22,"context_line":"split between different frameworks and endpoints. This is not ideal for"},{"line_number":23,"context_line":"contributors and api users."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_d50e2de4","line":20,"range":{"start_line":20,"start_character":7,"end_line":20,"end_character":9},"updated":"2019-09-19 09:32:59.000000000","message":"API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The v2 api does not feature endpoints present in the v1 api. The v2 api uses"},{"line_number":21,"context_line":"Flask, while the v1 api uses WSME + pecan. The code and api features are thus"},{"line_number":22,"context_line":"split between different frameworks and endpoints. This is not ideal for"},{"line_number":23,"context_line":"contributors and api users."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed Change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_d5dced47","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":27},"updated":"2019-09-19 09:32:59.000000000","message":"I think this whole part could be summarized with \"As the v1 API will be deprecated, ``/v1/rating/modules/*`` endpoints must be ported to v2.\n\nWhy a v2 API is required has already been detailed here https://specs.openstack.org/openstack/cloudkitty-specs/specs/stein/adding_a_v2_api_to_cloudkitty.html .","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Proposed Change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Implementing the existings `/v1/rating/modules` into the v2 api. This is part of"},{"line_number":29,"context_line":"the broader effort to migrate v1 endpoints to the v2 api."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f5e1e9ff","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":63},"updated":"2019-09-19 09:32:59.000000000","message":"API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Implementing the existings `/v1/rating/modules` into the v2 api. This is part of"},{"line_number":29,"context_line":"the broader effort to migrate v1 endpoints to the v2 api."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Alternatives"},{"line_number":32,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b5e37105","line":29,"range":{"start_line":29,"start_character":53,"end_line":29,"end_character":56},"updated":"2019-09-19 09:32:59.000000000","message":"API","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"REST API impact"},{"line_number":42,"context_line":"---------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"While the endpoints will be migrated and use Flask, no further modifications to"},{"line_number":45,"context_line":"methods are needed. All methods will keep existing v1 functionality and"},{"line_number":46,"context_line":"behaviors."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Security impact"},{"line_number":49,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_95cf557e","line":46,"range":{"start_line":43,"start_character":0,"end_line":46,"end_character":10},"updated":"2019-09-19 09:32:59.000000000","message":"Not true, several endpoints will be added to the API. Please detail the routes, HTTP methods, accepted parameters and response examples here. See https://specs.openstack.org/openstack/cloudkitty-specs/specs/train/add_reset_scope_state_api_endpoint.html and https://specs.openstack.org/openstack/cloudkitty-specs/specs/train/add_push_dataframes_api_endpoint.html as spec examples for new endpoints.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Security impact"},{"line_number":49,"context_line":"---------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"None."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Notifications Impact"},{"line_number":54,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_75c6596a","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":5},"updated":"2019-09-19 09:32:59.000000000","message":"Please explain who will be able to use the new endpoints, and what they\u0027ll be able to do do through these new endpoints.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":53,"context_line":"Notifications Impact"},{"line_number":54,"context_line":"--------------------"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"None."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Other end user impact"},{"line_number":59,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_35a6a1c3","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":5},"updated":"2019-09-19 09:32:59.000000000","message":"In the future, we plan to send an AMQP notification to processors on any rating module update in order to trigger a rating module reload.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Other end user impact"},{"line_number":59,"context_line":"---------------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Support of migrated v2 endpoints have to be implemented in cloudkitty\u0027s client"},{"line_number":62,"context_line":"as described in the worflow."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_15be0565","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":28},"updated":"2019-09-19 09:32:59.000000000","message":"This doesn\u0027t impact end users.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Performance Impact"},{"line_number":66,"context_line":"------------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"None other than potential WSME + pecan -\u003e flask performance difference."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Other deployer impact"},{"line_number":71,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_35c301f0","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":71},"updated":"2019-09-19 09:32:59.000000000","message":"This doesn\u0027t concern this specific endpoint","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Developer impact"},{"line_number":76,"context_line":"----------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"API understanding, use and contribution should be more straightforward and easy."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Implementation"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_95b19592","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":80},"updated":"2019-09-19 09:32:59.000000000","message":"Not a direct consequence of this specific endpoint","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  lukapeschke/peschk_l"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Work Items"},{"line_number":94,"context_line":"----------"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"* Implement the `/v1/rating/modules` endpoints in the v2 API"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f571e9e1","line":93,"range":{"start_line":93,"start_character":0,"end_line":93,"end_character":10},"updated":"2019-09-19 09:32:59.000000000","message":"You can add \"add functional tests to the tempest plugin\" and \"add support for this endpoint to the client\"","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Work Items"},{"line_number":94,"context_line":"----------"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"* Implement the `/v1/rating/modules` endpoints in the v2 API"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Add unit tests to new endpoint"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b5ae112c","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":17},"updated":"2019-09-19 09:32:59.000000000","message":"RST requires double backticks","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"* Implement the `/v1/rating/modules` endpoints in the v2 API"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Add unit tests to new endpoint"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Update the documentation to reflect changes"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_1563651c","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":32},"updated":"2019-09-19 09:32:59.000000000","message":"Unit tests should be included in the same patch as the endpoint (ie in the previous work item)","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Add unit tests to new endpoint"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Update the documentation to reflect changes"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Dependencies"},{"line_number":103,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_3568e1f3","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":45},"updated":"2019-09-19 09:32:59.000000000","message":"Should also be done in the same patch/work item","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Dependencies"},{"line_number":103,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Flask"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"* Flask-RESTful"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* os-api-ref (for API reference generation)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Testing"},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f54a497e","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":43},"updated":"2019-09-19 09:32:59.000000000","message":"None. These haven\u0027t been introduced by this endpoint.","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Testing"},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Unit tests will be added to cover the new v2 endpoint."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Documentation Impact"},{"line_number":117,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_955f5540","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":54},"updated":"2019-09-19 09:32:59.000000000","message":"Unit tests are always assumed. But you can mention that functional tests will be added to the tempest plugin","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"654fba780ac0d25d8396b9f4caf1d968c14b1856","unresolved":false,"context_lines":[{"line_number":116,"context_line":"Documentation Impact"},{"line_number":117,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"None."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"References"},{"line_number":122,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_3536a105","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":5},"updated":"2019-09-19 09:32:59.000000000","message":"v2 API reference will be updated","commit_id":"83436171c2ca9218b607bc268f897a2f8e2d7fc4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This will add ``/v2/rating/modules`` endpoints similarly to the v1 API."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"GET ``/v2/rating/modules`` return the list of loaded modules. It does not need"},{"line_number":49,"context_line":"any parameter. The body of the response will contain the module list:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. code-block:: javascript"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_ce865714","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":3},"updated":"2019-09-24 08:22:37.000000000","message":"Please include \"GET\" in the backticks","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This will add ``/v2/rating/modules`` endpoints similarly to the v1 API."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"GET ``/v2/rating/modules`` return the list of loaded modules. It does not need"},{"line_number":49,"context_line":"any parameter. The body of the response will contain the module list:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. code-block:: javascript"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_ee90f345","line":48,"range":{"start_line":48,"start_character":74,"end_line":48,"end_character":78},"updated":"2019-09-24 08:22:37.000000000","message":"require","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This will add ``/v2/rating/modules`` endpoints similarly to the v1 API."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"GET ``/v2/rating/modules`` return the list of loaded modules. It does not need"},{"line_number":49,"context_line":"any parameter. The body of the response will contain the module list:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. code-block:: javascript"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_2e75ab32","line":48,"range":{"start_line":48,"start_character":27,"end_line":48,"end_character":33},"updated":"2019-09-24 08:22:37.000000000","message":"returns","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":56,"context_line":"           \"description\": \"Sample extension.\","},{"line_number":57,"context_line":"           \"enabled\": true,"},{"line_number":58,"context_line":"           \"hot-config\": false,"},{"line_number":59,"context_line":"           \"priority\": 2"},{"line_number":60,"context_line":"       },"},{"line_number":61,"context_line":"       [...]"},{"line_number":62,"context_line":"     ]"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_a9f0b5fe","line":59,"range":{"start_line":59,"start_character":11,"end_line":59,"end_character":24},"updated":"2019-09-24 08:22:37.000000000","message":"No module ID ?","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":63,"context_line":"   }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"GET ``/v2/rating/modules/(module_id)`` returns the module specified by the id in"},{"line_number":67,"context_line":"the url. It does not need any parameter. The body of the response contains a"},{"line_number":68,"context_line":"single module:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_29bda501","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":3},"updated":"2019-09-24 08:22:37.000000000","message":"-\u003e backticks","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"GET ``/v2/rating/modules/(module_id)`` returns the module specified by the id in"},{"line_number":67,"context_line":"the url. It does not need any parameter. The body of the response contains a"},{"line_number":68,"context_line":"single module:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. code-block:: javascript"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_09d9c97d","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":25},"updated":"2019-09-24 08:22:37.000000000","message":"require","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":73,"context_line":"      \"description\": \"Sample extension.\","},{"line_number":74,"context_line":"      \"enabled\": true,"},{"line_number":75,"context_line":"      \"hot-config\": false,"},{"line_number":76,"context_line":"      \"priority\": 2"},{"line_number":77,"context_line":"   }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_29e4c53b","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":19},"updated":"2019-09-24 08:22:37.000000000","message":"No module ID ?","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"PUT ``/v2/rating/modules/\u003cmodule_id\u003e*`` changes the state and priority of a module. It"},{"line_number":81,"context_line":"requires fields to be updated to be present in the query body:"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. code-block:: javascript"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_e938eda0","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":4},"updated":"2019-09-24 08:22:37.000000000","message":"-\u003e backticks","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":87,"context_line":"     \"priority\": 42"},{"line_number":88,"context_line":"   }"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"For all 3 endpoints, the expected response is a 200 OK."},{"line_number":91,"context_line":"Expected HTTP error response codes for all 3 endpoints are:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* ``400 Bad Request``: Malformed request."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_494fc133","line":90,"range":{"start_line":90,"start_character":34,"end_line":90,"end_character":43},"updated":"2019-09-24 08:22:37.000000000","message":"response code","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* ``401 Unauthorized``: The user is not authenticated."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``403 Forbidden``: The user is not authorized to push DataFrame objects."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_e961cdaa","line":97,"range":{"start_line":97,"start_character":48,"end_line":97,"end_character":74},"updated":"2019-09-24 08:22:37.000000000","message":"Wrong copy-paste ?","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Security impact"},{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"All added endpoints will keep the same policy as the v1 API: ROLE_ADMIN is needed"},{"line_number":105,"context_line":"to query the API endpoints. Added endpoints only port existing functionality from"},{"line_number":106,"context_line":"v1 to v2 API and do not poses any security impact change."},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_296b6585","line":104,"range":{"start_line":104,"start_character":61,"end_line":104,"end_character":81},"updated":"2019-09-24 08:22:37.000000000","message":"Admin credentials will be required","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"All added endpoints will keep the same policy as the v1 API: ROLE_ADMIN is needed"},{"line_number":105,"context_line":"to query the API endpoints. Added endpoints only port existing functionality from"},{"line_number":106,"context_line":"v1 to v2 API and do not poses any security impact change."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Notifications Impact"},{"line_number":109,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_c9117106","line":106,"range":{"start_line":106,"start_character":17,"end_line":106,"end_character":57},"updated":"2019-09-24 08:22:37.000000000","message":"how about \"will have no other security impact\"","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"256dbcd4b302f260772c743d9cc8d7f314a29a74","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Implement the ``/v1/rating/modules`` endpoints in the v2 API"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add unit tests to new endpoints"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Update the documentation to reflect changes"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Add functional tests to the tempest plugin"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_49fd81af","line":155,"range":{"start_line":153,"start_character":0,"end_line":155,"end_character":45},"updated":"2019-09-24 08:22:37.000000000","message":"These should be included in the point above","commit_id":"4590d43687e9f21be0fa61d62f2f4f33a874e646"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"d087a4f7ed1950db509665d848c3fb472ec84e53","unresolved":false,"context_lines":[{"line_number":89,"context_line":"     \"priority\": 42"},{"line_number":90,"context_line":"   }"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"For all 3 endpoints, the expected response code is a 200 OK."},{"line_number":93,"context_line":"Expected HTTP error response codes for all 3 endpoints are:"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* ``400 Bad Request``: Malformed request."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_e3e893e2","line":92,"range":{"start_line":92,"start_character":50,"end_line":92,"end_character":60},"updated":"2019-10-01 07:42:01.000000000","message":"In you implementation, PUT returns a 204","commit_id":"61c8cfe994b98dad560d2e10f85510306ee21151"}]}
