)]}'
{"freezer/openstack/backup.py":[{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"61ee1cbf526bf8a83e589f059945930e88538147","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.client_manager \u003d client_manager"},{"line_number":44,"context_line":"        self.container \u003d container"},{"line_number":45,"context_line":"        self.storage \u003d storage"},{"line_number":46,"context_line":"        self.backup_storage \u003d backup_storage"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def backup_nova(self, instance_id):"},{"line_number":49,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3eb6acdc","line":46,"updated":"2016-05-28 01:53:26.000000000","message":"I think use self.storage.__name__ instead a new argumentation is better","commit_id":"4251b9a352facadd5b03312a3068d9add3d715bf"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"a4a3a2c859e585dcc768eead2a9284c108487958","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                container \u003d self.container.rstrip(\"/\")"},{"line_number":107,"context_line":"                path \u003d \"{0}/{1}/{2}\".format(container, volume_id,"},{"line_number":108,"context_line":"                                            utils.DateTime.now().timestamp)"},{"line_number":109,"context_line":"                os.makedirs(path)"},{"line_number":110,"context_line":"                dest \u003d \"{0}/{1}\".format(path, volume_id)"},{"line_number":111,"context_line":"                # backup metadata of volume"},{"line_number":112,"context_line":"                headers \u003d {\u0027volume-name\u0027: volume.display_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_3662d03e","line":109,"updated":"2016-06-01 01:52:59.000000000","message":"self.storage.create_dirs()","commit_id":"a1753c2eef7fcbb126ece8afdf2e5ef69cc78130"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"eb1a813e096ac5e6d1330f07518d2fe237b08954","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            headers \u003d {}"},{"line_number":128,"context_line":"            self.storage.add_stream(stream, package, headers\u003dheaders)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            #TODO(\u0027ssh\u0027) This should be supported later"},{"line_number":131,"context_line":"            pass"},{"line_number":132,"context_line":"        logging.debug(\"Deleting temporary snapshot\")"},{"line_number":133,"context_line":"        client_manager.clean_snapshot(snapshot)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_8267f6e7","line":130,"range":{"start_line":130,"start_character":17,"end_line":130,"end_character":23},"updated":"2016-06-01 04:43:50.000000000","message":"yourname\n http://docs.openstack.org/developer/hacking/","commit_id":"f0e6ef4705e554472032bb472ca7b459d9671768"}],"freezer/openstack/restore.py":[{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"61ee1cbf526bf8a83e589f059945930e88538147","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            stream \u003d swift.get_object("},{"line_number":71,"context_line":"                self.container, \"%s/%s\" % (path, backup), resp_chunk_size\u003d10000000)"},{"line_number":72,"context_line":"            length \u003d int(stream[0][\"x-object-meta-length\"])"},{"line_number":73,"context_line":"            logging.info(\"[*] Creation glance image\")"},{"line_number":74,"context_line":"            image \u003d glance.images.create("},{"line_number":75,"context_line":"                data\u003dutils.ReSizeStream(stream[1], length, 1),"},{"line_number":76,"context_line":"                container_format\u003d\"bare\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_1e1768a4","line":73,"updated":"2016-05-28 01:53:26.000000000","message":"duplicate with line 66. I think only one is needed","commit_id":"4251b9a352facadd5b03312a3068d9add3d715bf"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"61ee1cbf526bf8a83e589f059945930e88538147","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            image_dir \u003d \"{0}/{1}\".format(container, path)"},{"line_number":81,"context_line":"            if image_dir:"},{"line_number":82,"context_line":"                # list backup dir"},{"line_number":83,"context_line":"                backuplist \u003d [int(x) for x in os.listdir(image_dir) if x.isdigit()]"},{"line_number":84,"context_line":"                # list backup file available"},{"line_number":85,"context_line":"                get_restore_timestamp \u003d [x for x in backuplist if x \u003e\u003d restore_from_timestamp]"},{"line_number":86,"context_line":"                if not get_restore_timestamp:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_1e7e48e4","line":83,"range":{"start_line":83,"start_character":46,"end_line":83,"end_character":67},"updated":"2016-05-28 01:53:26.000000000","message":"Does this work in ssh client?","commit_id":"4251b9a352facadd5b03312a3068d9add3d715bf"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"61ee1cbf526bf8a83e589f059945930e88538147","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                image_dir \u003d \"{0}/{1}/{2}\".format(container, path, backupdir)"},{"line_number":91,"context_line":"                image_file \u003d \"{0}/{1}\".format(image_dir, path)"},{"line_number":92,"context_line":"                metadata_file \u003d \"%s-meta\" % image_file"},{"line_number":93,"context_line":"                #import pdb;pdb.set_trace()"},{"line_number":94,"context_line":"                with open(image_file) as backup_file:"},{"line_number":95,"context_line":"                    image \u003d glance.images.create("},{"line_number":96,"context_line":"                        data\u003dbackup_file,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_7e0cb494","line":93,"updated":"2016-05-28 01:53:26.000000000","message":"the debug should not keep here","commit_id":"4251b9a352facadd5b03312a3068d9add3d715bf"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"a4a3a2c859e585dcc768eead2a9284c108487958","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            image_dir \u003d \"{0}/{1}\".format(container, path)"},{"line_number":81,"context_line":"            if image_dir:"},{"line_number":82,"context_line":"                # list backup dir"},{"line_number":83,"context_line":"                backuplist \u003d [int(x) for x in os.listdir(image_dir) if x.isdigit()]"},{"line_number":84,"context_line":"                # list backup file available"},{"line_number":85,"context_line":"                get_restore_timestamp \u003d [x for x in backuplist if x \u003e\u003d restore_from_timestamp]"},{"line_number":86,"context_line":"                if not get_restore_timestamp:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_565dd477","line":83,"range":{"start_line":83,"start_character":46,"end_line":83,"end_character":67},"updated":"2016-06-01 01:52:59.000000000","message":"self.storage.listdir()","commit_id":"a1753c2eef7fcbb126ece8afdf2e5ef69cc78130"}]}
