)]}'
{"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                                \"deleted during rotation.\", oldest_backup)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        if api_version_utils.compare_version_header_to_request("},{"line_number":373,"context_line":"                \"X-OpenStack-Nova-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":374,"context_line":"            image1_id \u003d resp[\u0027image_id\u0027]"},{"line_number":375,"context_line":"        else:"},{"line_number":376,"context_line":"            image1_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_87c8cea5","line":373,"range":{"start_line":373,"start_character":16,"end_line":373,"end_character":46},"updated":"2017-08-30 05:50:17.000000000","message":"can we use new header name - \u0027openstack-api-version\u0027","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"053747ed686c67fe60e636c9dd44a934574511a1","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        if api_version_utils.compare_version_header_to_request("},{"line_number":373,"context_line":"                \"X-OpenStack-Nova-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":374,"context_line":"            image1_id \u003d resp[\u0027image_id\u0027]"},{"line_number":375,"context_line":"        else:"},{"line_number":376,"context_line":"            image1_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"},{"line_number":377,"context_line":"        self.addCleanup(_clean_oldest_backup, image1_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_3cd6e129","line":374,"range":{"start_line":374,"start_character":12,"end_line":374,"end_character":40},"updated":"2017-08-29 17:27:24.000000000","message":"This is my favorite API change in microversions for its consistency.\nThanks for adding the corresponding test anyways.","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"91ac1ace4622aaa1fa16da2bb2801d0eef396d18","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                                \"deleted during rotation.\", oldest_backup)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":374,"context_line":"                \"OpenStack-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":375,"context_line":"            image1_id \u003d resp[\u0027image_id\u0027]"},{"line_number":376,"context_line":"        else:"},{"line_number":377,"context_line":"            image1_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_6ed6a42a","line":374,"range":{"start_line":374,"start_character":42,"end_line":374,"end_character":46},"updated":"2017-09-01 00:24:31.000000000","message":"how about passing\n\n\u0027compute 2.45\u0027 as per new header expected value","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2ba2fbfdd6861240f0d2d4e91b3b62c550e8d9a6","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                                \"deleted during rotation.\", oldest_backup)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":374,"context_line":"                \"OpenStack-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":375,"context_line":"            image1_id \u003d resp[\u0027image_id\u0027]"},{"line_number":376,"context_line":"        else:"},{"line_number":377,"context_line":"            image1_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_093cbabd","line":374,"range":{"start_line":374,"start_character":42,"end_line":374,"end_character":46},"in_reply_to":"7f287b81_6ed6a42a","updated":"2017-09-01 01:25:21.000000000","message":"Thanks, fixed in next patch.","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"91ac1ace4622aaa1fa16da2bb2801d0eef396d18","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                                         rotation\u003d2,"},{"line_number":387,"context_line":"                                         name\u003dbackup2).response"},{"line_number":388,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":389,"context_line":"                \"OpenStack-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":390,"context_line":"            image2_id \u003d resp[\u0027image_id\u0027]"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            image2_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_2ee09cfa","line":389,"range":{"start_line":389,"start_character":41,"end_line":389,"end_character":47},"updated":"2017-09-01 00:24:31.000000000","message":"ditto","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"91ac1ace4622aaa1fa16da2bb2801d0eef396d18","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                                         rotation\u003d2,"},{"line_number":430,"context_line":"                                         name\u003dbackup3).response"},{"line_number":431,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":432,"context_line":"                \"OpenStack-API-Version\", \"2.45\", resp, \"lt\"):"},{"line_number":433,"context_line":"            image3_id \u003d resp[\u0027image_id\u0027]"},{"line_number":434,"context_line":"        else:"},{"line_number":435,"context_line":"            image3_id \u003d data_utils.parse_image_id(resp[\u0027location\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_0ee5e00a","line":432,"range":{"start_line":432,"start_character":41,"end_line":432,"end_character":47},"updated":"2017-09-01 00:24:31.000000000","message":"ditto","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"}],"tempest/lib/common/api_version_utils.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd4bbe8796d3bd9dce5a9e0a8ce30d6a454ec2e3","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"def compare_version_header_to_request(api_microversion_header_name,"},{"line_number":126,"context_line":"                                      api_microversion,"},{"line_number":127,"context_line":"                                      response_header,"},{"line_number":128,"context_line":"                                      operation\u003d\u0027eq\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_e210a359","line":125,"range":{"start_line":125,"start_character":30,"end_line":125,"end_character":37},"updated":"2017-08-30 03:37:38.000000000","message":"Hmm, I used request here because of ``assert_version_header_matches_request`` above. Maybe ``compare_version_header_to_response`` is a better name, but that is inconsistent.","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"def compare_version_header_to_request(api_microversion_header_name,"},{"line_number":126,"context_line":"                                      api_microversion,"},{"line_number":127,"context_line":"                                      response_header,"},{"line_number":128,"context_line":"                                      operation\u003d\u0027eq\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_498669bb","line":125,"range":{"start_line":125,"start_character":30,"end_line":125,"end_character":37},"in_reply_to":"7f287b81_c75816fb","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"def compare_version_header_to_request(api_microversion_header_name,"},{"line_number":126,"context_line":"                                      api_microversion,"},{"line_number":127,"context_line":"                                      response_header,"},{"line_number":128,"context_line":"                                      operation\u003d\u0027eq\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_c75816fb","line":125,"range":{"start_line":125,"start_character":30,"end_line":125,"end_character":37},"in_reply_to":"7f287b81_e210a359","updated":"2017-08-30 05:50:17.000000000","message":"yea but let\u0027s have this correct at least. \n\ni prefer this- compare_microversion_to_response()","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                                      operation\u003d\u0027eq\u0027):"},{"line_number":129,"context_line":"    \"\"\"Compares API microversion in response header to `api_microversion`"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    Verify whether microversion is present in response header"},{"line_number":132,"context_line":"    and with specified \u0027api_microversion\u0027 value."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_c70c9695","line":132,"range":{"start_line":131,"start_character":4,"end_line":132,"end_character":48},"updated":"2017-08-30 05:50:17.000000000","message":"if we go with option1 mentioned @155 it should be\n\nCompare the \u0027api_microversion\u0027 value in response header if  microversion header is present in response otherwise return false.\n\nTo make this function work for APIs which does not return microversion header in response (example compute v2.0), this function does not raise InvalidHTTPResponseHeader if no microversion header in response.","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                                      operation\u003d\u0027eq\u0027):"},{"line_number":129,"context_line":"    \"\"\"Compares API microversion in response header to `api_microversion`"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    Verify whether microversion is present in response header"},{"line_number":132,"context_line":"    and with specified \u0027api_microversion\u0027 value."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_098ce1d4","line":132,"range":{"start_line":131,"start_character":4,"end_line":132,"end_character":48},"in_reply_to":"7f287b81_c70c9695","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    and with specified \u0027api_microversion\u0027 value."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""},{"line_number":136,"context_line":"    :param api_microversion: Microversion number like \"2.10\""},{"line_number":137,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":138,"context_line":"            expected to be present."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_4701c6ae","line":135,"range":{"start_line":135,"start_character":22,"end_line":135,"end_character":50},"updated":"2017-08-30 05:50:17.000000000","message":"let\u0027s give example of new header name also \u0027Openstack-Api-Version\u0027","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    and with specified \u0027api_microversion\u0027 value."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""},{"line_number":136,"context_line":"    :param api_microversion: Microversion number like \"2.10\""},{"line_number":137,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":138,"context_line":"            expected to be present."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_e9c075e3","line":135,"range":{"start_line":135,"start_character":22,"end_line":135,"end_character":50},"in_reply_to":"7f287b81_4701c6ae","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""},{"line_number":136,"context_line":"    :param api_microversion: Microversion number like \"2.10\""},{"line_number":137,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":138,"context_line":"            expected to be present."},{"line_number":139,"context_line":"    :param operation: The boolean operation to use to compare the"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_27fc7ab3","line":136,"range":{"start_line":136,"start_character":54,"end_line":136,"end_character":60},"updated":"2017-08-30 05:50:17.000000000","message":"let\u0027s have both value\n\nMicroversion number in format corresponding to given header name.\nExample \"2.10\" for old style header name \u0027X-OpenStack-Nova-API-Version\u0027 or \"Compute 2.10\" for new style header name \u0027Openstack-Api-Version\u0027","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    :param api_microversion_header_name: Microversion header name"},{"line_number":135,"context_line":"            Example- \"X-OpenStack-Nova-API-Version\""},{"line_number":136,"context_line":"    :param api_microversion: Microversion number like \"2.10\""},{"line_number":137,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":138,"context_line":"            expected to be present."},{"line_number":139,"context_line":"    :param operation: The boolean operation to use to compare the"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_f49decbb","line":136,"range":{"start_line":136,"start_character":54,"end_line":136,"end_character":60},"in_reply_to":"7f287b81_27fc7ab3","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    if operation is None:"},{"line_number":149,"context_line":"        msg \u003d (\"Operation %s is invalid. Valid options include: lt, eq, gt, \""},{"line_number":150,"context_line":"               \"le, ne, ge. \" % operation)"},{"line_number":151,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_47c8a672","line":151,"range":{"start_line":151,"start_character":25,"end_line":151,"end_character":50},"updated":"2017-08-30 05:50:17.000000000","message":"this is not correct exception to raise. This should be TempestException instead of RestClientException.\n\nbest suitable one i can find is InvalidStructure but i think we can define new generic exception for bad param something like :\n\n\nclass InvalidParam(TempestException):\n    message \u003d (\"Invalid Parameter passed: %(invalid_param)s\")","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    if operation is None:"},{"line_number":149,"context_line":"        msg \u003d (\"Operation %s is invalid. Valid options include: lt, eq, gt, \""},{"line_number":150,"context_line":"               \"le, ne, ge. \" % operation)"},{"line_number":151,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_14e07825","line":151,"range":{"start_line":151,"start_character":25,"end_line":151,"end_character":50},"in_reply_to":"7f287b81_47c8a672","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":150,"context_line":"               \"le, ne, ge. \" % operation)"},{"line_number":151,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"},{"line_number":155,"context_line":"        return False"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    # Remove \"volume\" from \"volume \u003cmicroversion\u003e\", for example, so that the"},{"line_number":158,"context_line":"    # microversion can be converted to `APIVersionRequest`."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_e77e72e2","line":155,"range":{"start_line":153,"start_character":0,"end_line":155,"end_character":20},"updated":"2017-08-30 05:50:17.000000000","message":"also let\u0027s move this condition as very first condition.","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"aee410ab5c45cc694fc2588415a34485a0460887","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"},{"line_number":155,"context_line":"        return False"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    # Remove \"volume\" from \"volume \u003cmicroversion\u003e\", for example, so that the"},{"line_number":158,"context_line":"    # microversion can be converted to `APIVersionRequest`."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_07a4deb8","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":20},"updated":"2017-08-30 05:50:17.000000000","message":"we should raise InvalidHTTPResponseHeader here to catch the buggy headers but then that would not work for v2.0\n\nWe have 2 options\n1. current way. just return false if microversion header is not present. But this should be clearly mentioned in doc string of this method.\n2. raise exception but then this function should be called on for v2.1 cases. which will be little bit hard to do on test side.\n\nLet\u0027s go with options one.","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"},{"line_number":155,"context_line":"        return False"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    # Remove \"volume\" from \"volume \u003cmicroversion\u003e\", for example, so that the"},{"line_number":158,"context_line":"    # microversion can be converted to `APIVersionRequest`."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_c96819f6","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":20},"in_reply_to":"7f287b81_07a4deb8","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d8f0aa1d2d017170465de7097c24512da7a86d4","unresolved":false,"context_lines":[{"line_number":150,"context_line":"               \"le, ne, ge. \" % operation)"},{"line_number":151,"context_line":"        raise exceptions.InvalidHTTPResponseHeader(msg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    api_microversion_header_name \u003d api_microversion_header_name.lower()"},{"line_number":154,"context_line":"    if api_microversion_header_name not in response_header:"},{"line_number":155,"context_line":"        return False"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    # Remove \"volume\" from \"volume \u003cmicroversion\u003e\", for example, so that the"},{"line_number":158,"context_line":"    # microversion can be converted to `APIVersionRequest`."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_e965151f","line":155,"range":{"start_line":153,"start_character":0,"end_line":155,"end_character":20},"in_reply_to":"7f287b81_e77e72e2","updated":"2017-08-30 19:27:34.000000000","message":"Done","commit_id":"b417e5e8de467e6c8b255960268a4e8cf350e0fa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"91ac1ace4622aaa1fa16da2bb2801d0eef396d18","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        * \u00272.10\u0027 for the old-style header name, \u0027X-OpenStack-Nova-API-Version\u0027"},{"line_number":145,"context_line":"        * \u0027Compute 2.10\u0027 for the new-style header name, \u0027Openstack-Api-Version\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        .. note::"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"            The new-style header name might only work with specific"},{"line_number":150,"context_line":"            microversions."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":153,"context_line":"        expected to be present."}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_ce9c786c","line":150,"range":{"start_line":147,"start_character":0,"end_line":150,"end_character":26},"updated":"2017-09-01 00:24:31.000000000","message":"is this true ?It should be working with all microversion. For nova case i am sure it works for all version.","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1b7b176677a63ce5a60458c590062680b01c85c8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        * \u00272.10\u0027 for the old-style header name, \u0027X-OpenStack-Nova-API-Version\u0027"},{"line_number":145,"context_line":"        * \u0027Compute 2.10\u0027 for the new-style header name, \u0027Openstack-Api-Version\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        .. note::"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"            The new-style header name might only work with specific"},{"line_number":150,"context_line":"            microversions."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":153,"context_line":"        expected to be present."}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_9fbc5c6d","line":150,"range":{"start_line":147,"start_character":0,"end_line":150,"end_character":26},"in_reply_to":"7f287b81_8950aa0c","updated":"2017-09-01 05:40:10.000000000","message":"humm, actually nova return in all microvesion and 2.27 is for publishing the new style header. \n\nI think that api-ref is little bit confusing. i will check if we can get more clarity in doc.","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f9eec1eff9eaeee25d8139d274381a9320a8a7cd","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        * \u00272.10\u0027 for the old-style header name, \u0027X-OpenStack-Nova-API-Version\u0027"},{"line_number":145,"context_line":"        * \u0027Compute 2.10\u0027 for the new-style header name, \u0027Openstack-Api-Version\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        .. note::"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"            The new-style header name might only work with specific"},{"line_number":150,"context_line":"            microversions."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":153,"context_line":"        expected to be present."}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_3f70c8dc","line":150,"range":{"start_line":147,"start_character":0,"end_line":150,"end_character":26},"in_reply_to":"7f287b81_9fbc5c6d","updated":"2017-09-01 05:44:16.000000000","message":"on second thought doc is actually not wrong. new style header is added in 2.27 means if your cloud does not support 2.27 (means it is old code) then this microversion header would not work.\n\nBut if it is there it will work for all microversion request.","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"63faeab0a3b3cb0b9bfa64d57aba3bd07309a24c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        * \u00272.10\u0027 for the old-style header name, \u0027X-OpenStack-Nova-API-Version\u0027"},{"line_number":145,"context_line":"        * \u0027Compute 2.10\u0027 for the new-style header name, \u0027Openstack-Api-Version\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        .. note::"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"            The new-style header name might only work with specific"},{"line_number":150,"context_line":"            microversions."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    :param response_header: Response header where microversion is"},{"line_number":153,"context_line":"        expected to be present."}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_8950aa0c","line":150,"range":{"start_line":147,"start_character":0,"end_line":150,"end_character":26},"in_reply_to":"7f287b81_ce9c786c","updated":"2017-09-01 01:24:20.000000000","message":"I included this because of this in Nova docs [0]: \"[microversions] can be requested through the use of the X-OpenStack-Nova-API-Version header, or since microversion 2.27 the OpenStack-API-Version header may also be used.\"\n\n[0] https://developer.openstack.org/api-ref/compute/#api-versions","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e91dc4a6c1fde696993110bb15aa6926e876ad14","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    if op is None:"},{"line_number":172,"context_line":"        msg \u003d (\"Operation %s is invalid. Valid options include: lt, eq, gt, \""},{"line_number":173,"context_line":"               \"le, ne, ge. \" % operation)"},{"line_number":174,"context_line":"        LOG.debug(msg)"},{"line_number":175,"context_line":"        raise exceptions.InvalidParam(invalid_param\u003dmsg)"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_4e26486b","line":173,"range":{"start_line":173,"start_character":27,"end_line":173,"end_character":28},"updated":"2017-09-01 00:14:43.000000000","message":"Extra space here... will fix if respin needed","commit_id":"2e1a9177843e4fb76f736326d20b18af6ce7442c"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"03d575f00e8b68c7b7f076d28197b67aa7675d2e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    if op is None:"},{"line_number":167,"context_line":"        msg \u003d (\"Operation %s is invalid. Valid options include: lt, eq, gt, \""},{"line_number":168,"context_line":"               \"le, ne, ge.\" % operation)"},{"line_number":169,"context_line":"        LOG.debug(msg)"},{"line_number":170,"context_line":"        raise exceptions.InvalidParam(invalid_param\u003dmsg)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    # Remove \"volume\" from \"volume \u003cmicroversion\u003e\", for example, so that the"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_9a822a52","line":169,"updated":"2017-09-01 06:05:31.000000000","message":"nit, do we really need this debug log here? I guess this msg should be logged by the caller.","commit_id":"9ff5c280ab55eaaa5a5e2b5b8bfa46bafebbfed2"}]}
