)]}'
{"cinder/tests/unit/test_cloudbyte.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2af94f664169448a23d09ef8c229ce357178b40","unresolved":false,"context_lines":[{"line_number":829,"context_line":"    def test_check_for_setup_error(self, mock_setup_error):"},{"line_number":830,"context_line":"        \"\"\"Setup error detection test\"\"\""},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"        # Test - I"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"        # Running the test with None values"},{"line_number":835,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_3d62a5ae","line":832,"updated":"2015-10-01 18:37:39.000000000","message":"Can remove this comment.","commit_id":"98dc7a480f5a42d674caa93bbd958c565d10e0a9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2af94f664169448a23d09ef8c229ce357178b40","unresolved":false,"context_lines":[{"line_number":846,"context_line":"    def test_validity_check(self, mock_validity):"},{"line_number":847,"context_line":"        \"\"\"Config values validity check test\"\"\""},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        # Test - I"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"        mock_validity.reset_mock()"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_9d71717a","line":849,"updated":"2015-10-01 18:37:39.000000000","message":"Can remove this comment.","commit_id":"98dc7a480f5a42d674caa93bbd958c565d10e0a9"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":844,"context_line":"    def test_validity_check(self, mock_validity):"},{"line_number":845,"context_line":"        \"\"\"Config values validity check test\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        mock_validity.reset_mock()"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        # Running validity check with invalid params."},{"line_number":850,"context_line":"        # This will check the invalid values of the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_eeadfe88","line":847,"updated":"2015-10-05 12:38:28.000000000","message":"-1: You just created the mock, no need to reset it","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":852,"context_line":""},{"line_number":853,"context_line":"        invalid_params \u003d {"},{"line_number":854,"context_line":"            \u0027tsm_name\u0027: \u0027CustomerB\u0027,"},{"line_number":855,"context_line":"            \u0027account_name\u0027: \u0027Acc2\u0027"},{"line_number":856,"context_line":"        }"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        response \u003d self.driver._api_request_for_cloudbyte(\u0027listTsm\u0027, {})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_ae638619","line":855,"updated":"2015-10-05 12:38:28.000000000","message":"-1: According to the code these 2 are wrong, they should be \u0027name\u0027 and \u0027accountname\u0027","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":855,"context_line":"            \u0027account_name\u0027: \u0027Acc2\u0027"},{"line_number":856,"context_line":"        }"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        response \u003d self.driver._api_request_for_cloudbyte(\u0027listTsm\u0027, {})"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"        # Now run the test \u0026 assert the exception"},{"line_number":861,"context_line":"        self.assertRaises(exception.InvalidInput,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_0e4ab2ac","line":858,"updated":"2015-10-05 12:38:28.000000000","message":"-1: Here you are just calling a mock that will return a MagicMock object...\n\nThis whole test should be changed to be like the previous one (calling check_for_setup_error) but setting configuration attributes to the something different than None and setting `mock_validity.return \u003d invalid_params` (although invalid params would not be the right name since the invalid params are in self.driver.configuration).","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":862,"context_line":"                          self.driver._validity_check,"},{"line_number":863,"context_line":"                          invalid_params, response)"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"    @mock.patch.object(cloudbyte.CloudByteISCSIDriver,"},{"line_number":866,"context_line":"                       \u0027_execute_and_get_response_details\u0027)"},{"line_number":867,"context_line":"    def test_api_request_for_cloudbyte(self, mock_conn):"},{"line_number":868,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_2ed21601","line":865,"updated":"2015-10-05 12:38:28.000000000","message":"-1: Missing test for the bugfix","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fd1024000847c7a342512ae30845239a2f5db53d","unresolved":false,"context_lines":[{"line_number":1486,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":1487,"context_line":"                          self.driver.check_for_setup_error)"},{"line_number":1488,"context_line":""},{"line_number":1489,"context_line":"        # TEST - II"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"        # Running the test with WRONG values"},{"line_number":1492,"context_line":"        self.driver.configuration.cb_account_name \u003d \u0027accname\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_efb57aec","line":1489,"updated":"2015-10-09 20:07:58.000000000","message":"These are two separate test cases, please make them two test_ methods.","commit_id":"a7fd35b478d29d2178e1c1b16334c654f8370228"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"1e20eb36e8ce9f332d4999d85d6e898524bf53b3","unresolved":false,"context_lines":[{"line_number":1486,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":1487,"context_line":"                          self.driver.check_for_setup_error)"},{"line_number":1488,"context_line":""},{"line_number":1489,"context_line":"        # TEST - II"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"        # Running the test with WRONG values"},{"line_number":1492,"context_line":"        self.driver.configuration.cb_account_name \u003d \u0027accname\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_d39ccb5f","line":1489,"updated":"2015-10-12 08:59:12.000000000","message":"Please see comment by Eric Harney on patch set 5 - a test case should test only one thing. Please split this into two separate test cases.","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e0af273bbf7db269da6a6138ce225a852c611feb","unresolved":false,"context_lines":[{"line_number":1486,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":1487,"context_line":"                          self.driver.check_for_setup_error)"},{"line_number":1488,"context_line":""},{"line_number":1489,"context_line":"        # TEST - II"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"        # Running the test with WRONG values"},{"line_number":1492,"context_line":"        self.driver.configuration.cb_account_name \u003d \u0027accname\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a2ca52d_24761c3f","line":1489,"in_reply_to":"7a2fa921_d39ccb5f","updated":"2015-10-13 11:12:13.000000000","message":"+1","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e0af273bbf7db269da6a6138ce225a852c611feb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5a2ca52d_84a05092","line":1501,"updated":"2015-10-13 11:12:13.000000000","message":"-1: Still missing a test for the bugfix included in this patch.","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"}],"cinder/volume/drivers/cloudbyte/cloudbyte.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2af94f664169448a23d09ef8c229ce357178b40","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        1.1.3 - Setup error detection and minor bug fixes"},{"line_number":43,"context_line":"    \"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    VERSION \u003d \u00271.1.2\u0027"},{"line_number":46,"context_line":"    volume_stats \u003d {}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Global variables used during Setup Error Check"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_ddc849ab","line":45,"updated":"2015-10-01 18:37:39.000000000","message":"Bump version to 1.1.3?","commit_id":"98dc7a480f5a42d674caa93bbd958c565d10e0a9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2af94f664169448a23d09ef8c229ce357178b40","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                \"Cinder configuration parameter(s) [%s] either not set\""},{"line_number":139,"context_line":"                \" or has empty values w.r.t CloudByte Storage.\") %"},{"line_number":140,"context_line":"                \u0027, \u0027.join(empty_params))"},{"line_number":141,"context_line":"            raise exception.InvalidInput(data\u003dmsg)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        params \u003d {}"},{"line_number":144,"context_line":"        params[self.TSM_NAME] \u003d tsm_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_bd47951c","line":141,"updated":"2015-10-01 18:37:39.000000000","message":"Should use exception.InvalidConfigurationValue here.","commit_id":"98dc7a480f5a42d674caa93bbd958c565d10e0a9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2af94f664169448a23d09ef8c229ce357178b40","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            invalid_params.append(\"cb_account_name\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        if invalid_params:"},{"line_number":166,"context_line":"            raise exception.InvalidInput("},{"line_number":167,"context_line":"                reason\u003d(\"Cinder configuration has invalid value(s)\""},{"line_number":168,"context_line":"                        \" [%s] w.r.t CloudByte Storage.\") %"},{"line_number":169,"context_line":"                \u0027, \u0027.join(invalid_params))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_3d3b859e","line":166,"updated":"2015-10-01 18:37:39.000000000","message":"Should use exception.InvalidConfigurationValue here.","commit_id":"98dc7a480f5a42d674caa93bbd958c565d10e0a9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0c87ee86ff0192659a0c11391501cf3de858994f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        empty_params \u003d []"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if (tsm_name is None or tsm_name \u003d\u003d \u0027\u0027):"},{"line_number":128,"context_line":"            empty_params.append(\"cb_tsm_name\")"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"},{"line_number":131,"context_line":"            empty_params.append(\"cb_account_name\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_52874312","line":128,"updated":"2015-10-01 20:19:22.000000000","message":"shouldn\u0027t you use self.TSM_NAME here as well?","commit_id":"5235945f441bf58f314676b246092580dcee2401"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5532b3186e23dc49d17239496b18bfb64699889b","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        empty_params \u003d []"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if (tsm_name is None or tsm_name \u003d\u003d \u0027\u0027):"},{"line_number":128,"context_line":"            empty_params.append(\"cb_tsm_name\")"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"},{"line_number":131,"context_line":"            empty_params.append(\"cb_account_name\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_e7456eb3","line":128,"in_reply_to":"9a1a9d01_52874312","updated":"2015-10-02 03:23:54.000000000","message":"Good catch. Should use constant defined at line 50.","commit_id":"5235945f441bf58f314676b246092580dcee2401"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0c87ee86ff0192659a0c11391501cf3de858994f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            empty_params.append(\"cb_tsm_name\")"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"},{"line_number":131,"context_line":"            empty_params.append(\"cb_account_name\")"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if (apikey is None or apikey \u003d\u003d \u0027\u0027):"},{"line_number":134,"context_line":"            empty_params.append(\"cb_apikey\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_d27b5328","line":131,"updated":"2015-10-01 20:19:22.000000000","message":"self.ACCOUNT_NAME","commit_id":"5235945f441bf58f314676b246092580dcee2401"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0c87ee86ff0192659a0c11391501cf3de858994f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            empty_params.append(\"cb_account_name\")"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if (apikey is None or apikey \u003d\u003d \u0027\u0027):"},{"line_number":134,"context_line":"            empty_params.append(\"cb_apikey\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if empty_params:"},{"line_number":137,"context_line":"            msg \u003d (_("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_9275db33","line":134,"updated":"2015-10-01 20:19:22.000000000","message":"self.APIKEY","commit_id":"5235945f441bf58f314676b246092580dcee2401"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6b44a1a708c6f8f7d05af4b13b44ed07e0108db2","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if empty_params:"},{"line_number":137,"context_line":"            raise exception.InvalidInput("},{"line_number":138,"context_line":"                reason\u003d(\"Cinder configuration has invalid value(s)\""},{"line_number":139,"context_line":"                        \" [%s] w.r.t CloudByte Storage.\") %"},{"line_number":140,"context_line":"                \u0027, \u0027.join(empty_params))"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_d16f9afa","line":138,"updated":"2015-10-03 03:01:23.000000000","message":"Should still have _() translation marker.","commit_id":"51b66dfbd8dc50b17a159b2d9af6d5a0276958b5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6b44a1a708c6f8f7d05af4b13b44ed07e0108db2","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if invalid_params:"},{"line_number":165,"context_line":"            raise exception.InvalidInput("},{"line_number":166,"context_line":"                reason\u003d(\"Cinder configuration has invalid value(s)\""},{"line_number":167,"context_line":"                        \" [%s] w.r.t CloudByte Storage.\") %"},{"line_number":168,"context_line":"                \u0027, \u0027.join(invalid_params))"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_917282e2","line":166,"updated":"2015-10-03 03:01:23.000000000","message":"Same.","commit_id":"51b66dfbd8dc50b17a159b2d9af6d5a0276958b5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def check_for_setup_error(self):"},{"line_number":93,"context_line":"        \"\"\"Returns an error if config values aren\u0027t correct.\"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        config_params \u003d {}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # Gathering params from /etc/cinder/cinder.conf"},{"line_number":98,"context_line":"        config_params \u003d self._fetch_params_from_config()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_735a3785","line":95,"updated":"2015-10-05 12:38:28.000000000","message":"-1: Why init config_params if you overwrite it on line 98?","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        tsm_cmd \u003d \"listTsm\""},{"line_number":101,"context_line":"        tsm_res \u003d self._api_request_for_cloudbyte(tsm_cmd, {})"},{"line_number":102,"context_line":"        tsm_res \u003d tsm_res[\"listTsmResponse\"]"},{"line_number":103,"context_line":"        tsm_res \u003d tsm_res[\"listTsm\"]"},{"line_number":104,"context_line":"        tsm_res \u003d tsm_res[0]"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_f3772700","line":102,"updated":"2015-10-05 12:38:28.000000000","message":"opt: tsm_res \u003d tsm_res[\"listTsmResponse\"][\u0027listTsm\u0027][0]","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        tsm_name \u003d None"},{"line_number":116,"context_line":"        account_name \u003d None"},{"line_number":117,"context_line":"        apikey \u003d None"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        # Get TSM/VSM, Account name and API Key from configuration"},{"line_number":120,"context_line":"        tsm_name \u003d self.configuration.cb_tsm_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_53d7f3be","line":117,"updated":"2015-10-05 12:38:28.000000000","message":"-1: No need to initialize these variables when you overwriting them immediately.","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # Empty param\u0027s list"},{"line_number":125,"context_line":"        empty_params \u003d []"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if (tsm_name is None or tsm_name \u003d\u003d \u0027\u0027):"},{"line_number":128,"context_line":"            empty_params.append(self.TSM_NAME)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_d3ca231a","line":127,"updated":"2015-10-05 12:38:28.000000000","message":"nit: More pythonic way:\n\n if not tsm_name:","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        if (tsm_name is None or tsm_name \u003d\u003d \u0027\u0027):"},{"line_number":128,"context_line":"            empty_params.append(self.TSM_NAME)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"},{"line_number":131,"context_line":"            empty_params.append(self.ACCOUNT_NAME)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if (apikey is None or apikey \u003d\u003d \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_73d1d7cc","line":130,"updated":"2015-10-05 12:38:28.000000000","message":"nit: More pythonic way:\n\n if not account_name:","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        if (account_name is None or account_name \u003d\u003d \u0027\u0027):"},{"line_number":131,"context_line":"            empty_params.append(self.ACCOUNT_NAME)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if (apikey is None or apikey \u003d\u003d \u0027\u0027):"},{"line_number":134,"context_line":"            empty_params.append(self.APIKEY)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if empty_params:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_33dcbfe3","line":133,"updated":"2015-10-05 12:38:28.000000000","message":"nit: More pythonic way:\n\n if not apikey:","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            raise exception.InvalidInput("},{"line_number":138,"context_line":"                reason\u003d_(\"Cinder configuration has invalid value(s)\""},{"line_number":139,"context_line":"                         \" [%s] w.r.t CloudByte Storage.\") %"},{"line_number":140,"context_line":"                \u0027, \u0027.join(empty_params))"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        params \u003d {}"},{"line_number":143,"context_line":"        params[self.TSM_NAME] \u003d tsm_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_f3816790","line":140,"updated":"2015-10-05 12:38:28.000000000","message":"-1: No need to do the join, since it\u0027s a list it will automatically be formatted as desired:\n\n raise exception.InvalidInput(\n                 reason\u003d_(\"Cinder configuration has invalid value(s)\"\n                         \" %s w.r.t CloudByte Storage.\") %\n                empty_params)","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # Invalid param\u0027s List"},{"line_number":156,"context_line":"        invalid_params \u003d []"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if (tsm_name !\u003d tsm_res.get(\"name\")):"},{"line_number":159,"context_line":"            invalid_params.append(self.TSM_NAME)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (account_name !\u003d tsm_res.get(\"accountname\")):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_93158b4a","line":158,"updated":"2015-10-05 12:38:28.000000000","message":"nit: In python there is no need for outer parenthesis","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            raise exception.InvalidInput("},{"line_number":166,"context_line":"                reason\u003d_(\"Cinder configuration has invalid value(s)\""},{"line_number":167,"context_line":"                         \" [%s] w.r.t CloudByte Storage.\") %"},{"line_number":168,"context_line":"                \u0027, \u0027.join(invalid_params))"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_ae9b86c8","line":168,"updated":"2015-10-05 12:38:28.000000000","message":"-1: Same as on line 140","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"210ff5cde50ee5f55bcc23b1bd038e903c5084c8","unresolved":false,"context_lines":[{"line_number":670,"context_line":"                    \"list filesystem api call.\")"},{"line_number":671,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"        volumes \u003d volumes_res.get(\u0027filesystem\u0027)"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        volume_id \u003d None"},{"line_number":676,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_ee1ade16","line":673,"updated":"2015-10-05 12:38:28.000000000","message":"opt: You could return right after this command for this specific case\n\n if not volumes:\n     return","commit_id":"c1cfc6593a0fb302a6e61d98e14f875d803259dc"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"3f43127f5c59a1c3852229460e12d5d89dab8468","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        if config_params is not None:"},{"line_number":104,"context_line":"            self._validity_check(config_params, tsm_res)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        return"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _fetch_params_from_config(self):"},{"line_number":109,"context_line":"        \"\"\"Throws an exception if config values are None or Empty.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_584af684","line":106,"updated":"2015-10-19 13:44:46.000000000","message":"No need return here","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"3f43127f5c59a1c3852229460e12d5d89dab8468","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        params[self.TSM_NAME] \u003d tsm_name"},{"line_number":136,"context_line":"        params[self.ACCOUNT_NAME] \u003d account_name"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        return params"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _validity_check(self, config_params, tsm_res):"},{"line_number":141,"context_line":"        \"\"\"Throws an exception if config values aren\u0027t correct.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_d85e0645","line":138,"updated":"2015-10-19 13:44:46.000000000","message":"No need return here","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"3f43127f5c59a1c3852229460e12d5d89dab8468","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                reason\u003d_(\"Cinder configuration has invalid value(s)\""},{"line_number":159,"context_line":"                         \" %s w.r.t CloudByte Storage.\") % invalid_params)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _extract_http_error(self, error_data):"},{"line_number":164,"context_line":"        # Extract the error message from error_data"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_98588e58","line":161,"updated":"2015-10-19 13:44:46.000000000","message":"No need return here","commit_id":"e592c3da94bbf4dc7f309832a1409e638c83a70e"}]}
