)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"570316e8982214f9ee2b5f8c94dbf2943011dee0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement a new extra spec, \u0027netapp_thin_provisioned\u0027, that will allow"},{"line_number":10,"context_line":"users to define thin provisioned Cinder volumes on E-Series storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia00b56e6d6a644cff81791bbd04e97f0c02b9e65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_0b708ddb","line":11,"updated":"2015-08-24 13:14:20.000000000","message":"Just wondering if this should have a blueprint since it technically is adding a new capability? If not that\u0027s cool too. \n\nAlso, is this going to have any impacts? DocImpact maybe?","commit_id":"5d5ef06f49c09d4067e18380a2b0cefd5f14c3f2"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"772d57c956a3b5a4c352156e306ca93adfde0e8c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement a new extra spec, \u0027netapp_thin_provisioned\u0027, that will allow"},{"line_number":10,"context_line":"users to define thin provisioned Cinder volumes on E-Series storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia00b56e6d6a644cff81791bbd04e97f0c02b9e65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_f7af3a7b","line":11,"in_reply_to":"fa1b9901_0b708ddb","updated":"2015-08-24 14:20:41.000000000","message":"Yes, this was definitely an omission; I\u0027ll take care of those missing elements.","commit_id":"5d5ef06f49c09d4067e18380a2b0cefd5f14c3f2"}],"cinder/tests/unit/volume/drivers/netapp/eseries/test_client.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ee1209bf7c0e685424b5e2f7b9fa7997192c8088","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        fake_resp \u003d mock.Mock()"},{"line_number":59,"context_line":"        fake_resp.status_code \u003d status_code"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        self.assertEqual(None, self.my_client._eval_response(fake_resp))"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @ddt.data(300, 400, 404, 500)"},{"line_number":64,"context_line":"    def test_eval_response_failure(self, status_code):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_f5dafce8","line":61,"updated":"2015-09-02 01:10:41.000000000","message":"Use assertIsNone","commit_id":"642b7740eedf6d0f5aaaefb55f83950a2016c188"}],"cinder/volume/drivers/netapp/eseries/client.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d287dc41eea5b333e3d43c3200819d2e5b7f38df","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                    self.WWN) or object_id \u003d\u003d vol.get(self.ID)):"},{"line_number":320,"context_line":"                return vol"},{"line_number":321,"context_line":"        # The volume could not be found"},{"line_number":322,"context_line":"        raise KeyError()"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def _list_volume_v2(self, object_id):"},{"line_number":325,"context_line":"        path \u003d self.RESOURCE_PATHS.get(\u0027ssc_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_0b44bb47","line":322,"updated":"2015-08-29 03:19:17.000000000","message":"This should return VolumeNotFound instead of KeyError.","commit_id":"2c771958b491cbe4105ab1f2e7b06cdd2e2b5dc8"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"bee94919a5d4ab7eb7751debbb64d69cceb0578a","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                    self.WWN) or object_id \u003d\u003d vol.get(self.ID)):"},{"line_number":320,"context_line":"                return vol"},{"line_number":321,"context_line":"        # The volume could not be found"},{"line_number":322,"context_line":"        raise KeyError()"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def _list_volume_v2(self, object_id):"},{"line_number":325,"context_line":"        path \u003d self.RESOURCE_PATHS.get(\u0027ssc_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_e6e09e98","line":322,"in_reply_to":"da20952f_0b44bb47","updated":"2015-08-29 05:53:24.000000000","message":"Done","commit_id":"2c771958b491cbe4105ab1f2e7b06cdd2e2b5dc8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d287dc41eea5b333e3d43c3200819d2e5b7f38df","unresolved":false,"context_lines":[{"line_number":327,"context_line":"            return self._invoke(\u0027GET\u0027, path, **{\u0027object-id\u0027: object_id})"},{"line_number":328,"context_line":"        except es_exception.WebServiceException as e:"},{"line_number":329,"context_line":"            if(404 \u003d\u003d e.status_code):"},{"line_number":330,"context_line":"                raise KeyError()"},{"line_number":331,"context_line":"            else:"},{"line_number":332,"context_line":"                raise"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_8b768ba2","line":330,"updated":"2015-08-29 03:19:17.000000000","message":"Same here.","commit_id":"2c771958b491cbe4105ab1f2e7b06cdd2e2b5dc8"},{"author":{"_account_id":16821,"name":"Michael Price","email":"michael.price@netapp.com","username":"michael.price"},"change_message_id":"bee94919a5d4ab7eb7751debbb64d69cceb0578a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"            return self._invoke(\u0027GET\u0027, path, **{\u0027object-id\u0027: object_id})"},{"line_number":328,"context_line":"        except es_exception.WebServiceException as e:"},{"line_number":329,"context_line":"            if(404 \u003d\u003d e.status_code):"},{"line_number":330,"context_line":"                raise KeyError()"},{"line_number":331,"context_line":"            else:"},{"line_number":332,"context_line":"                raise"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_86f0c268","line":330,"in_reply_to":"da20952f_8b768ba2","updated":"2015-08-29 05:53:24.000000000","message":"Done","commit_id":"2c771958b491cbe4105ab1f2e7b06cdd2e2b5dc8"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ab47c06ead8c91573ae9112466385a176caf191c","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                raise"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def update_volume(self, object_id, label):"},{"line_number":335,"context_line":"        \"\"\"Renames given volume in array.\"\"\""},{"line_number":336,"context_line":"        if self.features.SSC_API_V2:"},{"line_number":337,"context_line":"            path \u003d self.RESOURCE_PATHS.get(\u0027ssc_volume\u0027)"},{"line_number":338,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_7a15f13d","line":335,"updated":"2015-08-30 12:25:10.000000000","message":"Line 344 is \"on array\", here is \"in array\", please keep consistent.","commit_id":"2c771958b491cbe4105ab1f2e7b06cdd2e2b5dc8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5fdd7435c61e4373ad35eb463ea04b902de1a863","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def delete_volume(self, object_id):"},{"line_number":284,"context_line":"        \"\"\"Deletes given volume from array.\"\"\""},{"line_number":285,"context_line":"        if self.features.SSC_API_V2:"},{"line_number":286,"context_line":"            path \u003d self.RESOURCE_PATHS.get(\u0027ssc_volume\u0027)"},{"line_number":287,"context_line":"        else:"},{"line_number":288,"context_line":"            path \u003d self.RESOURCE_PATHS.get(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_e50ff834","line":285,"updated":"2015-08-31 18:09:03.000000000","message":"The same if-else statement is on line #293 and #336. Please, move it to the internal method to remove code duplication","commit_id":"642b7740eedf6d0f5aaaefb55f83950a2016c188"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5fdd7435c61e4373ad35eb463ea04b902de1a863","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        :param object_id: The volume id, label, or wwn"},{"line_number":304,"context_line":"        :return The volume identified by object_id"},{"line_number":305,"context_line":"        :raise KeyError if the volume could not be found"},{"line_number":306,"context_line":"        \"\"\""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        if self.features.SSC_API_V2:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_68297d89","line":305,"updated":"2015-08-31 18:09:03.000000000","message":"s/KeyError/VolumeNotFound","commit_id":"642b7740eedf6d0f5aaaefb55f83950a2016c188"}]}
