)]}'
{"manila/share/drivers/hpe/hpe_3par_driver.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"1e809f10d19dac6c922746dd3db93ffd77cfad1f","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def shrink_share(self, share, new_size, share_server\u003dNone):"},{"line_number":391,"context_line":"        \"\"\"Shrinks size of existing share.\"\"\""},{"line_number":392,"context_line":"        self._hpe3par.resize_share(share[\u0027project_id\u0027],"},{"line_number":393,"context_line":"                                   share[\u0027id\u0027],"},{"line_number":394,"context_line":"                                   share[\u0027share_proto\u0027],"},{"line_number":395,"context_line":"                                   new_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_ca396643","line":392,"range":{"start_line":392,"start_character":22,"end_line":392,"end_character":34},"updated":"2015-12-22 18:33:34.000000000","message":"I guess there isn\u0027t much to be gained by deduplicating this method and the previous one...","commit_id":"2f62fa7ebc164712daed24760fd693d64b09143d"}],"manila/share/drivers/hpe/hpe_3par_mediator.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"875e8e8ab617968b691d4b4b2b3dba2e96dae4b0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"    def _update_capacity_quotas(self, fstore, new_size, old_size, fpg, vfs):"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        @utils.synchronized(\u0027hpe3par-update-quota-\u0027 + fstore)"},{"line_number":392,"context_line":"        def sync_update_capacity_quotas(fstore, new_size, old_size, fpg, vfs):"},{"line_number":393,"context_line":"            if self.hpe3par_fstore_per_share:"},{"line_number":394,"context_line":"                hcapacity \u003d six.text_type(new_size * units.Ki)"},{"line_number":395,"context_line":"                scapacity \u003d hcapacity"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_6ccace51","line":392,"updated":"2015-12-14 20:33:57.000000000","message":"This function name should start with _ as it is an internal function.","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"97144285e1d203482c922d2b68bde297501c5f54","unresolved":false,"context_lines":[{"line_number":389,"context_line":"    def _update_capacity_quotas(self, fstore, new_size, old_size, fpg, vfs):"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        @utils.synchronized(\u0027hpe3par-update-quota-\u0027 + fstore)"},{"line_number":392,"context_line":"        def sync_update_capacity_quotas(fstore, new_size, old_size, fpg, vfs):"},{"line_number":393,"context_line":"            if self.hpe3par_fstore_per_share:"},{"line_number":394,"context_line":"                hcapacity \u003d six.text_type(new_size * units.Ki)"},{"line_number":395,"context_line":"                scapacity \u003d hcapacity"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_65c5015a","line":392,"in_reply_to":"5a710552_6ccace51","updated":"2015-12-14 21:43:30.000000000","message":"Done","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"875e8e8ab617968b691d4b4b2b3dba2e96dae4b0","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                                           hcapacity\u003dhcapacity)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        try:"},{"line_number":416,"context_line":"            result \u003d sync_update_capacity_quotas("},{"line_number":417,"context_line":"                fstore, new_size, old_size, fpg, vfs)"},{"line_number":418,"context_line":"        except Exception as e:"},{"line_number":419,"context_line":"            result \u003d six.text_type(e)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_4cefd2b0","line":416,"updated":"2015-12-14 20:33:57.000000000","message":"What is \"result\" if it is successful?","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"97144285e1d203482c922d2b68bde297501c5f54","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                                           hcapacity\u003dhcapacity)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        try:"},{"line_number":416,"context_line":"            result \u003d sync_update_capacity_quotas("},{"line_number":417,"context_line":"                fstore, new_size, old_size, fpg, vfs)"},{"line_number":418,"context_line":"        except Exception as e:"},{"line_number":419,"context_line":"            result \u003d six.text_type(e)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_e5afb192","line":416,"in_reply_to":"5a710552_4cefd2b0","updated":"2015-12-14 21:43:30.000000000","message":"empty is successful, otherwise I expect this to be an error message.  I added a little bit of comments to help explain that.","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"875e8e8ab617968b691d4b4b2b3dba2e96dae4b0","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                    \u0027fstore\u0027: fstore,"},{"line_number":427,"context_line":"                    \u0027error\u0027: result})"},{"line_number":428,"context_line":"            LOG.error(msg)"},{"line_number":429,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _create_share(self, project_id, share_id, protocol, extra_specs,"},{"line_number":432,"context_line":"                      fpg, vfs, fstore, sharedir, readonly, size, comment):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_8c513a65","line":429,"updated":"2015-12-14 20:33:57.000000000","message":"Why don\u0027t you move this directly inside the except block at line 419?  I don\u0027t see why we need line 419 to save the exception message to the result and then check to see if result contains anything.","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"97144285e1d203482c922d2b68bde297501c5f54","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                    \u0027fstore\u0027: fstore,"},{"line_number":427,"context_line":"                    \u0027error\u0027: result})"},{"line_number":428,"context_line":"            LOG.error(msg)"},{"line_number":429,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _create_share(self, project_id, share_id, protocol, extra_specs,"},{"line_number":432,"context_line":"                      fpg, vfs, fstore, sharedir, readonly, size, comment):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_a5d8c9f0","line":429,"in_reply_to":"5a710552_8c513a65","updated":"2015-12-14 21:43:30.000000000","message":"I was trying to get rid of some redundant code and handle 2 types of errors (returned message or raised exception).  I\u0027ve changed it to do them separately. It\u0027s a little extra code, but now this adds a clue in the text to indicate which kind of exception/error caused it.","commit_id":"56651d82a217617994b1b01a0208d3ea62f39bc0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1c92d3f96ad425656ddc20af5aaf3b783b727c32","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _update_capacity_quotas(self, fstore, new_size, old_size, fpg, vfs):"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        @utils.synchronized(\u0027hpe3par-update-quota-\u0027 + fstore)"},{"line_number":392,"context_line":"        def _sync_update_capacity_quotas(fstore, new_size, old_size, fpg, vfs):"},{"line_number":393,"context_line":"            \"\"\"Update 3PAR quotas and return setfsquota output.\"\"\""},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_7dc4b891","line":391,"updated":"2015-12-17 03:38:31.000000000","message":"Do you need the lock?  I thought you guys are trying to get rid of all locks in your drivers.\n\nI don\u0027t have a problem with it as we need it in some places too.","commit_id":"eb8dab246a84b7beace2d31c71573e6c095c155a"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"ca648b356c2da219036adaeb514e85341a7349e7","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _update_capacity_quotas(self, fstore, new_size, old_size, fpg, vfs):"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        @utils.synchronized(\u0027hpe3par-update-quota-\u0027 + fstore)"},{"line_number":392,"context_line":"        def _sync_update_capacity_quotas(fstore, new_size, old_size, fpg, vfs):"},{"line_number":393,"context_line":"            \"\"\"Update 3PAR quotas and return setfsquota output.\"\"\""},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_bb41be3b","line":391,"in_reply_to":"3a7e1126_7dc4b891","updated":"2015-12-17 06:32:06.000000000","message":"Yes. The sync adds some protection against a race condition so I can get/increment/set. I think we\u0027ll change the locking mechanism in the future, but for now this is probably best.","commit_id":"eb8dab246a84b7beace2d31c71573e6c095c155a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"1e809f10d19dac6c922746dd3db93ffd77cfad1f","unresolved":false,"context_lines":[{"line_number":424,"context_line":"                   {\u0027size\u0027: new_size - old_size,"},{"line_number":425,"context_line":"                    \u0027fstore\u0027: fstore,"},{"line_number":426,"context_line":"                    \u0027e\u0027: six.text_type(e)})"},{"line_number":427,"context_line":"            LOG.error(msg)"},{"line_number":428,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        # Non-empty result is an error message returned from the 3PAR"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_4ae256a1","line":427,"range":{"start_line":427,"start_character":16,"end_line":427,"end_character":21},"updated":"2015-12-22 18:33:34.000000000","message":"Purely optional, but it\u0027s a bit simpler to use LOG.exception, which will include the exception details for you.","commit_id":"2f62fa7ebc164712daed24760fd693d64b09143d"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"1e809f10d19dac6c922746dd3db93ffd77cfad1f","unresolved":false,"context_lines":[{"line_number":1203,"context_line":"                                   allow_cross_protocol\u003dFalse)"},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"        if not fstore:"},{"line_number":1206,"context_line":"            msg \u003d (_(\u0027Cannot resize share because it was not found.\u0027))"},{"line_number":1207,"context_line":"            raise exception.InvalidShare(reason\u003dmsg)"},{"line_number":1208,"context_line":""},{"line_number":1209,"context_line":"        self._update_capacity_quotas(fstore, new_size, old_size, fpg, vfs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_8a74becf","line":1206,"updated":"2015-12-22 18:33:34.000000000","message":"Should you include the share ID in this error message for easier debugging?","commit_id":"2f62fa7ebc164712daed24760fd693d64b09143d"}]}
