)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"4b8381c932db90ed19de134cbda995545f0ba6ba","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"skip tests if there is no admin credentials and force_tenant_isolation is set to TRUE"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related Bug: https://bugs.launchpad.net/tempest/+bug/1780404"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I9eb082769877dd89593ad80be1d580a1d3918665"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7db98507_aa513087","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":1},"updated":"2023-12-11 09:27:24.000000000","message":"We usually link the related bug like this:\n```\nRelated-Bug: #1780404\n```\n\nAlso, the commit message should have a header (short introductory line explaining the bug) and a body (you explain more thoroughly what this patch is about) [1]. I know we are linking the bug here but a commit message should be self-contained and not be dependent much on other resources. We can use links but we should put the most important information in the the commit message itself.\n\n[1] https://cbea.ms/git-commit/","commit_id":"24e81193d8c1a4ed76b36d323db7165ddf72bb77"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"a4d64ad1066db846235ace02f683eb431f478529","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"skip tests if there is no admin credentials and force_tenant_isolation is set to TRUE"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related Bug: https://bugs.launchpad.net/tempest/+bug/1780404"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I9eb082769877dd89593ad80be1d580a1d3918665"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ed8bdc7_c721d14e","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":1},"in_reply_to":"7db98507_aa513087","updated":"2023-12-11 12:27:17.000000000","message":"Acknowledged","commit_id":"24e81193d8c1a4ed76b36d323db7165ddf72bb77"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7f4ac24cedadf452f09d75919a6cf59a54ff193a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     hhkosti \u003chkosti@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-12-11 23:44:17 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"skip tests if there is no admin credentials and force_tenant_isolation is set to TRUE"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1780404"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3d7a3a25_75550af5","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"updated":"2024-04-03 08:12:27.000000000","message":"Please add a body that explains the reasoning behind this change.\n\nTake a look at:) -\u003e https://cbea.ms/git-commit/","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"4b8381c932db90ed19de134cbda995545f0ba6ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4fcffe4e_bb65fa4a","updated":"2023-12-11 09:27:24.000000000","message":"Thank you for updating the patch! :)\n\n- Please, take a look at the output of PEP8 job [1]. There seems to be PEP8 issue. You can check for pep8 issues locally by running (tox -epep8).\n\n- Take a look at the failing unittests [2]. Search for \u0027tempest.tests.test_test.TestTempestBaseTestClassFixtures\u0027. It looks like there is probably a small change necessary in them.\n\n\n[1] https://9704ea08718d1bb36659-62f1ee5ee000fc53c811447fa99b5bac.ssl.cf2.rackcdn.com/903274/1/check/openstack-tox-pep8/13b0e76/job-output.txt\n[2] https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_15f/903274/1/check/openstack-tox-py310/15fc9fe/job-output.txt","commit_id":"24e81193d8c1a4ed76b36d323db7165ddf72bb77"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"5fa74e1eb246c9e7a233fd3f91c11bc505e011ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"57e27b3a_c66af6c8","updated":"2023-12-12 08:51:38.000000000","message":"Hi:), it seems like there are still some unit tests failing [1]. It is a good practice to run `tox -epep8` and `tox -epy310` before pushing the code.\n\n[1] https://432897be1d8719865a1c-8b21255c4705221fd6662761273ea031.ssl.cf1.rackcdn.com/903274/5/check/openstack-tox-py39/123e773/job-output.txt","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"8c321d8190a8bfc89019c4d6f81a45473b40ecb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2639c101_3ebaf872","in_reply_to":"57e27b3a_c66af6c8","updated":"2023-12-12 17:29:49.000000000","message":"Hey Lukas, I am aware of the errors and will do the required changes","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07aee293390c6cedababd4e0863c69bf7d83039b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"862a5791_6a6f575b","updated":"2023-12-15 18:36:56.000000000","message":"adding my vote again as I still have same question.\n\nmay be it will be good to reproduce this in real env. NOTE if force_tenant_isolation is true then Tempest only use dynamic creds always and not the pre-provisioned creds. - https://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L137\n\nIt will be good to see in what cases test with force_tenant_isolation\u003dTrue and with the pre-provisioned creds, FAIL if admin creds are not configured.","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"6b21a861bca20518b622c49c89d9f3bce8aa75be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2646e9f6_930b5744","updated":"2023-12-15 06:57:24.000000000","message":"recheck","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"9e497dfe7f7937deea3889e2fba37d6190c47840","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5071a55f_f0b1de6b","updated":"2023-12-27 06:20:04.000000000","message":"recheck\n\nfailure in job tempest-slow-py3, which might not be related to the job","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"ae8090bd38fb3b8f602f8bccb0c0046c867647c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9d1139eb_cf8bd90d","in_reply_to":"2646e9f6_930b5744","updated":"2023-12-15 09:25:56.000000000","message":"Hi Ashish:), \n\nthe recheck here is probably the correct thing to do. But please read this article about \"bare rechecks\" [1]. A bare recheck is a recheck without an explanation of why the recheck was necessary. We want to prevent triggering jobs without sufficient a reason to protect the resources used by the jobs. So the correct way how to do a recheck is something like this:\n\n```\nrecheck\n\nexplanation of why are you doing the recheck. For example: \"The failure in the openstack-full-py3 seems not to be related to the patch. Let\u0027s re-run the jobs and see whether the problem persists.\"\n```\n\n[1] https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"5e7b405c946d5dd19ee40d1ff42786ce7155f51b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"55a0f515_23a60237","in_reply_to":"726952c4_79a93c97","updated":"2024-01-08 09:22:20.000000000","message":"api tests that force tenant isolation fail if a user runs them with test_accounts_file (and obviously removes admin creds from tempest.conf):\nhttps://opendev.org/openstack/tempest/src/commit/63aec891fca494bbb5b0841e3c52cb9b20674fe4/tempest/api/identity/base.py#L120-L127\n\nSo, the way I see it, we either can\u0027t force the isolation or those tests need to be skipped when user provided *only* test_accounts_file (as the LP 1780404 explains) because the tests will fail by design.","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"78f50b8e39da9c0a2779a8c3b1a26b0ed88d173d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"726952c4_79a93c97","in_reply_to":"862a5791_6a6f575b","updated":"2023-12-18 08:59:55.000000000","message":"Ghanshyam, the failure is well documented in the linked bug [1]. I\u0027ve tried to quickly reproduce it here [2]. There are two examples of the failure when force_tenant_isolation \u003d True:\n- tempest.api.compute.admin.test_quotas_negative.QuotasSecurityGroupAdminNegativeTest\n- tempest.api.identity.admin.v3.test_list_users.UsersV3TestJSON\n\n[1] https://bugs.launchpad.net/tempest/+bug/1780404\n[2] https://paste.openstack.org/show/b5KnH8xOtWBl9Cmh7BkU/","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"e07b2c969b126617db4d01f86cb004689694684d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"08710497_e1495c92","in_reply_to":"9d1139eb_cf8bd90d","updated":"2023-12-15 09:30:22.000000000","message":"Sure thanks Lukas , Acknowledged!","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"}],"tempest/test.py":[{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"2a6ce761bddb665d732b1376fe9e666afd3d5bc7","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (not CONF.auth.admin_password or not CONF.auth.admin_username) and getattr(cls, \u0027force_tenant_isolation\u0027, True):"},{"line_number":348,"context_line":"            raise cls.skipException("},{"line_number":349,"context_line":"                    \"Missing Admin credentials in configuration\")"},{"line_number":350,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":4,"id":"af292034_cb33260c","line":347,"updated":"2023-12-11 13:33:13.000000000","message":"Length of Line #347 is too long and would fail pep8 check .","commit_id":"5e3f0361afd5d23399c040906ff4d35b8c258d60"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"8c321d8190a8bfc89019c4d6f81a45473b40ecb2","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (not CONF.auth.admin_password or not CONF.auth.admin_username) and getattr(cls, \u0027force_tenant_isolation\u0027, True):"},{"line_number":348,"context_line":"            raise cls.skipException("},{"line_number":349,"context_line":"                    \"Missing Admin credentials in configuration\")"},{"line_number":350,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":4,"id":"0393cf84_e465fd6c","line":347,"in_reply_to":"af292034_cb33260c","updated":"2023-12-12 17:29:49.000000000","message":"Acknowledged","commit_id":"5e3f0361afd5d23399c040906ff4d35b8c258d60"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"2a6ce761bddb665d732b1376fe9e666afd3d5bc7","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        if (not CONF.auth.admin_password or not CONF.auth.admin_username) and getattr(cls, \u0027force_tenant_isolation\u0027, True):"},{"line_number":348,"context_line":"            raise cls.skipException("},{"line_number":349,"context_line":"                    \"Missing Admin credentials in configuration\")"},{"line_number":350,"context_line":"        "},{"line_number":351,"context_line":"    @classmethod"},{"line_number":352,"context_line":"    def setup_credentials(cls):"},{"line_number":353,"context_line":"        \"\"\"Allocate credentials and create the client managers from them."}],"source_content_type":"text/x-python","patch_set":4,"id":"d27bdde1_4294781a","line":350,"updated":"2023-12-11 13:33:13.000000000","message":"Hey , It seems there\u0027s some extra space left here . Please remove as it is not required and maybe left by mistake .","commit_id":"5e3f0361afd5d23399c040906ff4d35b8c258d60"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"5fa74e1eb246c9e7a233fd3f91c11bc505e011ec","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        if (not CONF.auth.admin_password or not CONF.auth.admin_username) and getattr(cls, \u0027force_tenant_isolation\u0027, True):"},{"line_number":348,"context_line":"            raise cls.skipException("},{"line_number":349,"context_line":"                    \"Missing Admin credentials in configuration\")"},{"line_number":350,"context_line":"        "},{"line_number":351,"context_line":"    @classmethod"},{"line_number":352,"context_line":"    def setup_credentials(cls):"},{"line_number":353,"context_line":"        \"\"\"Allocate credentials and create the client managers from them."}],"source_content_type":"text/x-python","patch_set":4,"id":"30d53ba5_b40c2511","line":350,"in_reply_to":"d27bdde1_4294781a","updated":"2023-12-12 08:51:38.000000000","message":"+1","commit_id":"5e3f0361afd5d23399c040906ff4d35b8c258d60"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"8c321d8190a8bfc89019c4d6f81a45473b40ecb2","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        if (not CONF.auth.admin_password or not CONF.auth.admin_username) and getattr(cls, \u0027force_tenant_isolation\u0027, True):"},{"line_number":348,"context_line":"            raise cls.skipException("},{"line_number":349,"context_line":"                    \"Missing Admin credentials in configuration\")"},{"line_number":350,"context_line":"        "},{"line_number":351,"context_line":"    @classmethod"},{"line_number":352,"context_line":"    def setup_credentials(cls):"},{"line_number":353,"context_line":"        \"\"\"Allocate credentials and create the client managers from them."}],"source_content_type":"text/x-python","patch_set":4,"id":"47bc4aa6_acf40dc2","line":350,"in_reply_to":"d27bdde1_4294781a","updated":"2023-12-12 17:29:49.000000000","message":"Acknowledged","commit_id":"5e3f0361afd5d23399c040906ff4d35b8c258d60"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"22d7b5d5200c45974bdf5f85ce657590453a93b4","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"959361e1_2c254d89","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"updated":"2023-12-11 19:57:01.000000000","message":"this is handled in very first condition at L329 right?","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":35663,"name":"Havisha Kosti","display_name":"Havisha Kosti","email":"hkosti@redhat.com","username":"hkosti"},"change_message_id":"1bca9f512bd922a591d42dfec01e8bd8f2c97fd2","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"45d63429_57f0393c","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"in_reply_to":"1b3ae3c1_0c09435b","updated":"2023-12-14 05:31:07.000000000","message":"However, there is no condition to handle when they are no admin credentials available in conf. Test Cases are failing with a traceback\n\n[1]\nhttps://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L254","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07aee293390c6cedababd4e0863c69bf7d83039b","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"cd3c312d_290372d5","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"in_reply_to":"45d63429_57f0393c","updated":"2023-12-15 18:36:56.000000000","message":"that is what handled in below file right?\n\nhttps://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L254","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5c2d7c315eec977e98ccefe55c9e477077a80598","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1b3ae3c1_0c09435b","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"in_reply_to":"7406ed4d_78fe4efb","updated":"2023-12-14 04:06:45.000000000","message":"yes so this method handle all the condition 1. dynamic creds 2. pre-provisioned creds 3. conf [1]. new condition added is handled in 3rd case[2]\n\n[1] https://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L153\n\n[2] https://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L254","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"5fa74e1eb246c9e7a233fd3f91c11bc505e011ec","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7406ed4d_78fe4efb","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"in_reply_to":"959361e1_2c254d89","updated":"2023-12-12 08:51:38.000000000","message":"I think what Havisha is trying to fix here is the fact that when force_tenant_isolation is True we use dynamic credentials [1]. So the first condition is probably not useful because even if admin creds are available in accounts.yaml we will use dynamic creds which require CONF.auth.admin_password and CONF.auth.admin_username.\n\n[1] https://opendev.org/openstack/tempest/src/commit/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L137","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"78f50b8e39da9c0a2779a8c3b1a26b0ed88d173d","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, True) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1c414acb_11e35b65","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"in_reply_to":"cd3c312d_290372d5","updated":"2023-12-18 08:59:55.000000000","message":"The issue with the code pointed to by the link [1] is that the getattr function returns None when for example admin_username or admin_password is not set. This makes the code continue even when the user did not provide the admin_username and admin_password in tempest.conf.\n\n[1] https://github.com/openstack/tempest/blob/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/common/credentials_factory.py#L254","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"5e7b405c946d5dd19ee40d1ff42786ce7155f51b","unresolved":true,"context_lines":[{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":"        "},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"},{"line_number":355,"context_line":"        \"\"\"Allocate credentials and create the client managers from them."}],"source_content_type":"text/x-python","patch_set":5,"id":"54e2c2f3_324da407","line":352,"range":{"start_line":352,"start_character":0,"end_line":352,"end_character":8},"updated":"2024-01-08 09:22:20.000000000","message":"trailing spaces","commit_id":"c6f860031f276786b546a31fc39792de40a86f5d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"730ace0708924744430a37ae4f9d62cda40ddc0a","unresolved":true,"context_lines":[{"line_number":328,"context_line":"        # setting force_tenant_isolation to True also needs admin credentials."},{"line_number":329,"context_line":"        if (\u0027admin\u0027 in cls.credentials or"},{"line_number":330,"context_line":"                \u0027alt_admin\u0027 in cls.credentials or"},{"line_number":331,"context_line":"                getattr(cls, \u0027force_tenant_isolation\u0027, False)):"},{"line_number":332,"context_line":"            if not credentials.is_admin_available("},{"line_number":333,"context_line":"                    identity_version\u003didentity_version):"},{"line_number":334,"context_line":"                raise cls.skipException("}],"source_content_type":"text/x-python","patch_set":6,"id":"71dccdfe_860f6cca","line":331,"range":{"start_line":331,"start_character":16,"end_line":331,"end_character":63},"updated":"2024-01-10 19:23:02.000000000","message":"we can remove this from here as we are anyways need to check conf admion creds in all scneario.","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"730ace0708924744430a37ae4f9d62cda40ddc0a","unresolved":true,"context_lines":[{"line_number":344,"context_line":"            elif cls.identity_version \u003d\u003d \u0027v3\u0027:"},{"line_number":345,"context_line":"                if not CONF.identity_feature_enabled.api_v3:"},{"line_number":346,"context_line":"                    raise cls.skipException(\"Identity api v3 is not enabled\")"},{"line_number":347,"context_line":"        if (getattr(cls, \u0027force_tenant_isolation\u0027, False) and"},{"line_number":348,"context_line":"                (not CONF.auth.admin_password or"},{"line_number":349,"context_line":"                 not CONF.auth.admin_username)):"},{"line_number":350,"context_line":"            raise cls.skipException("},{"line_number":351,"context_line":"                \"Missing Admin credentials in configuration\")"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @classmethod"},{"line_number":354,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3da3e63b_4b754195","line":351,"range":{"start_line":347,"start_character":0,"end_line":351,"end_character":61},"updated":"2024-01-10 19:23:02.000000000","message":"we should not just check value set in conf instead we should check if those are valid admin creds. which is what is_admin_available, is_alt_available method checks.\n\nlike below and let\u0027s move this condition after L335 so that we will have all admin needed cases at same place. Also add below notes to know why we added this condition\n\n\n#NOTE: if force_tenant_isolation is set to true then we must have admin creds in #conf irespective of what creds provider method (dynamic or pre-provisioned) is #set.Even pre-provisioned creds file have admin creds, you must set the admin creds #in conf to run the test with force_tenant_isolation\u003dTrue  \n                            \nif (getattr(cls, \u0027force_tenant_isolation\u0027, False)            \n        try:\n            get_configured_admin_credentials(fill_in\u003dFalse,\n                                             identity_version\u003didentity_version)\n        except exceptions.InvalidConfiguration:\n            raise cls.skipException(\n                    \"Missing Identity Admin API credentials in configuration.\")","commit_id":"00250c8ae07af74402d2fd11cbcfa5e400e4f3bb"}]}
