)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Andre Aranha \u003cafariasa@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-16 17:20:09 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DNM Change default microversion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default microversion will be the max supported by the server."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"07a7bc65_9ec0f5af","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":3},"updated":"2023-01-17 12:43:12.000000000","message":"Don\u0027t forget to remove this.","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"70105c0773c5a9a3376eb70f51fedb560fb625a2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andre Aranha \u003cafariasa@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-16 17:20:09 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DNM Change default microversion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default microversion will be the max supported by the server."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"8e675ec7_b8857d18","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":3},"in_reply_to":"07a7bc65_9ec0f5af","updated":"2023-01-17 15:13:44.000000000","message":"Done","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"}],"barbicanclient/v1/client.py":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"81ba72ed51621ab322d352f302fd7a291a557fc5","unresolved":true,"context_lines":[{"line_number":70,"context_line":"    def _validate_microversion(self, session, endpoint, version, service_type,"},{"line_number":71,"context_line":"                               service_name, interface, region_name,"},{"line_number":72,"context_line":"                               microversion):"},{"line_number":73,"context_line":"        # first we make sure that the microversion is something we understand"},{"line_number":74,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":75,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":76,"context_line":"            raise ValueError(\"Invalid microversion {}\".format(microversion))"},{"line_number":77,"context_line":"        microversion \u003d discover.version_to_string(normalized)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if not endpoint:"},{"line_number":80,"context_line":"            endpoint \u003d session.get_endpoint("}],"source_content_type":"text/x-python","patch_set":5,"id":"7de9e741_0841e33d","side":"PARENT","line":77,"range":{"start_line":73,"start_character":0,"end_line":77,"end_character":61},"updated":"2023-01-13 16:11:52.000000000","message":"We still want to execute this code.  Basically, this code verifies that the client software supports the version requested.\n\nThis allows us to error out correctly (and before even trying to contact the server) if:\n1. the version is malformed - like foo, or ver1.2 for instance\n2. the version is not supported by the client\n\nNotice that the client has a list of supported microversions above in lines 29,30.  So, if someone asks for version 1.9  this will fail here first because the client does not support version 1.9","commit_id":"b3f3912a71ff1c2e85e5c2e3bed40c744312de3d"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def _validate_microversion(self, session, endpoint, version, service_type,"},{"line_number":71,"context_line":"                               service_name, interface, region_name,"},{"line_number":72,"context_line":"                               microversion):"},{"line_number":73,"context_line":"        # first we make sure that the microversion is something we understand"},{"line_number":74,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":75,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":76,"context_line":"            raise ValueError(\"Invalid microversion {}\".format(microversion))"},{"line_number":77,"context_line":"        microversion \u003d discover.version_to_string(normalized)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if not endpoint:"},{"line_number":80,"context_line":"            endpoint \u003d session.get_endpoint("}],"source_content_type":"text/x-python","patch_set":5,"id":"09745078_2be75d02","side":"PARENT","line":77,"range":{"start_line":73,"start_character":0,"end_line":77,"end_character":61},"in_reply_to":"7de9e741_0841e33d","updated":"2023-01-13 16:41:44.000000000","message":"Done","commit_id":"b3f3912a71ff1c2e85e5c2e3bed40c744312de3d"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"ec87e2b551bce2b985d075b7511384ded32dd79a","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if microversion is None:"},{"line_number":56,"context_line":"            raise ValueError("},{"line_number":57,"context_line":"                \"Endpoint does not support support selected microversion\""},{"line_number":58,"context_line":"            )"},{"line_number":59,"context_line":"            kwargs[\u0027default_microversion\u0027] \u003d microversion"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cb536670_eba85f8c","line":57,"range":{"start_line":57,"start_character":43,"end_line":57,"end_character":50},"updated":"2023-01-13 15:22:46.000000000","message":"\"support\" twice?","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if microversion is None:"},{"line_number":56,"context_line":"            raise ValueError("},{"line_number":57,"context_line":"                \"Endpoint does not support support selected microversion\""},{"line_number":58,"context_line":"            )"},{"line_number":59,"context_line":"            kwargs[\u0027default_microversion\u0027] \u003d microversion"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1dc83fe5_b5f9bfc4","line":57,"range":{"start_line":57,"start_character":43,"end_line":57,"end_character":50},"in_reply_to":"cb536670_eba85f8c","updated":"2023-01-13 16:41:44.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"98f72c12a0a2474ee9d842e89e0a3d8a90fe5dce","unresolved":true,"context_lines":[{"line_number":67,"context_line":"        self.cas \u003d cas.CAManager(self.client)"},{"line_number":68,"context_line":"        self.acls \u003d acls.ACLManager(self.client)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _get_microversion(self, session, endpoint, version, service_type,"},{"line_number":71,"context_line":"                          service_name, interface, region_name, microversion):"},{"line_number":72,"context_line":"        min_ver, max_ver \u003d self._get_min_max_server_supported_microversion("},{"line_number":73,"context_line":"            session, endpoint, version, service_type, service_name, interface,"}],"source_content_type":"text/x-python","patch_set":5,"id":"408492fc_b2bdf8b9","line":70,"updated":"2023-01-13 13:26:11.000000000","message":"s/_get_microversion/_get_max_microversion/","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.cas \u003d cas.CAManager(self.client)"},{"line_number":68,"context_line":"        self.acls \u003d acls.ACLManager(self.client)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _get_microversion(self, session, endpoint, version, service_type,"},{"line_number":71,"context_line":"                          service_name, interface, region_name, microversion):"},{"line_number":72,"context_line":"        min_ver, max_ver \u003d self._get_min_max_server_supported_microversion("},{"line_number":73,"context_line":"            session, endpoint, version, service_type, service_name, interface,"}],"source_content_type":"text/x-python","patch_set":5,"id":"e8a2c111_9023662f","line":70,"in_reply_to":"11fd7dfc_8f9f3d46","updated":"2023-01-13 16:41:44.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"81ba72ed51621ab322d352f302fd7a291a557fc5","unresolved":true,"context_lines":[{"line_number":67,"context_line":"        self.cas \u003d cas.CAManager(self.client)"},{"line_number":68,"context_line":"        self.acls \u003d acls.ACLManager(self.client)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _get_microversion(self, session, endpoint, version, service_type,"},{"line_number":71,"context_line":"                          service_name, interface, region_name, microversion):"},{"line_number":72,"context_line":"        min_ver, max_ver \u003d self._get_min_max_server_supported_microversion("},{"line_number":73,"context_line":"            session, endpoint, version, service_type, service_name, interface,"}],"source_content_type":"text/x-python","patch_set":5,"id":"11fd7dfc_8f9f3d46","line":70,"in_reply_to":"408492fc_b2bdf8b9","updated":"2023-01-13 16:11:52.000000000","message":"get_max_supported_version","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"81ba72ed51621ab322d352f302fd7a291a557fc5","unresolved":true,"context_lines":[{"line_number":73,"context_line":"            session, endpoint, version, service_type, service_name, interface,"},{"line_number":74,"context_line":"            region_name)"},{"line_number":75,"context_line":"        if microversion is None:"},{"line_number":76,"context_line":"            return max_ver"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if discover.version_between(min_ver, max_ver, microversion):"},{"line_number":79,"context_line":"            return microversion"}],"source_content_type":"text/x-python","patch_set":5,"id":"bb5b7f1c_0383fc9e","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":26},"updated":"2023-01-13 16:11:52.000000000","message":"This isn\u0027t quite right.  You need to support the maximum version that is supported by both the client and server.  For example, if the server supports versions 1.0 to 1.2 (min \u003d 1.0, max \u003d 1.2) and the client supports (see line 30 above) 1.0 and 1.1, then you should return 1.1.\n\nRight now, you will return 1.2 - which is incorrect.\n\nThat does of course beg the question of what to do if there is no overlap between the server and client versions  -- if there isn\u0027t you\u0027ll need to error out accordingly.\n\nSo, the logic is:\n\nif microversion is None:\n   iterate through client_supported_versions from highest to lowest:\n       if client_version in max, min\n          return client_version\n   error_out \"No match between client and server","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            session, endpoint, version, service_type, service_name, interface,"},{"line_number":74,"context_line":"            region_name)"},{"line_number":75,"context_line":"        if microversion is None:"},{"line_number":76,"context_line":"            return max_ver"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if discover.version_between(min_ver, max_ver, microversion):"},{"line_number":79,"context_line":"            return microversion"}],"source_content_type":"text/x-python","patch_set":5,"id":"1074b703_8c89aed5","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":26},"in_reply_to":"bb5b7f1c_0383fc9e","updated":"2023-01-13 16:41:44.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"81ba72ed51621ab322d352f302fd7a291a557fc5","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                region_name\u003dregion_name,"},{"line_number":93,"context_line":"                version\u003dversion"},{"line_number":94,"context_line":"            )"},{"line_number":95,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"a6ce44d7_792d7b74","line":95,"range":{"start_line":95,"start_character":73,"end_line":95,"end_character":76},"updated":"2023-01-13 16:11:52.000000000","message":"feels like we should be sending something that reflects the max supported version of the client.","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                region_name\u003dregion_name,"},{"line_number":93,"context_line":"                version\u003dversion"},{"line_number":94,"context_line":"            )"},{"line_number":95,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"480666ed_da9bb846","line":95,"range":{"start_line":95,"start_character":73,"end_line":95,"end_character":76},"in_reply_to":"8e4022b5_4dd39e0f","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"5055644aff0e07c2c1cdd9e08fc7282aa6c1d43f","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                region_name\u003dregion_name,"},{"line_number":93,"context_line":"                version\u003dversion"},{"line_number":94,"context_line":"            )"},{"line_number":95,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"8e4022b5_4dd39e0f","line":95,"range":{"start_line":95,"start_character":73,"end_line":95,"end_character":76},"in_reply_to":"a6ce44d7_792d7b74","updated":"2023-01-16 12:07:38.000000000","message":"I\u0027m ok with requesting the 1.1 version, since if we request a version not supported by the server we will get a traceback and will have to make more requests.","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"81ba72ed51621ab322d352f302fd7a291a557fc5","unresolved":true,"context_lines":[{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.0\u0027)"},{"line_number":100,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":101,"context_line":"            return min_ver, max_ver"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5905dc87_181b7ff7","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":78},"updated":"2023-01-13 16:11:52.000000000","message":"Can you explain how we ever get to this point?  Why do we need to have two calls?","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.0\u0027)"},{"line_number":100,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":101,"context_line":"            return min_ver, max_ver"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"adf70de1_fa97a85e","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":78},"in_reply_to":"1583f8c4_7ac7059d","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":true,"context_lines":[{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.0\u0027)"},{"line_number":100,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":101,"context_line":"            return min_ver, max_ver"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1583f8c4_7ac7059d","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":78},"in_reply_to":"5905dc87_181b7ff7","updated":"2023-01-13 16:41:44.000000000","message":"On an older server, requesting microversion 1.1 will throw an error. We need this second check for version 1.0.\nUnless we wanna assume that if the server doesn\u0027t support 1.1, it\u0027ll support 1.0. That would work for now, but I\u0027m not sure it`d age after we add more microversions.","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":35125,"name":"Mauricio Harley","email":"mharley@redhat.com","username":"mharley-rh"},"change_message_id":"ec87e2b551bce2b985d075b7511384ded32dd79a","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                region_name\u003dregion_name,"},{"line_number":93,"context_line":"                version\u003dversion"},{"line_number":94,"context_line":"            )"},{"line_number":95,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.0\u0027)"},{"line_number":100,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":101,"context_line":"            return min_ver, max_ver"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        return None, None"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f0ee46c5_765837b6","line":101,"range":{"start_line":95,"start_character":0,"end_line":101,"end_character":35},"updated":"2023-01-13 15:22:46.000000000","message":"This can be optimized with a \"for\" loop.\n\nfor version in (\"1.1¨, \"1.0\"):\n    min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, version)\n    ...","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"e91e8d0d69fb55b856d0c2d64c4b8e7fd1e7f4d0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                region_name\u003dregion_name,"},{"line_number":93,"context_line":"                version\u003dversion"},{"line_number":94,"context_line":"            )"},{"line_number":95,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":96,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":97,"context_line":"            return min_ver, max_ver"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.0\u0027)"},{"line_number":100,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":101,"context_line":"            return min_ver, max_ver"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        return None, None"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"4ba96f7e_a6b85301","line":101,"range":{"start_line":95,"start_character":0,"end_line":101,"end_character":35},"in_reply_to":"f0ee46c5_765837b6","updated":"2023-01-13 16:41:44.000000000","message":"Done","commit_id":"733e192195be7aed40e8caf85585b300bb57baa8"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"0754abe51a65fbdf7986c7826bc107e7fcb75b9b","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            raise ValueError("},{"line_number":57,"context_line":"                \"Endpoint does not support selected microversion\""},{"line_number":58,"context_line":"            )"},{"line_number":59,"context_line":"            kwargs[\u0027default_microversion\u0027] \u003d microversion"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        # TODO(dmendiza): This should be a private member"},{"line_number":62,"context_line":"        self.client \u003d base_client._HTTPClient(session\u003dsession, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"a064f00c_e8ef0f0c","line":59,"range":{"start_line":59,"start_character":12,"end_line":59,"end_character":57},"updated":"2023-01-16 12:50:48.000000000","message":"Is this indentation right?  Or is this just an artifact of gerrit?","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            raise ValueError("},{"line_number":57,"context_line":"                \"Endpoint does not support selected microversion\""},{"line_number":58,"context_line":"            )"},{"line_number":59,"context_line":"            kwargs[\u0027default_microversion\u0027] \u003d microversion"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        # TODO(dmendiza): This should be a private member"},{"line_number":62,"context_line":"        self.client \u003d base_client._HTTPClient(session\u003dsession, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"55fabdae_beb22e00","line":59,"range":{"start_line":59,"start_character":12,"end_line":59,"end_character":57},"in_reply_to":"3a0596a0_764e1608","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"17c8e52114272fcb5e7c2318790a9fb1c42f79ae","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            raise ValueError("},{"line_number":57,"context_line":"                \"Endpoint does not support selected microversion\""},{"line_number":58,"context_line":"            )"},{"line_number":59,"context_line":"            kwargs[\u0027default_microversion\u0027] \u003d microversion"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        # TODO(dmendiza): This should be a private member"},{"line_number":62,"context_line":"        self.client \u003d base_client._HTTPClient(session\u003dsession, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a0596a0_764e1608","line":59,"range":{"start_line":59,"start_character":12,"end_line":59,"end_character":57},"in_reply_to":"a064f00c_e8ef0f0c","updated":"2023-01-16 15:48:31.000000000","message":"It was fixed on the unit tests patch. I\u0027ll update it here though on the next patch","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"0754abe51a65fbdf7986c7826bc107e7fcb75b9b","unresolved":true,"context_lines":[{"line_number":70,"context_line":"    def _get_max_supported_version(self, session, endpoint, version,"},{"line_number":71,"context_line":"                                   service_type, service_name, interface,"},{"line_number":72,"context_line":"                                   region_name, microversion):"},{"line_number":73,"context_line":"        min_ver, max_ver \u003d self._get_min_max_server_supported_microversion("},{"line_number":74,"context_line":"            session, endpoint, version, service_type, service_name, interface,"},{"line_number":75,"context_line":"            region_name)"},{"line_number":76,"context_line":"        if microversion is None:"},{"line_number":77,"context_line":"            for client_version in _SUPPORTED_MICROVERSIONS[::-1]:"},{"line_number":78,"context_line":"                if discover.version_between(min_ver, max_ver, client_version):"}],"source_content_type":"text/x-python","patch_set":6,"id":"cfc2c7ed_f3a00a39","line":75,"range":{"start_line":73,"start_character":8,"end_line":75,"end_character":24},"updated":"2023-01-16 12:50:48.000000000","message":"Given that this is a call to the server, I\u0027d rather re-order this section.\nIt is better to fail fast if the microversion passed in is invalid.\n\nSo, I\u0027d do something like this:\n\n if microversion is not None:\n     # check if requested microversion is well formed and something we understand\n     normalized \u003d discover.normalize_version_number(microversion)\n     if normalized not in _SUPPORTED_MICROVERSIONS:\n         raise ValueError(\"Invalid microversion {}\".format(microversion))\n     microversion \u003d discover.version_to_string(normalized) \n     \n min_ver, max_ver \u003d self._get_min_max_server_supported_microversion(\n     session, endpoint, version, service_type, service_name, interface,\n     region_name)\n          \n if microversion is None:\n     for client_version in _SUPPORTED_MICROVERSIONS[::-1]:\n     if discover.version_between(min_ver, max_ver, client_version):\n         return client_version\n     raise ValueError(\n        \"Couldn\u0027t find a version supported by both client and server\")\n  else:\n     if ! discover.version_between(min_ver, max_ver, microversion):\n         raise ValueError(\n            \"Invalid microversion {}: Microversion requested is not \"\n            \"supported by the server\".format(microversion))\n     return microversion","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def _get_max_supported_version(self, session, endpoint, version,"},{"line_number":71,"context_line":"                                   service_type, service_name, interface,"},{"line_number":72,"context_line":"                                   region_name, microversion):"},{"line_number":73,"context_line":"        min_ver, max_ver \u003d self._get_min_max_server_supported_microversion("},{"line_number":74,"context_line":"            session, endpoint, version, service_type, service_name, interface,"},{"line_number":75,"context_line":"            region_name)"},{"line_number":76,"context_line":"        if microversion is None:"},{"line_number":77,"context_line":"            for client_version in _SUPPORTED_MICROVERSIONS[::-1]:"},{"line_number":78,"context_line":"                if discover.version_between(min_ver, max_ver, client_version):"}],"source_content_type":"text/x-python","patch_set":6,"id":"37ba1b38_2e0d2501","line":75,"range":{"start_line":73,"start_character":8,"end_line":75,"end_character":24},"in_reply_to":"cfc2c7ed_f3a00a39","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"0754abe51a65fbdf7986c7826bc107e7fcb75b9b","unresolved":true,"context_lines":[{"line_number":85,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":86,"context_line":"            raise ValueError(\"Invalid microversion {}\".format(microversion))"},{"line_number":87,"context_line":"        microversion \u003d discover.version_to_string(normalized)"},{"line_number":88,"context_line":"        if discover.version_between(min_ver, max_ver, microversion):"},{"line_number":89,"context_line":"            raise ValueError("},{"line_number":90,"context_line":"                \"Invalid microversion {}: Microversion requested is not \""},{"line_number":91,"context_line":"                \"supported by the server\".format(microversion))"},{"line_number":92,"context_line":"        return None"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_min_max_server_supported_microversion(self, session, endpoint,"}],"source_content_type":"text/x-python","patch_set":6,"id":"b4ed6a7e_0db1f18c","line":91,"range":{"start_line":88,"start_character":8,"end_line":91,"end_character":63},"updated":"2023-01-16 12:50:48.000000000","message":"This can\u0027t be right -- shouldn\u0027t this be if NOT discover_version(...) raise ValueError(), otherwise return microversion  ?","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":86,"context_line":"            raise ValueError(\"Invalid microversion {}\".format(microversion))"},{"line_number":87,"context_line":"        microversion \u003d discover.version_to_string(normalized)"},{"line_number":88,"context_line":"        if discover.version_between(min_ver, max_ver, microversion):"},{"line_number":89,"context_line":"            raise ValueError("},{"line_number":90,"context_line":"                \"Invalid microversion {}: Microversion requested is not \""},{"line_number":91,"context_line":"                \"supported by the server\".format(microversion))"},{"line_number":92,"context_line":"        return None"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_min_max_server_supported_microversion(self, session, endpoint,"}],"source_content_type":"text/x-python","patch_set":6,"id":"2f627da5_a4d74d82","line":91,"range":{"start_line":88,"start_character":8,"end_line":91,"end_character":63},"in_reply_to":"b4ed6a7e_0db1f18c","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"87693db420366242f72a826a1aace581cfeb3110","unresolved":true,"context_lines":[{"line_number":104,"context_line":"                version\u003dversion"},{"line_number":105,"context_line":"            )"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        for microversion in (\u00271,1\u0027, \u00271.0\u0027):"},{"line_number":108,"context_line":"            min_ver, max_ver \u003d self._get_min_max_version("},{"line_number":109,"context_line":"                session, endpoint, microversion)"},{"line_number":110,"context_line":"            if min_ver is not None and max_ver is not None:"},{"line_number":111,"context_line":"                return min_ver, max_ver"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        return None, None"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d5b89ca3_36bf1a1c","line":111,"range":{"start_line":107,"start_character":7,"end_line":111,"end_character":39},"updated":"2023-01-16 13:02:18.000000000","message":"Ok -- I\u0027m ok with this but we want a comment as to why we are doing this -- ie. that an old server will return an error when presented with a microversion header.  Part of my confusion is in the comment that was added below which implies that no error will be passed back.   See below.","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                version\u003dversion"},{"line_number":105,"context_line":"            )"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        for microversion in (\u00271,1\u0027, \u00271.0\u0027):"},{"line_number":108,"context_line":"            min_ver, max_ver \u003d self._get_min_max_version("},{"line_number":109,"context_line":"                session, endpoint, microversion)"},{"line_number":110,"context_line":"            if min_ver is not None and max_ver is not None:"},{"line_number":111,"context_line":"                return min_ver, max_ver"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        return None, None"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e154451e_2fd9ac33","line":111,"range":{"start_line":107,"start_character":7,"end_line":111,"end_character":39},"in_reply_to":"d5b89ca3_36bf1a1c","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"87693db420366242f72a826a1aace581cfeb3110","unresolved":true,"context_lines":[{"line_number":124,"context_line":"        status \u003d resp[\u0027status\u0027].upper()"},{"line_number":125,"context_line":"        if status \u003d\u003d _STABLE:"},{"line_number":126,"context_line":"            # status is only set to STABLE in two cases"},{"line_number":127,"context_line":"            # 1. when the server is older and is ignoring the microversion"},{"line_number":128,"context_line":"            #    header"},{"line_number":129,"context_line":"            # 2. when we ask for microversion 1.0 and the server"},{"line_number":130,"context_line":"            #    undertsands the header"},{"line_number":131,"context_line":"            # in either case min/max will be 1.0"}],"source_content_type":"text/x-python","patch_set":6,"id":"5b4522f1_748b7fad","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":23},"updated":"2023-01-16 13:02:18.000000000","message":"This comment implies to me that an error is not thrown when an older server is confronted with a 1.1 microversion header.","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        status \u003d resp[\u0027status\u0027].upper()"},{"line_number":125,"context_line":"        if status \u003d\u003d _STABLE:"},{"line_number":126,"context_line":"            # status is only set to STABLE in two cases"},{"line_number":127,"context_line":"            # 1. when the server is older and is ignoring the microversion"},{"line_number":128,"context_line":"            #    header"},{"line_number":129,"context_line":"            # 2. when we ask for microversion 1.0 and the server"},{"line_number":130,"context_line":"            #    undertsands the header"},{"line_number":131,"context_line":"            # in either case min/max will be 1.0"}],"source_content_type":"text/x-python","patch_set":6,"id":"554faeff_9aa2259e","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":23},"in_reply_to":"5b4522f1_748b7fad","updated":"2023-01-17 12:43:12.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"87693db420366242f72a826a1aace581cfeb3110","unresolved":true,"context_lines":[{"line_number":127,"context_line":"            # 1. when the server is older and is ignoring the microversion"},{"line_number":128,"context_line":"            #    header"},{"line_number":129,"context_line":"            # 2. when we ask for microversion 1.0 and the server"},{"line_number":130,"context_line":"            #    undertsands the header"},{"line_number":131,"context_line":"            # in either case min/max will be 1.0"},{"line_number":132,"context_line":"            min_ver \u003d \u00271.0\u0027"},{"line_number":133,"context_line":"            max_ver \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"784ea915_7d6def48","line":130,"range":{"start_line":130,"start_character":17,"end_line":130,"end_character":29},"updated":"2023-01-16 13:02:18.000000000","message":"s/understands/","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"17c8e52114272fcb5e7c2318790a9fb1c42f79ae","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            # 1. when the server is older and is ignoring the microversion"},{"line_number":128,"context_line":"            #    header"},{"line_number":129,"context_line":"            # 2. when we ask for microversion 1.0 and the server"},{"line_number":130,"context_line":"            #    undertsands the header"},{"line_number":131,"context_line":"            # in either case min/max will be 1.0"},{"line_number":132,"context_line":"            min_ver \u003d \u00271.0\u0027"},{"line_number":133,"context_line":"            max_ver \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1da1d3ec_fcbda328","line":130,"range":{"start_line":130,"start_character":17,"end_line":130,"end_character":29},"in_reply_to":"784ea915_7d6def48","updated":"2023-01-16 15:48:31.000000000","message":"Done","commit_id":"d3ac3d84f7901cbcbb4de654283965283b74a0e5"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":true,"context_lines":[{"line_number":74,"context_line":"            return"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # We need to make sure that the microversion is something we understand"},{"line_number":77,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":78,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":79,"context_line":"            raise ValueError("},{"line_number":80,"context_line":"                \"Invalid microversion {}\".format(microversion))"}],"source_content_type":"text/x-python","patch_set":8,"id":"abe2cad6_7499f05a","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":68},"updated":"2023-01-17 12:43:12.000000000","message":"Does this throw an exception if the microversion is invalid or just return None?","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"bda647f9550c1b2be47e4a6cc9be9b672a9b37a0","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            return"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # We need to make sure that the microversion is something we understand"},{"line_number":77,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":78,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":79,"context_line":"            raise ValueError("},{"line_number":80,"context_line":"                \"Invalid microversion {}\".format(microversion))"}],"source_content_type":"text/x-python","patch_set":8,"id":"6f6cb859_490e8d96","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":68},"in_reply_to":"9869a93a_72000a23","updated":"2023-01-17 17:09:41.000000000","message":"Done","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"70105c0773c5a9a3376eb70f51fedb560fb625a2","unresolved":true,"context_lines":[{"line_number":74,"context_line":"            return"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # We need to make sure that the microversion is something we understand"},{"line_number":77,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":78,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":79,"context_line":"            raise ValueError("},{"line_number":80,"context_line":"                \"Invalid microversion {}\".format(microversion))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9869a93a_72000a23","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":68},"in_reply_to":"abe2cad6_7499f05a","updated":"2023-01-17 15:13:44.000000000","message":"It returns a TypeError exception like: \"TypeError: Invalid version specified: {}\"","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        # We need to make sure that the microversion is something we understand"},{"line_number":77,"context_line":"        normalized \u003d discover.normalize_version_number(microversion)"},{"line_number":78,"context_line":"        if normalized not in _SUPPORTED_MICROVERSIONS:"},{"line_number":79,"context_line":"            raise ValueError("},{"line_number":80,"context_line":"                \"Invalid microversion {}\".format(microversion))"},{"line_number":81,"context_line":"        return discover.version_to_string(normalized)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _get_max_supported_version(self, session, endpoint, version,"}],"source_content_type":"text/x-python","patch_set":8,"id":"47e66a58_f79267ac","line":80,"range":{"start_line":79,"start_character":12,"end_line":80,"end_character":63},"updated":"2023-01-17 12:43:12.000000000","message":"If the normalize_version_number throws an exception for a bad microversion, we can be a little more specific in this error.  Like for instance - \n\n\"Client does not support microversion {}\"","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"01925e8a5ec9e845592629619b5549b50b528c89","unresolved":true,"context_lines":[{"line_number":115,"context_line":"            )"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":118,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":119,"context_line":"            return min_ver, max_ver"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        return None, None"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _get_min_max_version(self, session, endpoint, microversion):"},{"line_number":124,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5c1b2c5a_25c5493f","line":121,"range":{"start_line":118,"start_character":8,"end_line":121,"end_character":25},"updated":"2023-01-17 12:43:12.000000000","message":"This can be simplified to:\n\nreturn min_ver, max_ver","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"},{"author":{"_account_id":34120,"name":"Andre Aranha","display_name":"afariasa","email":"afariasa@redhat.com","username":"afariasa"},"change_message_id":"70105c0773c5a9a3376eb70f51fedb560fb625a2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            )"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        min_ver, max_ver \u003d self._get_min_max_version(session, endpoint, \u00271.1\u0027)"},{"line_number":118,"context_line":"        if min_ver is not None and max_ver is not None:"},{"line_number":119,"context_line":"            return min_ver, max_ver"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        return None, None"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _get_min_max_version(self, session, endpoint, microversion):"},{"line_number":124,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa737b2e_d4e53828","line":121,"range":{"start_line":118,"start_character":8,"end_line":121,"end_character":25},"in_reply_to":"5c1b2c5a_25c5493f","updated":"2023-01-17 15:13:44.000000000","message":"Done","commit_id":"a9b8bfa80d6a0644cc81f1527101b764da572ff1"}]}
