)]}'
{"manila/share/drivers/hp/hp_3par_mediator.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"73a27c4f6aa678d87bb61ce7e0978363dc7af379","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def __init__(self, **kwargs):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.hp3par_username \u003d kwargs.get(\u0027hp3par_username\u0027)"},{"line_number":48,"context_line":"        self.hp3par_password \u003d kwargs.get(\u0027hp3par_password\u0027)"},{"line_number":49,"context_line":"        self.hp3par_api_url \u003d kwargs.get(\u0027hp3par_api_url\u0027)"},{"line_number":50,"context_line":"        self.hp3par_debug \u003d kwargs.get(\u0027hp3par_debug\u0027)"},{"line_number":51,"context_line":"        self.hp3par_san_ip \u003d kwargs.get(\u0027hp3par_san_ip\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1924e95d","line":48,"updated":"2015-06-10 03:52:31.000000000","message":"Parameter \u0027self.hp3par_username\u0027 and \u0027self.hp3par_password\u0027 is not be used? or something I missed?","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"76509990b3c1e1ae8ca3543984638130a4a7d819","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def __init__(self, **kwargs):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.hp3par_username \u003d kwargs.get(\u0027hp3par_username\u0027)"},{"line_number":48,"context_line":"        self.hp3par_password \u003d kwargs.get(\u0027hp3par_password\u0027)"},{"line_number":49,"context_line":"        self.hp3par_api_url \u003d kwargs.get(\u0027hp3par_api_url\u0027)"},{"line_number":50,"context_line":"        self.hp3par_debug \u003d kwargs.get(\u0027hp3par_debug\u0027)"},{"line_number":51,"context_line":"        self.hp3par_san_ip \u003d kwargs.get(\u0027hp3par_san_ip\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_5837d84c","line":48,"in_reply_to":"3afb71cf_1924e95d","updated":"2015-06-10 18:35:58.000000000","message":"Wow. I missed that. I\u0027ll put in a separate bug for this. It is not part of this patch. I think these will be used in the future, but I\u0027ll gladly clean this up if I don\u0027t need to bring them right back.\nbug/1463942\nDone","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"73a27c4f6aa678d87bb61ce7e0978363dc7af379","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        try:"},{"line_number":115,"context_line":"            wsapi_version \u003d self._client.getWsApiVersion()[\u0027build\u0027]"},{"line_number":116,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":117,"context_line":"        except Exception as e:"},{"line_number":118,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) %"},{"line_number":119,"context_line":"                   six.text_type(e))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_de56375b","line":116,"updated":"2015-06-10 03:52:31.000000000","message":"Add \u0027version\u0027 : _LI(\"3PAR WSAPI version: %s\")\n\nWhy do some places with WSAPI, some places use WsApi?\nPlease keep consistent. But it\u0027s ok.\n\ngetWsApiVersion -\u003egetWSAPIVersion?","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"76509990b3c1e1ae8ca3543984638130a4a7d819","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        try:"},{"line_number":115,"context_line":"            wsapi_version \u003d self._client.getWsApiVersion()[\u0027build\u0027]"},{"line_number":116,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":117,"context_line":"        except Exception as e:"},{"line_number":118,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) %"},{"line_number":119,"context_line":"                   six.text_type(e))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_c4d0a8f8","line":116,"in_reply_to":"3afb71cf_de56375b","updated":"2015-06-10 18:35:58.000000000","message":"Good point, but for the log message WSAPI all caps is the correct acronym for our web service API.  The method name, however, I dislike very much (should be pep8 style), but the client code was already existing and is in use as it is.  So I\u0027m kind of stuck with that at least for now.\nDone","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"4e88438e1217129af0a5402195cabb8a83d89fe7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def do_setup(self):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if hp3parclient is None:"},{"line_number":64,"context_line":"            msg \u003d _(\u0027You must install hp3parclient before using the 3PAR \u0027"},{"line_number":65,"context_line":"                    \u0027driver.\u0027)"},{"line_number":66,"context_line":"            LOG.exception(msg)"},{"line_number":67,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_162a1a7f","line":64,"updated":"2015-06-11 19:09:05.000000000","message":"This block isn\u0027t unit tested.  Would you mind adding that, please?","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5a351392d003c98d89daa6c6b420f957120f7e07","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def do_setup(self):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if hp3parclient is None:"},{"line_number":64,"context_line":"            msg \u003d _(\u0027You must install hp3parclient before using the 3PAR \u0027"},{"line_number":65,"context_line":"                    \u0027driver.\u0027)"},{"line_number":66,"context_line":"            LOG.exception(msg)"},{"line_number":67,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_4977b202","line":64,"in_reply_to":"3afb71cf_162a1a7f","updated":"2015-06-13 05:35:31.000000000","message":"Yeah. I also thought this bit of coverage would be good to add, but I had trouble mocking it and quit. So I tried again. I ended up adding a method for testability.  Done.","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"4e88438e1217129af0a5402195cabb8a83d89fe7","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        client_version \u003d hp3parclient.version"},{"line_number":70,"context_line":"        if client_version \u003c MIN_CLIENT_VERSION:"},{"line_number":71,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":72,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":73,"context_line":"                   {\u0027found\u0027: client_version,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_3073dd17","line":70,"updated":"2015-06-11 19:09:05.000000000","message":"Are you sure you want to do version checking using string comparison?  It\u0027s pretty simple to convert to tuples and use python\u0027s tuple comparison.\n\nhttp://stackoverflow.com/questions/11887762/how-to-compare-version-style-strings","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5a351392d003c98d89daa6c6b420f957120f7e07","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        client_version \u003d hp3parclient.version"},{"line_number":70,"context_line":"        if client_version \u003c MIN_CLIENT_VERSION:"},{"line_number":71,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":72,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":73,"context_line":"                   {\u0027found\u0027: client_version,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_a9519e64","line":70,"in_reply_to":"3afb71cf_3073dd17","updated":"2015-06-13 05:35:31.000000000","message":"I had the same complaint with our Cinder driver, but now I decided to copy it. Lazy. Thanks for the suggestion.  Done.","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"4e88438e1217129af0a5402195cabb8a83d89fe7","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":117,"context_line":"        except Exception as e:"},{"line_number":118,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) %"},{"line_number":119,"context_line":"                   six.text_type(e))"},{"line_number":120,"context_line":"            LOG.exception(msg)"},{"line_number":121,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_f098a51d","line":119,"updated":"2015-06-11 19:09:05.000000000","message":"There\u0027s no need to cast an exception to a string.","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5a351392d003c98d89daa6c6b420f957120f7e07","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":117,"context_line":"        except Exception as e:"},{"line_number":118,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) %"},{"line_number":119,"context_line":"                   six.text_type(e))"},{"line_number":120,"context_line":"            LOG.exception(msg)"},{"line_number":121,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_694b96b1","line":119,"in_reply_to":"3afb71cf_f098a51d","updated":"2015-06-13 05:35:31.000000000","message":"Done","commit_id":"5b6fb8f0a43ac73fc6b82a86873dbc79cf5b4a4f"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"bbe9cf46f37e52ccd264dc22f7aaa6ef8fab1c60","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            LOG.exception(msg)"},{"line_number":111,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        LOG.info(_LI(\"HP3ParMediator %(version)s,\""},{"line_number":114,"context_line":"                     \"hp3parclient %(client_version)s\"),"},{"line_number":115,"context_line":"                 {\"version\": self.VERSION,"},{"line_number":116,"context_line":"                  \"client_version\": hp3parclient.get_version_string()})"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_3d9aa815","line":113,"updated":"2015-06-13 15:23:36.000000000","message":"Need a space at the end here?","commit_id":"e5f5264b01496205165e3ca468c1c6fa11671b46"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"70fef205f113aa6de7deb828b9d545d3c46e8f6a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            LOG.exception(msg)"},{"line_number":111,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        LOG.info(_LI(\"HP3ParMediator %(version)s,\""},{"line_number":114,"context_line":"                     \"hp3parclient %(client_version)s\"),"},{"line_number":115,"context_line":"                 {\"version\": self.VERSION,"},{"line_number":116,"context_line":"                  \"client_version\": hp3parclient.get_version_string()})"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_931720ed","line":113,"in_reply_to":"fa32b979_3d9aa815","updated":"2015-06-14 01:06:51.000000000","message":"Done","commit_id":"e5f5264b01496205165e3ca468c1c6fa11671b46"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0605a6395fe40054e373e37abb4d76cf96c0f96d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if client_version \u003c MIN_CLIENT_VERSION:"},{"line_number":75,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":76,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":77,"context_line":"                   {\u0027found\u0027: \u0027.\u0027.join(map(str, client_version)),"},{"line_number":78,"context_line":"                    \u0027minimum\u0027: \u0027.\u0027.join(map(str, MIN_CLIENT_VERSION))})"},{"line_number":79,"context_line":"            LOG.exception(msg)"},{"line_number":80,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_3c829853","line":77,"updated":"2015-06-15 04:15:22.000000000","message":"Should use six.text_type instead of str here.","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"a172d44f6386932ec807e323ba1ffd6f134709a6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if client_version \u003c MIN_CLIENT_VERSION:"},{"line_number":75,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":76,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":77,"context_line":"                   {\u0027found\u0027: \u0027.\u0027.join(map(str, client_version)),"},{"line_number":78,"context_line":"                    \u0027minimum\u0027: \u0027.\u0027.join(map(str, MIN_CLIENT_VERSION))})"},{"line_number":79,"context_line":"            LOG.exception(msg)"},{"line_number":80,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_9e8dd933","line":77,"in_reply_to":"fa32b979_3c829853","updated":"2015-06-15 05:58:26.000000000","message":"Done","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0605a6395fe40054e373e37abb4d76cf96c0f96d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":76,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":77,"context_line":"                   {\u0027found\u0027: \u0027.\u0027.join(map(str, client_version)),"},{"line_number":78,"context_line":"                    \u0027minimum\u0027: \u0027.\u0027.join(map(str, MIN_CLIENT_VERSION))})"},{"line_number":79,"context_line":"            LOG.exception(msg)"},{"line_number":80,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_5c875c61","line":78,"updated":"2015-06-15 04:15:22.000000000","message":"Same","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"a172d44f6386932ec807e323ba1ffd6f134709a6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            msg \u003d (_(\u0027Invalid hp3parclient version found (%(found)s). \u0027"},{"line_number":76,"context_line":"                     \u0027Version %(minimum)s or greater required.\u0027) %"},{"line_number":77,"context_line":"                   {\u0027found\u0027: \u0027.\u0027.join(map(str, client_version)),"},{"line_number":78,"context_line":"                    \u0027minimum\u0027: \u0027.\u0027.join(map(str, MIN_CLIENT_VERSION))})"},{"line_number":79,"context_line":"            LOG.exception(msg)"},{"line_number":80,"context_line":"            raise exception.HP3ParInvalidClient(message\u003dmsg)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_3e828d01","line":78,"in_reply_to":"fa32b979_5c875c61","updated":"2015-06-15 05:58:26.000000000","message":"Done","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0605a6395fe40054e373e37abb4d76cf96c0f96d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            wsapi_version \u003d self._client.getWsApiVersion()[\u0027build\u0027]"},{"line_number":120,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":121,"context_line":"        except Exception as e:"},{"line_number":122,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) % e)"},{"line_number":123,"context_line":"            LOG.exception(msg)"},{"line_number":124,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_5cee7c23","line":122,"updated":"2015-06-15 04:15:22.000000000","message":"e should be wrapped with six.text_type.\n\nIf you move this inside LOG.exception below, then six.text_type is not needed.","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"29cf2e3f0e8b0413c812c0369eae52d3a771fff3","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            wsapi_version \u003d self._client.getWsApiVersion()[\u0027build\u0027]"},{"line_number":120,"context_line":"            LOG.info(_LI(\"3PAR WSAPI %s\"), wsapi_version)"},{"line_number":121,"context_line":"        except Exception as e:"},{"line_number":122,"context_line":"            msg \u003d (_(\u0027Failed to get 3PAR WSAPI version: %s\u0027) % e)"},{"line_number":123,"context_line":"            LOG.exception(msg)"},{"line_number":124,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_baac4936","line":122,"in_reply_to":"fa32b979_5cee7c23","updated":"2015-06-15 18:14:48.000000000","message":"Done","commit_id":"3dcb18fe94be0dd9e011653fa797d05f2dc321e7"}],"manila/tests/share/drivers/hp/test_hp_3par_mediator.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"73a27c4f6aa678d87bb61ce7e0978363dc7af379","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def init_mediator(self):"},{"line_number":115,"context_line":"        \"\"\"Basic mediator setup for re-use with tests that need one.\"\"\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        self.mock_client.getWsApiVersion.return_value \u003d {\u0027build\u0027: \u00273.2.1\u0027}"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.mock_client.getvfs.return_value \u003d {"},{"line_number":120,"context_line":"            \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_d9d09121","line":117,"updated":"2015-06-10 03:52:31.000000000","message":"May be you could add test about version \u00273.2.2\u0027. Because this support greater version(3.2.1).","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"76509990b3c1e1ae8ca3543984638130a4a7d819","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def init_mediator(self):"},{"line_number":115,"context_line":"        \"\"\"Basic mediator setup for re-use with tests that need one.\"\"\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        self.mock_client.getWsApiVersion.return_value \u003d {\u0027build\u0027: \u00273.2.1\u0027}"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.mock_client.getvfs.return_value \u003d {"},{"line_number":120,"context_line":"            \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_356c25cd","line":117,"in_reply_to":"3afb71cf_d9d09121","updated":"2015-06-10 18:35:58.000000000","message":"OK. There\u0027s some confusion here because the WSAPI version (only logged for now) and the client version both happen to be 3-2-1.  But actually I used an inaccurate example string here.  So I\u0027ll fix the format to be realistic and use constants. It\u0027ll be clearer, I think.  So the version \u003e minimum test you suggest actually applies to the client version not WSAPI version.  I considered that but didn\u0027t think it was worth maintaining. Since you also considered it, I\u0027ll add it.  Done.","commit_id":"7f2877d54c98bc2941cc058bd7003ece7cf11a59"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"9e089cbb6bf40ccbdbe4ab5501c8c39080cffb77","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        \"\"\"Test the getWsApiVersion exception handling.\"\"\""},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        self.mock_client.getWsApiVersion.side_effect \u003d ("},{"line_number":187,"context_line":"            Exception(\u0027Any (non-Manila) Exception.\u0027))"},{"line_number":188,"context_line":"        self.assertRaises(exception.ShareBackendException,"},{"line_number":189,"context_line":"                          self.init_mediator)"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_8c7a9922","line":187,"updated":"2015-06-11 09:51:52.000000000","message":"Better to use not top-exception, but some dedicated. In this we cover different cases.","commit_id":"e8be121b7986c73eb48e03cbae4f240a391b2690"}]}
