)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"93a3903cea5f564b39340da8187199fd73a0f1fd","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Xinran WANG \u003cxin-ran.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-06-01 09:18:17 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"make delete arq by uuids idempotent"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cybrog provides an API to delete arqs by passing an arq uuid list."},{"line_number":10,"context_line":"But this API is not idempotent, if one UUID doesn\u0027t exist, this API"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d4196ae5_3eee5b4a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":35},"updated":"2021-06-04 01:53:11.000000000","message":"make sure deleting all the existed arqs and raise unexisted arqs.","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f44aba4eeca576ab85f94e5f84a334ff70d372f8","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"make delete arq by uuids idempotent"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cybrog provides an API to delete arqs by passing an arq uuid list."},{"line_number":10,"context_line":"But this API is not idempotent, if one UUID doesn\u0027t exist, this API"},{"line_number":11,"context_line":"will return an error."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"618fd83b_782aad2b","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":7},"updated":"2021-06-01 12:40:45.000000000","message":"Cyborg","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"}],"cyborg/objects/ext_arq.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"9da61b2c9cb06fa1b6e08df61c03272b59191519","unresolved":true,"context_lines":[{"line_number":150,"context_line":"    def delete_by_uuid(cls, context, arq_uuid_list):"},{"line_number":151,"context_line":"        \"\"\"Delete a list of ARQs based on their UUIDs."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This is not idempotent, i.e., if the first call to delete an"},{"line_number":154,"context_line":"        ARQ has succeeded, second and later calls to delete the same ARQ"},{"line_number":155,"context_line":"        will get errored out."},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        unexisted \u003d []"},{"line_number":158,"context_line":"        for uuid in arq_uuid_list:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e4096250_62c46393","line":155,"range":{"start_line":153,"start_character":0,"end_line":155,"end_character":29},"updated":"2021-06-03 03:31:33.000000000","message":"this comment need to change.","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f44aba4eeca576ab85f94e5f84a334ff70d372f8","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                    obj_extarq.unbind(context)"},{"line_number":164,"context_line":"                obj_extarq.destroy(context)"},{"line_number":165,"context_line":"            except exception.ResourceNotFound:"},{"line_number":166,"context_line":"                unexisted.append(uuid)"},{"line_number":167,"context_line":"                continue"},{"line_number":168,"context_line":"        if unexisted:"},{"line_number":169,"context_line":"            raise exception.ResourceNotFound("},{"line_number":170,"context_line":"                resource\u003d\u0027ARQ\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"63e0d686_18e263b8","line":167,"range":{"start_line":166,"start_character":16,"end_line":167,"end_character":24},"updated":"2021-06-01 12:40:45.000000000","message":"IMO, if we record the undestroyed arq from the arq_uuid_list, and raised exception after end of the for cycle, that may left some isolated resources, rather than raise directly.","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"9da61b2c9cb06fa1b6e08df61c03272b59191519","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                    obj_extarq.unbind(context)"},{"line_number":164,"context_line":"                obj_extarq.destroy(context)"},{"line_number":165,"context_line":"            except exception.ResourceNotFound:"},{"line_number":166,"context_line":"                unexisted.append(uuid)"},{"line_number":167,"context_line":"                continue"},{"line_number":168,"context_line":"        if unexisted:"},{"line_number":169,"context_line":"            raise exception.ResourceNotFound("},{"line_number":170,"context_line":"                resource\u003d\u0027ARQ\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2bb4dac3_a69b711b","line":167,"range":{"start_line":166,"start_character":16,"end_line":167,"end_character":24},"in_reply_to":"63e0d686_18e263b8","updated":"2021-06-03 03:31:33.000000000","message":"+1","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"9da61b2c9cb06fa1b6e08df61c03272b59191519","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            except exception.ResourceNotFound:"},{"line_number":166,"context_line":"                unexisted.append(uuid)"},{"line_number":167,"context_line":"                continue"},{"line_number":168,"context_line":"        if unexisted:"},{"line_number":169,"context_line":"            raise exception.ResourceNotFound("},{"line_number":170,"context_line":"                resource\u003d\u0027ARQ\u0027,"},{"line_number":171,"context_line":"                msg\u003d\u0027with uuid %s\u0027 % unexisted)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @classmethod"},{"line_number":174,"context_line":"    def delete_by_instance(cls, context, instance_uuid):"}],"source_content_type":"text/x-python","patch_set":2,"id":"18b81d11_5e3fb98d","line":171,"range":{"start_line":168,"start_character":0,"end_line":171,"end_character":47},"updated":"2021-06-03 03:31:33.000000000","message":"if we want to delete arq idempotent, we shouldn\u0027t raise exception about the resource is not exist. we cannot sure whether the deletion is success, we raise exception but the valid arq has been deleted, it\u0027s not reasonable.","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"93a3903cea5f564b39340da8187199fd73a0f1fd","unresolved":true,"context_lines":[{"line_number":168,"context_line":"        if unexisted:"},{"line_number":169,"context_line":"            raise exception.ResourceNotFound("},{"line_number":170,"context_line":"                resource\u003d\u0027ARQ\u0027,"},{"line_number":171,"context_line":"                msg\u003d\u0027with uuid %s\u0027 % unexisted)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @classmethod"},{"line_number":174,"context_line":"    def delete_by_instance(cls, context, instance_uuid):"}],"source_content_type":"text/x-python","patch_set":2,"id":"a32d291c_914a5727","line":171,"range":{"start_line":171,"start_character":26,"end_line":171,"end_character":31},"updated":"2021-06-04 01:53:11.000000000","message":"nit:uuids","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3cb1db4cbfc33222076db62e853659be849fcac0","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            except exception.ResourceNotFound:"},{"line_number":166,"context_line":"                unexisted.append(uuid)"},{"line_number":167,"context_line":"                continue"},{"line_number":168,"context_line":"        if unexisted:"},{"line_number":169,"context_line":"            raise exception.ResourceNotFound("},{"line_number":170,"context_line":"                resource\u003d\u0027ARQ\u0027,"},{"line_number":171,"context_line":"                msg\u003d\u0027with uuid %s\u0027 % unexisted)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @classmethod"},{"line_number":174,"context_line":"    def delete_by_instance(cls, context, instance_uuid):"}],"source_content_type":"text/x-python","patch_set":2,"id":"cde23c99_e7445f86","line":171,"range":{"start_line":168,"start_character":0,"end_line":171,"end_character":47},"in_reply_to":"18b81d11_5e3fb98d","updated":"2021-06-03 05:46:32.000000000","message":"It\u0027s also my concern as comment at line167","commit_id":"1aaf1b878ab80aa6d235fdae95c60ac3e5ac29ab"}]}
