)]}'
{"swift/obj/expirer.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ff5100bcfa8b103069d898d7153d6a276ebc3d0f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                         \"\u003ctimestamp\u003e-\u003ctarget_account\u003e/\u003ctarget_container\u003e\" +"},{"line_number":114,"context_line":"                         \"/\u003ctarget_obj\u003e\""},{"line_number":115,"context_line":"        :return: 4-tuples of (delete_at_time, target_account, target_container,"},{"line_number":116,"context_line":"                 target_obj)"},{"line_number":117,"context_line":"        \"\"\""},{"line_number":118,"context_line":"        timestamp, target_path \u003d task_obj.split(\u0027-\u0027, 1)"},{"line_number":119,"context_line":"        timestamp \u003d Timestamp(timestamp)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_87a0c9a7","line":116,"updated":"2018-02-27 16:48:14.000000000","message":"I think this can raise ValueError -- we don\u0027t do the\n\n except ValueError:\n     self.logger...\n     continue\n\ncheck until round_robin_order, but this is getting called in iter_task_to_expire which feeds it.","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"change_message_id":"ec533115962b451a921f06108ee13149c59136f1","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                         \"\u003ctimestamp\u003e-\u003ctarget_account\u003e/\u003ctarget_container\u003e\" +"},{"line_number":114,"context_line":"                         \"/\u003ctarget_obj\u003e\""},{"line_number":115,"context_line":"        :return: 4-tuples of (delete_at_time, target_account, target_container,"},{"line_number":116,"context_line":"                 target_obj)"},{"line_number":117,"context_line":"        \"\"\""},{"line_number":118,"context_line":"        timestamp, target_path \u003d task_obj.split(\u0027-\u0027, 1)"},{"line_number":119,"context_line":"        timestamp \u003d Timestamp(timestamp)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_dd7c5eb7","line":116,"in_reply_to":"1f9dbf25_87a0c9a7","updated":"2018-02-27 22:52:19.000000000","message":"Done. I added check into iter_task_to_expire.","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ff5100bcfa8b103069d898d7153d6a276ebc3d0f","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        else:"},{"line_number":187,"context_line":"            yield self.expiring_objects_account, 0, 1"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def delete_at_time_of_task_container(self, task_container):"},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":"        get delete_at timestamp from task_container name"},{"line_number":192,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_aa1b4f71","line":189,"updated":"2018-02-27 16:48:14.000000000","message":"This one\u0027s starting to feel over the top. Are we going to do something different with it further in the patch chain?","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"change_message_id":"ec533115962b451a921f06108ee13149c59136f1","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        else:"},{"line_number":187,"context_line":"            yield self.expiring_objects_account, 0, 1"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def delete_at_time_of_task_container(self, task_container):"},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":"        get delete_at timestamp from task_container name"},{"line_number":192,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_f37cebb6","line":189,"in_reply_to":"1f9dbf25_aa1b4f71","updated":"2018-02-27 22:52:19.000000000","message":"Yes, I want to hide difference between legacy style task queue container name and general task queue container name.\n\nFurther method image is\nhttps://review.openstack.org/#/c/517389/16/swift/obj/expirer.py@232","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ff5100bcfa8b103069d898d7153d6a276ebc3d0f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            yield task_container"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def iter_task_to_expire(self, task_account_container_list,"},{"line_number":210,"context_line":"                            my_index, divisor):"},{"line_number":211,"context_line":"        \"\"\""},{"line_number":212,"context_line":"        Yields task expire info dict which consists of task_account,"},{"line_number":213,"context_line":"        task_container, task_object, timestamp_to_delete, and target_path"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_ca9a5b6d","line":210,"range":{"start_line":210,"start_character":28,"end_line":210,"end_character":45},"updated":"2018-02-27 16:48:14.000000000","message":"So, are these going to start changing depending on the account/container we\u0027re looking at in later patches?","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"change_message_id":"ec533115962b451a921f06108ee13149c59136f1","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            yield task_container"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def iter_task_to_expire(self, task_account_container_list,"},{"line_number":210,"context_line":"                            my_index, divisor):"},{"line_number":211,"context_line":"        \"\"\""},{"line_number":212,"context_line":"        Yields task expire info dict which consists of task_account,"},{"line_number":213,"context_line":"        task_container, task_object, timestamp_to_delete, and target_path"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_ee3162ee","line":210,"range":{"start_line":210,"start_character":28,"end_line":210,"end_character":45},"in_reply_to":"1f9dbf25_ca9a5b6d","updated":"2018-02-27 22:52:19.000000000","message":"Yes. \"my_index\" and \"divisor\" will not be \"process\" and \"processes\" in general task queue feature.\n\nThe implementation image is...\nhttps://review.openstack.org/#/c/517389/16/swift/obj/expirer.py@217\n\nThe whole design of general task queue is explained in...\nhttps://docs.google.com/document/d/11sBbB6pBvLYNeM9wjTdvvsJIu8Dl8i13UH2NfRVNOqg/edit#heading\u003dh.u5kq7utbivxa","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ff5100bcfa8b103069d898d7153d6a276ebc3d0f","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                container_count, obj_count \u003d \\"},{"line_number":258,"context_line":"                    self.swift.get_account_info(task_account)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"                # the task account is skipped if there are no task object"},{"line_number":261,"context_line":"                if not obj_count:"},{"line_number":262,"context_line":"                    continue"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_878e8925","line":260,"updated":"2018-02-27 16:48:14.000000000","message":"We can\u0027t just go by whether or not we got any containers? I thought we tried to clean those up so they should go away...","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"},{"author":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"change_message_id":"ec533115962b451a921f06108ee13149c59136f1","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                container_count, obj_count \u003d \\"},{"line_number":258,"context_line":"                    self.swift.get_account_info(task_account)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"                # the task account is skipped if there are no task object"},{"line_number":261,"context_line":"                if not obj_count:"},{"line_number":262,"context_line":"                    continue"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f9dbf25_cee5863a","line":260,"in_reply_to":"1f9dbf25_878e8925","updated":"2018-02-27 22:52:19.000000000","message":"You are correct! Done.","commit_id":"0773a0269068f0c82062b1fae8950ec36158638e"}]}
