)]}'
{"cinder/tests/unit/targets/test_tgt_driver.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"50b9ab0f8316abf0a50f061296a3d83860fa2a73","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                                  side_effect\u003d[None, None, 1]) as get_target,\\"},{"line_number":396,"context_line":"                mock.patch.object(self.target, \u0027_verify_backing_lun\u0027,"},{"line_number":397,"context_line":"                                  side_effect\u003dlambda x, y: True):"},{"line_number":398,"context_line":"            self.assertEqual("},{"line_number":399,"context_line":"                1,"},{"line_number":400,"context_line":"                self.target.create_iscsi_target("},{"line_number":401,"context_line":"                    self.test_vol,"},{"line_number":402,"context_line":"                    1,"},{"line_number":403,"context_line":"                    0,"},{"line_number":404,"context_line":"                    self.fake_volumes_dir))"},{"line_number":405,"context_line":"            # 3 - default retries count value for utils.retry"},{"line_number":406,"context_line":"            self.assertEqual(3, get_target.call_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_abb7abf3","line":404,"range":{"start_line":398,"start_character":0,"end_line":404,"end_character":43},"updated":"2016-12-20 21:01:17.000000000","message":"nit: this would be better if you didn\u0027t break in every parameter","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"ef7e98d751a4c72127dbe300bb2f34df130ebdd1","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                                  side_effect\u003d[None, None, 1]) as get_target,\\"},{"line_number":396,"context_line":"                mock.patch.object(self.target, \u0027_verify_backing_lun\u0027,"},{"line_number":397,"context_line":"                                  side_effect\u003dlambda x, y: True):"},{"line_number":398,"context_line":"            self.assertEqual("},{"line_number":399,"context_line":"                1,"},{"line_number":400,"context_line":"                self.target.create_iscsi_target("},{"line_number":401,"context_line":"                    self.test_vol,"},{"line_number":402,"context_line":"                    1,"},{"line_number":403,"context_line":"                    0,"},{"line_number":404,"context_line":"                    self.fake_volumes_dir))"},{"line_number":405,"context_line":"            # 3 - default retries count value for utils.retry"},{"line_number":406,"context_line":"            self.assertEqual(3, get_target.call_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_314bf388","line":404,"range":{"start_line":398,"start_character":0,"end_line":404,"end_character":43},"in_reply_to":"1a6eadb0_abb7abf3","updated":"2016-12-22 16:05:47.000000000","message":"If you mean that every parameter is at a new line, i made it for consistency with the other tests in this file, for code stile.\nI prefer other code stile to this)","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"}],"cinder/volume/targets/tgt.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a56ebf3564b2b3b9d0074ec6e6d8d2c2fa12a7e3","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if os.path.exists(volume_path):"},{"line_number":164,"context_line":"            LOG.warning(_LW(\u0027Persistence file already exists for volume, \u0027"},{"line_number":165,"context_line":"                            \u0027found file at: %s\u0027), volume_path)"},{"line_number":166,"context_line":"        utils.robust_file_write(volumes_dir, vol_id, volume_conf)"},{"line_number":167,"context_line":"        LOG.debug((\u0027Created volume path %(vp)s,\\n\u0027"},{"line_number":168,"context_line":"                   \u0027content: %(vc)s\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_3772224a","line":165,"updated":"2016-12-20 19:12:09.000000000","message":"This probably should no longer be a warning with this retry added -- it will end up being printed any time this retry occurs, but it\u0027s not likely to be of interest to an admin.","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"ef7e98d751a4c72127dbe300bb2f34df130ebdd1","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if os.path.exists(volume_path):"},{"line_number":164,"context_line":"            LOG.warning(_LW(\u0027Persistence file already exists for volume, \u0027"},{"line_number":165,"context_line":"                            \u0027found file at: %s\u0027), volume_path)"},{"line_number":166,"context_line":"        utils.robust_file_write(volumes_dir, vol_id, volume_conf)"},{"line_number":167,"context_line":"        LOG.debug((\u0027Created volume path %(vp)s,\\n\u0027"},{"line_number":168,"context_line":"                   \u0027content: %(vc)s\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_0a1e26ba","line":165,"in_reply_to":"1a6eadb0_3772224a","updated":"2016-12-22 16:05:47.000000000","message":"I\u0027ll change this message to debug level","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"50b9ab0f8316abf0a50f061296a3d83860fa2a73","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        iqn \u003d \u0027%s%s\u0027 % (self.iscsi_target_prefix, vol_id)"},{"line_number":217,"context_line":"        tid \u003d self._get_target(iqn)"},{"line_number":218,"context_line":"        if tid is None:"},{"line_number":219,"context_line":"            LOG.error(_LE(\"Failed to create iscsi target for Volume \""},{"line_number":220,"context_line":"                          \"ID: %(vol_id)s. Please ensure your tgtd config \""},{"line_number":221,"context_line":"                          \"file contains \u0027include %(volumes_dir)s/*\u0027\"), {"},{"line_number":222,"context_line":"                      \u0027vol_id\u0027: vol_id,"},{"line_number":223,"context_line":"                      \u0027volumes_dir\u0027: volumes_dir, })"},{"line_number":224,"context_line":"            raise exception.NotFound()"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        # NOTE(jdg): Sometimes we have some issues with the backing lun"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_ab5b2bf5","line":223,"range":{"start_line":219,"start_character":0,"end_line":223,"end_character":52},"updated":"2016-12-20 21:01:17.000000000","message":"This should be a warning just to let the user know that the driver might be having some problems due the concurrency.","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"ef7e98d751a4c72127dbe300bb2f34df130ebdd1","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        iqn \u003d \u0027%s%s\u0027 % (self.iscsi_target_prefix, vol_id)"},{"line_number":217,"context_line":"        tid \u003d self._get_target(iqn)"},{"line_number":218,"context_line":"        if tid is None:"},{"line_number":219,"context_line":"            LOG.error(_LE(\"Failed to create iscsi target for Volume \""},{"line_number":220,"context_line":"                          \"ID: %(vol_id)s. Please ensure your tgtd config \""},{"line_number":221,"context_line":"                          \"file contains \u0027include %(volumes_dir)s/*\u0027\"), {"},{"line_number":222,"context_line":"                      \u0027vol_id\u0027: vol_id,"},{"line_number":223,"context_line":"                      \u0027volumes_dir\u0027: volumes_dir, })"},{"line_number":224,"context_line":"            raise exception.NotFound()"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        # NOTE(jdg): Sometimes we have some issues with the backing lun"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_ea2f229f","line":223,"range":{"start_line":219,"start_character":0,"end_line":223,"end_character":52},"in_reply_to":"1a6eadb0_ab5b2bf5","updated":"2016-12-22 16:05:47.000000000","message":"I think, that I should change level of this message to warning or lower, but left it and add a message that connected with concurrency problem.\nBecause this message can also be caused by a problem, that described in current message. Or do i need to add some checks for distinguishing the reasons of the problem?","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"6706e66427ea574e28597316781d77e944e06e15","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        iqn \u003d \u0027%s%s\u0027 % (self.iscsi_target_prefix, vol_id)"},{"line_number":217,"context_line":"        tid \u003d self._get_target(iqn)"},{"line_number":218,"context_line":"        if tid is None:"},{"line_number":219,"context_line":"            LOG.error(_LE(\"Failed to create iscsi target for Volume \""},{"line_number":220,"context_line":"                          \"ID: %(vol_id)s. Please ensure your tgtd config \""},{"line_number":221,"context_line":"                          \"file contains \u0027include %(volumes_dir)s/*\u0027\"), {"},{"line_number":222,"context_line":"                      \u0027vol_id\u0027: vol_id,"},{"line_number":223,"context_line":"                      \u0027volumes_dir\u0027: volumes_dir, })"},{"line_number":224,"context_line":"            raise exception.NotFound()"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        # NOTE(jdg): Sometimes we have some issues with the backing lun"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_25315d0c","line":223,"range":{"start_line":219,"start_character":0,"end_line":223,"end_character":52},"in_reply_to":"da4df55a_ea2f229f","updated":"2016-12-22 16:21:48.000000000","message":"I believe leaving this as warning is the best option. About the cause, I notice that, but I didn\u0027t know there was more causes other the concurrency that triggered the exception.NotFound(). In the hnas driver[1] I filter the message checking the cause, and only retry when the error is related to concurrency.\n\nNote the example that in hnas case, as all N clients contend at the same time, if we don\u0027t use the wait_random, the requests will retry N times which is bad.\n\n[1] http://bit.ly/2ifQ875","commit_id":"9bfd231b41372c62a315657bc6c1c7af5058322b"}]}
