)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"2299f3e0ae3c7080fc4cfb04f9769126ca9e6fa1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Cocozzello \u003ctjcocozz@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-26 15:56:00 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cinderclient mock is set up inccorrectly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Mock for the cinderclient is causing some interesting functionality."},{"line_number":10,"context_line":"Every time the get() in the VolumeManager is called, mock returns a different"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aed3d3a_1c6f2d2c","line":7,"range":{"start_line":7,"start_character":13,"end_line":7,"end_character":40},"updated":"2016-02-27 03:26:41.000000000","message":"Sorry, the title is a little confused. Is this a bug ? If so, you just added a test case, you didn\u0027t fix the bug. If it is not a bug, just some enhance of test cases, please change this title.\n\nAnd if it is a bug, please add a bug report here:  \nhttps://bugs.launchpad.net/python-openstackclient/+filebug","commit_id":"0ab57bfe1d039a193349cdf14adfa1a42e682b07"}],"openstackclient/tests/volume/test_find_resource.py":[{"author":{"_account_id":17211,"name":"Brandon Palm","email":"bapalm@us.ibm.com","username":"bapalm"},"change_message_id":"2eac084bce81b7a62da471532d58b171071ca101","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.assertIs(tuple,"},{"line_number":72,"context_line":"                      type(self.manager.api.client.get(\u0027non_existent_volume\u0027)))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # 3st time called: Exception StopIteration"},{"line_number":75,"context_line":"        self.assertRaises(StopIteration, self.manager.api.client.get,"},{"line_number":76,"context_line":"                          \u0027non_existent_volume\u0027)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_ecbc09bd","line":74,"range":{"start_line":74,"start_character":10,"end_line":74,"end_character":13},"updated":"2016-02-29 20:11:22.000000000","message":"3st?  :)\n\nThis assertRaises might be the source of the PEP8 error as well.  \"Exception too broad.\"","commit_id":"194fffc5d06877145586df0aa6fd2fc96c5f58a3"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c03972eae349a602e2e67ad04dd3bbb81c88662","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.assertIs(tuple,"},{"line_number":72,"context_line":"                      type(self.manager.api.client.get(\u0027non_existent_volume\u0027)))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # 3st time called: Exception StopIteration"},{"line_number":75,"context_line":"        self.assertRaises(StopIteration, self.manager.api.client.get,"},{"line_number":76,"context_line":"                          \u0027non_existent_volume\u0027)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_a6533d38","line":74,"range":{"start_line":74,"start_character":10,"end_line":74,"end_character":13},"in_reply_to":"9aed3d3a_ecbc09bd","updated":"2016-02-29 21:23:28.000000000","message":"Maybe i was thirsty when i was writing this test .... btw the \u0027Exception\u0027 is declared on Line 47.  It actually incorrect up there, fortunately this test is here to prove there is a problem and will be removed, soon.  :p","commit_id":"194fffc5d06877145586df0aa6fd2fc96c5f58a3"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"d27d063108ea1fb4a2e34ba63cc7847acf8a5274","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# Monkey patch for v1 cinderclient"},{"line_number":28,"context_line":"# NOTE(dtroyer): Do here because openstackclient.volume.client"},{"line_number":29,"context_line":"# doesn\u0027t do it until the client object is created now."},{"line_number":30,"context_line":"volumes.Volume.NAME_ATTR \u003d \u0027display_name\u0027"},{"line_number":31,"context_line":"volume_snapshots.Snapshot.NAME_ATTR \u003d \u0027display_name\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"ID \u003d \u00271after909\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_fcb81b2c","side":"PARENT","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":52},"updated":"2016-03-01 08:43:36.000000000","message":"find resource by \u0027display_name\u0027.","commit_id":"2819450be5d4fa57c6efdb4cd225f59bab894fba"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"d27d063108ea1fb4a2e34ba63cc7847acf8a5274","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":45,"context_line":"        resp \u003d mock.Mock()"},{"line_number":46,"context_line":"        body \u003d {\"volumes\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":47,"context_line":"        api.client.get.side_effect \u003d [Exception(\"Not found\"), (resp, body)]"},{"line_number":48,"context_line":"        self.manager \u003d volumes.VolumeManager(api)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_find(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_bc75f364","side":"PARENT","line":47,"updated":"2016-03-01 08:43:36.000000000","message":"I think \u0027side_effect\u0027 make sense at here, the test code touch manager.find(**kwargs) logic path.\n\n- catch Exception(\"Not found\"), then pass\n\nhttps://github.com/openstack/python-openstackclient/blob/master/openstackclient/common/utils.py#L67\n\n- try to find resource with display_name \u0027PhilSpector\u0027, get result from mock (resp, body)\n\nhttps://github.com/openstack/python-openstackclient/blob/master/openstackclient/common/utils.py#L86","commit_id":"2819450be5d4fa57c6efdb4cd225f59bab894fba"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2ce2bd253fc410e443b2eacaf6e96873a8b5a566","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":45,"context_line":"        resp \u003d mock.Mock()"},{"line_number":46,"context_line":"        body \u003d {\"volumes\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":47,"context_line":"        api.client.get.side_effect \u003d [Exception(\"Not found\"), (resp, body)]"},{"line_number":48,"context_line":"        self.manager \u003d volumes.VolumeManager(api)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_find(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_748985ca","side":"PARENT","line":47,"in_reply_to":"9aed3d3a_bc75f364","updated":"2016-03-01 16:04:55.000000000","message":"Yes it does make sense here. But if you look at my follow on patch, this code breaks since it is hard coded what is suppose to be returned each time mock is called. Which for me does not makes sense. I feel it shouldn\u0027t matter how many times you call the manager it should return the same thing.","commit_id":"2819450be5d4fa57c6efdb4cd225f59bab894fba"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"0c880b24130eef65b553d5a7abbeb5cb4486fd20","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        api.client \u003d mock.Mock()"},{"line_number":44,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":45,"context_line":"        resp \u003d mock.Mock()"},{"line_number":46,"context_line":"        body \u003d {\"volumes\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":47,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":48,"context_line":"        self.manager \u003d volumes.VolumeManager(api)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_9681a04d","line":46,"range":{"start_line":46,"start_character":27,"end_line":46,"end_character":28},"updated":"2016-03-01 18:50:02.000000000","message":"After deploying cinder i found out that the body also does not have brackets around this section","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2ce2bd253fc410e443b2eacaf6e96873a8b5a566","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        api.client \u003d mock.Mock()"},{"line_number":44,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":45,"context_line":"        resp \u003d mock.Mock()"},{"line_number":46,"context_line":"        body \u003d {\"volumes\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":47,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":48,"context_line":"        self.manager \u003d volumes.VolumeManager(api)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_8120464b","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":24},"updated":"2016-03-01 16:04:55.000000000","message":"this is wrong. according to VolumeManager.get() [0] this should be \u0027volume\u0027  \n\nThe last argument is used as a key in _get() [1] to return the correct information.  KeyError is returned instead since it is suppose to be \u0027volume\u0027 instead of \u0027volumes\u0027\n\n[0] https://github.com/openstack/python-cinderclient/blob/master/cinderclient/v1/volumes.py#L189-L196\n\n[1] https://github.com/openstack/python-cinderclient/blob/master/cinderclient/base.py#L292","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b40bc6d423dba5a59f78ff7ceb881ce36a4f83d1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        api.client \u003d mock.Mock()"},{"line_number":44,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":45,"context_line":"        resp \u003d mock.Mock()"},{"line_number":46,"context_line":"        body \u003d {\"volumes\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":47,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":48,"context_line":"        self.manager \u003d volumes.VolumeManager(api)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_bf1e1361","line":46,"range":{"start_line":46,"start_character":27,"end_line":46,"end_character":28},"in_reply_to":"7af24918_9681a04d","updated":"2016-03-02 06:33:11.000000000","message":"Hi Tom, would you please send a patch to fix it ?","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"0c880b24130eef65b553d5a7abbeb5cb4486fd20","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        api.client \u003d mock.Mock()"},{"line_number":66,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":67,"context_line":"        resp \u003d mock.Mock()"},{"line_number":68,"context_line":"        body \u003d {\"snapshots\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":69,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":70,"context_line":"        self.manager \u003d volume_snapshots.SnapshotManager(api)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_16b7503a","line":68,"range":{"start_line":68,"start_character":29,"end_line":68,"end_character":30},"updated":"2016-03-01 18:50:02.000000000","message":"dito","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2ce2bd253fc410e443b2eacaf6e96873a8b5a566","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        api.client \u003d mock.Mock()"},{"line_number":66,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":67,"context_line":"        resp \u003d mock.Mock()"},{"line_number":68,"context_line":"        body \u003d {\"snapshots\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":69,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":70,"context_line":"        self.manager \u003d volume_snapshots.SnapshotManager(api)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_a11742ec","line":68,"range":{"start_line":68,"start_character":17,"end_line":68,"end_character":26},"updated":"2016-03-01 16:04:55.000000000","message":"this is wrong. according to VolumeManager.get() this should be \u0027snapshot\u0027 [0]\n\n[0] https://github.com/openstack/python-cinderclient/blob/master/cinderclient/v1/volume_snapshots.py#L107","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"cbf7398b386d8626cea03ac538597ad0f8ba067c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":67,"context_line":"        resp \u003d mock.Mock()"},{"line_number":68,"context_line":"        body \u003d {\"snapshots\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":69,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":70,"context_line":"        self.manager \u003d volume_snapshots.SnapshotManager(api)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_find(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_9670daa5","line":69,"range":{"start_line":69,"start_character":23,"end_line":69,"end_character":35},"updated":"2016-03-01 02:34:32.000000000","message":"Strange...if return_value is normal, how could \"test_not_find\" passed ?\n\nI have tried this patch. It really passed, which makes me confused.","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2ce2bd253fc410e443b2eacaf6e96873a8b5a566","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        api.client.get \u003d mock.Mock()"},{"line_number":67,"context_line":"        resp \u003d mock.Mock()"},{"line_number":68,"context_line":"        body \u003d {\"snapshots\": [{\"id\": ID, \u0027display_name\u0027: NAME}]}"},{"line_number":69,"context_line":"        api.client.get.return_value \u003d (resp, body)"},{"line_number":70,"context_line":"        self.manager \u003d volume_snapshots.SnapshotManager(api)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_find(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_61cb7a73","line":69,"range":{"start_line":69,"start_character":23,"end_line":69,"end_character":35},"in_reply_to":"9aed3d3a_9670daa5","updated":"2016-03-01 16:04:55.000000000","message":"looking into this more it looks like the above comments address the weird functionality...","commit_id":"92729022d4c668e7b9854795e3b8f66c3e50fba1"}]}
