)]}'
{"cinder/volume/drivers/netapp/dataontap/nfs_base.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"12c541e5c1e5803beb05ba56ce3c7a51417de4b4","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"        necessary to update any metadata on the backend. Since this is a NO-OP,"},{"line_number":1040,"context_line":"        there is guaranteed to be no change in any of the volumes\u0027 statuses."},{"line_number":1041,"context_line":"        \"\"\""},{"line_number":1042,"context_line":"        return None, None, None"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"    @utils.trace_method"},{"line_number":1045,"context_line":"    def create_cgsnapshot(self, context, cgsnapshot, snapshots):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_9915d54a","line":1042,"updated":"2016-07-30 02:08:39.000000000","message":"Can you create a volume that is not in the CG and then add it to the CG?  I\u0027m asking because a couple of other file based drivers cannot support it.","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"83b7833ec9ca9340072a45ec25f1d5c55b601928","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"        necessary to update any metadata on the backend. Since this is a NO-OP,"},{"line_number":1040,"context_line":"        there is guaranteed to be no change in any of the volumes\u0027 statuses."},{"line_number":1041,"context_line":"        \"\"\""},{"line_number":1042,"context_line":"        return None, None, None"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"    @utils.trace_method"},{"line_number":1045,"context_line":"    def create_cgsnapshot(self, context, cgsnapshot, snapshots):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_e9a7554d","line":1042,"in_reply_to":"bacf61ea_9915d54a","updated":"2016-08-11 12:08:28.000000000","message":"Yes, we can add a volume to a CG that was not intially created in a CG.","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"12c541e5c1e5803beb05ba56ce3c7a51417de4b4","unresolved":false,"context_lines":[{"line_number":1083,"context_line":"    @utils.trace_method"},{"line_number":1084,"context_line":"    def delete_cgsnapshot(self, context, cgsnapshot, snapshots):"},{"line_number":1085,"context_line":"        \"\"\"Delete files backing each snapshot in the cgsnapshot.\"\"\""},{"line_number":1086,"context_line":"        raise NotImplementedError()"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"    @utils.trace_method"},{"line_number":1089,"context_line":"    def create_consistencygroup_from_src(self, context, group, volumes,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_844f2c6a","line":1086,"updated":"2016-07-30 02:08:39.000000000","message":"delete_cgsnapshot is a required function for CG.","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"83b7833ec9ca9340072a45ec25f1d5c55b601928","unresolved":false,"context_lines":[{"line_number":1083,"context_line":"    @utils.trace_method"},{"line_number":1084,"context_line":"    def delete_cgsnapshot(self, context, cgsnapshot, snapshots):"},{"line_number":1085,"context_line":"        \"\"\"Delete files backing each snapshot in the cgsnapshot.\"\"\""},{"line_number":1086,"context_line":"        raise NotImplementedError()"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"    @utils.trace_method"},{"line_number":1089,"context_line":"    def create_consistencygroup_from_src(self, context, group, volumes,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_b43d3491","line":1086,"in_reply_to":"bacf61ea_844f2c6a","updated":"2016-08-11 12:08:28.000000000","message":"nfs_base is the base class of nfs_cmode and nfs_7mode. This method is used as a contract to make sure the sub-classes(nfs_cmode, nfs_7mode) implement the method. delete_cgsnapshot is supported. :)","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"801a192102e03d1b7b1803325aa7db105cfab0d5","unresolved":false,"context_lines":[{"line_number":1104,"context_line":"        else:"},{"line_number":1105,"context_line":"            vols \u003d zip(volumes, source_vols)"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"            for volume, old_src_vref in vols:"},{"line_number":1108,"context_line":"                self.create_cloned_volume(volume, old_src_vref)"},{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_73012705","line":1108,"range":{"start_line":1107,"start_character":12,"end_line":1108,"end_character":63},"updated":"2016-07-29 19:51:57.000000000","message":"This cg clone should not guarantee write-order consistency?","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"83b7833ec9ca9340072a45ec25f1d5c55b601928","unresolved":false,"context_lines":[{"line_number":1104,"context_line":"        else:"},{"line_number":1105,"context_line":"            vols \u003d zip(volumes, source_vols)"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"            for volume, old_src_vref in vols:"},{"line_number":1108,"context_line":"                self.create_cloned_volume(volume, old_src_vref)"},{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_d2267615","line":1108,"range":{"start_line":1107,"start_character":12,"end_line":1108,"end_character":63},"in_reply_to":"bacf61ea_73012705","updated":"2016-08-11 12:08:28.000000000","message":"Thanks for catching this. Took a bit of refactoring to make this branch write-order consistent. Change will be available in patch set 4.","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"}],"cinder/volume/drivers/netapp/dataontap/nfs_cmode.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"12c541e5c1e5803beb05ba56ce3c7a51417de4b4","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        (_vserver, flexvol) \u003d self._get_export_ip_path(volume_id\u003dfile_id)"},{"line_number":368,"context_line":"        path_on_backend \u003d \u0027/vol\u0027 + flexvol + \u0027/\u0027 + file_name"},{"line_number":369,"context_line":"        LOG.debug(\u0027Attempting to delete file %s for ID %s on backend.\u0027,"},{"line_number":370,"context_line":"                  path_on_backend, file_id)"},{"line_number":371,"context_line":"        self.zapi_client.delete_file(path_on_backend)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @utils.trace_method"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_df60dc03","line":370,"updated":"2016-07-30 02:08:39.000000000","message":"Please use keyword parameters:\n\nhttp://docs.openstack.org/developer/hacking/#internationalization-i18n-strings","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"1326a1ab3b433c8e264ba47a9de904660a1592c8","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        (_vserver, flexvol) \u003d self._get_export_ip_path(volume_id\u003dfile_id)"},{"line_number":368,"context_line":"        path_on_backend \u003d \u0027/vol\u0027 + flexvol + \u0027/\u0027 + file_name"},{"line_number":369,"context_line":"        LOG.debug(\u0027Attempting to delete file %s for ID %s on backend.\u0027,"},{"line_number":370,"context_line":"                  path_on_backend, file_id)"},{"line_number":371,"context_line":"        self.zapi_client.delete_file(path_on_backend)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @utils.trace_method"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_d6a9cf91","line":370,"in_reply_to":"bacf61ea_df60dc03","updated":"2016-07-30 15:54:57.000000000","message":"+1","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"83b7833ec9ca9340072a45ec25f1d5c55b601928","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        (_vserver, flexvol) \u003d self._get_export_ip_path(volume_id\u003dfile_id)"},{"line_number":368,"context_line":"        path_on_backend \u003d \u0027/vol\u0027 + flexvol + \u0027/\u0027 + file_name"},{"line_number":369,"context_line":"        LOG.debug(\u0027Attempting to delete file %s for ID %s on backend.\u0027,"},{"line_number":370,"context_line":"                  path_on_backend, file_id)"},{"line_number":371,"context_line":"        self.zapi_client.delete_file(path_on_backend)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @utils.trace_method"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_9998031e","line":370,"in_reply_to":"bacf61ea_df60dc03","updated":"2016-08-11 12:08:28.000000000","message":"Thanks for catching this. Updated code will be available in patch set 4.","commit_id":"5211cd4ee71c38dd4724f3fdff555921957d1301"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"49d623bcff67cabe98477462f20de50389c508f6","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        (_vserver, flexvol) \u003d self._get_export_ip_path(volume_id\u003dfile_id)"},{"line_number":402,"context_line":"        path_on_backend \u003d \u0027/vol\u0027 + flexvol + \u0027/\u0027 + file_name"},{"line_number":403,"context_line":"        LOG.debug(\u0027Attempting to delete file %s for ID %s on backend.\u0027,"},{"line_number":404,"context_line":"                  path_on_backend, file_id)"},{"line_number":405,"context_line":"        self.zapi_client.delete_file(path_on_backend)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @utils.trace_method"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_33344649","line":404,"updated":"2016-08-12 14:55:18.000000000","message":"Looks like I didn\u0027t make my comments clear.  This was what I meant:\n\nLOG.debug(\u0027Attempting to … %(path)s for ID %(file_id)s …\u0027, {\u0027path\u0027: path_on_backend, \u0027file_id\u0027: file_id})\n\nhttp://docs.openstack.org/developer/hacking/#internationalization-i18n-strings","commit_id":"528837c343cb70f82db3f879dfd399519b534f3e"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"59161464166434cb1edcbf140c15a19533433af8","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        (_vserver, flexvol) \u003d self._get_export_ip_path(volume_id\u003dfile_id)"},{"line_number":402,"context_line":"        path_on_backend \u003d \u0027/vol\u0027 + flexvol + \u0027/\u0027 + file_name"},{"line_number":403,"context_line":"        LOG.debug(\u0027Attempting to delete file %s for ID %s on backend.\u0027,"},{"line_number":404,"context_line":"                  path_on_backend, file_id)"},{"line_number":405,"context_line":"        self.zapi_client.delete_file(path_on_backend)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @utils.trace_method"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_17c4803e","line":404,"in_reply_to":"9ad45d7e_33344649","updated":"2016-08-12 18:24:38.000000000","message":"You were very clear in your previous comment. I thought I\u0027d made the change but somehow missed it. I appreciate the review and will be more diligent in auditing my changes in the future.","commit_id":"528837c343cb70f82db3f879dfd399519b534f3e"}]}
