)]}'
{"keystoneauth1/discover.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"8b757ac1be5c5efad6f4444b6eb487e485d41aaf","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        except KeyError:"},{"line_number":120,"context_line":"            pass"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Ironic does not actually return a discovery document for the single"},{"line_number":123,"context_line":"        # version discovery endpoint, which confuses the single-version"},{"line_number":124,"context_line":"        # fallback logic. This is ironic specific and not generalized because"},{"line_number":125,"context_line":"        # we don\u0027t actually want to support this form for anybody else."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_c7283e34","line":122,"updated":"2018-08-25 14:05:27.000000000","message":"I really don\u0027t like this here, but I don\u0027t know if there is a good option to handle this case a layer up. The only solution would be to do a callback (I would -2 a callback, it isn\u0027t a good option).\n\nMaybe it should just be made generic and subst in \"Ironic\" (or whatever service) to the headers so that if anything else in the future doesn\u0027t return a document we extract sane headets","commit_id":"b8edade59a1000349e598d7ff4655c8dc73a2bc0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2cd87c0f937b6f3de21be38a2d91f478124efc6a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        except KeyError:"},{"line_number":120,"context_line":"            pass"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Ironic does not actually return a discovery document for the single"},{"line_number":123,"context_line":"        # version discovery endpoint, which confuses the single-version"},{"line_number":124,"context_line":"        # fallback logic. This is ironic specific and not generalized because"},{"line_number":125,"context_line":"        # we don\u0027t actually want to support this form for anybody else."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_790f8636","line":122,"in_reply_to":"3f79a3b5_67a4caa6","updated":"2018-08-27 07:31:19.000000000","message":"\u003e We don\u0027t have service-type anywhere near this call.\n\nYeah, I already tried going down this path :(\n\nWhat we can do is look for microversioning headers for any service. Ironic always returns just its headers, so we can take them.\n\nAlso yeah, I\u0027ll go and fix ironic. I hope we can do it withou a microversion :D","commit_id":"b8edade59a1000349e598d7ff4655c8dc73a2bc0"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5511041fb9e525046c90f8fb3ea9e121f5b975be","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        except KeyError:"},{"line_number":120,"context_line":"            pass"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Ironic does not actually return a discovery document for the single"},{"line_number":123,"context_line":"        # version discovery endpoint, which confuses the single-version"},{"line_number":124,"context_line":"        # fallback logic. This is ironic specific and not generalized because"},{"line_number":125,"context_line":"        # we don\u0027t actually want to support this form for anybody else."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_67a4caa6","line":122,"in_reply_to":"3f79a3b5_c7283e34","updated":"2018-08-25 14:29:27.000000000","message":"Yeah - I was thinking thesame thing. We\u0027ve got service-type-to-project-name translation available in os-service-types already, so it shouldn\u0027t be super hard.\n\nOh. Except. **headdesk**\n\nWe don\u0027t have service-type anywhere near this call.\n\n/me goes back to thinking more","commit_id":"b8edade59a1000349e598d7ff4655c8dc73a2bc0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"069fa1e36f47dc67f83f1cb5b37e44b046336896","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        # OpenStack services that they should ADD this."},{"line_number":129,"context_line":"        if \u0027id\u0027 in body_resp:"},{"line_number":130,"context_line":"            body_resp[\u0027status\u0027] \u003d Status.CURRENT"},{"line_number":131,"context_line":"            for header in resp.headers.keys():"},{"line_number":132,"context_line":"                # We lose the case-insensitive quality here"},{"line_number":133,"context_line":"                header \u003d header.lower()"},{"line_number":134,"context_line":"                if not header.lower().startswith(\u0027x-openstack\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_af908d4f","line":131,"range":{"start_line":131,"start_character":37,"end_line":131,"end_character":45},"updated":"2018-09-06 09:05:25.000000000","message":"nit: keys() is redundant","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"b58c6663843ae976de240ed24eead126ca83724a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        # OpenStack services that they should ADD this."},{"line_number":129,"context_line":"        if \u0027id\u0027 in body_resp:"},{"line_number":130,"context_line":"            body_resp[\u0027status\u0027] \u003d Status.CURRENT"},{"line_number":131,"context_line":"            for header in resp.headers.keys():"},{"line_number":132,"context_line":"                # We lose the case-insensitive quality here"},{"line_number":133,"context_line":"                header \u003d header.lower()"},{"line_number":134,"context_line":"                if not header.lower().startswith(\u0027x-openstack\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_b8744669","line":131,"range":{"start_line":131,"start_character":37,"end_line":131,"end_character":45},"in_reply_to":"3f79a3b5_af908d4f","updated":"2018-09-06 20:49:57.000000000","message":"Done","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"069fa1e36f47dc67f83f1cb5b37e44b046336896","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for header in resp.headers.keys():"},{"line_number":132,"context_line":"                # We lose the case-insensitive quality here"},{"line_number":133,"context_line":"                header \u003d header.lower()"},{"line_number":134,"context_line":"                if not header.lower().startswith(\u0027x-openstack\u0027):"},{"line_number":135,"context_line":"                    continue"},{"line_number":136,"context_line":"                # Once the body starts having these values, stop overriding"},{"line_number":137,"context_line":"                # with the header values"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_efaa0582","line":134,"range":{"start_line":134,"start_character":30,"end_line":134,"end_character":38},"updated":"2018-09-06 09:05:25.000000000","message":"nit: 2nd lower() redundant","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"b58c6663843ae976de240ed24eead126ca83724a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for header in resp.headers.keys():"},{"line_number":132,"context_line":"                # We lose the case-insensitive quality here"},{"line_number":133,"context_line":"                header \u003d header.lower()"},{"line_number":134,"context_line":"                if not header.lower().startswith(\u0027x-openstack\u0027):"},{"line_number":135,"context_line":"                    continue"},{"line_number":136,"context_line":"                # Once the body starts having these values, stop overriding"},{"line_number":137,"context_line":"                # with the header values"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_d86fc28f","line":134,"range":{"start_line":134,"start_character":30,"end_line":134,"end_character":38},"in_reply_to":"3f79a3b5_efaa0582","updated":"2018-09-06 20:49:57.000000000","message":"Done","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"}],"keystoneauth1/tests/unit/test_discovery.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1a5374cd9c4ebe4345665e60a586bf8a80983700","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            ["},{"line_number":584,"context_line":"                {"},{"line_number":585,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":586,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":587,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":588,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":589,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_c0e27601","line":586,"updated":"2018-09-06 11:44:46.000000000","message":"Shouldn\u0027t this be (1, 40) because of line 573?","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9d087b946712d5095e5321ff871d95f4bc30e7d0","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            ["},{"line_number":584,"context_line":"                {"},{"line_number":585,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":586,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":587,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":588,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":589,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_f83dde8d","line":586,"in_reply_to":"3f79a3b5_2007aa84","updated":"2018-09-06 20:49:00.000000000","message":"The code in line 141 is creating a record that will subsequently go through normalization. The normalized form uses the keys \"min_microversion\" and \"max_microversion\" for microversions and \"version\" for major api version.\n\nThe code on line 141 is creating a dict that serves as input to the normalization process. For this we deal with \u0027version\u0027 being the input value meaning \u0027max_microversion\u0027 - which is how half of the openstack services do it.","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"28c3aa85d5a50e60498ca516b5aa437c49dfba36","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            ["},{"line_number":584,"context_line":"                {"},{"line_number":585,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":586,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":587,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":588,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":589,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_2007aa84","line":586,"in_reply_to":"3f79a3b5_20900a43","updated":"2018-09-06 11:49:29.000000000","message":"If so then why are we defaulting to the microversion here https://review.openstack.org/#/c/595980/7/keystoneauth1/discover.py@141 ?","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b2942007534daff89bcddd48069141e91a39b651","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            ["},{"line_number":584,"context_line":"                {"},{"line_number":585,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":586,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":587,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":588,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":589,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_20900a43","line":586,"in_reply_to":"3f79a3b5_c0e27601","updated":"2018-09-06 11:46:30.000000000","message":"I think this is the major version, no?","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1a5374cd9c4ebe4345665e60a586bf8a80983700","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            ["},{"line_number":615,"context_line":"                {"},{"line_number":616,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":617,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":618,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":619,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":620,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_80e8fede","line":617,"updated":"2018-09-06 11:44:46.000000000","message":"Shouldn\u0027t this be (1, 21) because of https://review.openstack.org/#/c/595980/7/keystoneauth1/discover.py@141 ?","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9d087b946712d5095e5321ff871d95f4bc30e7d0","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            ["},{"line_number":615,"context_line":"                {"},{"line_number":616,"context_line":"                    \u0027collection\u0027: None,"},{"line_number":617,"context_line":"                    \u0027version\u0027: (1, 0),"},{"line_number":618,"context_line":"                    \u0027url\u0027: ironic_url,"},{"line_number":619,"context_line":"                    \u0027status\u0027: discover.Status.CURRENT,"},{"line_number":620,"context_line":"                    \u0027raw_status\u0027: discover.Status.CURRENT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_984cea3f","line":617,"in_reply_to":"3f79a3b5_80e8fede","updated":"2018-09-06 20:49:00.000000000","message":"See above.","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"}],"releasenotes/notes/ironic-microversions-a69bf92ab21f0cf5.yaml":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1a5374cd9c4ebe4345665e60a586bf8a80983700","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed support for detecting microversion ranges on older Ironic"},{"line_number":5,"context_line":"    installations."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_b59e9a51","line":3,"updated":"2018-09-06 11:44:46.000000000","message":"Is there a bug #?","commit_id":"63c24ef7ccc9063742d7610324d527be466238ed"}]}
