)]}'
{"manila_tempest_tests/config.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e872ea0d79f75e5f4dd470f0d132981473b60aa5","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                help\u003d\"Defines whether to run tests that use share snapshots \""},{"line_number":188,"context_line":"                     \"or not. Disable this feature if used driver doesn\u0027t \""},{"line_number":189,"context_line":"                     \"support it.\"),"},{"line_number":190,"context_line":"    cfg.BoolOpt(\"run_create_share_from_snapshot_in_another_pool_or_az_tests\","},{"line_number":191,"context_line":"                default\u003dFalse,"},{"line_number":192,"context_line":"                help\u003d\"Defines whether to run tests that create share from \""},{"line_number":193,"context_line":"                     \"snapshots in another pool or az. Enable this \""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4c43b2_b12e91f7","line":190,"updated":"2020-04-18 02:47:39.000000000","message":"You removed this option by mistake. Please fix in the next PS.","commit_id":"45e63beb17379534e32bbe5d66ddad1107abe877"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"32438e727d233ebe365228001a5647e03128a979","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                default\u003dFalse,"},{"line_number":245,"context_line":"                help\u003d\"Defines whether to run tests that create share from \""},{"line_number":246,"context_line":"                     \"snapshots in another pool or az. Enable this \""},{"line_number":247,"context_line":"                     \"feature if the used driver supports it.\"),"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    cfg.StrOpt(\"image_with_share_tools\","},{"line_number":250,"context_line":"               default\u003d\"manila-service-image-master\","}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4c43b2_f684870e","line":247,"range":{"start_line":247,"start_character":22,"end_line":247,"end_character":29},"updated":"2020-04-19 00:44:59.000000000","message":"option","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8bbc8e84763ab16324b38fcf7ffa2ee7c4cf3933","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                default\u003dFalse,"},{"line_number":245,"context_line":"                help\u003d\"Defines whether to run tests that create share from \""},{"line_number":246,"context_line":"                     \"snapshots in another pool or az. Enable this \""},{"line_number":247,"context_line":"                     \"feature if the used driver supports it.\"),"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    cfg.StrOpt(\"image_with_share_tools\","},{"line_number":250,"context_line":"               default\u003d\"manila-service-image-master\","}],"source_content_type":"text/x-python","patch_set":7,"id":"1f493fa4_d2287f87","line":247,"range":{"start_line":247,"start_character":22,"end_line":247,"end_character":29},"in_reply_to":"3f4c43b2_f684870e","updated":"2020-04-25 16:22:26.000000000","message":"Done","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"}],"manila_tempest_tests/tests/api/admin/test_share_instances.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    @ddt.data(\u00272.3\u0027, \u00272.9\u0027, \u00272.10\u0027, \u00272.30\u0027, \u00272.54\u0027)"},{"line_number":67,"context_line":"    def test_get_share_instance(self, version):"},{"line_number":68,"context_line":"        \"\"\"Test that we get the proper keys back for the instance.\"\"\""},{"line_number":69,"context_line":"        share_instances \u003d self.shares_v2_client.get_instances_of_share("},{"line_number":70,"context_line":"            self.share[\u0027id\u0027], version\u003dversion,"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_74c7ce65","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":8},"updated":"2020-04-27 05:13:01.000000000","message":"skip test if Microversion not supported","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    @ddt.data(\u00272.3\u0027, \u00272.9\u0027, \u00272.10\u0027, \u00272.30\u0027, \u00272.54\u0027)"},{"line_number":67,"context_line":"    def test_get_share_instance(self, version):"},{"line_number":68,"context_line":"        \"\"\"Test that we get the proper keys back for the instance.\"\"\""},{"line_number":69,"context_line":"        share_instances \u003d self.shares_v2_client.get_instances_of_share("},{"line_number":70,"context_line":"            self.share[\u0027id\u0027], version\u003dversion,"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_9d30b1ea","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":8},"in_reply_to":"1f493fa4_74c7ce65","updated":"2020-04-27 14:51:42.000000000","message":"Hi Goutham, I suppose that test works properly in all microversions. What do you think?","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    @ddt.data(\u00272.3\u0027, \u00272.9\u0027, \u00272.10\u0027, \u00272.30\u0027, \u00272.54\u0027)"},{"line_number":67,"context_line":"    def test_get_share_instance(self, version):"},{"line_number":68,"context_line":"        \"\"\"Test that we get the proper keys back for the instance.\"\"\""},{"line_number":69,"context_line":"        share_instances \u003d self.shares_v2_client.get_instances_of_share("},{"line_number":70,"context_line":"            self.share[\u0027id\u0027], version\u003dversion,"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_1dd4a1bc","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":8},"in_reply_to":"1f493fa4_9d30b1ea","updated":"2020-04-27 14:58:40.000000000","message":"It sure does, but, If the max_microversion in tempest.conf is set to a value lesser than the version you\u0027re testing here, the test will fail. \n\nThis repository is branchless, we use the master branch of this repo to test older branches of manila that have no support for newer Microversions.. so, this test for 2.54 will fail on stable/train for instance...","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"}],"manila_tempest_tests/tests/api/test_replication.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8cf5a288b67449df98fef5ecf31f04fd94ae4b57","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            raise self.skipException("},{"line_number":152,"context_line":"                msg % \u0027,\u0027.join(constants.REPLICATION_PROMOTION_CHOICES))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _check_share_replica_keys(self, replica_id):"},{"line_number":155,"context_line":"        share_replica \u003d self.shares_v2_client.get_share_replica(replica_id)"},{"line_number":156,"context_line":"        if utils.is_microversion_supported(\u00272.54\u0027):"},{"line_number":157,"context_line":"            self.assertIn(\u0027progress\u0027, share_replica)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":160,"context_line":"    def test_add_delete_share_replica(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_3e3a4f33","line":157,"range":{"start_line":154,"start_character":0,"end_line":157,"end_character":52},"updated":"2020-04-25 15:23:37.000000000","message":"Remove: share replica view does no contains progress field.","commit_id":"3c4d7f208ba67391cfe023e87083978ad8a09776"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8bbc8e84763ab16324b38fcf7ffa2ee7c4cf3933","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            raise self.skipException("},{"line_number":152,"context_line":"                msg % \u0027,\u0027.join(constants.REPLICATION_PROMOTION_CHOICES))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _check_share_replica_keys(self, replica_id):"},{"line_number":155,"context_line":"        share_replica \u003d self.shares_v2_client.get_share_replica(replica_id)"},{"line_number":156,"context_line":"        if utils.is_microversion_supported(\u00272.54\u0027):"},{"line_number":157,"context_line":"            self.assertIn(\u0027progress\u0027, share_replica)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":160,"context_line":"    def test_add_delete_share_replica(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_72188b74","line":157,"range":{"start_line":154,"start_character":0,"end_line":157,"end_character":52},"in_reply_to":"1f493fa4_3e3a4f33","updated":"2020-04-25 16:22:26.000000000","message":"Done","commit_id":"3c4d7f208ba67391cfe023e87083978ad8a09776"}],"manila_tempest_tests/tests/api/test_shares.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"41e0ebbcaf55495b437328fdc30e83f801de990b","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    @testtools.skipUnless("},{"line_number":185,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":186,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":187,"context_line":"    def test_create_share_from_snapshot_another_pool_same_backend(self):"},{"line_number":188,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue)[\u0027pools\u0027]"},{"line_number":189,"context_line":"        backend_names \u003d [pool[\u0027backend\u0027] for pool in pools]"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_0b108556","line":187,"range":{"start_line":187,"start_character":8,"end_line":187,"end_character":65},"updated":"2020-04-02 10:43:45.000000000","message":"Andre, two things missing here:\n1. this tests depends on replication enabled and supported by the backend, should be skipped if replication tests are disable.\n2. You need to get the replication_type from tempest configuration and set it in the share-type.","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"d795390d5140fc992e619273211d81f82f3e2bb7","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    @testtools.skipUnless("},{"line_number":185,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":186,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":187,"context_line":"    def test_create_share_from_snapshot_another_pool_same_backend(self):"},{"line_number":188,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue)[\u0027pools\u0027]"},{"line_number":189,"context_line":"        backend_names \u003d [pool[\u0027backend\u0027] for pool in pools]"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_5958a754","line":187,"range":{"start_line":187,"start_character":8,"end_line":187,"end_character":65},"in_reply_to":"df33271e_0b108556","updated":"2020-04-02 12:11:17.000000000","message":"Thank you Douglas, Done.","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"ed998a2c4f56a1f07688eac8b1735bee3b631b57","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backend_names)"},{"line_number":192,"context_line":"                                    if x in backend_names[:n]]"},{"line_number":193,"context_line":"        if not duplicated_backend_names:"},{"line_number":194,"context_line":"            msg \u003d (\"Could not found the necessary pools. At least two pools in\""},{"line_number":195,"context_line":"                   \" the same backend are needed to run the tests to create \""},{"line_number":196,"context_line":"                   \"share from snapshot in another pool in the same backend.\")"},{"line_number":197,"context_line":"            raise self.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_7e4b4c2a","line":194,"range":{"start_line":194,"start_character":30,"end_line":194,"end_character":35},"updated":"2020-03-27 08:13:18.000000000","message":"nit: find","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"d795390d5140fc992e619273211d81f82f3e2bb7","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backend_names)"},{"line_number":192,"context_line":"                                    if x in backend_names[:n]]"},{"line_number":193,"context_line":"        if not duplicated_backend_names:"},{"line_number":194,"context_line":"            msg \u003d (\"Could not found the necessary pools. At least two pools in\""},{"line_number":195,"context_line":"                   \" the same backend are needed to run the tests to create \""},{"line_number":196,"context_line":"                   \"share from snapshot in another pool in the same backend.\")"},{"line_number":197,"context_line":"            raise self.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_3953233b","line":194,"range":{"start_line":194,"start_character":30,"end_line":194,"end_character":35},"in_reply_to":"df33271e_7e4b4c2a","updated":"2020-04-02 12:11:17.000000000","message":"Done","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"ed998a2c4f56a1f07688eac8b1735bee3b631b57","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            client\u003dself.admin_client)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        if len(azs) \u003c 2:"},{"line_number":266,"context_line":"            msg \u003d (\"Could not found the necessary azs. At least two azs \""},{"line_number":267,"context_line":"                   \"are needed to run the test to create share from snapshot \""},{"line_number":268,"context_line":"                   \"in another az.\")"},{"line_number":269,"context_line":"            raise self.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_1e5e80e5","line":266,"range":{"start_line":266,"start_character":30,"end_line":266,"end_character":35},"updated":"2020-03-27 08:13:18.000000000","message":"nit: find","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"d795390d5140fc992e619273211d81f82f3e2bb7","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            client\u003dself.admin_client)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        if len(azs) \u003c 2:"},{"line_number":266,"context_line":"            msg \u003d (\"Could not found the necessary azs. At least two azs \""},{"line_number":267,"context_line":"                   \"are needed to run the test to create share from snapshot \""},{"line_number":268,"context_line":"                   \"in another az.\")"},{"line_number":269,"context_line":"            raise self.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_99334f14","line":266,"range":{"start_line":266,"start_character":30,"end_line":266,"end_character":35},"in_reply_to":"df33271e_1e5e80e5","updated":"2020-04-02 12:11:17.000000000","message":"Done","commit_id":"07e47d2e33d49ae3e3de858c10433f870dc6f96b"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c2b04815b66976d3d2c2f81631e9f7097e7620fc","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    @testtools.skipUnless("},{"line_number":255,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":256,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":257,"context_line":"    @testtools.skipUnless(CONF.share.run_replication_tests,"},{"line_number":258,"context_line":"                          \u0027Replication tests are disabled.\u0027)"},{"line_number":259,"context_line":"    def test_create_share_from_snapshot_another_az(self):"},{"line_number":260,"context_line":"        replication_type \u003d CONF.share.backend_replication_type"},{"line_number":261,"context_line":"        if replication_type not in constants.REPLICATION_TYPE_CHOICES:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_2308972a","line":258,"range":{"start_line":257,"start_character":0,"end_line":258,"end_character":60},"updated":"2020-04-16 16:01:24.000000000","message":"Hi Andre, this is not needed anymore, since some back ends won\u0027t need replication to create to different AZs, this is NetApp specific right now. Sorry, my fault!","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"87ee4b5266dd826e660896e9a27ce018d1ada47a","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    @testtools.skipUnless("},{"line_number":255,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":256,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":257,"context_line":"    @testtools.skipUnless(CONF.share.run_replication_tests,"},{"line_number":258,"context_line":"                          \u0027Replication tests are disabled.\u0027)"},{"line_number":259,"context_line":"    def test_create_share_from_snapshot_another_az(self):"},{"line_number":260,"context_line":"        replication_type \u003d CONF.share.backend_replication_type"},{"line_number":261,"context_line":"        if replication_type not in constants.REPLICATION_TYPE_CHOICES:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_06d649f2","line":258,"range":{"start_line":257,"start_character":0,"end_line":258,"end_character":60},"in_reply_to":"3f4c43b2_2308972a","updated":"2020-04-16 16:36:20.000000000","message":"Done","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c2b04815b66976d3d2c2f81631e9f7097e7620fc","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @testtools.skipUnless(CONF.share.run_replication_tests,"},{"line_number":258,"context_line":"                          \u0027Replication tests are disabled.\u0027)"},{"line_number":259,"context_line":"    def test_create_share_from_snapshot_another_az(self):"},{"line_number":260,"context_line":"        replication_type \u003d CONF.share.backend_replication_type"},{"line_number":261,"context_line":"        if replication_type not in constants.REPLICATION_TYPE_CHOICES:"},{"line_number":262,"context_line":"            msg \u003d (\"Option backend_replication_type is set to incorrect value:\""},{"line_number":263,"context_line":"                   \" %s. Create share from snapshot in another availability\""},{"line_number":264,"context_line":"                   \" zone requires replication to be enabled.\""},{"line_number":265,"context_line":"                   % replication_type)"},{"line_number":266,"context_line":"            raise self.skipException(msg)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        extra_specs \u003d {\"create_share_from_snapshot_support\": True,"},{"line_number":269,"context_line":"                       \"snapshot_support\": True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_e6123d58","line":266,"range":{"start_line":260,"start_character":0,"end_line":266,"end_character":41},"updated":"2020-04-16 16:01:24.000000000","message":"Remove.","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"87ee4b5266dd826e660896e9a27ce018d1ada47a","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @testtools.skipUnless(CONF.share.run_replication_tests,"},{"line_number":258,"context_line":"                          \u0027Replication tests are disabled.\u0027)"},{"line_number":259,"context_line":"    def test_create_share_from_snapshot_another_az(self):"},{"line_number":260,"context_line":"        replication_type \u003d CONF.share.backend_replication_type"},{"line_number":261,"context_line":"        if replication_type not in constants.REPLICATION_TYPE_CHOICES:"},{"line_number":262,"context_line":"            msg \u003d (\"Option backend_replication_type is set to incorrect value:\""},{"line_number":263,"context_line":"                   \" %s. Create share from snapshot in another availability\""},{"line_number":264,"context_line":"                   \" zone requires replication to be enabled.\""},{"line_number":265,"context_line":"                   % replication_type)"},{"line_number":266,"context_line":"            raise self.skipException(msg)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        extra_specs \u003d {\"create_share_from_snapshot_support\": True,"},{"line_number":269,"context_line":"                       \"snapshot_support\": True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_66062d89","line":266,"range":{"start_line":260,"start_character":0,"end_line":266,"end_character":41},"in_reply_to":"3f4c43b2_e6123d58","updated":"2020-04-16 16:36:20.000000000","message":"Done","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c2b04815b66976d3d2c2f81631e9f7097e7620fc","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        extra_specs \u003d {\"create_share_from_snapshot_support\": True,"},{"line_number":269,"context_line":"                       \"snapshot_support\": True,"},{"line_number":270,"context_line":"                       \"replication_type\": replication_type}"},{"line_number":271,"context_line":"        share_type_a \u003d self._create_share_type(extra_specs)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        azs \u003d self.get_availability_zones_matching_share_type("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_c60d8136","line":270,"range":{"start_line":270,"start_character":23,"end_line":270,"end_character":59},"updated":"2020-04-16 16:01:24.000000000","message":"remove","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"87ee4b5266dd826e660896e9a27ce018d1ada47a","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        extra_specs \u003d {\"create_share_from_snapshot_support\": True,"},{"line_number":269,"context_line":"                       \"snapshot_support\": True,"},{"line_number":270,"context_line":"                       \"replication_type\": replication_type}"},{"line_number":271,"context_line":"        share_type_a \u003d self._create_share_type(extra_specs)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        azs \u003d self.get_availability_zones_matching_share_type("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_a6003569","line":270,"range":{"start_line":270,"start_character":23,"end_line":270,"end_character":59},"in_reply_to":"3f4c43b2_c60d8136","updated":"2020-04-16 16:36:20.000000000","message":"Done","commit_id":"4bfa14896383a6367727c87af77564e1e9f3ad1b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"32438e727d233ebe365228001a5647e03128a979","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":186,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":187,"context_line":"    def test_create_share_from_snapshot_another_pool_same_backend(self):"},{"line_number":188,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue)[\u0027pools\u0027]"},{"line_number":189,"context_line":"        backend_names \u003d [pool[\u0027backend\u0027] for pool in pools]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backend_names)"},{"line_number":192,"context_line":"                                    if x in backend_names[:n]]"},{"line_number":193,"context_line":"        if not duplicated_backend_names:"},{"line_number":194,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":195,"context_line":"                   \" the same backend are needed to run the tests to create\""},{"line_number":196,"context_line":"                   \" share from snapshot in another pool in the same backend.\")"},{"line_number":197,"context_line":"            raise self.skipException(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        # This filter will return the pool_names of the first duplicated"},{"line_number":200,"context_line":"        # backend"},{"line_number":201,"context_line":"        pool_names \u003d [x[\u0027pool\u0027] for x in filter("},{"line_number":202,"context_line":"            lambda x: x[\u0027backend\u0027] \u003d\u003d duplicated_backend_names[0], pools)]"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # Creating share type setting up the pool_name and backend_name"},{"line_number":205,"context_line":"        extra_specs \u003d {\"pool_name\": pool_names[0],"},{"line_number":206,"context_line":"                       \"share_backend_name\": duplicated_backend_names[0]}"},{"line_number":207,"context_line":"        self.admin_client.update_share_type_extra_specs("},{"line_number":208,"context_line":"            self.share_type[\u0027id\u0027], extra_specs)"},{"line_number":209,"context_line":"        share_type_a_get \u003d self.admin_client.get_share_type("},{"line_number":210,"context_line":"            self.share_type[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.addCleanup("},{"line_number":213,"context_line":"            self.admin_shares_v2_client.delete_share_type_extra_spec,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4c43b2_f600076a","line":210,"range":{"start_line":188,"start_character":0,"end_line":210,"end_character":34},"updated":"2020-04-19 00:44:59.000000000","message":"From a blackbox view (that tempest really takes), your intention is to test that you can take a snapshot across the \"replication_domain\" ... \n\n\nHave you considered just getting a list of pools and ensuring you have two distinct pools within the same replication domain?\n\nThis logic about \"duplicated backends\" is not very readable unless you understand the context behind the feature and its implementation...\n\nThoughts?","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ee9afec5089cb54c5a5c46504972498cc1836e3b","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":186,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":187,"context_line":"    def test_create_share_from_snapshot_another_pool_same_backend(self):"},{"line_number":188,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue)[\u0027pools\u0027]"},{"line_number":189,"context_line":"        backend_names \u003d [pool[\u0027backend\u0027] for pool in pools]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backend_names)"},{"line_number":192,"context_line":"                                    if x in backend_names[:n]]"},{"line_number":193,"context_line":"        if not duplicated_backend_names:"},{"line_number":194,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":195,"context_line":"                   \" the same backend are needed to run the tests to create\""},{"line_number":196,"context_line":"                   \" share from snapshot in another pool in the same backend.\")"},{"line_number":197,"context_line":"            raise self.skipException(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        # This filter will return the pool_names of the first duplicated"},{"line_number":200,"context_line":"        # backend"},{"line_number":201,"context_line":"        pool_names \u003d [x[\u0027pool\u0027] for x in filter("},{"line_number":202,"context_line":"            lambda x: x[\u0027backend\u0027] \u003d\u003d duplicated_backend_names[0], pools)]"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # Creating share type setting up the pool_name and backend_name"},{"line_number":205,"context_line":"        extra_specs \u003d {\"pool_name\": pool_names[0],"},{"line_number":206,"context_line":"                       \"share_backend_name\": duplicated_backend_names[0]}"},{"line_number":207,"context_line":"        self.admin_client.update_share_type_extra_specs("},{"line_number":208,"context_line":"            self.share_type[\u0027id\u0027], extra_specs)"},{"line_number":209,"context_line":"        share_type_a_get \u003d self.admin_client.get_share_type("},{"line_number":210,"context_line":"            self.share_type[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.addCleanup("},{"line_number":213,"context_line":"            self.admin_shares_v2_client.delete_share_type_extra_spec,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f493fa4_e098a16b","line":210,"range":{"start_line":188,"start_character":0,"end_line":210,"end_character":34},"in_reply_to":"3f4c43b2_98756235","updated":"2020-04-21 20:52:34.000000000","message":"Hmmm, I see - this is no doubt a valuable test case, but, we can definitely cover all possible scenarios, can\u0027t we - I\u0027ve added my feedback to the end of the testing ether pad for this feature: https://etherpad.opendev.org/p/netapp-shr-from-snap-another-pool\n\nPlease take a look and lets discuss","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"81efa1e050067a43dbf320b052dcf7b7f5b7132c","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        CONF.share.capability_create_share_from_snapshot_support,"},{"line_number":186,"context_line":"        \"Create share from snapshot tests are disabled.\")"},{"line_number":187,"context_line":"    def test_create_share_from_snapshot_another_pool_same_backend(self):"},{"line_number":188,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue)[\u0027pools\u0027]"},{"line_number":189,"context_line":"        backend_names \u003d [pool[\u0027backend\u0027] for pool in pools]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backend_names)"},{"line_number":192,"context_line":"                                    if x in backend_names[:n]]"},{"line_number":193,"context_line":"        if not duplicated_backend_names:"},{"line_number":194,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":195,"context_line":"                   \" the same backend are needed to run the tests to create\""},{"line_number":196,"context_line":"                   \" share from snapshot in another pool in the same backend.\")"},{"line_number":197,"context_line":"            raise self.skipException(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        # This filter will return the pool_names of the first duplicated"},{"line_number":200,"context_line":"        # backend"},{"line_number":201,"context_line":"        pool_names \u003d [x[\u0027pool\u0027] for x in filter("},{"line_number":202,"context_line":"            lambda x: x[\u0027backend\u0027] \u003d\u003d duplicated_backend_names[0], pools)]"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # Creating share type setting up the pool_name and backend_name"},{"line_number":205,"context_line":"        extra_specs \u003d {\"pool_name\": pool_names[0],"},{"line_number":206,"context_line":"                       \"share_backend_name\": duplicated_backend_names[0]}"},{"line_number":207,"context_line":"        self.admin_client.update_share_type_extra_specs("},{"line_number":208,"context_line":"            self.share_type[\u0027id\u0027], extra_specs)"},{"line_number":209,"context_line":"        share_type_a_get \u003d self.admin_client.get_share_type("},{"line_number":210,"context_line":"            self.share_type[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.addCleanup("},{"line_number":213,"context_line":"            self.admin_shares_v2_client.delete_share_type_extra_spec,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4c43b2_98756235","line":210,"range":{"start_line":188,"start_character":0,"end_line":210,"end_character":34},"in_reply_to":"3f4c43b2_f600076a","updated":"2020-04-20 11:23:44.000000000","message":"Not only across \u0027replication_domain\u0027, this test was proposed to test within the same back end, if one exists with 2 pools.\nAndre created this test to cover this scenario here[1].\n\nI agree that the idea behind duplicated back ends is not very readable, but I can\u0027t see another way of figuring out different pools from the same back end. Maybe add a note to better explain his idea.\n\n[1] https://github.com/openstack/manila/blob/301789f9be30739723120e1d60203ef8aeb19a8b/manila/scheduler/filters/create_from_snapshot.py#L58","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"32438e727d233ebe365228001a5647e03128a979","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        # Create snapshot from source share"},{"line_number":226,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_get_a[\"id\"])"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Force the creation in another pool using the same share type"},{"line_number":229,"context_line":"        self.admin_client.update_share_type_extra_spec("},{"line_number":230,"context_line":"            self.share_type[\u0027id\u0027], \"pool_name\", pool_names[1])"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4c43b2_d6034b72","line":228,"range":{"start_line":228,"start_character":8,"end_line":228,"end_character":70},"updated":"2020-04-19 00:44:59.000000000","message":"Clarify here why you\u0027re forcing this\n\nMaybe add: \n\n \"There\u0027s really no other way of deterministically ensuring a snapshot can\n  be cloned in a different pool, because the scheduler will ensure it finds the\n  best pool with knowledge that make senses at that point in time.\"","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"81efa1e050067a43dbf320b052dcf7b7f5b7132c","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        # Create snapshot from source share"},{"line_number":226,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_get_a[\"id\"])"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Force the creation in another pool using the same share type"},{"line_number":229,"context_line":"        self.admin_client.update_share_type_extra_spec("},{"line_number":230,"context_line":"            self.share_type[\u0027id\u0027], \"pool_name\", pool_names[1])"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4c43b2_1897923c","line":228,"range":{"start_line":228,"start_character":8,"end_line":228,"end_character":70},"in_reply_to":"3f4c43b2_d6034b72","updated":"2020-04-20 11:23:44.000000000","message":"+1","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ee9afec5089cb54c5a5c46504972498cc1836e3b","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                       \"snapshot_support\": True}"},{"line_number":259,"context_line":"        share_type_a \u003d self._create_share_type(extra_specs)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        azs \u003d self.get_availability_zones_matching_share_type("},{"line_number":262,"context_line":"            share_type_a,"},{"line_number":263,"context_line":"            client\u003dself.admin_client)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        if len(azs) \u003c 2:"},{"line_number":266,"context_line":"            msg \u003d (\"Could not find the necessary azs. At least two azs \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f493fa4_203e0929","line":263,"range":{"start_line":261,"start_character":0,"end_line":263,"end_character":37},"updated":"2020-04-21 20:52:34.000000000","message":"Hmmm, you\u0027ll need to consider a case where you have backends across AZs, but not in the same replication domain.. \n\nI\u0027ve added notes regarding this in https://etherpad.opendev.org/p/netapp-shr-from-snap-another-pool","commit_id":"0ae9aa37255e3c602cf3d96176b95be40206eb4c"}],"manila_tempest_tests/tests/api/test_shares_from_snapshot_across_pools.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        for pool in cls.pools:"},{"line_number":49,"context_line":"            backend \u003d pool[\u0027name\u0027].split(\"#\")[0]"},{"line_number":50,"context_line":"            # Update pools with the availability zone"},{"line_number":51,"context_line":"            pool[\u0027availability_zone\u0027] \u003d ("},{"line_number":52,"context_line":"                cls.get_availability_zones(backends\u003d[backend])[0])"},{"line_number":53,"context_line":"            rep_domain \u003d pool[\u0027capabilities\u0027].get(\u0027replication_domain\u0027)"},{"line_number":54,"context_line":"            if rep_domain is not None:"},{"line_number":55,"context_line":"                cls.rep_domain_azs[rep_domain].add(pool[\u0027availability_zone\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @classmethod"},{"line_number":58,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_5472924a","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":77},"updated":"2020-04-27 05:13:01.000000000","message":"rewrite to optimize and avoid an unnecessary API call\n\n rep_domain \u003d pool[\u0027capabilities\u0027].get(\u0027replication_domain\u0027)\n if rep_domain is not None:\n    pool[\u0027availability_zone\u0027] \u003d (\n                cls.get_availability_zones(backends\u003d[backend])[0])\n    cls.rep_domain_azs[rep_domain].add(pool[\u0027availability_zone\u0027])","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        for pool in cls.pools:"},{"line_number":49,"context_line":"            backend \u003d pool[\u0027name\u0027].split(\"#\")[0]"},{"line_number":50,"context_line":"            # Update pools with the availability zone"},{"line_number":51,"context_line":"            pool[\u0027availability_zone\u0027] \u003d ("},{"line_number":52,"context_line":"                cls.get_availability_zones(backends\u003d[backend])[0])"},{"line_number":53,"context_line":"            rep_domain \u003d pool[\u0027capabilities\u0027].get(\u0027replication_domain\u0027)"},{"line_number":54,"context_line":"            if rep_domain is not None:"},{"line_number":55,"context_line":"                cls.rep_domain_azs[rep_domain].add(pool[\u0027availability_zone\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @classmethod"},{"line_number":58,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_a8ee12ea","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":77},"in_reply_to":"1f493fa4_5472924a","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @classmethod"},{"line_number":58,"context_line":"    def skip_checks(cls):"},{"line_number":59,"context_line":"        super(SharesFromSnapshotAcrossPools, cls).skip_checks()"},{"line_number":60,"context_line":"        if not CONF.share.capability_create_share_from_snapshot_support:"},{"line_number":61,"context_line":"            raise cls.skipException("},{"line_number":62,"context_line":"                \u0027Create share from snapshot tests are disabled.\u0027)"},{"line_number":63,"context_line":"        if (not CONF.share"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_34a426a6","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":8},"updated":"2020-04-27 05:13:01.000000000","message":"also skip if microversion is less than 2.54","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6d67b86e402d535b95d808af6cc55635b91bb61f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @classmethod"},{"line_number":58,"context_line":"    def skip_checks(cls):"},{"line_number":59,"context_line":"        super(SharesFromSnapshotAcrossPools, cls).skip_checks()"},{"line_number":60,"context_line":"        if not CONF.share.capability_create_share_from_snapshot_support:"},{"line_number":61,"context_line":"            raise cls.skipException("},{"line_number":62,"context_line":"                \u0027Create share from snapshot tests are disabled.\u0027)"},{"line_number":63,"context_line":"        if (not CONF.share"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_6aeec2b4","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":8},"in_reply_to":"1f493fa4_34a426a6","updated":"2020-04-27 12:09:03.000000000","message":"Oh, +1","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @classmethod"},{"line_number":58,"context_line":"    def skip_checks(cls):"},{"line_number":59,"context_line":"        super(SharesFromSnapshotAcrossPools, cls).skip_checks()"},{"line_number":60,"context_line":"        if not CONF.share.capability_create_share_from_snapshot_support:"},{"line_number":61,"context_line":"            raise cls.skipException("},{"line_number":62,"context_line":"                \u0027Create share from snapshot tests are disabled.\u0027)"},{"line_number":63,"context_line":"        if (not CONF.share"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_6dc41c60","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":8},"in_reply_to":"1f493fa4_6aeec2b4","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":70,"context_line":"    def test_create_share_from_snapshot_across_pools_within_backend(self):"},{"line_number":71,"context_line":"        backends \u003d [pool[\u0027backend\u0027] for pool in self.pools]"},{"line_number":72,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backends)"},{"line_number":73,"context_line":"                                    if x in backends[:n]]"},{"line_number":74,"context_line":"        if not duplicated_backend_names:"},{"line_number":75,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":76,"context_line":"                   \" the same backend are needed to run the tests to create\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_7446aec2","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":57},"updated":"2020-04-27 05:13:01.000000000","message":"hmm, you\u0027re not filtering these out by replication_domain, how can you be sure you can take a snapshot from one of these pools into another pool?\n\nEven within a single backend, unless the capability \"replication_domain\" is reported, you can\u0027t assume to create snapshot clones across pools... \n\nAssume you\u0027re testing against a deployment that has a Generic backend as well as a NetApp. \n\nGeneric is reporting 3 pools. The NetApp is reporting two, your test *could* potentially ignore NetApp, and try to create a snapshot clone on the Generic driver, which we know will end up failing.","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8855356c6f61f8384e7dce355c31e9b1c7f5a083","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":70,"context_line":"    def test_create_share_from_snapshot_across_pools_within_backend(self):"},{"line_number":71,"context_line":"        backends \u003d [pool[\u0027backend\u0027] for pool in self.pools]"},{"line_number":72,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backends)"},{"line_number":73,"context_line":"                                    if x in backends[:n]]"},{"line_number":74,"context_line":"        if not duplicated_backend_names:"},{"line_number":75,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":76,"context_line":"                   \" the same backend are needed to run the tests to create\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_1d44a11a","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":57},"in_reply_to":"1f493fa4_19e5d6dc","updated":"2020-04-27 14:40:01.000000000","message":"No, I can\u0027t see other way of doing this. Besides, two new capabilities could be added, one for across pools within the same back end and another for across back ends. And only across back ends continue to depends on \u0027replication_domain\u0027","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":70,"context_line":"    def test_create_share_from_snapshot_across_pools_within_backend(self):"},{"line_number":71,"context_line":"        backends \u003d [pool[\u0027backend\u0027] for pool in self.pools]"},{"line_number":72,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backends)"},{"line_number":73,"context_line":"                                    if x in backends[:n]]"},{"line_number":74,"context_line":"        if not duplicated_backend_names:"},{"line_number":75,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":76,"context_line":"                   \" the same backend are needed to run the tests to create\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_9deef1b1","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":57},"in_reply_to":"1f493fa4_1d44a11a","updated":"2020-04-27 14:58:40.000000000","message":"Yes, the latter can continue to depend on replication_domain, since that really makes sense as a concept - of course we can rename it to signify the broader data copy domain that an administrator has set aside to decouple it from the share replication feature.. \n\nSounds like a short PTG topic so we can gather some more feedback. https://etherpad.opendev.org/p/vancouver-ptg-manila-planning","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6d67b86e402d535b95d808af6cc55635b91bb61f","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":70,"context_line":"    def test_create_share_from_snapshot_across_pools_within_backend(self):"},{"line_number":71,"context_line":"        backends \u003d [pool[\u0027backend\u0027] for pool in self.pools]"},{"line_number":72,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backends)"},{"line_number":73,"context_line":"                                    if x in backends[:n]]"},{"line_number":74,"context_line":"        if not duplicated_backend_names:"},{"line_number":75,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":76,"context_line":"                   \" the same backend are needed to run the tests to create\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_ca071682","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":57},"in_reply_to":"1f493fa4_7446aec2","updated":"2020-04-27 12:09:03.000000000","message":"Yeah, this can be an issue because by design \u0027CreateFromSnapshotFilter\u0027 doesn\u0027t check \u0027replication_domain\u0027 within the same back end[1]. So the test reflects the implementation. But indeed, if we have multiple back ends with mixed drivers/vendor, the scheduler may select an incompatible host (since the scheduler flag will be enabled).\n\nWe can consider that even checking the \u0027replication_domain\u0027 capability within the same back end, a driver may fail simply because implements replication but not create_from_snapshot across pools/back ends.\nThe only way that I can think on avoiding this is a new capability to be reported by drivers, + checking for \u0027replication_domain\u0027 capability.\n\n[1] https://opendev.org/openstack/manila/src/branch/master/manila/scheduler/filters/create_from_snapshot.py#L56-L61","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"77d0add736b5de0c6afc49fdd18ced8ecee46610","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":70,"context_line":"    def test_create_share_from_snapshot_across_pools_within_backend(self):"},{"line_number":71,"context_line":"        backends \u003d [pool[\u0027backend\u0027] for pool in self.pools]"},{"line_number":72,"context_line":"        duplicated_backend_names \u003d [x for n, x in enumerate(backends)"},{"line_number":73,"context_line":"                                    if x in backends[:n]]"},{"line_number":74,"context_line":"        if not duplicated_backend_names:"},{"line_number":75,"context_line":"            msg \u003d (\"Could not find the necessary pools. At least two pools in\""},{"line_number":76,"context_line":"                   \" the same backend are needed to run the tests to create\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_19e5d6dc","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":57},"in_reply_to":"1f493fa4_ca071682","updated":"2020-04-27 14:24:21.000000000","message":"Hmmm, yeah that makes sense. We currently can\u0027t distinguish whether a backend has the capability to move across its pools, from an API perspective; \n\nSo you can ignore this comment.\n\nGoing back to the design in manila for a minute:\n\nCan you think of any reason not to have a new driver capability? For a multi-vendor deployment, it does seem like that\u0027s the only way out? It does seem silly to have to create a 1-host \"replication_domain\" to get things to work if we required clones to be constrained on \"replication_domain\".","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.share_type[\u0027id\u0027], \u0027pool_name\u0027)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Create source share"},{"line_number":97,"context_line":"        share_a \u003d self._create_share("},{"line_number":98,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":99,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":100,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Create snapshot from source share"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_94bedab1","line":99,"range":{"start_line":97,"start_character":18,"end_line":99,"end_character":75},"updated":"2020-04-27 05:13:01.000000000","message":"why aren\u0027t you using self.create_share?","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.share_type[\u0027id\u0027], \u0027pool_name\u0027)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Create source share"},{"line_number":97,"context_line":"        share_a \u003d self._create_share("},{"line_number":98,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":99,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":100,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Create snapshot from source share"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_2d3df42a","line":99,"range":{"start_line":97,"start_character":18,"end_line":99,"end_character":75},"in_reply_to":"1f493fa4_94bedab1","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        share_a \u003d self._create_share("},{"line_number":98,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":99,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":100,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Create snapshot from source share"},{"line_number":103,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_get_a[\"id\"])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_14caca4c","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":64},"updated":"2020-04-27 05:13:01.000000000","message":"add a note above saying that you\u0027re retrieving the share using admin client because you want the share\u0027s host field.","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        share_a \u003d self._create_share("},{"line_number":98,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":99,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":100,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Create snapshot from source share"},{"line_number":103,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_get_a[\"id\"])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_0d8118c4","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":64},"in_reply_to":"1f493fa4_14caca4c","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            self.share_type[\u0027id\u0027], \"pool_name\", pool_names[1])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        # Create share from snapshot another pool"},{"line_number":113,"context_line":"        share_b \u003d self._create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":114,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":115,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\u0027id\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Verify share created from snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_74c34e39","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":75},"updated":"2020-04-27 05:13:01.000000000","message":"same question as on line 99..","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            self.share_type[\u0027id\u0027], \"pool_name\", pool_names[1])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        # Create share from snapshot another pool"},{"line_number":113,"context_line":"        share_b \u003d self._create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":114,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":115,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\u0027id\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Verify share created from snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_4d6e802f","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":75},"in_reply_to":"1f493fa4_74c34e39","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        # Create share from snapshot another pool"},{"line_number":113,"context_line":"        share_b \u003d self._create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":114,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":115,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\u0027id\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Verify share created from snapshot"},{"line_number":118,"context_line":"        msg \u003d (\"Expected snapshot_id %s as \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_54c0d22a","line":115,"range":{"start_line":115,"start_character":7,"end_line":115,"end_character":8},"updated":"2020-04-27 05:13:01.000000000","message":"add a note above saying that you\u0027re retrieving the share using admin client because you want the share\u0027s host field.","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        # Create share from snapshot another pool"},{"line_number":113,"context_line":"        share_b \u003d self._create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":114,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":115,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\u0027id\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Verify share created from snapshot"},{"line_number":118,"context_line":"        msg \u003d (\"Expected snapshot_id %s as \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_08e0e6f9","line":115,"range":{"start_line":115,"start_character":7,"end_line":115,"end_character":8},"in_reply_to":"1f493fa4_54c0d22a","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        # Verify different pools"},{"line_number":123,"context_line":"        pool_name_a \u003d share_get_a[\"host\"].split(\"#\")[1]"},{"line_number":124,"context_line":"        pool_name_b \u003d share_get_b[\"host\"].split(\"#\")[1]"},{"line_number":125,"context_line":"        msg \u003d (\"Source share pool name %s equal share from\""},{"line_number":126,"context_line":"               \" snapshot pool name %s\" % (pool_name_a, pool_name_b))"},{"line_number":127,"context_line":"        self.assertNotEqual(pool_name_a, pool_name_b, msg)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_d4e982b7","line":126,"range":{"start_line":125,"start_character":16,"end_line":126,"end_character":38},"updated":"2020-04-27 05:13:01.000000000","message":"nit: Can you rewrite as, \"The snapshot clone share was created on the same pool as the source share %s\" % pool_name_a","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        # Verify different pools"},{"line_number":123,"context_line":"        pool_name_a \u003d share_get_a[\"host\"].split(\"#\")[1]"},{"line_number":124,"context_line":"        pool_name_b \u003d share_get_b[\"host\"].split(\"#\")[1]"},{"line_number":125,"context_line":"        msg \u003d (\"Source share pool name %s equal share from\""},{"line_number":126,"context_line":"               \" snapshot pool name %s\" % (pool_name_a, pool_name_b))"},{"line_number":127,"context_line":"        self.assertNotEqual(pool_name_a, pool_name_b, msg)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_ed9b0c63","line":126,"range":{"start_line":125,"start_character":16,"end_line":126,"end_character":38},"in_reply_to":"1f493fa4_d4e982b7","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":130,"context_line":"    def test_share_from_snapshot_across_azs(self):"},{"line_number":131,"context_line":"        azs \u003d next(self.rep_domain_azs[rep] for rep in self.rep_domain_azs if"},{"line_number":132,"context_line":"                   len(self.rep_domain_azs[rep]) \u003e 1)"},{"line_number":133,"context_line":"        if azs is None:"},{"line_number":134,"context_line":"            msg \u003d (\"Could not find the necessary azs. At least two azs \""},{"line_number":135,"context_line":"                   \"are needed to run the test to create share from snapshot \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_5443b2af","line":132,"range":{"start_line":131,"start_character":14,"end_line":132,"end_character":53},"updated":"2020-04-27 05:13:01.000000000","message":"[self.rep_domain_azs[rep] for rep in self.rep_domain_azs if\n                   len(self.rep_domain_azs[rep]) \u003e 1]\n\nSo you can avoid the use of \"next\", and reconversion into a list on line 138.","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6d67b86e402d535b95d808af6cc55635b91bb61f","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":130,"context_line":"    def test_share_from_snapshot_across_azs(self):"},{"line_number":131,"context_line":"        azs \u003d next(self.rep_domain_azs[rep] for rep in self.rep_domain_azs if"},{"line_number":132,"context_line":"                   len(self.rep_domain_azs[rep]) \u003e 1)"},{"line_number":133,"context_line":"        if azs is None:"},{"line_number":134,"context_line":"            msg \u003d (\"Could not find the necessary azs. At least two azs \""},{"line_number":135,"context_line":"                   \"are needed to run the test to create share from snapshot \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_aa69eaf9","line":132,"range":{"start_line":131,"start_character":14,"end_line":132,"end_character":53},"in_reply_to":"1f493fa4_5443b2af","updated":"2020-04-27 12:09:03.000000000","message":"If \u0027self.rep_domain_azs\u0027 has more than one replication domain with \u003e 1 azs, will return a list o set instead. So he will still need to do: azs \u003d list(azs[0])","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                   \"across azs.\")"},{"line_number":137,"context_line":"            raise self.skipException(msg)"},{"line_number":138,"context_line":"        azs \u003d list(azs)"},{"line_number":139,"context_line":"        share_a \u003d self._create_share(share_type_id\u003dself.share_type_id,"},{"line_number":140,"context_line":"                                     is_public\u003dTrue,"},{"line_number":141,"context_line":"                                     availability_zone\u003dazs[0])"},{"line_number":142,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":143,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Create snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_941a5ac9","line":142,"range":{"start_line":139,"start_character":7,"end_line":142,"end_character":75},"updated":"2020-04-27 05:13:01.000000000","message":"use self.create_share","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                   \"across azs.\")"},{"line_number":137,"context_line":"            raise self.skipException(msg)"},{"line_number":138,"context_line":"        azs \u003d list(azs)"},{"line_number":139,"context_line":"        share_a \u003d self._create_share(share_type_id\u003dself.share_type_id,"},{"line_number":140,"context_line":"                                     is_public\u003dTrue,"},{"line_number":141,"context_line":"                                     availability_zone\u003dazs[0])"},{"line_number":142,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":143,"context_line":"        share_get_a \u003d self.admin_client.get_share(share_a[\"id\"])"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Create snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_8daa486e","line":142,"range":{"start_line":139,"start_character":7,"end_line":142,"end_character":75},"in_reply_to":"1f493fa4_941a5ac9","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_a[\"id\"])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Create share from snapshot"},{"line_number":149,"context_line":"        share_b \u003d self._create_share(availability_zone\u003dazs[1],"},{"line_number":150,"context_line":"                                     snapshot_id\u003dsnap[\"id\"])"},{"line_number":151,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":152,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\"id\"])"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Verify share created from snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_f40bde79","line":151,"range":{"start_line":149,"start_character":0,"end_line":151,"end_character":75},"updated":"2020-04-27 05:13:01.000000000","message":"use self.create_share","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_a[\"id\"])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Create share from snapshot"},{"line_number":149,"context_line":"        share_b \u003d self._create_share(availability_zone\u003dazs[1],"},{"line_number":150,"context_line":"                                     snapshot_id\u003dsnap[\"id\"])"},{"line_number":151,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":152,"context_line":"        share_get_b \u003d self.admin_client.get_share(share_b[\"id\"])"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Verify share created from snapshot"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_6da7fca8","line":151,"range":{"start_line":149,"start_character":0,"end_line":151,"end_character":75},"in_reply_to":"1f493fa4_f40bde79","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"742eb1300d0e934797fd7aea246364d3a093dc9b","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        self.assertEqual(share_get_b[\"snapshot_id\"], snap[\"id\"], msg)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Verify different azs"},{"line_number":160,"context_line":"        msg \u003d (\"Share source AZ %s is equal to share from \""},{"line_number":161,"context_line":"               \"snapshot AZ %s\" % (share_get_a[\"availability_zone\"],"},{"line_number":162,"context_line":"                                   share_get_b[\"availability_zone\"]))"},{"line_number":163,"context_line":"        self.assertNotEqual(share_get_b[\"availability_zone\"],"},{"line_number":164,"context_line":"                            share_get_a[\"availability_zone\"],"},{"line_number":165,"context_line":"                            msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_14264a16","line":162,"range":{"start_line":160,"start_character":15,"end_line":162,"end_character":69},"updated":"2020-04-27 05:13:01.000000000","message":"If they\u0027re the same, no need to substitute both variables, \n\n \"The snapshot clone share was created on the same AZ as the source share %s\" % share_get_a[\"availability_zone\"]","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"8f1b0242ad5b7d1b19983d90690493ef5aac8ebd","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        self.assertEqual(share_get_b[\"snapshot_id\"], snap[\"id\"], msg)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Verify different azs"},{"line_number":160,"context_line":"        msg \u003d (\"Share source AZ %s is equal to share from \""},{"line_number":161,"context_line":"               \"snapshot AZ %s\" % (share_get_a[\"availability_zone\"],"},{"line_number":162,"context_line":"                                   share_get_b[\"availability_zone\"]))"},{"line_number":163,"context_line":"        self.assertNotEqual(share_get_b[\"availability_zone\"],"},{"line_number":164,"context_line":"                            share_get_a[\"availability_zone\"],"},{"line_number":165,"context_line":"                            msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f493fa4_ade3c4d8","line":162,"range":{"start_line":160,"start_character":15,"end_line":162,"end_character":69},"in_reply_to":"1f493fa4_14264a16","updated":"2020-04-27 14:51:42.000000000","message":"Done","commit_id":"b3079ec6aaa85b1cd06c18b4f2cd9aad192a03a2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Create source share"},{"line_number":100,"context_line":"        share_a \u003d self.create_share("},{"line_number":101,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":102,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        # Retrieving the share using admin client because the shares\u0027s host"},{"line_number":105,"context_line":"        # field is necessary to do the assert"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_bdfbed44","line":102,"range":{"start_line":102,"start_character":8,"end_line":102,"end_character":75},"updated":"2020-04-27 14:58:40.000000000","message":"Don\u0027t need this, it\u0027s handled in self.create_share()","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"c95384de52d81971ddaadca62de89c85671072c7","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Create source share"},{"line_number":100,"context_line":"        share_a \u003d self.create_share("},{"line_number":101,"context_line":"            share_type_id\u003dshare_type_a_get[\"share_type\"][\"id\"])"},{"line_number":102,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        # Retrieving the share using admin client because the shares\u0027s host"},{"line_number":105,"context_line":"        # field is necessary to do the assert"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_a3fd90b2","line":102,"range":{"start_line":102,"start_character":8,"end_line":102,"end_character":75},"in_reply_to":"1f493fa4_bdfbed44","updated":"2020-04-27 16:42:38.000000000","message":"Done","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Create share from snapshot another pool"},{"line_number":119,"context_line":"        share_b \u003d self.create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":120,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Retrieving the share using admin client because the shares\u0027s host"},{"line_number":123,"context_line":"        # field is necessary to do the assert"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_9df8b149","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":75},"updated":"2020-04-27 14:58:40.000000000","message":"same as comment on line 102","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"c95384de52d81971ddaadca62de89c85671072c7","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Create share from snapshot another pool"},{"line_number":119,"context_line":"        share_b \u003d self.create_share(snapshot_id\u003dsnap[\"id\"])"},{"line_number":120,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Retrieving the share using admin client because the shares\u0027s host"},{"line_number":123,"context_line":"        # field is necessary to do the assert"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_c3009cae","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":75},"in_reply_to":"1f493fa4_9df8b149","updated":"2020-04-27 16:42:38.000000000","message":"Done","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        share_a \u003d self.create_share(share_type_id\u003dself.share_type_id,"},{"line_number":149,"context_line":"                                    is_public\u003dTrue,"},{"line_number":150,"context_line":"                                    availability_zone\u003dazs[0])"},{"line_number":151,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Create snapshot"},{"line_number":154,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_a[\"id\"])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_1da2e14b","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":75},"updated":"2020-04-27 14:58:40.000000000","message":"same comment as on line 102","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"c95384de52d81971ddaadca62de89c85671072c7","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        share_a \u003d self.create_share(share_type_id\u003dself.share_type_id,"},{"line_number":149,"context_line":"                                    is_public\u003dTrue,"},{"line_number":150,"context_line":"                                    availability_zone\u003dazs[0])"},{"line_number":151,"context_line":"        self.admin_client.wait_for_share_status(share_a[\"id\"], \"available\")"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Create snapshot"},{"line_number":154,"context_line":"        snap \u003d self.create_snapshot_wait_for_active(share_a[\"id\"])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_430dace6","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":75},"in_reply_to":"1f493fa4_1da2e14b","updated":"2020-04-27 16:42:38.000000000","message":"Done","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # Create share from snapshot"},{"line_number":157,"context_line":"        share_b \u003d self.create_share(availability_zone\u003dazs[1],"},{"line_number":158,"context_line":"                                    snapshot_id\u003dsnap[\"id\"])"},{"line_number":159,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Verify share created from snapshot"},{"line_number":162,"context_line":"        msg \u003d (\"Expected snapshot_id %s as \""}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_5d8749b6","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":75},"updated":"2020-04-27 14:58:40.000000000","message":"same comment as on line 102","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"c95384de52d81971ddaadca62de89c85671072c7","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # Create share from snapshot"},{"line_number":157,"context_line":"        share_b \u003d self.create_share(availability_zone\u003dazs[1],"},{"line_number":158,"context_line":"                                    snapshot_id\u003dsnap[\"id\"])"},{"line_number":159,"context_line":"        self.admin_client.wait_for_share_status(share_b[\"id\"], \"available\")"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Verify share created from snapshot"},{"line_number":162,"context_line":"        msg \u003d (\"Expected snapshot_id %s as \""}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_2312200a","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":75},"in_reply_to":"1f493fa4_5d8749b6","updated":"2020-04-27 16:42:38.000000000","message":"Done","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cddfbd1913225fdd1fac624857a15e7fd2334e9","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        # Verify different azs"},{"line_number":167,"context_line":"        msg \u003d (\"The snapshot clone share was created on the same AZ as the\""},{"line_number":168,"context_line":"               \" source share %s\" % share_a[\"availability_zone\"])"},{"line_number":169,"context_line":"        self.assertNotEqual(share_b[\"availability_zone\"],"},{"line_number":170,"context_line":"                            share_a[\"availability_zone\"],"},{"line_number":171,"context_line":"                            msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_7d7845c3","line":168,"range":{"start_line":168,"start_character":29,"end_line":168,"end_character":30},"updated":"2020-04-27 14:58:40.000000000","message":"nit, add \": \" here","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"},{"author":{"_account_id":30998,"name":"Andre Luiz Beltrami Rocha","display_name":"Andre Beltrami","email":"debeltrami@gmail.com","username":"andrebeltrami"},"change_message_id":"c95384de52d81971ddaadca62de89c85671072c7","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        # Verify different azs"},{"line_number":167,"context_line":"        msg \u003d (\"The snapshot clone share was created on the same AZ as the\""},{"line_number":168,"context_line":"               \" source share %s\" % share_a[\"availability_zone\"])"},{"line_number":169,"context_line":"        self.assertNotEqual(share_b[\"availability_zone\"],"},{"line_number":170,"context_line":"                            share_a[\"availability_zone\"],"},{"line_number":171,"context_line":"                            msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_63f708d5","line":168,"range":{"start_line":168,"start_character":29,"end_line":168,"end_character":30},"in_reply_to":"1f493fa4_7d7845c3","updated":"2020-04-27 16:42:38.000000000","message":"Done","commit_id":"56b1df0bf4df7681cbee1de7550eed3f6349bb0f"}]}
