)]}'
{"cinder/volume/drivers/windows/smbfs.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ccfe4825a8a947440dad2b7c1fbedd4bfc4ab19d","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":153,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":154,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":155,"context_line":"            return"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        backing_file_full_path \u003d os.path.join("},{"line_number":158,"context_line":"            self._local_volume_dir(snapshot[\u0027volume\u0027]),"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_6ac7d264","line":155,"range":{"start_line":154,"start_character":0,"end_line":155,"end_character":18},"updated":"2017-02-09 17:42:43.000000000","message":"This code will never be touched. remotefs._create_snaoshot() already check this.","commit_id":"ce4d0c9c71874630952a4b462316bffab71f48c9"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"f825af83896585771cd83b67b79247423f0f974b","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":153,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":154,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":155,"context_line":"            return"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        backing_file_full_path \u003d os.path.join("},{"line_number":158,"context_line":"            self._local_volume_dir(snapshot[\u0027volume\u0027]),"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_4de31006","line":155,"range":{"start_line":154,"start_character":0,"end_line":155,"end_character":18},"in_reply_to":"1a430d35_6ac7d264","updated":"2017-02-09 18:07:55.000000000","message":"It\u0027s actually getting called here: https://github.com/openstack/cinder/blob/3acf94de135cf5ad9893a1841719e553d3201c22/cinder/volume/drivers/remotefs.py#L1351-L1365\n\nThe issue is that we cannot create a differencing vhdx image while the parent is still in use.","commit_id":"ce4d0c9c71874630952a4b462316bffab71f48c9"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ccfe4825a8a947440dad2b7c1fbedd4bfc4ab19d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self._vhdutils.create_differencing_vhd(new_snap_path,"},{"line_number":161,"context_line":"                                               backing_file_full_path)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _delete_snapshot(self, snapshot):"},{"line_number":164,"context_line":"        volume_status \u003d snapshot.volume.status"},{"line_number":165,"context_line":"        if volume_status !\u003d \u0027in-use\u0027:"},{"line_number":166,"context_line":"            return super(WindowsSmbfsDriver, self)._delete_snapshot(snapshot)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        info_path \u003d self._local_path_volume_info(snapshot.volume)"},{"line_number":169,"context_line":"        snap_info \u003d self._read_info_file(info_path, empty_if_missing\u003dTrue)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if snapshot.id not in snap_info:"},{"line_number":172,"context_line":"            LOG.info(_LI(\u0027Snapshot record for %s is not present, allowing \u0027"},{"line_number":173,"context_line":"                         \u0027snapshot_delete to proceed.\u0027), snapshot.id)"},{"line_number":174,"context_line":"            return"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        delete_info \u003d {\u0027file_to_merge\u0027: snap_info[snapshot.id],"},{"line_number":177,"context_line":"                       \u0027volume_id\u0027: snapshot.volume.id}"},{"line_number":178,"context_line":"        self._nova_assisted_vol_snap_delete("},{"line_number":179,"context_line":"            snapshot._context, snapshot, delete_info)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        # TODO(lpetrut): drop snapshot info file usage."},{"line_number":182,"context_line":"        del(snap_info[snapshot.id])"},{"line_number":183,"context_line":"        self._write_info_file(info_path, snap_info)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def _do_extend_volume(self, volume_path, size_gb, volume_name\u003dNone):"},{"line_number":186,"context_line":"        self._vhdutils.resize_vhd(volume_path, size_gb * units.Gi,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_6a4d12c4","line":183,"range":{"start_line":163,"start_character":0,"end_line":183,"end_character":51},"updated":"2017-02-09 17:42:43.000000000","message":"Why do you need to re-define _delete_snapshot()? the remotefs.RemoteFSSnapDriver._delete_snapshot() already handles this case for both on-line and offline process.","commit_id":"ce4d0c9c71874630952a4b462316bffab71f48c9"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"f825af83896585771cd83b67b79247423f0f974b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self._vhdutils.create_differencing_vhd(new_snap_path,"},{"line_number":161,"context_line":"                                               backing_file_full_path)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _delete_snapshot(self, snapshot):"},{"line_number":164,"context_line":"        volume_status \u003d snapshot.volume.status"},{"line_number":165,"context_line":"        if volume_status !\u003d \u0027in-use\u0027:"},{"line_number":166,"context_line":"            return super(WindowsSmbfsDriver, self)._delete_snapshot(snapshot)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        info_path \u003d self._local_path_volume_info(snapshot.volume)"},{"line_number":169,"context_line":"        snap_info \u003d self._read_info_file(info_path, empty_if_missing\u003dTrue)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if snapshot.id not in snap_info:"},{"line_number":172,"context_line":"            LOG.info(_LI(\u0027Snapshot record for %s is not present, allowing \u0027"},{"line_number":173,"context_line":"                         \u0027snapshot_delete to proceed.\u0027), snapshot.id)"},{"line_number":174,"context_line":"            return"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        delete_info \u003d {\u0027file_to_merge\u0027: snap_info[snapshot.id],"},{"line_number":177,"context_line":"                       \u0027volume_id\u0027: snapshot.volume.id}"},{"line_number":178,"context_line":"        self._nova_assisted_vol_snap_delete("},{"line_number":179,"context_line":"            snapshot._context, snapshot, delete_info)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        # TODO(lpetrut): drop snapshot info file usage."},{"line_number":182,"context_line":"        del(snap_info[snapshot.id])"},{"line_number":183,"context_line":"        self._write_info_file(info_path, snap_info)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def _do_extend_volume(self, volume_path, size_gb, volume_name\u003dNone):"},{"line_number":186,"context_line":"        self._vhdutils.resize_vhd(volume_path, size_gb * units.Gi,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_6de44cac","line":183,"range":{"start_line":163,"start_character":0,"end_line":183,"end_character":51},"in_reply_to":"1a430d35_6a4d12c4","updated":"2017-02-09 18:07:55.000000000","message":"I\u0027ve tried to avoid duplicating code as much as possible. The idea is that we\u0027re skipping some of the steps.\n\nWe cannot query in-use images and the super class method relies on that. One option would\u0027ve been to just cache this info (I think the OpenVZ driver does that) but I\u0027ve tried to avoid it unless it\u0027s mandatory.\n\nSo, this will not be compatible with the libvirt nova driver (qemu does not support differencing vhd/x images), so we\u0027re not aiming at that.","commit_id":"ce4d0c9c71874630952a4b462316bffab71f48c9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"3883756b33ba4fede77ce9a371ec14fcf34d943c","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":486,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":487,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":488,"context_line":"            return"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        backing_file_full_path \u003d os.path.join("}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_b0d096ca","line":487,"range":{"start_line":487,"start_character":21,"end_line":487,"end_character":56},"updated":"2017-03-22 15:35:19.000000000","message":"Can we make this message more useful?  I.E. \"Snapshot is in-use.  Performing Nova assisted creation.\"","commit_id":"e9b8c8b3889ae36779f1e3a9d5a653f050153237"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"c14f80b1fc85a5e94091db849b09b85aee5e893c","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":486,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":487,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":488,"context_line":"            return"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        backing_file_full_path \u003d os.path.join("}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_313d62dd","line":487,"range":{"start_line":487,"start_character":21,"end_line":487,"end_character":56},"in_reply_to":"1a1ced50_b0d096ca","updated":"2017-03-23 09:58:24.000000000","message":"Sure","commit_id":"e9b8c8b3889ae36779f1e3a9d5a653f050153237"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"3883756b33ba4fede77ce9a371ec14fcf34d943c","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        delete_info \u003d {\u0027file_to_merge\u0027: snap_info[snapshot.id],"},{"line_number":530,"context_line":"                       \u0027volume_id\u0027: snapshot.volume.id}"},{"line_number":531,"context_line":"        self._nova_assisted_vol_snap_delete("},{"line_number":532,"context_line":"            snapshot._context, snapshot, delete_info)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # TODO(lpetrut): drop snapshot info file usage."},{"line_number":535,"context_line":"        del(snap_info[snapshot.id])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_ddb286e4","line":532,"range":{"start_line":531,"start_character":0,"end_line":532,"end_character":53},"updated":"2017-03-22 15:35:19.000000000","message":"Seems like we should have error checking around this.","commit_id":"e9b8c8b3889ae36779f1e3a9d5a653f050153237"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"c14f80b1fc85a5e94091db849b09b85aee5e893c","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        delete_info \u003d {\u0027file_to_merge\u0027: snap_info[snapshot.id],"},{"line_number":530,"context_line":"                       \u0027volume_id\u0027: snapshot.volume.id}"},{"line_number":531,"context_line":"        self._nova_assisted_vol_snap_delete("},{"line_number":532,"context_line":"            snapshot._context, snapshot, delete_info)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # TODO(lpetrut): drop snapshot info file usage."},{"line_number":535,"context_line":"        del(snap_info[snapshot.id])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_546bacb6","line":532,"range":{"start_line":531,"start_character":0,"end_line":532,"end_character":53},"in_reply_to":"1a1ced50_ddb286e4","updated":"2017-03-23 09:58:24.000000000","message":"Other than the error handling that\u0027s already performed within that method, I\u0027m not sure what else we should do.","commit_id":"e9b8c8b3889ae36779f1e3a9d5a653f050153237"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"53a310f50ac0c53ab979bffeeeb28309d9b56dbf","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":486,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":487,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":488,"context_line":"            return"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        backing_file_full_path \u003d os.path.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_8812d457","line":487,"range":{"start_line":487,"start_character":23,"end_line":487,"end_character":55},"updated":"2017-03-24 15:26:52.000000000","message":"Is there a reason you reverted the change here?","commit_id":"1e5ef6a9cd5996f722bcd917778386b4e475347d"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"fbe0e31a9951b67f13df824b72edcf18b3165d08","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _do_create_snapshot(self, snapshot, backing_file, new_snap_path):"},{"line_number":486,"context_line":"        if snapshot.volume.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":487,"context_line":"            LOG.debug(\"The snapshot is created by Nova\")"},{"line_number":488,"context_line":"            return"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        backing_file_full_path \u003d os.path.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_6847901f","line":487,"range":{"start_line":487,"start_character":23,"end_line":487,"end_character":55},"in_reply_to":"ffe62b97_8812d457","updated":"2017-03-24 15:31:53.000000000","message":"No, my bad. While testing it, I was using a previous patch set.\n\nUpdating it now.","commit_id":"1e5ef6a9cd5996f722bcd917778386b4e475347d"}]}
