)]}'
{"cinder/tests/unit/volume/drivers/solidfire/test_solidfire.py":[{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"c85b02b1fa94edec078d7c846184c4eea17b4a99","unresolved":false,"context_lines":[{"line_number":3217,"context_line":"        for update in updates:"},{"line_number":3218,"context_line":"            self.assertEqual(fields.ReplicationStatus.ENABLED,"},{"line_number":3219,"context_line":"                             update[\u0027updates\u0027][\u0027replication_status\u0027])"},{"line_number":3220,"context_line":"        self.assertEqual(None, cluster_id)"},{"line_number":3221,"context_line":"        mock_get_create_account.assert_called()"},{"line_number":3222,"context_line":"        mock_failover_volume.assert_called()"},{"line_number":3223,"context_line":"        mock_map_sf_volumes.assert_called()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_241f870c","line":3220,"range":{"start_line":3220,"start_character":13,"end_line":3220,"end_character":24},"updated":"2020-02-17 19:59:34.000000000","message":"use assertIsNone","commit_id":"dee0cfd302d680f1e0536d6f6be55b625dcff8ac"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"dcfc1b7b941bb858fd5605d5893055ae6694d16e","unresolved":false,"context_lines":[{"line_number":3217,"context_line":"        for update in updates:"},{"line_number":3218,"context_line":"            self.assertEqual(fields.ReplicationStatus.ENABLED,"},{"line_number":3219,"context_line":"                             update[\u0027updates\u0027][\u0027replication_status\u0027])"},{"line_number":3220,"context_line":"        self.assertEqual(None, cluster_id)"},{"line_number":3221,"context_line":"        mock_get_create_account.assert_called()"},{"line_number":3222,"context_line":"        mock_failover_volume.assert_called()"},{"line_number":3223,"context_line":"        mock_map_sf_volumes.assert_called()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_24d4671e","line":3220,"range":{"start_line":3220,"start_character":13,"end_line":3220,"end_character":24},"in_reply_to":"3fa7e38b_241f870c","updated":"2020-02-17 20:01:06.000000000","message":"Done","commit_id":"dee0cfd302d680f1e0536d6f6be55b625dcff8ac"}],"cinder/volume/drivers/solidfire.py":[{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"cb3b6adb5413d38e80cfd75e29c447c40f74d89e","unresolved":false,"context_lines":[{"line_number":2382,"context_line":"                    \"state.\")"},{"line_number":2383,"context_line":"            raise exception.InvalidReplicationTarget(msg)"},{"line_number":2384,"context_line":"        elif secondary_id \u003d\u003d \"default\" and self.failed_over:"},{"line_number":2385,"context_line":"            # FIXME(sfernand): We should abort the failback if driver fails to"},{"line_number":2386,"context_line":"            # gather information from primary cluster."},{"line_number":2387,"context_line":"            remote \u003d self._create_cluster_reference()"},{"line_number":2388,"context_line":"            failback \u003d True"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_7aac4f9e","line":2385,"range":{"start_line":2385,"start_character":14,"end_line":2385,"end_character":19},"updated":"2020-04-07 16:36:10.000000000","message":"Looks like this comment needs to reexamined as it makes it look like the code is not ready for a production environment.","commit_id":"a6063c3f51c91f2359c61177af7859c46b66ee12"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"38c0b6c4e71f71c97d17e21d5e1ccff52ec186c1","unresolved":false,"context_lines":[{"line_number":2382,"context_line":"                    \"state.\")"},{"line_number":2383,"context_line":"            raise exception.InvalidReplicationTarget(msg)"},{"line_number":2384,"context_line":"        elif secondary_id \u003d\u003d \"default\" and self.failed_over:"},{"line_number":2385,"context_line":"            # FIXME(sfernand): We should abort the failback if driver fails to"},{"line_number":2386,"context_line":"            # gather information from primary cluster."},{"line_number":2387,"context_line":"            remote \u003d self._create_cluster_reference()"},{"line_number":2388,"context_line":"            failback \u003d True"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_36c62018","line":2385,"range":{"start_line":2385,"start_character":14,"end_line":2385,"end_character":19},"in_reply_to":"1fa4df85_7aac4f9e","updated":"2020-04-07 19:57:14.000000000","message":"Agree. I will remove this comment as we aren\u0027t going to revisit this any time soon.","commit_id":"a6063c3f51c91f2359c61177af7859c46b66ee12"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3e4feebb01bb4681f547fe6cd6a7d59497e1dbd5","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            self.failed_over \u003d True"},{"line_number":306,"context_line":"            self.replication_enabled \u003d True"},{"line_number":307,"context_line":"        else:"},{"line_number":308,"context_line":"            self.active_cluster \u003d self._create_cluster_reference()"},{"line_number":309,"context_line":"            if self.configuration.replication_device:"},{"line_number":310,"context_line":"                self._set_cluster_pairs()"},{"line_number":311,"context_line":"                self.replication_enabled \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f4c43b2_62930051","line":308,"range":{"start_line":308,"start_character":12,"end_line":308,"end_character":66},"updated":"2020-04-13 16:12:03.000000000","message":"so after a failover and restart of c-vol service, driver is initialized and we create the primary cluster reference here.\ni see the catch is on L#2386 but i don\u0027t understand why we create it again and how does it solve the issue?","commit_id":"f24eb2fc630f32697fd9afdfdec97e0f61493a46"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"2dc5bddbd783a025bb8cf62b37be2d737e70aa88","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            self.failed_over \u003d True"},{"line_number":306,"context_line":"            self.replication_enabled \u003d True"},{"line_number":307,"context_line":"        else:"},{"line_number":308,"context_line":"            self.active_cluster \u003d self._create_cluster_reference()"},{"line_number":309,"context_line":"            if self.configuration.replication_device:"},{"line_number":310,"context_line":"                self._set_cluster_pairs()"},{"line_number":311,"context_line":"                self.replication_enabled \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f4c43b2_c313f665","line":308,"range":{"start_line":308,"start_character":12,"end_line":308,"end_character":66},"in_reply_to":"3f4c43b2_62930051","updated":"2020-04-13 19:28:17.000000000","message":"Hi Rajat, L#308 will create primary cluster reference when we are not in failover. When in failover, the active cluster will be set in LN#302 after restarting c-vol.\n\nA example of the issue we had:\n1) driver initializes, get primary and secondary cluster information (if replication enabled)\n2) user calls failover and operation occurs with no issues.\n3) user restart c-vol\n4) driver initializes again, but as we can see in L#305, it will not try to reach primary cluster to get detailed info as it assumes cluster is unreachable or in a error state. This means we don\u0027t have critical information regarding the primary cluster, as the SVIP for iSCSI connections.\n5) user calls failover again (this time we will failback), L#2378 assumes we have all data we need for the primary cluster (setting remote \u003d self.primary_cluster), \n6) L#2449 fails trying to get SVIP from the primary cluster dict. \n\nAs you mentioned L#2386 and L#2509 are the most important ones here, instead of relying on cluster info gathered during service initialization, we are now updating the target cluster info during the failover procedure/failback.\n\nI\u0027m not sure I\u0027ve answered your question correctly, please let me know if you have any other question.","commit_id":"f24eb2fc630f32697fd9afdfdec97e0f61493a46"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"be5847e5c4f2efe5269967b435ee791db80e5160","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            self.failed_over \u003d True"},{"line_number":306,"context_line":"            self.replication_enabled \u003d True"},{"line_number":307,"context_line":"        else:"},{"line_number":308,"context_line":"            self.active_cluster \u003d self._create_cluster_reference()"},{"line_number":309,"context_line":"            if self.configuration.replication_device:"},{"line_number":310,"context_line":"                self._set_cluster_pairs()"},{"line_number":311,"context_line":"                self.replication_enabled \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f4c43b2_15d99182","line":308,"range":{"start_line":308,"start_character":12,"end_line":308,"end_character":66},"in_reply_to":"3f4c43b2_c313f665","updated":"2020-04-13 19:47:34.000000000","message":"Yeah, sorry i missed the L#302 when in failover.\nI had the general working idea but the part i was confused about it was \n\"as we can see in L#305, it will not try to reach primary cluster to get detailed info as it assumes cluster is unreachable or in a error state.\"\nwhich kind of seems obvious now.\nThanks for the detailed explanation!","commit_id":"f24eb2fc630f32697fd9afdfdec97e0f61493a46"}]}
