)]}'
{"cinder/volume/drivers/netapp/dataontap/nfs_base.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"747b92a8c9bbd6bfcfa5d9f175ae9d1707cbcd40","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                self.configuration.thres_avl_size_perc_stop"},{"line_number":365,"context_line":"            for share in getattr(self, \u0027_mounted_shares\u0027, []):"},{"line_number":366,"context_line":"                try:"},{"line_number":367,"context_line":"                    total_size, total_avl, total_alloc \u003d \\"},{"line_number":368,"context_line":"                        self._get_capacity_info(share)"},{"line_number":369,"context_line":"                    avl_percent \u003d int((total_avl / total_size) * 100)"},{"line_number":370,"context_line":"                    if avl_percent \u003c\u003d thres_size_perc_start:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_58a1e6f6","line":367,"updated":"2016-02-01 23:34:28.000000000","message":"This method doesn\u0027t actually use total_alloc.  If the new signature for _get_capacity_info() is maintained, I\u0027d suggest naming it _total_alloc or some such to signal that it is unused.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"8d482b473711d4671bcfbac3727a431b7d167588","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                self.configuration.thres_avl_size_perc_stop"},{"line_number":365,"context_line":"            for share in getattr(self, \u0027_mounted_shares\u0027, []):"},{"line_number":366,"context_line":"                try:"},{"line_number":367,"context_line":"                    total_size, total_avl, total_alloc \u003d \\"},{"line_number":368,"context_line":"                        self._get_capacity_info(share)"},{"line_number":369,"context_line":"                    avl_percent \u003d int((total_avl / total_size) * 100)"},{"line_number":370,"context_line":"                    if avl_percent \u003c\u003d thres_size_perc_start:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_c09fe94e","line":367,"in_reply_to":"7a5de9d1_58a1e6f6","updated":"2016-02-02 18:31:42.000000000","message":"I can rename it to \u0027__\u0027 double underscore for it to remain unused.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"747b92a8c9bbd6bfcfa5d9f175ae9d1707cbcd40","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        \"\"\"Is there space on the share for a clone given the original size?\"\"\""},{"line_number":704,"context_line":"        requested_size \u003d size_in_gib * units.Gi"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        total_size, total_available, total_allocated \u003d \\"},{"line_number":707,"context_line":"            self._get_capacity_info(share)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        reserved_ratio \u003d self.reserved_percentage / 100.0"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_78bdc200","line":706,"updated":"2016-02-01 23:34:28.000000000","message":"This method doesn\u0027t use total_allocated.  If the new signature for _get_capacity_info() is maintained, I\u0027d suggest naming it _total_allocated or some such to signal that it is unused.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"8d482b473711d4671bcfbac3727a431b7d167588","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        \"\"\"Is there space on the share for a clone given the original size?\"\"\""},{"line_number":704,"context_line":"        requested_size \u003d size_in_gib * units.Gi"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        total_size, total_available, total_allocated \u003d \\"},{"line_number":707,"context_line":"            self._get_capacity_info(share)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        reserved_ratio \u003d self.reserved_percentage / 100.0"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_801c91c2","line":706,"in_reply_to":"7a5de9d1_78bdc200","updated":"2016-02-02 18:31:42.000000000","message":"Rename can be done. Note - This is the place which is the entry point for the issue and gets the exception \u0027Need more than two values........\u0027 as the method _get_capacity_info is expected to return 3 arguments.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"747b92a8c9bbd6bfcfa5d9f175ae9d1707cbcd40","unresolved":false,"context_lines":[{"line_number":716,"context_line":""},{"line_number":717,"context_line":"    def _check_share_can_hold_size(self, share, size):"},{"line_number":718,"context_line":"        \"\"\"Checks if volume can hold image with size.\"\"\""},{"line_number":719,"context_line":"        _tot_size, tot_available, tot_alloc \u003d self._get_capacity_info("},{"line_number":720,"context_line":"            share)"},{"line_number":721,"context_line":"        if tot_available \u003c size:"},{"line_number":722,"context_line":"            msg \u003d _(\"Container size smaller than required file size.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_d8707674","line":719,"updated":"2016-02-01 23:34:28.000000000","message":"This method doesn\u0027t use tot_alloc.  If the new signature for _get_capacity_info() is maintained, I\u0027d suggest naming it _tot_alloc (like _tot_size) to signal that it is unused.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"8d482b473711d4671bcfbac3727a431b7d167588","unresolved":false,"context_lines":[{"line_number":716,"context_line":""},{"line_number":717,"context_line":"    def _check_share_can_hold_size(self, share, size):"},{"line_number":718,"context_line":"        \"\"\"Checks if volume can hold image with size.\"\"\""},{"line_number":719,"context_line":"        _tot_size, tot_available, tot_alloc \u003d self._get_capacity_info("},{"line_number":720,"context_line":"            share)"},{"line_number":721,"context_line":"        if tot_available \u003c size:"},{"line_number":722,"context_line":"            msg \u003d _(\"Container size smaller than required file size.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_205fdd76","line":719,"in_reply_to":"7a5de9d1_d8707674","updated":"2016-02-02 18:31:42.000000000","message":"Will rename it to \u0027__\u0027","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"747b92a8c9bbd6bfcfa5d9f175ae9d1707cbcd40","unresolved":false,"context_lines":[{"line_number":763,"context_line":"        capacity \u003d dict()"},{"line_number":764,"context_line":"        capacity[\u0027reserved_percentage\u0027] \u003d self.reserved_percentage"},{"line_number":765,"context_line":"        capacity[\u0027max_over_subscription_ratio\u0027] \u003d self.over_subscription_ratio"},{"line_number":766,"context_line":"        total_size, total_available, total_allocated \u003d \\"},{"line_number":767,"context_line":"            self._get_capacity_info(nfs_share)"},{"line_number":768,"context_line":"        capacity[\u0027total_capacity_gb\u0027] \u003d na_utils.round_down("},{"line_number":769,"context_line":"            total_size / units.Gi, \u00270.01\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_f8dbf24c","line":766,"updated":"2016-02-01 23:34:28.000000000","message":"This method doesn\u0027t use total_allocated; suggest naming with underscore as for the occurrences above.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"8d482b473711d4671bcfbac3727a431b7d167588","unresolved":false,"context_lines":[{"line_number":763,"context_line":"        capacity \u003d dict()"},{"line_number":764,"context_line":"        capacity[\u0027reserved_percentage\u0027] \u003d self.reserved_percentage"},{"line_number":765,"context_line":"        capacity[\u0027max_over_subscription_ratio\u0027] \u003d self.over_subscription_ratio"},{"line_number":766,"context_line":"        total_size, total_available, total_allocated \u003d \\"},{"line_number":767,"context_line":"            self._get_capacity_info(nfs_share)"},{"line_number":768,"context_line":"        capacity[\u0027total_capacity_gb\u0027] \u003d na_utils.round_down("},{"line_number":769,"context_line":"            total_size / units.Gi, \u00270.01\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_c0504961","line":766,"in_reply_to":"7a5de9d1_f8dbf24c","updated":"2016-02-02 18:31:42.000000000","message":"same as above.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"747b92a8c9bbd6bfcfa5d9f175ae9d1707cbcd40","unresolved":false,"context_lines":[{"line_number":779,"context_line":"        export_path \u003d nfs_share.rsplit(\u0027:\u0027, 1)[1]"},{"line_number":780,"context_line":"        total_size, avl_size \u003d \\"},{"line_number":781,"context_line":"            self.zapi_client.get_flexvol_capacity(export_path)"},{"line_number":782,"context_line":"        return total_size, avl_size, (total_size - avl_size)"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _check_volume_type(self, volume, share, file_name, extra_specs):"},{"line_number":785,"context_line":"        \"\"\"Match volume type for share file.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_93b89f12","line":782,"updated":"2016-02-01 23:34:28.000000000","message":"I don\u0027t see our version of this method being invoked anywhere except in the above drivers, in which case the change of signature from three arguments to two should be fine.\n\nThe generic nfs driver at drivers/volume/nfs.py calls _get_capacity_info() from _find_share().  _find_share() is in turn called from RemoteFSDriver:create_volume().  NetApp driver doesn\u0027t invoke _find_share() itself and overrides create_volume() with its own method that doesn\u0027t invoke find_share() - it is using pools and doesn\u0027t need to select among shares.\n\nThe generic nfs driver also calls _get_capacity_info() from _is_share_eligible(), which is in turn called by _find_share() - already covered - and by extend_volume().  NetApp drivers use their own extend_volume() that doesn\u0027t invoke _get_capacity_info().\n\nRemoteFSDriver invokes _get_capacity_info() from _update_volume_stats().  NetApp NFS drivers have their own _update_volume_stats() that do not invoke _get_capacity_info().\n\nSo I think the signature change for _get_capacity_info() in the NetApp NFS drivers is safe.","commit_id":"4156bb813a511b73448330c41030f04369547daa"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"8d482b473711d4671bcfbac3727a431b7d167588","unresolved":false,"context_lines":[{"line_number":779,"context_line":"        export_path \u003d nfs_share.rsplit(\u0027:\u0027, 1)[1]"},{"line_number":780,"context_line":"        total_size, avl_size \u003d \\"},{"line_number":781,"context_line":"            self.zapi_client.get_flexvol_capacity(export_path)"},{"line_number":782,"context_line":"        return total_size, avl_size, (total_size - avl_size)"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _check_volume_type(self, volume, share, file_name, extra_specs):"},{"line_number":785,"context_line":"        \"\"\"Match volume type for share file.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_b0bd5c04","line":782,"in_reply_to":"7a5de9d1_93b89f12","updated":"2016-02-02 18:31:42.000000000","message":"oh I see that the bug has been fixed and backported to kilo https://github.com/openstack/cinder/commit/e9dfe5a45971000f458ddcdfee426e3c1ada3a1d. I guess got late to submit the patch, but good that it got fixed. Distributions still done have the backported patch included yet.","commit_id":"4156bb813a511b73448330c41030f04369547daa"}]}
