)]}'
{"cinder/backup/drivers/nfs.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"bc8f99de63957b0d3b972fadf3a597eb7ef3e10c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                LOG.debug(\u0027Mount attempt %(attempt)d failed: %(exc)s.\\n\u0027"},{"line_number":97,"context_line":"                          \u0027Retrying mount ...\u0027,"},{"line_number":98,"context_line":"                          {\u0027attempt\u0027: attempt, \u0027exc\u0027: e})"},{"line_number":99,"context_line":"                time.sleep(1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _init_backup_repo_path(self):"},{"line_number":102,"context_line":"        if self.backup_share is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_463d348d","line":99,"range":{"start_line":99,"start_character":15,"end_line":99,"end_character":29},"updated":"2019-01-30 23:09:08.000000000","message":"In other cases like this a retry decorator is often a better solution and then having a exponential backoff.","commit_id":"63b92dea2cb29650b03d594732a39b761e970ad4"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"e10c54e1203b50845409ae416ab452a58571db62","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                LOG.debug(\u0027Mount attempt %(attempt)d failed: %(exc)s.\\n\u0027"},{"line_number":97,"context_line":"                          \u0027Retrying mount ...\u0027,"},{"line_number":98,"context_line":"                          {\u0027attempt\u0027: attempt, \u0027exc\u0027: e})"},{"line_number":99,"context_line":"                time.sleep(1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _init_backup_repo_path(self):"},{"line_number":102,"context_line":"        if self.backup_share is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_77a569a1","line":99,"range":{"start_line":99,"start_character":15,"end_line":99,"end_character":29},"in_reply_to":"9fdfeff1_463d348d","updated":"2019-02-01 00:15:31.000000000","message":"Agreed it is a better solution.","commit_id":"63b92dea2cb29650b03d594732a39b761e970ad4"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"748221768ed26e0feaf663284c7a3e478953c969","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               min\u003d1,"},{"line_number":47,"context_line":"               default\u003d3,"},{"line_number":48,"context_line":"               help\u003d\u0027The number of attempts to mount NFS shares before \u0027"},{"line_number":49,"context_line":"                    \u0027raising an error.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_98e1d39d","line":49,"updated":"2019-06-04 15:26:05.000000000","message":"This doesn\u0027t actually do what it says it does, because if you set \"attempts\u003d3\" it will try 4 times.\n\n(Since this is actually used as a number of retries.)\n\nI would suggest fixing this by just setting \"retries\u003dCONF.backup_mount_attempts - 1\" below, because \"attempts\" seems to be a more straightforward option than \"retries\" IMO.","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8f04604605315b601fb97cfe8df219bf2c5193ad","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               min\u003d1,"},{"line_number":47,"context_line":"               default\u003d3,"},{"line_number":48,"context_line":"               help\u003d\u0027The number of attempts to mount NFS shares before \u0027"},{"line_number":49,"context_line":"                    \u0027raising an error.\u0027),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_2b4b66b0","line":49,"in_reply_to":"9fb8cfa7_98e1d39d","updated":"2019-06-08 00:10:15.000000000","message":"The unit test test_init_backup_repo_path_mount_retry is failing if we set retries\u003dCONF.backup_mount_attempts-1. It looks like the retry decorator considers the first attempt.","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"748221768ed26e0feaf663284c7a3e478953c969","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            nfs_mount_point_base\u003dself.backup_mount_point_base,"},{"line_number":90,"context_line":"            nfs_mount_options\u003dself.mount_options)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        @utils.retry(Exception, retries\u003dCONF.backup_mount_attempts)"},{"line_number":93,"context_line":"        def mount():"},{"line_number":94,"context_line":"            remotefsclient.mount(self.backup_share)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_78fdff38","line":92,"range":{"start_line":92,"start_character":21,"end_line":92,"end_character":30},"updated":"2019-06-04 15:26:05.000000000","message":"I suspect this should be narrower, perhaps utils.ProcessExecutionError + BrickException?","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8f04604605315b601fb97cfe8df219bf2c5193ad","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            nfs_mount_point_base\u003dself.backup_mount_point_base,"},{"line_number":90,"context_line":"            nfs_mount_options\u003dself.mount_options)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        @utils.retry(Exception, retries\u003dCONF.backup_mount_attempts)"},{"line_number":93,"context_line":"        def mount():"},{"line_number":94,"context_line":"            remotefsclient.mount(self.backup_share)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_cbc72a12","line":92,"range":{"start_line":92,"start_character":21,"end_line":92,"end_character":30},"in_reply_to":"9fb8cfa7_78fdff38","updated":"2019-06-08 00:10:15.000000000","message":"Done","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"}],"cinder/tests/unit/backup/drivers/test_backup_nfs.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"83075c17da3cb574ec59f9890f0c41bc26a74c7d","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.assertEqual(0, mock_remotefsclient.call_count)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":159,"context_line":"    def test_init_backup_repo_path_mount_retry(self, mock_sleep):"},{"line_number":160,"context_line":"        self.override_config(\u0027backup_share\u0027, FAKE_BACKUP_SHARE)"},{"line_number":161,"context_line":"        self.override_config(\u0027backup_mount_attempts\u0027, 2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_0e31c35a","line":158,"range":{"start_line":158,"start_character":4,"end_line":158,"end_character":29},"updated":"2019-02-12 05:04:12.000000000","message":"Is this mock necessary here?","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"a4745bae205b103ba4cfae9cf48b1022ab667dff","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.assertEqual(0, mock_remotefsclient.call_count)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":159,"context_line":"    def test_init_backup_repo_path_mount_retry(self, mock_sleep):"},{"line_number":160,"context_line":"        self.override_config(\u0027backup_share\u0027, FAKE_BACKUP_SHARE)"},{"line_number":161,"context_line":"        self.override_config(\u0027backup_mount_attempts\u0027, 2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b629c037","line":158,"range":{"start_line":158,"start_character":4,"end_line":158,"end_character":29},"in_reply_to":"9fdfeff1_0e31c35a","updated":"2019-02-13 20:28:42.000000000","message":"Without this mock, the test will take more time to complete.","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"ff38e63481be787c29de96a65cc1f9381c9aa07b","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.assertEqual(0, mock_remotefsclient.call_count)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":159,"context_line":"    def test_init_backup_repo_path_mount_retry(self, mock_sleep):"},{"line_number":160,"context_line":"        self.override_config(\u0027backup_share\u0027, FAKE_BACKUP_SHARE)"},{"line_number":161,"context_line":"        self.override_config(\u0027backup_mount_attempts\u0027, 2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_71a91022","line":158,"range":{"start_line":158,"start_character":4,"end_line":158,"end_character":29},"in_reply_to":"9fdfeff1_b629c037","updated":"2019-02-14 15:43:17.000000000","message":"Done","commit_id":"630dc7dd0ae4d20a23115fdfbd7253dcb53ff9fa"}]}
