)]}'
{".zuul.yaml":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a20be18e8ca9e50e761959559338a94caf0f3448","unresolved":false,"context_lines":[{"line_number":124,"context_line":"      Tempest job for python-tempestconf on a devstack environment as the admin user."},{"line_number":125,"context_line":"    run: playbooks/python-tempestconf-tempest-devstack.yaml"},{"line_number":126,"context_line":"    vars:"},{"line_number":127,"context_line":"      aditional_tempestconf_params: \"identity.password secretadmin\""},{"line_number":128,"context_line":"      test_regex:"},{"line_number":129,"context_line":"        - \u0027heat_tempest_plugin\u0027"},{"line_number":130,"context_line":"        - \u0027designate_tempest_plugin\u0027"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"ff570b3c_6a8743b8","line":127,"range":{"start_line":127,"start_character":6,"end_line":127,"end_character":67},"updated":"2020-05-25 10:39:15.000000000","message":"maybe you could make this patch dependent on this one: https://review.opendev.org/#/c/729590/ \nso that you don\u0027t need to override the password.","commit_id":"f1f942ca011e236566d4890b582a150f626bd909"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"74e38225dd73a36d8d22dcf921c57fe813872194","unresolved":false,"context_lines":[{"line_number":124,"context_line":"      Tempest job for python-tempestconf on a devstack environment as the admin user."},{"line_number":125,"context_line":"    run: playbooks/python-tempestconf-tempest-devstack.yaml"},{"line_number":126,"context_line":"    vars:"},{"line_number":127,"context_line":"      aditional_tempestconf_params: \"identity.password secretadmin\""},{"line_number":128,"context_line":"      test_regex:"},{"line_number":129,"context_line":"        - \u0027heat_tempest_plugin\u0027"},{"line_number":130,"context_line":"        - \u0027designate_tempest_plugin\u0027"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ff570b3c_a5aa2c16","line":127,"range":{"start_line":127,"start_character":6,"end_line":127,"end_character":67},"updated":"2020-05-25 12:17:11.000000000","message":"this won\u0027t be needed now (as you made this patch dependent on the one which fixes the issue with the password of pre-created demo user)","commit_id":"acdffe30cd85287553d7ab93cd94cb8ce4c657be"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a8ccea12b095d4f1fff145fe12698b60d565c8f6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        - \u0027heat_tempest_plugin\u0027"},{"line_number":129,"context_line":"        - \u0027designate_tempest_plugin\u0027"},{"line_number":130,"context_line":"      black_regex:"},{"line_number":131,"context_line":"        # The following three tests are skipped because they require precreated network within the demo project."},{"line_number":132,"context_line":"        - \u0027heat_tempest_plugin.tests.functional.test_encrypted_parameter.EncryptedParametersTest.test_db_encryption\u0027"},{"line_number":133,"context_line":"        - \u0027heat_tempest_plugin.tests.functional.test_software_config.ParallelDeploymentsTest.test_deployments_metadata\u0027"},{"line_number":134,"context_line":"        - \u0027heat_tempest_plugin.tests.functional.test_software_config.ParallelDeploymentsTest.test_deployments_timeout_failed\u0027"},{"line_number":135,"context_line":"        - \u0027heat_tempest_plugin.tests.scenario.test_volumes.VolumeBackupRestoreIntegrationTest.test_cinder_volume_create_backup_restore\u0027"},{"line_number":136,"context_line":"        - \u0027heat_tempest_plugin.tests.scenario.test_server_software_config.SoftwareConfigIntegrationTest.test_server_software_config\u0027"},{"line_number":137,"context_line":"        - \u0027heat_tempest_plugin.tests.scenario.test_server_signal.ServerSignalIntegrationTest.test_server_signal_userdata_format_software_config\u0027"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"ff570b3c_6ee2a203","line":134,"range":{"start_line":131,"start_character":8,"end_line":134,"end_character":125},"updated":"2020-05-26 15:06:55.000000000","message":"seems like these tests are successfully executed with demo credentials when heat_plugin.fixed_network_name contains a name of the network created within demo user\u0027s project .. so IF we made tempestconf to create such a network as part of the plugin\u0027s configuration, we might be able to run these tests in the gates and we wouldn\u0027t need to skip them","commit_id":"7266da6ad102d452ca2eaf0b352e2e2526f2f9f5"}],"/COMMIT_MSG":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0cd69a5b0a8d957cc62d8e6700a30e484d03196","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The \u0027auth_version\u0027 is now set correctly in identity section in"},{"line_number":14,"context_line":"tempest.conf. This enables successful setting of attributes for"},{"line_number":15,"context_line":"heat plugin."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6d6f2247ecb13317767ebbf93a413bcaff386141"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f493fa4_e0cdce31","line":16,"updated":"2020-04-28 07:44:55.000000000","message":"Story: 2007464\nTask: 39151","commit_id":"92b3abf81765ab2411f3f942e349752fcace2e21"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"74e38225dd73a36d8d22dcf921c57fe813872194","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Lukas Piwowarski \u003clpiwowar@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-05-25 12:00:49 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Fix heat plugin support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"During the configuration of the heat plugin:"},{"line_number":10,"context_line":"- the \u0027auth_version\u0027 attribute was not set correctly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"ff570b3c_e561c413","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":5},"updated":"2020-05-25 12:17:11.000000000","message":"you can remove this","commit_id":"acdffe30cd85287553d7ab93cd94cb8ce4c657be"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"During the configuration of the heat plugin:"},{"line_number":10,"context_line":"- the \u0027auth_version\u0027 attribute was not set correctly,"},{"line_number":11,"context_line":"- the \u0027demo_tempestconf\u0027 user was not assigned the \u0027_member_\u0027 role,"},{"line_number":12,"context_line":"- a network within the demo project with a subnet was not"},{"line_number":13,"context_line":"  created."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff570b3c_eb116055","line":11,"range":{"start_line":11,"start_character":52,"end_line":11,"end_character":60},"updated":"2020-05-27 23:20:34.000000000","message":"member","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This was causing the heat plugin to fail."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The \u0027auth_version\u0027 is now set correctly, and the \u0027demo_tempestconf\u0027"},{"line_number":18,"context_line":"user is assigned the \u0027_member_\u0027 role when configuring the heat"},{"line_number":19,"context_line":"plugin. Also, a network within the demo project with a subnet"},{"line_number":20,"context_line":"is created."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff570b3c_2b1cf868","line":18,"range":{"start_line":18,"start_character":22,"end_line":18,"end_character":30},"updated":"2020-05-27 23:20:34.000000000","message":"member","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"}],"config_tempest/clients.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            **default_params)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        def create_neutron_client():"},{"line_number":172,"context_line":"            if self.networks is None:"},{"line_number":173,"context_line":"                self.networks \u003d networks_client.NetworksClient("},{"line_number":174,"context_line":"                    self.auth_provider,"},{"line_number":175,"context_line":"                    conf.get_defaulted(\u0027network\u0027, \u0027catalog_type\u0027),"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_501c7b76","line":172,"range":{"start_line":172,"start_character":12,"end_line":172,"end_character":37},"updated":"2020-05-27 23:20:34.000000000","message":"now when self.networks are set on line 159 (instead of previous None), it might change behavior of this condition. We should double check what create_neutron_client is supposed to do, when etc .. the only change between self.networks on line 159 and 173 is the endpoint_type argument on line 177 ...","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8cf1f203fe6109d94abc39f06c13a76137b51c11","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.subnets \u003d subnets_client.SubnetsClient("},{"line_number":166,"context_line":"            self.auth_provider,"},{"line_number":167,"context_line":"            conf.get_defaulted(\u0027network\u0027, \u0027catalog_type\u0027),"},{"line_number":168,"context_line":"            self.identity_region,"},{"line_number":169,"context_line":"            **default_params)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        def create_neutron_client():"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_a2d10dfe","line":168,"range":{"start_line":168,"start_character":32,"end_line":168,"end_character":33},"updated":"2020-06-01 15:54:30.000000000","message":"let\u0027s add here endpoint_type from line 177 and remove the whole create_neutron_client as we discussed","commit_id":"fd79b13e2d9dc5dadbf6d71de0aad20cb0cf79b1"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"3f94a82b51d19832d1f8bf60983299ac44525912","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        self.get_neutron_client \u003d create_neutron_client"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Set admin project id needed for keystone v3 tests."},{"line_number":185,"context_line":"        if creds.admin:"},{"line_number":186,"context_line":"            project \u003d self.projects.get_project_by_name(creds.project_name)"},{"line_number":187,"context_line":"            conf.set(\u0027auth\u0027, \u0027admin_project_id\u0027, project[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_7a0f9587","line":184,"range":{"start_line":184,"start_character":8,"end_line":184,"end_character":60},"updated":"2020-06-02 08:15:02.000000000","message":"you didn\u0027t have to delete the comment ;)","commit_id":"fd79b13e2d9dc5dadbf6d71de0aad20cb0cf79b1"}],"config_tempest/main.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"1372bbc80644dd967de50c025f41523f779cab3d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    for section, key, value in overrides:"},{"line_number":206,"context_line":"        conf.set(section, key, value, priority\u003dTrue)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    uri \u003d conf.get(\"identity\", \"uri\")"},{"line_number":209,"context_line":"    if \"v3\" in uri:"},{"line_number":210,"context_line":"        conf.set(\"identity\", \"uri_v3\", uri)"},{"line_number":211,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf51134e_fdbaffdb","line":208,"updated":"2020-06-16 12:36:44.000000000","message":"For future changes: maybe we should (if possible) move this entire section inside the keystone-specific file.","commit_id":"ce18faa92b16a6f7333e580dfd98ed2039b1a9b0"}],"config_tempest/services/identity.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0cd69a5b0a8d957cc62d8e6700a30e484d03196","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":118,"context_line":"        \"\"\"Set keystone feature flags based upon version ID.\"\"\""},{"line_number":119,"context_line":"        supported_versions \u003d self.get_versions()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        if supported_versions:"},{"line_number":122,"context_line":"            major, minor \u003d supported_versions[0].split(\u0027.\u0027)"},{"line_number":123,"context_line":"            conf.set(\u0027identity\u0027, \u0027auth_version\u0027, major)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_b57494d0","line":121,"range":{"start_line":120,"start_character":0,"end_line":121,"end_character":4},"updated":"2020-04-28 07:44:55.000000000","message":"maybe modify the test a little so it tests the new condition too:\nhttps://opendev.org/openstack/python-tempestconf/src/commit/c8a084937e5589b47e6463c9b180a3abf402e1bc/config_tempest/tests/services/test_identity.py#L87","commit_id":"92b3abf81765ab2411f3f942e349752fcace2e21"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c50aee20a50c428313692ba7228fa4582db8fb17","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        supported_versions \u003d self.get_versions()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        if supported_versions:"},{"line_number":122,"context_line":"            major, minor \u003d supported_versions[0].split(\u0027.\u0027)"},{"line_number":123,"context_line":"            conf.set(\u0027identity\u0027, \u0027auth_version\u0027, major)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        if len(supported_versions) \u003c\u003d 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_4910fd4e","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":59},"updated":"2020-04-29 09:42:34.000000000","message":"to be on the safe side here, check if there is always only one stable version present or can be more of them?","commit_id":"f1e9f1fc158192f8ebd56af8df52394cc9fc5129"}],"config_tempest/services/orchestration.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"2968bd08577fb8f261c51f0c6c639d4ce356a84b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            sec \u003d \u0027heat_plugin\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"            # Tempest doesn\u0027t differentiate between admin or demo creds anymore"},{"line_number":40,"context_line":"            conf.set(sec, \u0027username\u0027, conf.get(\u0027identity\u0027, \u0027username\u0027))"},{"line_number":41,"context_line":"            conf.set(sec, \u0027password\u0027, conf.get(\u0027identity\u0027, \u0027password\u0027))"},{"line_number":42,"context_line":"            conf.set(sec, \u0027admin_username\u0027, conf.get(\u0027auth\u0027, \u0027admin_username\u0027))"},{"line_number":43,"context_line":"            conf.set(sec, \u0027admin_password\u0027, conf.get(\u0027auth\u0027, \u0027admin_password\u0027))"},{"line_number":44,"context_line":"            conf.set(sec, \u0027project_name\u0027, conf.get(\u0027identity\u0027, \u0027project_name\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f493fa4_1a085f8f","line":41,"range":{"start_line":40,"start_character":12,"end_line":41,"end_character":71},"updated":"2020-05-07 07:43:48.000000000","message":"when i compare tempest.conf generated by *-admin-plugins job in a previous patchset, the only difference is this .. i wonder how this caused the failure. If it did work locally, maybe there is something else we need to set in case of running in gates? but what and why :/ \n\nfailed output:\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_e8d/722294/4/check/python-tempestconf-tempest-devstack-admin-plugins/e8d07e6/job-output.txt\n\ntempest.conf generated:\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_e8d/722294/4/check/python-tempestconf-tempest-devstack-admin-plugins/e8d07e6/controller/logs/tempest_conf.txt","commit_id":"581dffb9cdcece2493b8e041a3301e10cd1227b7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"914b206f38fed8b881b99f5ff8fd95bfb2a88fb6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            sec \u003d \u0027heat_plugin\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"            # Tempest doesn\u0027t differentiate between admin or demo creds anymore"},{"line_number":40,"context_line":"            conf.set(sec, \u0027username\u0027, conf.get(\u0027identity\u0027, \u0027username\u0027))"},{"line_number":41,"context_line":"            conf.set(sec, \u0027password\u0027, conf.get(\u0027identity\u0027, \u0027password\u0027))"},{"line_number":42,"context_line":"            conf.set(sec, \u0027admin_username\u0027, conf.get(\u0027auth\u0027, \u0027admin_username\u0027))"},{"line_number":43,"context_line":"            conf.set(sec, \u0027admin_password\u0027, conf.get(\u0027auth\u0027, \u0027admin_password\u0027))"},{"line_number":44,"context_line":"            conf.set(sec, \u0027project_name\u0027, conf.get(\u0027identity\u0027, \u0027project_name\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_3313df5e","line":41,"range":{"start_line":40,"start_character":12,"end_line":41,"end_character":71},"in_reply_to":"1f493fa4_1a085f8f","updated":"2020-05-13 11:26:09.000000000","message":"So the problem here is a wrong demo user password, see this bug: https://storyboard.openstack.org/#!/story/2007665\n\nThe job uses devstack which pre-creates demo user with secretadmin password and not the default one python-tempestconf sets (secrete) ... \n\nif you set aditional_tempestconf_params to \u0027identity.password secretadmin\u0027 in the python-tempestconf-tempest-devstack-admin-plugins job definition in .zuul.yaml file, it should solve the problem","commit_id":"581dffb9cdcece2493b8e041a3301e10cd1227b7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"2968bd08577fb8f261c51f0c6c639d4ce356a84b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # is a general case"},{"line_number":64,"context_line":"            conf.set(sec, \u0027disable_ssl_certificate_validation\u0027, \u0027True\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            users \u003d Users(self.client[\u0027projects\u0027], self.client[\u0027roles\u0027],"},{"line_number":67,"context_line":"                          self.client[\u0027users\u0027], conf)"},{"line_number":68,"context_line":"            users.give_role_to_user(\"demo\", \"member\")"},{"line_number":69,"context_line":"        except configparser.NoOptionError:"},{"line_number":70,"context_line":"            LOG.warning(\"Be aware that an option required for \""},{"line_number":71,"context_line":"                        \"heat_tempest_plugin cannot be set!\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f493fa4_fac81375","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":53},"updated":"2020-05-07 07:43:48.000000000","message":"this cannot be executed all the time, check gates - python-tempestconf-tempest-devstack-demo -\u003e it failed because tempestocnf is ran there with --no-admin argument and this is an operation, which requires admin access.\n\nhmm, but in this scope, we probably don\u0027t know what arguments the tempestconf is executed with , i\u0027m afraid this code will have to be moved somewhere else (to the scope where we can tell if we have admin access or not)\n\n\nTraceback:\n2020-05-06 14:23:40.544332 | controller | 2020-05-06 14:23:40.544 16647 INFO tempest.lib.common.rest_client [req-61db888d-7063-4716-b407-10bd0d00dd06 ] Request (main): 403 GET https://10.176.192.98/identity/v3/projects 0.051s\u001b[00m\n2020-05-06 14:23:40.546863 | controller | 2020-05-06 14:23:40.544 16647 CRITICAL tempest [-] Unhandled error: tempest.lib.exceptions.Forbidden: Forbidden\n2020-05-06 14:23:40.546895 | controller | Details: {\u0027code\u0027: 403, \u0027message\u0027: \u0027You are not authorized to perform the requested action: identity:list_projects.\u0027, \u0027title\u0027: \u0027Forbidden\u0027}\n2020-05-06 14:23:40.546918 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest Traceback (most recent call last):\n2020-05-06 14:23:40.546938 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/bin/discover-tempest-config\", line 8, in \u003cmodule\u003e\n2020-05-06 14:23:40.546957 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     sys.exit(main())\n2020-05-06 14:23:40.546977 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/main.py\", line 604, in main\n2020-05-06 14:23:40.546997 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     verbose\u003dargs.verbose\n2020-05-06 14:23:40.547016 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/main.py\", line 523, in config_tempest\n2020-05-06 14:23:40.547172 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     services \u003d Services(clients, conf, credentials)\n2020-05-06 14:23:40.547193 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/services/services.py\", line 42, in __init__\n2020-05-06 14:23:40.547213 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     self.discover()\n2020-05-06 14:23:40.547233 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/services/services.py\", line 122, in discover\n2020-05-06 14:23:40.547392 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     service.set_default_tempest_options(self._conf)\n2020-05-06 14:23:40.547415 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/services/orchestration.py\", line 68, in set_default_tempest_options\n2020-05-06 14:23:40.547446 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     users.give_role_to_user(\"demo\", \"member\")\n2020-05-06 14:23:40.547467 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/users.py\", line 60, in give_role_to_user\n2020-05-06 14:23:40.547487 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     proj_id \u003d self.projects_client.get_project_by_name(project_name)[\u0027id\u0027]\n2020-05-06 14:23:40.547506 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/config_tempest/clients.py\", line 61, in get_project_by_name\n2020-05-06 14:23:40.547525 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     projects \u003d self.client.list_projects()[\u0027projects\u0027]\n2020-05-06 14:23:40.547544 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/tempest/lib/services/identity/v3/projects_client.py\", line 45, in list_projects\n2020-05-06 14:23:40.547563 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     resp, body \u003d self.get(url)\n2020-05-06 14:23:40.547582 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/tempest/lib/common/rest_client.py\", line 298, in get\n2020-05-06 14:23:40.547601 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     return self.request(\u0027GET\u0027, url, extra_headers, headers)\n2020-05-06 14:23:40.547633 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/tempest/lib/common/rest_client.py\", line 687, in request\n2020-05-06 14:23:40.547655 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     self._error_checker(resp, resp_body)\n2020-05-06 14:23:40.547675 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest   File \"/home/zuul/.virtualenvs/.tempestconf/lib/python3.6/site-packages/tempest/lib/common/rest_client.py\", line 788, in _error_checker\n2020-05-06 14:23:40.547694 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest     raise exceptions.Forbidden(resp_body, resp\u003dresp)\n2020-05-06 14:23:40.547713 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest tempest.lib.exceptions.Forbidden: Forbidden\n2020-05-06 14:23:40.547741 | controller | 2020-05-06 14:23:40.544 16647 ERROR tempest Details: {\u0027code\u0027: 403, \u0027message\u0027: \u0027You are not authorized to perform the requested action: identity:list_projects.\u0027, \u0027title\u0027: \u0027Forbidden\u0027}","commit_id":"581dffb9cdcece2493b8e041a3301e10cd1227b7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0d4e2cbb03c3f34d8fbf28e3e1512498182cc290","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            uri_v3 \u003d conf.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":38,"context_line":"            sec \u003d \u0027heat_plugin\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"            # Tempest doesn\u0027t differentiate between admin or demo creds anymore"},{"line_number":41,"context_line":"            conf.set(sec, \u0027username\u0027, conf.get(\u0027identity\u0027, \u0027username\u0027))"},{"line_number":42,"context_line":"            conf.set(sec, \u0027password\u0027, conf.get(\u0027identity\u0027, \u0027password\u0027))"},{"line_number":43,"context_line":"            conf.set(sec, \u0027admin_username\u0027, conf.get(\u0027auth\u0027, \u0027admin_username\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_09fbb946","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":79},"updated":"2020-05-19 12:21:05.000000000","message":"this comment will not longer be needed","commit_id":"cccdd733d9c8a3e7ebe2d2cc133856caf4f4043f"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0d4e2cbb03c3f34d8fbf28e3e1512498182cc290","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            conf.set(sec, \u0027project_domain_name\u0027, domain_name)"},{"line_number":57,"context_line":"            conf.set(sec, \u0027user_domain_name\u0027, domain_name)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"            conf.set(sec, \u0027image_ssh_user\u0027, \u0027root\u0027)"},{"line_number":60,"context_line":"            conf.set(sec, \u0027network_for_ssh\u0027, \u0027public\u0027)"},{"line_number":61,"context_line":"            conf.set(sec, \u0027fixed_network_name\u0027, \u0027public\u0027)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_291afdca","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":51},"updated":"2020-05-19 12:21:05.000000000","message":"delete this, I can\u0027t find it in https://github.com/openstack/heat-tempest-plugin/blob/master/heat_tempest_plugin/config.py  so it\u0027s not a heat-tempest-plugin config (anymore)","commit_id":"cccdd733d9c8a3e7ebe2d2cc133856caf4f4043f"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0d4e2cbb03c3f34d8fbf28e3e1512498182cc290","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            conf.set(sec, \u0027user_domain_name\u0027, domain_name)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"            conf.set(sec, \u0027image_ssh_user\u0027, \u0027root\u0027)"},{"line_number":60,"context_line":"            conf.set(sec, \u0027network_for_ssh\u0027, \u0027public\u0027)"},{"line_number":61,"context_line":"            conf.set(sec, \u0027fixed_network_name\u0027, \u0027public\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            # should be set to True if using self-signed SSL certificates which"},{"line_number":64,"context_line":"            # is a general case"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_34907bed","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":57},"updated":"2020-05-19 12:21:05.000000000","message":"it would be better not to hardcode public here, could you use here a value from conf.get(\u0027network\u0027, \u0027floating_network_name\u0027)","commit_id":"cccdd733d9c8a3e7ebe2d2cc133856caf4f4043f"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f3a2f7d8b0c74f09e9ea805c89bb02a4f5262f85","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            conf.set(sec, \u0027password\u0027, conf.get(\u0027identity\u0027, \u0027password\u0027))"},{"line_number":42,"context_line":"            conf.set(sec, \u0027admin_username\u0027, conf.get(\u0027auth\u0027, \u0027admin_username\u0027))"},{"line_number":43,"context_line":"            conf.set(sec, \u0027admin_password\u0027, conf.get(\u0027auth\u0027, \u0027admin_password\u0027))"},{"line_number":44,"context_line":"            conf.set(sec, \u0027project_name\u0027, conf.get(\u0027identity\u0027, \u0027project_name\u0027))"},{"line_number":45,"context_line":"            conf.set(sec, \u0027region\u0027, conf.get(\u0027identity\u0027, \u0027region\u0027))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"            v \u003d \u00273\u0027 if conf.get(\u0027identity\u0027, \u0027auth_version\u0027) \u003d\u003d \u0027v3\u0027 else \u00272\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff570b3c_9f349be0","line":44,"updated":"2020-05-25 08:50:46.000000000","message":"add please also admin_project_name:\nconf.set(sec, \u0027project_name\u0027, conf.get(\u0027auth\u0027, \u0027admin_project_name\u0027))","commit_id":"7186ad903337a057844c8f150f19ab9e6fb87d32"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a8ccea12b095d4f1fff145fe12698b60d565c8f6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            users \u003d Users(self.client[\u0027projects\u0027], self.client[\u0027roles\u0027],"},{"line_number":69,"context_line":"                          self.client[\u0027users\u0027], conf)"},{"line_number":70,"context_line":"            users.give_role_to_user(\"demo\", \"member\")"},{"line_number":71,"context_line":"        except exceptions.Forbidden:"},{"line_number":72,"context_line":"            LOG.warning(\"Could not assign role \u0027member\u0027 to user \u0027demo\u0027!\")"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ff570b3c_8ef736d5","line":70,"range":{"start_line":70,"start_character":37,"end_line":70,"end_character":41},"updated":"2020-05-26 15:06:55.000000000","message":"now it should be \u0027demo_tempestconf\u0027 .. maybe we could generalize it a bit and use conf.get(\u0027identity\u0027, \u0027username\u0027)","commit_id":"7266da6ad102d452ca2eaf0b352e2e2526f2f9f5"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":34,"context_line":"        try:"},{"line_number":35,"context_line":"            uri \u003d conf.get(\u0027identity\u0027, \u0027uri\u0027)"},{"line_number":36,"context_line":"            uri_v3 \u003d conf.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":37,"context_line":"            sec \u003d \u0027heat_plugin\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"            conf.set(sec, \u0027username\u0027, conf.get(\u0027identity\u0027, \u0027username\u0027))"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_107b23be","line":36,"range":{"start_line":35,"start_character":12,"end_line":36,"end_character":51},"updated":"2020-05-27 23:20:34.000000000","message":"we could get rid of these 2 variables and use directly conf.get(.* statements on lines 50 and 52","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                            if network[\u0027name\u0027] \u003d\u003d heat_network_name]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            if not heat_network:"},{"line_number":81,"context_line":"                project_id \u003d projects_client.get_project_by_name(\"demo\")[\u0027id\u0027]"},{"line_number":82,"context_line":"                heat_network \u003d networks_client.create_network("},{"line_number":83,"context_line":"                    name\u003dheat_network_name,"},{"line_number":84,"context_line":"                    project_id\u003dproject_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_50f2bb70","line":81,"range":{"start_line":81,"start_character":66,"end_line":81,"end_character":70},"updated":"2020-05-27 23:20:34.000000000","message":"let\u0027s use identity.project_name value here in case a user overrides the project, otherwise the override won\u0027t reflect here which may cause problems","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"            conf.set(sec, \u0027fixed_network_name\u0027, heat_network_name)"},{"line_number":93,"context_line":"        except Exception:"},{"line_number":94,"context_line":"            LOG.warning(\"Could not create network within the demo project \""},{"line_number":95,"context_line":"                        \"needed by heat tempest plugin!\")"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_70941fe9","line":94,"range":{"start_line":94,"start_character":61,"end_line":94,"end_character":65},"updated":"2020-05-27 23:20:34.000000000","message":"identity.project_name","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            users \u003d Users(projects_client, roles_client, users_client, conf)"},{"line_number":99,"context_line":"            users.give_role_to_user(\"demo_tempestconf\", \"member\")"},{"line_number":100,"context_line":"        except Exception:"},{"line_number":101,"context_line":"            LOG.warning(\"Could not assign role \u0027member\u0027 to user \u0027demo\u0027!\")"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_f002ef3d","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":53},"updated":"2020-05-27 23:20:34.000000000","message":"the same reason as above, overrides, let\u0027s use identity.username value here","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"346a8e7647ae905b1cfbac551a1ce20122a5e2bc","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            users \u003d Users(projects_client, roles_client, users_client, conf)"},{"line_number":99,"context_line":"            users.give_role_to_user(\"demo_tempestconf\", \"member\")"},{"line_number":100,"context_line":"        except Exception:"},{"line_number":101,"context_line":"            LOG.warning(\"Could not assign role \u0027member\u0027 to user \u0027demo\u0027!\")"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def post_configuration(self, conf, is_service):"},{"line_number":104,"context_line":"        if conf.has_section(\u0027compute\u0027):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_d0fd2b3c","line":101,"range":{"start_line":101,"start_character":65,"end_line":101,"end_character":69},"updated":"2020-05-27 23:20:34.000000000","message":"identity.username as above","commit_id":"3f9376562f13b1e9c75e5f9943d56182aff90a9a"}]}
