)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a455f0c0bc4daebe3fbb4a47ecd3061dfbfc0bfd","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-08-08 18:31:07 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validation of openstack keystone version status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8f0c51ab4806619e654da6cf79e85030ec636046"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7faddb67_ea2d98fd","line":8,"updated":"2019-08-09 02:30:09.000000000","message":"Commit message body is missing, so I don\u0027t quite understand what\u0027s the purpose of this change?","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e9f341e38e3ac7ee0c9638eb72f93b32cd39d9c9","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-08-08 18:31:07 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validation of openstack keystone version status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8f0c51ab4806619e654da6cf79e85030ec636046"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7faddb67_cdfeab37","line":8,"in_reply_to":"7faddb67_ea2d98fd","updated":"2019-08-09 15:13:39.000000000","message":"Done","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"}],"tempest/api/identity/v3/test_api_discovery.py":[{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"3d8c748ad5f6029e473613de5e5813d1b835f1fa","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV3Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _verify_api_version_status(self, expected_version):"},{"line_number":24,"context_line":"        \"\"\"Verify the version enabled/ disabled based on given version\"\"\""},{"line_number":25,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":26,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":27,"context_line":"            actual_version \u003d version.get(\u0027id\u0027).split(\u0027.\u0027)[0]"},{"line_number":28,"context_line":"            if expected_version \u003d\u003d \"v3\":"},{"line_number":29,"context_line":"                self.assertEqual(actual_version, expected_version,"},{"line_number":30,"context_line":"                                 \u0027 Identity version %s is not enabled\u0027 %"},{"line_number":31,"context_line":"                                 (expected_version))"},{"line_number":32,"context_line":"            elif expected_version \u003d\u003d \"v2\":"},{"line_number":33,"context_line":"                self.assertNotEqual(actual_version, expected_version,"},{"line_number":34,"context_line":"                                    \u0027 Identity version %s is not disabled\u0027 %"},{"line_number":35,"context_line":"                                    (expected_version))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_aaaf39e1","line":35,"range":{"start_line":23,"start_character":4,"end_line":35,"end_character":55},"updated":"2019-07-31 02:15:23.000000000","message":"this test will not run on all support version, see pike run\n\nShould you use the conf.py IdentityFeatureGroup api_v2 and api_v3 conf instead of hardcoding it?\n\nhttps://github.com/openstack/tempest/blob/master/tempest/config.py#L208","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"f76f4e3dfa00ac149ecffea24dc445fa005413ce","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV3Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _verify_api_version_status(self, expected_version):"},{"line_number":24,"context_line":"        \"\"\"Verify the version enabled/ disabled based on given version\"\"\""},{"line_number":25,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":26,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":27,"context_line":"            actual_version \u003d version.get(\u0027id\u0027).split(\u0027.\u0027)[0]"},{"line_number":28,"context_line":"            if expected_version \u003d\u003d \"v3\":"},{"line_number":29,"context_line":"                self.assertEqual(actual_version, expected_version,"},{"line_number":30,"context_line":"                                 \u0027 Identity version %s is not enabled\u0027 %"},{"line_number":31,"context_line":"                                 (expected_version))"},{"line_number":32,"context_line":"            elif expected_version \u003d\u003d \"v2\":"},{"line_number":33,"context_line":"                self.assertNotEqual(actual_version, expected_version,"},{"line_number":34,"context_line":"                                    \u0027 Identity version %s is not disabled\u0027 %"},{"line_number":35,"context_line":"                                    (expected_version))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_54317858","line":35,"range":{"start_line":23,"start_character":4,"end_line":35,"end_character":55},"in_reply_to":"7faddb67_21436715","updated":"2019-08-01 01:26:47.000000000","message":"This code will not pass the zuul tempest-full-pike. this will have to wait until pike gate is removed.","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"53ab1494a4154dbb04438fcdf45291cb923584da","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV3Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _verify_api_version_status(self, expected_version):"},{"line_number":24,"context_line":"        \"\"\"Verify the version enabled/ disabled based on given version\"\"\""},{"line_number":25,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":26,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":27,"context_line":"            actual_version \u003d version.get(\u0027id\u0027).split(\u0027.\u0027)[0]"},{"line_number":28,"context_line":"            if expected_version \u003d\u003d \"v3\":"},{"line_number":29,"context_line":"                self.assertEqual(actual_version, expected_version,"},{"line_number":30,"context_line":"                                 \u0027 Identity version %s is not enabled\u0027 %"},{"line_number":31,"context_line":"                                 (expected_version))"},{"line_number":32,"context_line":"            elif expected_version \u003d\u003d \"v2\":"},{"line_number":33,"context_line":"                self.assertNotEqual(actual_version, expected_version,"},{"line_number":34,"context_line":"                                    \u0027 Identity version %s is not disabled\u0027 %"},{"line_number":35,"context_line":"                                    (expected_version))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_21436715","line":35,"range":{"start_line":23,"start_character":4,"end_line":35,"end_character":55},"in_reply_to":"7faddb67_aaaf39e1","updated":"2019-07-31 13:51:35.000000000","message":"If environment is supporting both v2 and v3 then endpoint will list both v2 and v3 identity endpoints, but if tempest is configured to test only v3 then api_v2 will be not. So using api_v2 and api_v3 conf is not right condition checking for us.","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"f76f4e3dfa00ac149ecffea24dc445fa005413ce","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestApiDiscovery(base.BaseIdentityV3Test):"},{"line_number":21,"context_line":"    \"\"\"Tests for API discovery features.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _verify_api_version_status(self, expected_version):"},{"line_number":24,"context_line":"        \"\"\"Verify the version enabled/ disabled based on given version\"\"\""},{"line_number":25,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":26,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":27,"context_line":"            actual_version \u003d version.get(\u0027id\u0027).split(\u0027.\u0027)[0]"},{"line_number":28,"context_line":"            if expected_version \u003d\u003d \"v3\":"},{"line_number":29,"context_line":"                self.assertEqual(actual_version, expected_version,"},{"line_number":30,"context_line":"                                 \u0027 Identity version %s is not enabled\u0027 %"},{"line_number":31,"context_line":"                                 (expected_version))"},{"line_number":32,"context_line":"            elif expected_version \u003d\u003d \"v2\":"},{"line_number":33,"context_line":"                self.assertNotEqual(actual_version, expected_version,"},{"line_number":34,"context_line":"                                    \u0027 Identity version %s is not disabled\u0027 %"},{"line_number":35,"context_line":"                                    (expected_version))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_eac8d1a8","line":35,"range":{"start_line":23,"start_character":4,"end_line":35,"end_character":55},"in_reply_to":"7faddb67_aaaf39e1","updated":"2019-08-01 01:26:47.000000000","message":"pike gate are being removed per https://review.opendev.org/#/c/670701/ but I still think using the conf would support upstream and downstream  ci\n\nI would like to hear other inputs","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"3d8c748ad5f6029e473613de5e5813d1b835f1fa","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            for res in expected_resources:"},{"line_number":49,"context_line":"                self.assertIn(res, version)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u0027c26b7e4c-a3de-4561-8fa9-2f4adc962dd0\u0027)"},{"line_number":53,"context_line":"    def test_api_version_v3_enable_status(self):"},{"line_number":54,"context_line":"        expected_version \u003d \"v3\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_0a59ad33","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":34},"updated":"2019-07-31 02:15:23.000000000","message":"NIT smoke test are to test are smoke test.  I fell that smoke test are the minimal amount of test that ensure that he micro services of the component in question is deployed correctly.  version interface are  more details than that.","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"53ab1494a4154dbb04438fcdf45291cb923584da","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            for res in expected_resources:"},{"line_number":49,"context_line":"                self.assertIn(res, version)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u0027c26b7e4c-a3de-4561-8fa9-2f4adc962dd0\u0027)"},{"line_number":53,"context_line":"    def test_api_version_v3_enable_status(self):"},{"line_number":54,"context_line":"        expected_version \u003d \"v3\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_c1c6139b","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":34},"in_reply_to":"7faddb67_0a59ad33","updated":"2019-07-31 13:51:35.000000000","message":"will fix this in next patch set.","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"3d8c748ad5f6029e473613de5e5813d1b835f1fa","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        expected_version \u003d \"v3\""},{"line_number":55,"context_line":"        self._verify_api_version_status(expected_version)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":58,"context_line":"    @decorators.idempotent_id(\u002716811855-f01c-489f-b72a-d69d5970b112\u0027)"},{"line_number":59,"context_line":"    def test_api_version_v2_disable_status(self):"},{"line_number":60,"context_line":"        expected_version \u003d \"v2\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_ca3955d7","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":34},"updated":"2019-07-31 02:15:23.000000000","message":"NIT: not sure if this is a smoke test","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"53ab1494a4154dbb04438fcdf45291cb923584da","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        expected_version \u003d \"v3\""},{"line_number":55,"context_line":"        self._verify_api_version_status(expected_version)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":58,"context_line":"    @decorators.idempotent_id(\u002716811855-f01c-489f-b72a-d69d5970b112\u0027)"},{"line_number":59,"context_line":"    def test_api_version_v2_disable_status(self):"},{"line_number":60,"context_line":"        expected_version \u003d \"v2\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e1c30f88","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":34},"in_reply_to":"7faddb67_ca3955d7","updated":"2019-07-31 13:51:35.000000000","message":"same","commit_id":"3bfbbb97bb7c70e0625d6e68780d129214d33d06"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"085e89c4f0c41aa884f241cd784f5a4cc9965e69","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        versions \u003d self._identity_versions()"},{"line_number":41,"context_line":"        v3_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v3\")"},{"line_number":42,"context_line":"        v2_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v2\")"},{"line_number":43,"context_line":"        if v3_conf_enabled and CONF.identity_feature_enabled.api_v3:"},{"line_number":44,"context_line":"            # Here we need to check v3 endpoint also present"},{"line_number":45,"context_line":"            self.assertIn(\"v3\", versions)"},{"line_number":46,"context_line":"        if not v2_conf_enabled:"},{"line_number":47,"context_line":"            # Here we need to check v2 endpoint should not be there"},{"line_number":48,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":49,"context_line":"        if v2_conf_enabled and not CONF.identity_feature_enabled.api_v2:"},{"line_number":50,"context_line":"            # Here we need to check v2  endpoint should not be there"},{"line_number":51,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":52,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"},{"line_number":53,"context_line":"            # Here we need to check v2 endpoint also present"},{"line_number":54,"context_line":"            self.assertIn(\"v2\", versions)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @decorators.idempotent_id(\u0027c26b7e4c-a3de-4561-8fa9-2f4adc962dd0\u0027)"},{"line_number":57,"context_line":"    def test_api_identity_version_status(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_dac20735","line":54,"range":{"start_line":43,"start_character":8,"end_line":54,"end_character":41},"updated":"2019-08-07 23:38:30.000000000","message":"if checking the version keystone is that important should they be split into 2 test cases so both will be checked and pass or fail in one run.  \n\nI am interested if the cores of tempest support this testing direction for the core services.  I hope some will provide feedback","commit_id":"29b829a00c6f27d67cddca6c6f39c0c442ea4fbb"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a455f0c0bc4daebe3fbb4a47ecd3061dfbfc0bfd","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if not v2_conf_enabled:"},{"line_number":51,"context_line":"            # Here we need to check v2 endpoint should not be there"},{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and not CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2  endpoint should not be there"},{"line_number":55,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":56,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_2a43b0b1","line":53,"range":{"start_line":53,"start_character":35,"end_line":53,"end_character":71},"updated":"2019-08-09 02:30:09.000000000","message":"I don\u0027t what\u0027s the difference between getattr(CONF.identity_feature_enabled, \"api_v2\") and CONF.identity_feature_enabled.api_v2?","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e9f341e38e3ac7ee0c9638eb72f93b32cd39d9c9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if not v2_conf_enabled:"},{"line_number":51,"context_line":"            # Here we need to check v2 endpoint should not be there"},{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and not CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2  endpoint should not be there"},{"line_number":55,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":56,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_7b2c19ac","line":53,"range":{"start_line":53,"start_character":35,"end_line":53,"end_character":71},"in_reply_to":"7faddb67_2a43b0b1","updated":"2019-08-09 15:13:39.000000000","message":"getattr()\n    - Here we are verifing the api_v2 parameter existence \n      from tempest configuration with method getattr()\nCONF.identity_feature_enabled.api_v2\n    - We are reading the api_v2 parameter whether its value \n      is true or false in tempest configuration.\n\nSo here we are validating the api_v2 parameter exists and its value with these conditions.","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a455f0c0bc4daebe3fbb4a47ecd3061dfbfc0bfd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and not CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2  endpoint should not be there"},{"line_number":55,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":56,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"},{"line_number":57,"context_line":"            # Here we need to check v2 endpoint also present"},{"line_number":58,"context_line":"            self.assertIn(\"v2\", versions)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_4a25cc09","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":44},"updated":"2019-08-09 02:30:09.000000000","message":"Even if api v2 is available in the system, we may set CONF.identity_feature_enabled.api_v2 to False in order to skip the v2 testcases, so this seems not very safe and reasonable.","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e9f341e38e3ac7ee0c9638eb72f93b32cd39d9c9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and not CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2  endpoint should not be there"},{"line_number":55,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":56,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"},{"line_number":57,"context_line":"            # Here we need to check v2 endpoint also present"},{"line_number":58,"context_line":"            self.assertIn(\"v2\", versions)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_2dee5f8b","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":44},"in_reply_to":"7faddb67_4a25cc09","updated":"2019-08-09 15:13:39.000000000","message":"will fix this in next patch set","commit_id":"49d649dc2f61b9ce7c6b373806c0814bbb8ba1c1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"82e11d78467626c8a6addfcefb5cf0fed5c11c27","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2 endpoint also present"},{"line_number":55,"context_line":"            self.assertIn(\"v2\", versions)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":58,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_cdcaf644","line":55,"updated":"2019-08-13 17:09:21.000000000","message":"As the config option description, the identity v2.0 API was removed before, so I don\u0027t think it is worth adding more tests for v2.0 API at this time:\n\n 213     cfg.BoolOpt(\u0027api_v2\u0027,\n 214                 default\u003dFalse,\n 215                 help\u003d\u0027Is the v2 identity API enabled\u0027,\n 216                 deprecated_for_removal\u003dTrue,\n 217                 deprecated_reason\u003d\u0027The identity v2.0 API was removed in the \u0027\n 218                                   \u0027Queens release. Tests that exercise the \u0027\n 219                                   \u0027v2.0 API will be removed from tempest in \u0027\n 220                                   \u0027the v22.0.0 release. They are kept only to \u0027\n 221                                   \u0027test stable branches.\u0027),","commit_id":"5109fa6f476a601816f7b16453c754a320d1a341"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e741ae24001e4518c425682416eca29acb839c5a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.assertNotIn(\"v2\", versions)"},{"line_number":53,"context_line":"        if v2_conf_enabled and CONF.identity_feature_enabled.api_v2:"},{"line_number":54,"context_line":"            # Here we need to check v2 endpoint also present"},{"line_number":55,"context_line":"            self.assertIn(\"v2\", versions)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":58,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_3f6f1b29","line":55,"in_reply_to":"7faddb67_cdcaf644","updated":"2019-08-14 18:04:49.000000000","message":"for now i will remove identity v2.0 API testcase.","commit_id":"5109fa6f476a601816f7b16453c754a320d1a341"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fe1885ad38caad33d5def8528c7e5f96279c0399","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":37,"context_line":"    def test_identity_v3_status(self):"},{"line_number":38,"context_line":"        versions \u003d self._identity_versions()"},{"line_number":39,"context_line":"        v3_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v3\")"},{"line_number":40,"context_line":"        if v3_conf_enabled and CONF.identity_feature_enabled.api_v3:"},{"line_number":41,"context_line":"            # Here we need to check v3 endpoint also present"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_e0579b00","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":44},"updated":"2019-08-15 00:18:47.000000000","message":"Why do we need such complex function here?\nWe just want to check the existence of v3 API in version API based on the configuration. So here can be just\n\n def test_identity_v3_existence(self):\n     versions \u003d self.non_admin_versions_client.list_versions()\n     found \u003d False\n     for version in versions[\u0027versions\u0027][\"values\"]:\n         if \"v3\" in version.get(\u0027id\u0027):\n             found \u003d True\n     if CONF.identity_feature_enabled.api_v3:\n         self.assertTrue(found)","commit_id":"05137ba88a93ed43a7d7ad5aaded5e67b388af9a"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e617e5ad51eb30defbff2e0d4c497aae09d701f4","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":37,"context_line":"    def test_identity_v3_status(self):"},{"line_number":38,"context_line":"        versions \u003d self._identity_versions()"},{"line_number":39,"context_line":"        v3_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v3\")"},{"line_number":40,"context_line":"        if v3_conf_enabled and CONF.identity_feature_enabled.api_v3:"},{"line_number":41,"context_line":"            # Here we need to check v3 endpoint also present"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_7feabed8","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":44},"in_reply_to":"7faddb67_e0579b00","updated":"2019-08-26 14:00:44.000000000","message":"I will fix this in next patch-set.","commit_id":"05137ba88a93ed43a7d7ad5aaded5e67b388af9a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fe1885ad38caad33d5def8528c7e5f96279c0399","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":37,"context_line":"    def test_identity_v3_status(self):"},{"line_number":38,"context_line":"        versions \u003d self._identity_versions()"},{"line_number":39,"context_line":"        v3_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v3\")"},{"line_number":40,"context_line":"        if v3_conf_enabled and CONF.identity_feature_enabled.api_v3:"},{"line_number":41,"context_line":"            # Here we need to check v3 endpoint also present"},{"line_number":42,"context_line":"            self.assertIn(\"v3\", versions)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_803b47cf","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":68},"updated":"2019-08-15 00:18:47.000000000","message":"Why do we need to check CONF.identity_feature_enabled.api_v3 twice here?","commit_id":"05137ba88a93ed43a7d7ad5aaded5e67b388af9a"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e617e5ad51eb30defbff2e0d4c497aae09d701f4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":37,"context_line":"    def test_identity_v3_status(self):"},{"line_number":38,"context_line":"        versions \u003d self._identity_versions()"},{"line_number":39,"context_line":"        v3_conf_enabled \u003d getattr(CONF.identity_feature_enabled, \"api_v3\")"},{"line_number":40,"context_line":"        if v3_conf_enabled and CONF.identity_feature_enabled.api_v3:"},{"line_number":41,"context_line":"            # Here we need to check v3 endpoint also present"},{"line_number":42,"context_line":"            self.assertIn(\"v3\", versions)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_2d5dffeb","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":68},"in_reply_to":"7faddb67_803b47cf","updated":"2019-08-26 14:00:44.000000000","message":"here we are checking api_v3 parameter existence by using getattr and then finally it checks for api_v3 value.","commit_id":"05137ba88a93ed43a7d7ad5aaded5e67b388af9a"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e615c7d43abc32eb1388cafa8b1e45ef5483040e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":28,"context_line":"    def test_identity_v3_existence(self):"},{"line_number":29,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":30,"context_line":"        found \u003d False"},{"line_number":31,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":32,"context_line":"            if \"v3\" in version.get(\u0027id\u0027):"},{"line_number":33,"context_line":"                found \u003d True"},{"line_number":34,"context_line":"        if CONF.identity_feature_enabled.api_v3:"},{"line_number":35,"context_line":"            self.assertTrue(found)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_8e3d06be","line":33,"range":{"start_line":30,"start_character":8,"end_line":33,"end_character":28},"updated":"2019-08-26 17:38:28.000000000","message":"nit: This can be reduced to:\n\n    found \u003d any(\"v3\" in version.get(\u0027id\u0027) for version in versions[\u0027versions\u0027][\u0027values\u0027])","commit_id":"576a23b8e4674e8f3fff2e1776a35d0599c27879"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e69b369dd1b77d8c8372bf36ce3655cb12426dd7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @decorators.idempotent_id(\u002779aec9ae-710f-4c54-a4fc-3aa25b4feac3\u0027)"},{"line_number":28,"context_line":"    def test_identity_v3_existence(self):"},{"line_number":29,"context_line":"        versions \u003d self.non_admin_versions_client.list_versions()"},{"line_number":30,"context_line":"        found \u003d False"},{"line_number":31,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":32,"context_line":"            if \"v3\" in version.get(\u0027id\u0027):"},{"line_number":33,"context_line":"                found \u003d True"},{"line_number":34,"context_line":"        if CONF.identity_feature_enabled.api_v3:"},{"line_number":35,"context_line":"            self.assertTrue(found)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_4ee14e9b","line":33,"range":{"start_line":30,"start_character":8,"end_line":33,"end_character":28},"in_reply_to":"7faddb67_8e3d06be","updated":"2019-08-26 18:36:55.000000000","message":"Agree. Will update in coming patch-set.","commit_id":"576a23b8e4674e8f3fff2e1776a35d0599c27879"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e615c7d43abc32eb1388cafa8b1e45ef5483040e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":32,"context_line":"            if \"v3\" in version.get(\u0027id\u0027):"},{"line_number":33,"context_line":"                found \u003d True"},{"line_number":34,"context_line":"        if CONF.identity_feature_enabled.api_v3:"},{"line_number":35,"context_line":"            self.assertTrue(found)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_0e4a765a","line":35,"range":{"start_line":34,"start_character":8,"end_line":35,"end_character":34},"updated":"2019-08-26 17:38:28.000000000","message":"I think this could also work for the negative case too, like:\n\n    self.assertEqual(CONF.identity_feature_enabled.api_v3, found)\n\nSuch that if it is not enabled and it is not found, then this is treated as a test pass. Otherwise this test is a no-op for v2 environments, and might as well not be run at all.","commit_id":"576a23b8e4674e8f3fff2e1776a35d0599c27879"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8ed9193ef447fa89c8856a02cb066b51a795a59a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":32,"context_line":"            if \"v3\" in version.get(\u0027id\u0027):"},{"line_number":33,"context_line":"                found \u003d True"},{"line_number":34,"context_line":"        if CONF.identity_feature_enabled.api_v3:"},{"line_number":35,"context_line":"            self.assertTrue(found)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_aef3229f","line":35,"range":{"start_line":34,"start_character":8,"end_line":35,"end_character":34},"in_reply_to":"7faddb67_0e4a765a","updated":"2019-08-26 18:17:12.000000000","message":"Nice idea, +1","commit_id":"576a23b8e4674e8f3fff2e1776a35d0599c27879"},{"author":{"_account_id":14173,"name":"Sai Kiran","email":"sv7665@att.com","username":"SaiKiran"},"change_message_id":"e69b369dd1b77d8c8372bf36ce3655cb12426dd7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        for version in versions[\u0027versions\u0027][\"values\"]:"},{"line_number":32,"context_line":"            if \"v3\" in version.get(\u0027id\u0027):"},{"line_number":33,"context_line":"                found \u003d True"},{"line_number":34,"context_line":"        if CONF.identity_feature_enabled.api_v3:"},{"line_number":35,"context_line":"            self.assertTrue(found)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u0027721f480f-35b6-46c7-846e-047e6acea0dc\u0027)"},{"line_number":38,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_0ebb5675","line":35,"range":{"start_line":34,"start_character":8,"end_line":35,"end_character":34},"in_reply_to":"7faddb67_0e4a765a","updated":"2019-08-26 18:36:55.000000000","message":"sure, will implement in next patch-set.","commit_id":"576a23b8e4674e8f3fff2e1776a35d0599c27879"}]}
