)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14159,"name":"Fabrizio Vanni","email":"fabrizio.vanni@hpe.com","username":"fabrizio.vanni"},"change_message_id":"a908faa7c61c8039fd452f615347404fb40b9fc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     eldar nugaev \u003celdar.nugaev@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-13 13:19:15 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Freezer metadata"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifa55879a99c5ecf2eb4b0ac2ab9a8e1b6a5a9cf6"},{"line_number":10,"context_line":"Imlements-blueprint: freezer-metadata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dab17558_9dbe9d62","line":7,"updated":"2016-05-13 13:48:18.000000000","message":"Does this implement the blueprint or just a part of it ?","commit_id":"76918c81ff94ff4c6bd36a3165943cf367b6b5c9"}],"freezer/engine/engine.py":[{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c3ea4cff9cbf0d7724c0c56377789a532f5671a5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"class BackupEngine(object):"},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    The main part of making a backup and making a restore is the mechanism of"},{"line_number":38,"context_line":"    implementing it. A long time Freezer had the only mechanism of doing it -"},{"line_number":39,"context_line":"    invoking gnutar and it was heavy hardcoded."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    Currently we are going to support many different approaches."}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_8006321e","line":38,"range":{"start_line":38,"start_character":23,"end_line":38,"end_character":27},"updated":"2016-05-13 16:26:34.000000000","message":"For a long time...\nhad only one...\nand it was very heavily hard-coded...","commit_id":"76918c81ff94ff4c6bd36a3165943cf367b6b5c9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c3ea4cff9cbf0d7724c0c56377789a532f5671a5","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    Currently we are going to support many different approaches."},{"line_number":42,"context_line":"    One of them is rsync. Having many different implementations requires to"},{"line_number":43,"context_line":"    have an abstraction level"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    This class is an abstraction above all implementations."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_0b91c39a","line":43,"range":{"start_line":43,"start_character":24,"end_line":43,"end_character":29},"updated":"2016-05-13 16:26:34.000000000","message":"requires an abstraction level.","commit_id":"76918c81ff94ff4c6bd36a3165943cf367b6b5c9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c3ea4cff9cbf0d7724c0c56377789a532f5671a5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    One of them is rsync. Having many different implementations requires to"},{"line_number":43,"context_line":"    have an abstraction level"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    This class is an abstraction above all implementations."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    Workflow:"},{"line_number":48,"context_line":"    1) invoke backup"}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_cb285b36","line":45,"range":{"start_line":45,"start_character":33,"end_line":45,"end_character":38},"updated":"2016-05-13 16:26:34.000000000","message":"over all implementations.","commit_id":"76918c81ff94ff4c6bd36a3165943cf367b6b5c9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"694eafbc6aac1194ac32920088f317b718d78438","unresolved":false,"context_lines":[{"line_number":35,"context_line":"class BackupEngine(object):"},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    The main part of making a backup and making a restore is the mechanism of"},{"line_number":38,"context_line":"    implementing it. A long time Freezer had the only mechanism of doing it -"},{"line_number":39,"context_line":"    invoking gnutar and it was heavy hardcoded."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    Currently we are going to support many different approaches."}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_cf87be10","line":38,"range":{"start_line":38,"start_character":28,"end_line":38,"end_character":32},"updated":"2016-05-13 16:42:26.000000000","message":"For a long time...\n..had only one mechanism...","commit_id":"2650eee96eb5dea5a02ef421d66a7b75b5c093f9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"694eafbc6aac1194ac32920088f317b718d78438","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    The main part of making a backup and making a restore is the mechanism of"},{"line_number":38,"context_line":"    implementing it. A long time Freezer had the only mechanism of doing it -"},{"line_number":39,"context_line":"    invoking gnutar and it was heavy hardcoded."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    Currently we are going to support many different approaches."},{"line_number":42,"context_line":"    One of them is rsync. Having many different implementations requires to"}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_0f99c66e","line":39,"range":{"start_line":39,"start_character":37,"end_line":39,"end_character":46},"updated":"2016-05-13 16:42:26.000000000","message":"..and it was very heavily hard-coded.","commit_id":"2650eee96eb5dea5a02ef421d66a7b75b5c093f9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"694eafbc6aac1194ac32920088f317b718d78438","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    One of them is rsync. Having many different implementations requires to"},{"line_number":43,"context_line":"    have an abstraction level"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    This class is an abstraction above all implementations."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    Workflow:"},{"line_number":48,"context_line":"    1) invoke backup"}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_6fa85278","line":45,"range":{"start_line":45,"start_character":38,"end_line":45,"end_character":39},"updated":"2016-05-13 16:42:26.000000000","message":"..abstraction over all implementations.","commit_id":"2650eee96eb5dea5a02ef421d66a7b75b5c093f9"}],"freezer/engine/tar/tar_engine.py":[{"author":{"_account_id":13940,"name":"Saad Zaher","email":"eng.szaher@gmail.com","username":"szaher"},"change_message_id":"f353ae8f7a4ebff5592633f1549816dfa4a6b07b","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        metadata \u003d backup.metadata()"},{"line_number":117,"context_line":"        if self.compression_algo is None and metadata.get(\"encryption\", False):"},{"line_number":118,"context_line":"            raise Exception(\"Cannot restore encrypted backup without key\")"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        tar_command \u003d tar_builders.TarCommandRestoreBuilder("}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_0fa13df8","line":117,"range":{"start_line":117,"start_character":16,"end_line":117,"end_character":32},"updated":"2016-05-11 16:53:56.000000000","message":"shouldn\u0027t be encrypt_pass_file ?","commit_id":"aff09dd4f80f324991165a271b61480e26510089"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c3ea4cff9cbf0d7724c0c56377789a532f5671a5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        :param encrypt_pass_file:"},{"line_number":43,"context_line":"        :param dry_run:"},{"line_number":44,"context_line":"        :return:"},{"line_number":45,"context_line":"        \"\"\""},{"line_number":46,"context_line":"        self.compression_algo \u003d compression_algo"},{"line_number":47,"context_line":"        self.encrypt_pass_file \u003d encrypt_pass_file"},{"line_number":48,"context_line":"        self.dereference_symlink \u003d dereference_symlink"}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_d4a0f7a7","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":11},"updated":"2016-05-13 16:26:34.000000000","message":"Some description of each parameter would be nice.","commit_id":"76918c81ff94ff4c6bd36a3165943cf367b6b5c9"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"694eafbc6aac1194ac32920088f317b718d78438","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def __init__("},{"line_number":31,"context_line":"            self, compression_algo, dereference_symlink, exclude, storage,"},{"line_number":32,"context_line":"            is_windows, chunk_size, encrypt_pass_file\u003dNone, dry_run\u003dFalse):"},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":"            :type storage: freezer.storage.base.Storage"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        :param compression_algo:"}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_cfdcde1a","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":8},"updated":"2016-05-13 16:42:26.000000000","message":"Some description of each parameter would be nice.","commit_id":"2650eee96eb5dea5a02ef421d66a7b75b5c093f9"}],"tests/unit/storages/test_base.py":[{"author":{"_account_id":14101,"name":"yapeng Yang","email":"a394954369@gmail.com","username":"yapeng"},"change_message_id":"f4229dca98dee3e8d917de7b5811761a625bc993","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import unittest"},{"line_number":17,"context_line":"from freezer.storage import base"},{"line_number":18,"context_line":"from freezer.storage import local"},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_5d3563d9","line":18,"range":{"start_line":18,"start_character":28,"end_line":18,"end_character":33},"updated":"2016-05-13 09:26:31.000000000","message":"about local storage for test, it is skip all?","commit_id":"e828aca64e24394976c70317f5990c4e1808498f"}]}
