)]}'
{"cinder/volume/drivers/netapp/eseries/client.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"49563e64da013983b0e572afd78c9ea46cc1c78e","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        if status_code \u003e\u003d 300:"},{"line_number":267,"context_line":"            # Response code 422 returns error code and message"},{"line_number":268,"context_line":"            if status_code \u003d\u003d 422:"},{"line_number":269,"context_line":"                default_msg \u003d _(\"Response error - %s.\") % response.text"},{"line_number":270,"context_line":"                json_response \u003d response.json()"},{"line_number":271,"context_line":"                if json_response is not None:"},{"line_number":272,"context_line":"                    ret_code \u003d json_response.get(\u0027retcode\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_9d1c0b79","line":269,"updated":"2015-10-12 17:57:19.000000000","message":"Please, change default_msg \u003d\u003e msg. It will help to delete two \u0027else\u0027 statements","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"6145d2653a2af5f81078c2699aa1503cf5f8f859","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        if status_code \u003e\u003d 300:"},{"line_number":267,"context_line":"            # Response code 422 returns error code and message"},{"line_number":268,"context_line":"            if status_code \u003d\u003d 422:"},{"line_number":269,"context_line":"                default_msg \u003d _(\"Response error - %s.\") % response.text"},{"line_number":270,"context_line":"                json_response \u003d response.json()"},{"line_number":271,"context_line":"                if json_response is not None:"},{"line_number":272,"context_line":"                    ret_code \u003d json_response.get(\u0027retcode\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_c34aa055","line":269,"in_reply_to":"7a2fa921_9d1c0b79","updated":"2015-10-13 14:02:47.000000000","message":"Done","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"}],"cinder/volume/drivers/netapp/eseries/library.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"1731fa58ffad001ae0eaa481c5cef8b822afd2e1","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        status \u003d system.get(\u0027passwordStatus\u0027, \u0027\u0027)"},{"line_number":265,"context_line":"        status \u003d status.lower() if status is not None else \u0027\u0027"},{"line_number":266,"context_line":"        return status, (status !\u003d \u0027invalid\u0027 and status !\u003d \u0027unknown\u0027)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _check_storage_system_status(self, system):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_1e8b4620","line":265,"updated":"2015-10-09 23:17:26.000000000","message":"If system does not contain the key \"passwordStatus\", then the else is not necessary because the default return value is \u0027\u0027, as set above.  If system does contain the key, and it is set to None, then the else here is valid.  Can system[\u0027passwordStatus\u0027] \u003d None?","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"baceaf0dbcd3b3b8c0d5d3dca331e045165bed30","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        status \u003d system.get(\u0027passwordStatus\u0027, \u0027\u0027)"},{"line_number":265,"context_line":"        status \u003d status.lower() if status is not None else \u0027\u0027"},{"line_number":266,"context_line":"        return status, (status !\u003d \u0027invalid\u0027 and status !\u003d \u0027unknown\u0027)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _check_storage_system_status(self, system):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_1510d5a7","line":265,"in_reply_to":"7a2fa921_1e8b4620","updated":"2015-10-12 16:43:02.000000000","message":"Technically it is possible that the field could be set to None, but it is unlikely. Primarily, I was trying to be defensive against the possibility of there being an issue with the passwordStatus field. However, I think I see a better way of handling this case. I\u0027ll address it with a new patchset.","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"1731fa58ffad001ae0eaa481c5cef8b822afd2e1","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        :returns (str, bool)"},{"line_number":280,"context_line":"        \"\"\""},{"line_number":281,"context_line":"        status \u003d system.get(\u0027status\u0027, \u0027\u0027)"},{"line_number":282,"context_line":"        status \u003d status.lower() if status is not None else \u0027\u0027"},{"line_number":283,"context_line":"        return status, (status !\u003d \u0027nevercontacted\u0027 and status !\u003d \u0027offline\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def _check_storage_system(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_3e8e422e","line":282,"updated":"2015-10-09 23:17:26.000000000","message":"Ditto","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"baceaf0dbcd3b3b8c0d5d3dca331e045165bed30","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        :returns (str, bool)"},{"line_number":280,"context_line":"        \"\"\""},{"line_number":281,"context_line":"        status \u003d system.get(\u0027status\u0027, \u0027\u0027)"},{"line_number":282,"context_line":"        status \u003d status.lower() if status is not None else \u0027\u0027"},{"line_number":283,"context_line":"        return status, (status !\u003d \u0027nevercontacted\u0027 and status !\u003d \u0027offline\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def _check_storage_system(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_d55a5d50","line":282,"in_reply_to":"7a2fa921_3e8e422e","updated":"2015-10-12 16:43:02.000000000","message":"See above.","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"49563e64da013983b0e572afd78c9ea46cc1c78e","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                              \"%(pass_status)s.\") % msg_dict)"},{"line_number":331,"context_line":"            else:"},{"line_number":332,"context_line":"                LOG.info(_LI(\"System %(id)s has %(status)s status.\"), msg_dict)"},{"line_number":333,"context_line":"                LOG.info(_LI(\"System %(id)s has %(pass_status)s password\""},{"line_number":334,"context_line":"                             \" status.\"), msg_dict)"},{"line_number":335,"context_line":"                break"},{"line_number":336,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_80257eaf","line":333,"updated":"2015-10-12 17:57:19.000000000","message":"Please, remove 2nd LOG call","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"6145d2653a2af5f81078c2699aa1503cf5f8f859","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                              \"%(pass_status)s.\") % msg_dict)"},{"line_number":331,"context_line":"            else:"},{"line_number":332,"context_line":"                LOG.info(_LI(\"System %(id)s has %(status)s status.\"), msg_dict)"},{"line_number":333,"context_line":"                LOG.info(_LI(\"System %(id)s has %(pass_status)s password\""},{"line_number":334,"context_line":"                             \" status.\"), msg_dict)"},{"line_number":335,"context_line":"                break"},{"line_number":336,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_2337d4e4","line":333,"in_reply_to":"7a2fa921_80257eaf","updated":"2015-10-13 14:02:47.000000000","message":"Done","commit_id":"4b39b05865bbb5c47d5240e4966de0c529858b42"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"5285d7f841c4cad16a95c4681b1e872cf05d46c0","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        self._client._init_features()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    def _check_password_status(self, system):"},{"line_number":251,"context_line":"        \"\"\"Determine if the storage system\u0027s password status is valid"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        The password status has the following possible states: unknown, valid,"},{"line_number":254,"context_line":"        invalid."}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_a844f173","line":251,"updated":"2015-10-20 07:55:36.000000000","message":"Please add a stop in the end.","commit_id":"f746de3b7d7224fcfd1341a87d919fc9227b7a23"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"5285d7f841c4cad16a95c4681b1e872cf05d46c0","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        return status, status not in [\u0027invalid\u0027, \u0027unknown\u0027]"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def _check_storage_system_status(self, system):"},{"line_number":275,"context_line":"        \"\"\"Determine if the storage system\u0027s status is valid"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        The storage system status has the following possible states:"},{"line_number":278,"context_line":"        neverContacted, offline, optimal, needsAttn."}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_c847ed75","line":275,"updated":"2015-10-20 07:55:36.000000000","message":"Please add a stop in the end.","commit_id":"f746de3b7d7224fcfd1341a87d919fc9227b7a23"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"5285d7f841c4cad16a95c4681b1e872cf05d46c0","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        self._client.update_stored_system_password(new_pwd)"},{"line_number":310,"context_line":"        time.sleep(self.SLEEP_SECS)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        sa_comm_timeout \u003d 30"},{"line_number":313,"context_line":"        comm_time \u003d 0"},{"line_number":314,"context_line":"        while True:"},{"line_number":315,"context_line":"            system \u003d self._client.list_storage_system()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_e831890c","line":312,"updated":"2015-10-20 07:55:36.000000000","message":"30 can be put in a constant like SLEEP_SECS.","commit_id":"f746de3b7d7224fcfd1341a87d919fc9227b7a23"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7816fa773da6c9c8f955a07af90e590cbd86cb08","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        :returns (str, bool)"},{"line_number":287,"context_line":"        \"\"\""},{"line_number":288,"context_line":"        status \u003d system.get(\u0027status\u0027)"},{"line_number":289,"context_line":"        status \u003d status.lower() if status else \u0027\u0027"},{"line_number":290,"context_line":"        return status, status not in [\u0027nevercontacted\u0027, \u0027offline\u0027]"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def _check_storage_system(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_3edb6bef","line":289,"updated":"2015-11-13 16:18:35.000000000","message":"Could pass \u0027\u0027 as the default value in the get() call above, but this works as well.","commit_id":"1b4e2e7a48ec76fa5bc80b13fc4a04bce660ad31"}]}
