)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"606dabfd380017612d1274bf0d68fb5486d2a23e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"96211ad7_e64066f8","updated":"2025-11-06 17:51:33.000000000","message":"Hmm, idk if I can rename this since I see callers from other repos.\n\nhttps://codesearch.opendev.org/?q\u003drole%3A%20run-tempest\u0026i\u003dnope\u0026literal\u003dnope\u0026files\u003d\u0026excludeFiles\u003d\u0026repos\u003d","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"f924dca1f871ca5b466632b64c6f558bb4f65576","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4b121dd0_080c7799","updated":"2026-01-30 21:20:04.000000000","message":"I wrote a small playbook to test the behaviour:\nhttps://gist.github.com/elfiesmelfie/e54ab878240e88cadbc9c48f76298007","commit_id":"5e1539544315372ceef0ca9763cf01e74ab2e1dd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2d3666485c8fd0b14d911eb506f10f8ae1213aae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6a65b498_40a185a2","updated":"2026-01-31 19:35:02.000000000","message":"teim-ci: manual","commit_id":"5e1539544315372ceef0ca9763cf01e74ab2e1dd"}],"roles/build-tempest-options/README.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f073ae5685ae9dc8eb38349bd8820682763fa214","unresolved":true,"context_lines":[{"line_number":37,"context_line":"   Pass a full path to the file."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. zuul:rolevar:: tempest_exclude_regex"},{"line_number":40,"context_line":"   :default: \u0027\u0027"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   A regular expression used to skip the tests."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e2f5fb65_b18b6997","line":40,"updated":"2025-11-06 18:05:16.000000000","message":"its ment to have a defautl already","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51601f9e22c34c5ec521ce6194c33faa6ea542d3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"   Pass a full path to the file."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. zuul:rolevar:: tempest_exclude_regex"},{"line_number":40,"context_line":"   :default: \u0027\u0027"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   A regular expression used to skip the tests."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"410aed9f_7908b718","line":40,"in_reply_to":"e2f5fb65_b18b6997","updated":"2026-01-30 11:43:19.000000000","message":"Done","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff325914bce843f98cda4298c0b7d374fc4a1661","unresolved":true,"context_lines":[{"line_number":68,"context_line":"   The target branch for the job. Used to determine which constraints"},{"line_number":69,"context_line":"   file to use."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. zuul:rolevar:: tempest_tox_environment"},{"line_number":72,"context_line":"   :default: {}"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   Environment variables to set for the tempest run."}],"source_content_type":"text/x-rst","patch_set":7,"id":"d81656a0_491c81c2","line":71,"in_reply_to":"e02b91d4_d8422527","updated":"2026-01-31 19:57:00.000000000","message":"so based on the name i would have assume this was actually the name of the tox environment to run. ilel what tox_envlist specifies.\n\n\nlooking at the usage its a set of environme vabel to exprot when invoking tox\nso i would name it  tempest_tox_env_vars","commit_id":"5e1539544315372ceef0ca9763cf01e74ab2e1dd"}],"roles/build-tempest-options/defaults/main.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f073ae5685ae9dc8eb38349bd8820682763fa214","unresolved":true,"context_lines":[{"line_number":1,"context_line":"devstack_base_dir: /opt/stack"},{"line_number":2,"context_line":"tempest_test_regex: \u0027\u0027"},{"line_number":3,"context_line":"tempest_test_timeout: \u0027\u0027"},{"line_number":4,"context_line":"stable_constraints_file: \"{{ devstack_base_dir }}/requirements/upper-constraints.txt\""},{"line_number":5,"context_line":"target_branch: \"{{ zuul.branch }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"03a33699_698261a9","line":2,"updated":"2025-11-06 18:05:16.000000000","message":"we shoudl probably also define a default for tempest_exclude_regex here\n\n```tempest_exclude_regex: \u0027\u0027```","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51601f9e22c34c5ec521ce6194c33faa6ea542d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"devstack_base_dir: /opt/stack"},{"line_number":2,"context_line":"tempest_test_regex: \u0027\u0027"},{"line_number":3,"context_line":"tempest_test_timeout: \u0027\u0027"},{"line_number":4,"context_line":"stable_constraints_file: \"{{ devstack_base_dir }}/requirements/upper-constraints.txt\""},{"line_number":5,"context_line":"target_branch: \"{{ zuul.branch }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5a4db4c3_4c8b792c","line":2,"in_reply_to":"03a33699_698261a9","updated":"2026-01-30 11:43:19.000000000","message":"Done","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"}],"roles/build-tempest-options/tasks/main.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f073ae5685ae9dc8eb38349bd8820682763fa214","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  set_fact:"},{"line_number":66,"context_line":"    tempest_test_exclude_regex: \"--exclude-regex\u003d{{tempest_exclude_regex|quote}}\""},{"line_number":67,"context_line":"  when:"},{"line_number":68,"context_line":"    - tempest_exclude_regex is defined"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"30ed3d8a_364ea872","line":68,"updated":"2025-11-06 18:05:16.000000000","message":"altuhg we may or may not need to change this test if we default it to \u0027\u0027\n\nyou can just do !\u003d \u0027\u0027 like line 48","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51601f9e22c34c5ec521ce6194c33faa6ea542d3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  set_fact:"},{"line_number":66,"context_line":"    tempest_test_exclude_regex: \"--exclude-regex\u003d{{tempest_exclude_regex|quote}}\""},{"line_number":67,"context_line":"  when:"},{"line_number":68,"context_line":"    - tempest_exclude_regex is defined"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ec7d0032_e399042c","line":68,"in_reply_to":"30ed3d8a_364ea872","updated":"2026-01-30 11:43:19.000000000","message":"Done","commit_id":"cb7c9982fc4ad10890e0ec4ed6a7c2c3bf6720ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff325914bce843f98cda4298c0b7d374fc4a1661","unresolved":true,"context_lines":[{"line_number":49,"context_line":"  set_fact:"},{"line_number":50,"context_line":"    tempest_test_regex_option: \"{{ tempest_test_regex | quote if tempest_test_regex else \u0027\u0027 }}\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- block:"},{"line_number":53,"context_line":"    - name: Check for test exclude list file"},{"line_number":54,"context_line":"      stat:"},{"line_number":55,"context_line":"        path: \"{{ tempest_test_exclude_list }}\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3ba18527_d9050165","line":52,"in_reply_to":"0e1b30c0_c31c325c","updated":"2026-01-31 19:57:00.000000000","message":"\u003e Consider adding validation for exclude_list_option handling\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.7\n\u003e \n\u003e **Benefit**: Would provide clearer error handling when exclude list file doesn\u0027t exist\n\u003e \n\u003e **Recommendation**:\n\u003e Add a warning task when tempest_test_exclude_list is specified but the file doesn\u0027t exist to help users debug configuration issues\n\n\nwe could log a message but it actully bight be better to use an assert and make the playbook and as a reuslt the ci job fail.\n\nif the ci job specifies an exclue list and it does nto exits the job idally woudl not silently continue.","commit_id":"5e1539544315372ceef0ca9763cf01e74ab2e1dd"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"553e2747abccd0247f8bfc2b7da8d7eeef74a39e","unresolved":true,"context_lines":[{"line_number":73,"context_line":"      - \"{{ exclude_list_option | default(\u0027\u0027) }}\""},{"line_number":74,"context_line":"      - \"{{ tempest_concurrency_option }}\""},{"line_number":75,"context_line":"      - \"{{ tempest_exclude_regex_option }}\""},{"line_number":76,"context_line":"    tempest_opts: \"{{ _tempest_opts_list | reject(\u0027equalto\u0027, \u0027\u0027) | list | join(\u0027 \u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"528b4ceb_b6ec9aa0","line":76,"updated":"2026-01-30 21:14:47.000000000","message":"If you use set_fact, you cannot reference a newly-set fact in the same task.\n\nYou\u0027ll need to split this task into two separate tasks. \n\ni.e. \n\n```\n- name: Build temp opts list\n  set_fact:\n    _tempest_opts_list:\n      - \"{{ tempest_test_regex_option }}\"\n      - \"{{ exclude_list_option | default(\u0027\u0027) }}\"\n      - \"{{ tempest_concurrency_option }}\"\n      - \"{{ tempest_exclude_regex_option }}\"\n- name: Build combined options\n  set_fact:\n    tempest_opts: \"{{ _tempest_opts_list | reject(\u0027equalto\u0027, \u0027\u0027) | list | join(\u0027 \u0027) }}\"\n```\n\nDo you use _tempest_opts_list anywhere else?\nIf not, you can use the vars option and scope the vars to this task only:\n\n```\n- name: Build combined options\n  vars:\n    _tempest_opts_list:\n      - \"{{ tempest_test_regex_option }}\"\n      - \"{{ exclude_list_option | default(\u0027\u0027) }}\"\n      - \"{{ tempest_concurrency_option }}\"\n      - \"{{ tempest_exclude_regex_option }}\"\n  set_fact:\n    tempest_opts: \"{{ _tempest_opts_list | reject(\u0027equalto\u0027, \u0027\u0027) | list | join(\u0027 \u0027) }}\"\n```","commit_id":"5e1539544315372ceef0ca9763cf01e74ab2e1dd"}]}
