)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e789d2f4_d949a320","updated":"2022-10-25 14:36:12.000000000","message":"Looks good, but there are few things we should fix first","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"}],"openstackclient/compute/v2/usage.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":true,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \"2.40\"):"},{"line_number":173,"context_line":"            usage_list \u003d list(compute_client.usages("},{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"}],"source_content_type":"text/x-python","patch_set":1,"id":"43446f68_a8d933e5","line":174,"updated":"2022-10-25 14:36:12.000000000","message":"please explicitly name params to usages call. This saves quite some work once interface changes.","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":35355,"name":"Daniel Wilson","email":"danielcw@bu.edu","username":"dannosliwcd"},"change_message_id":"faeee9a2a2e7ecd238db346fb36c3b86bb500975","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \"2.40\"):"},{"line_number":173,"context_line":"            usage_list \u003d list(compute_client.usages("},{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"}],"source_content_type":"text/x-python","patch_set":1,"id":"043f8dd9_8dcb8418","line":174,"in_reply_to":"43446f68_a8d933e5","updated":"2022-10-26 02:58:10.000000000","message":"Done","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \"2.40\"):"},{"line_number":173,"context_line":"            usage_list \u003d list(compute_client.usages("},{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"},{"line_number":178,"context_line":"            # than CONF.api.max_limit, the usage will be split across multiple"}],"source_content_type":"text/x-python","patch_set":1,"id":"3728cbbe_b6d48baf","line":175,"updated":"2022-10-25 14:36:12.000000000","message":"detailed\u003dTrue","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":35355,"name":"Daniel Wilson","email":"danielcw@bu.edu","username":"dannosliwcd"},"change_message_id":"faeee9a2a2e7ecd238db346fb36c3b86bb500975","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \"2.40\"):"},{"line_number":173,"context_line":"            usage_list \u003d list(compute_client.usages("},{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"},{"line_number":178,"context_line":"            # than CONF.api.max_limit, the usage will be split across multiple"}],"source_content_type":"text/x-python","patch_set":1,"id":"4fba48df_539cbcbd","line":175,"in_reply_to":"3728cbbe_b6d48baf","updated":"2022-10-26 02:58:10.000000000","message":"Done","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":true,"context_lines":[{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"},{"line_number":178,"context_line":"            # than CONF.api.max_limit, the usage will be split across multiple"},{"line_number":179,"context_line":"            # requests and the responses will need to be merged back together."},{"line_number":180,"context_line":"            usages \u003d collections.OrderedDict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"88969bb8_86d47304","line":177,"updated":"2022-10-25 14:36:12.000000000","message":"Actually SDK will take care about that, so the whole \"else\" can be dropped.","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":35355,"name":"Daniel Wilson","email":"danielcw@bu.edu","username":"dannosliwcd"},"change_message_id":"faeee9a2a2e7ecd238db346fb36c3b86bb500975","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                start.strftime(date_api_format), end.strftime(date_api_format),"},{"line_number":175,"context_line":"                detailed\u003d1))"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            # If the number of instances used to calculate the usage is greater"},{"line_number":178,"context_line":"            # than CONF.api.max_limit, the usage will be split across multiple"},{"line_number":179,"context_line":"            # requests and the responses will need to be merged back together."},{"line_number":180,"context_line":"            usages \u003d collections.OrderedDict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"6ffc231c_2704dbb6","line":177,"in_reply_to":"88969bb8_86d47304","updated":"2022-10-26 02:58:10.000000000","message":"Done","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":true,"context_lines":[{"line_number":272,"context_line":"            project \u003d self.app.client_manager.auth_ref.project_id"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        usage \u003d compute_client.get_usage("},{"line_number":275,"context_line":"            project, start.strftime(date_api_format),"},{"line_number":276,"context_line":"            end.strftime(date_api_format))"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        if parsed_args.formatter \u003d\u003d \u0027table\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"a930922e_c0edbb66","line":275,"updated":"2022-10-25 14:36:12.000000000","message":"named parameters please","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":35355,"name":"Daniel Wilson","email":"danielcw@bu.edu","username":"dannosliwcd"},"change_message_id":"faeee9a2a2e7ecd238db346fb36c3b86bb500975","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            project \u003d self.app.client_manager.auth_ref.project_id"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        usage \u003d compute_client.get_usage("},{"line_number":275,"context_line":"            project, start.strftime(date_api_format),"},{"line_number":276,"context_line":"            end.strftime(date_api_format))"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        if parsed_args.formatter \u003d\u003d \u0027table\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"c3177bae_d9b7bfd2","line":275,"in_reply_to":"a930922e_c0edbb66","updated":"2022-10-26 02:58:10.000000000","message":"Done","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"}],"openstackclient/tests/unit/compute/v2/test_usage.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cf87072e7e55d00a3da4cdb39487f02cd82690a9","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":34,"context_line":"        self.projects_mock.reset_mock()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        patcher \u003d mock.patch.object("},{"line_number":37,"context_line":"            sdk_utils, \u0027supports_microversion\u0027, return_value\u003dTrue)"},{"line_number":38,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":39,"context_line":"        self.supports_microversion_mock \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b7b3b91_8fcf08a0","line":36,"updated":"2022-10-25 14:36:12.000000000","message":"in existing code we rather follow approach as in https://opendev.org/openstack/python-openstackclient/src/branch/master/openstackclient/tests/unit/compute/v2/test_flavor.py#L269 for that","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"},{"author":{"_account_id":35355,"name":"Daniel Wilson","email":"danielcw@bu.edu","username":"dannosliwcd"},"change_message_id":"faeee9a2a2e7ecd238db346fb36c3b86bb500975","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":34,"context_line":"        self.projects_mock.reset_mock()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        patcher \u003d mock.patch.object("},{"line_number":37,"context_line":"            sdk_utils, \u0027supports_microversion\u0027, return_value\u003dTrue)"},{"line_number":38,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":39,"context_line":"        self.supports_microversion_mock \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":1,"id":"434a7366_5730002a","line":36,"in_reply_to":"5b7b3b91_8fcf08a0","updated":"2022-10-26 02:58:10.000000000","message":"Done. I ended up discarding the mock since it was only needed to cover the pagination case that does not need to be handled by the CLI layer.","commit_id":"a2b49f595116714e0aefb8e166b512462b6fd237"}]}
