)]}'
{"zuul.d/playbooks/run.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e6b60ac100e2021bd54c4ff057814696219bbd7d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  tasks:"},{"line_number":9,"context_line":"    - name: Add services based on test repo name"},{"line_number":10,"context_line":"      set_fact:"},{"line_number":11,"context_line":"        scenario: \"{{ scenario ~ \u0027_\u0027 ~ scenario_map[zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\1\u0027)] }}\""},{"line_number":12,"context_line":"      when:"},{"line_number":13,"context_line":"        - zuul.project.short_name is match(\"^openstack-ansible-os_(.*)$\")"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_dcf1316d","line":11,"range":{"start_line":11,"start_character":7,"end_line":11,"end_character":91},"updated":"2019-05-10 15:37:17.000000000","message":"Can we do this in multiple tasks?\nElse it will be barely readable, because you need to handle cases where the project is not in the scenario map.\n```\nset_fact:\n  project_to_test: \"{{ zuul.project.short_name.replace(\u0027openstack-ansible-os_\u0027,\u0027\u0027) \n | default(openstack-ansible) }}\"\n\n\nset_fact:\n  extended_scenario: \"{{ scenario ~ \u0027_\u0027.join(scenario_map[project_to_test]) }}\"\nwhen: project_to_test in scenario_map.\n```\nor something like that","commit_id":"c7485fabc873d6633399a253defb99531971f7ba"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"0a94806d15f0e58f37354c43994f3b71f588af08","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  tasks:"},{"line_number":9,"context_line":"    - name: Add services based on test repo name"},{"line_number":10,"context_line":"      set_fact:"},{"line_number":11,"context_line":"        scenario: \"{{ scenario ~ \u0027_\u0027 ~ scenario_map[zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\1\u0027)] }}\""},{"line_number":12,"context_line":"      when:"},{"line_number":13,"context_line":"        - zuul.project.short_name is match(\"^openstack-ansible-os_(.*)$\")"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_bc48fd86","line":11,"range":{"start_line":11,"start_character":7,"end_line":11,"end_character":91},"in_reply_to":"dfbec78f_dcf1316d","updated":"2019-05-10 15:43:09.000000000","message":"I\u0027ve done something to handle that in a subsequent patch set.","commit_id":"c7485fabc873d6633399a253defb99531971f7ba"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"5a4ed17d20a27e83bb1c92381c3e3cfb85f4e753","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      set_fact:"},{"line_number":11,"context_line":"        scenario: \"{{ scenario ~ \u0027_\u0027 ~ scenario_map[zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\1\u0027)] }}\""},{"line_number":12,"context_line":"      when:"},{"line_number":13,"context_line":"        - zuul.project.short_name is match(\"^openstack-ansible-os_(.*)$\")"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    - name: Run gate-check-commit.sh script"},{"line_number":16,"context_line":"      become: yes"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_dc15b19d","line":13,"updated":"2019-05-10 15:33:50.000000000","message":"Maybe good to add\n`- scenario is not defined` here\n\nmakes this run.yml more consumable if we create child jobs that have ie.\n\n- job:\n     name: whatever\n     run: zuul.d/playbooks/run.yml\n     vars:\n       scenario: i dont want your dynamic scenario just run what i tell you","commit_id":"c7485fabc873d6633399a253defb99531971f7ba"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"580168c79adf92e1d980f5aeb58ea40f0e9083c9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      set_fact:"},{"line_number":11,"context_line":"        scenario: \"{{ scenario ~ \u0027_\u0027 ~ scenario_map[zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\1\u0027)] }}\""},{"line_number":12,"context_line":"      when:"},{"line_number":13,"context_line":"        - zuul.project.short_name is match(\"^openstack-ansible-os_(.*)$\")"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    - name: Run gate-check-commit.sh script"},{"line_number":16,"context_line":"      become: yes"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_fc68b51d","line":13,"in_reply_to":"dfbec78f_dc15b19d","updated":"2019-05-10 15:35:33.000000000","message":"And actually you might be able to get rid of scenario map that way and define those mappings in the role? I don\u0027t know if thats better but its a thought.","commit_id":"c7485fabc873d6633399a253defb99531971f7ba"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"ca0c5528ef5f4e630e6098d6e9749e2155bc8cb0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      set_fact:"},{"line_number":11,"context_line":"        scenario: \"{{ scenario ~ \u0027_\u0027 ~ scenario_map[zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\1\u0027)] }}\""},{"line_number":12,"context_line":"      when:"},{"line_number":13,"context_line":"        - zuul.project.short_name is match(\"^openstack-ansible-os_(.*)$\")"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    - name: Run gate-check-commit.sh script"},{"line_number":16,"context_line":"      become: yes"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_dc4db19a","line":13,"in_reply_to":"dfbec78f_fc68b51d","updated":"2019-05-10 15:42:34.000000000","message":"Well, the idea here is to be dynamic without having to change things in every repo... so I\u0027ve added the ability to disable the dynamic scenario in the job. Will that do?","commit_id":"c7485fabc873d6633399a253defb99531971f7ba"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"b7be6617542a9290d29ea345c015bc3e5de2cba5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"          set_fact:"},{"line_number":16,"context_line":"            service_name: \"{{ zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\\\1\u0027) }}\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        - name: Set scenario_suffix (mapped)"},{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] }}\""},{"line_number":21,"context_line":"          when:"},{"line_number":22,"context_line":"            - scenario_map[service_name] is defined"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        - name: Set scenario suffix (unmapped)"},{"line_number":25,"context_line":"          set_fact:"},{"line_number":26,"context_line":"            scenario_suffix: \"{{ service_name }}\""},{"line_number":27,"context_line":"          when:"},{"line_number":28,"context_line":"            - scenario_map[service_name] is not defined"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        - name: Add services based on test repo name"},{"line_number":31,"context_line":"          set_fact:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"dfbec78f_6d964d4f","line":28,"range":{"start_line":18,"start_character":0,"end_line":28,"end_character":55},"updated":"2019-05-10 17:41:27.000000000","message":"A little more concise option maybe:\n\n        - name: Set scenario_suffix\n          set_fact:\n            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name) }}\"","commit_id":"125cdf99dc92da42a67fab5b0189d0c59ef9b714"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"e302e82be1b76546e9ff051484e78794c7682c6d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"          set_fact:"},{"line_number":16,"context_line":"            service_name: \"{{ zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\\\1\u0027) }}\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        - name: Set scenario_suffix (mapped)"},{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] }}\""},{"line_number":21,"context_line":"          when:"},{"line_number":22,"context_line":"            - scenario_map[service_name] is defined"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        - name: Set scenario suffix (unmapped)"},{"line_number":25,"context_line":"          set_fact:"},{"line_number":26,"context_line":"            scenario_suffix: \"{{ service_name }}\""},{"line_number":27,"context_line":"          when:"},{"line_number":28,"context_line":"            - scenario_map[service_name] is not defined"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        - name: Add services based on test repo name"},{"line_number":31,"context_line":"          set_fact:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"dfbec78f_4d54a921","line":28,"range":{"start_line":18,"start_character":0,"end_line":28,"end_character":55},"in_reply_to":"dfbec78f_4d1ca9c0","updated":"2019-05-10 18:05:15.000000000","message":"Done","commit_id":"125cdf99dc92da42a67fab5b0189d0c59ef9b714"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"51b296187f0b12779ae1bc763c4d1db7903ee602","unresolved":false,"context_lines":[{"line_number":15,"context_line":"          set_fact:"},{"line_number":16,"context_line":"            service_name: \"{{ zuul.project.short_name | regex_replace(\u0027^openstack-ansible-os_(.*)$\u0027, \u0027\\\\1\u0027) }}\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        - name: Set scenario_suffix (mapped)"},{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] }}\""},{"line_number":21,"context_line":"          when:"},{"line_number":22,"context_line":"            - scenario_map[service_name] is defined"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        - name: Set scenario suffix (unmapped)"},{"line_number":25,"context_line":"          set_fact:"},{"line_number":26,"context_line":"            scenario_suffix: \"{{ service_name }}\""},{"line_number":27,"context_line":"          when:"},{"line_number":28,"context_line":"            - scenario_map[service_name] is not defined"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        - name: Add services based on test repo name"},{"line_number":31,"context_line":"          set_fact:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"dfbec78f_4d1ca9c0","line":28,"range":{"start_line":18,"start_character":0,"end_line":28,"end_character":55},"in_reply_to":"dfbec78f_6d964d4f","updated":"2019-05-10 17:55:23.000000000","message":"I like this cleaner alternative","commit_id":"125cdf99dc92da42a67fab5b0189d0c59ef9b714"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"00617be89e6a4125805c2b9b412143a9dbb136d7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name} }}}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        - name: Remove \u0027metal\u0027 key word if service_name \u003d\u003d \u0027horizon\u0027"},{"line_number":23,"context_line":"          set_fact:"},{"line_number":24,"context_line":"            scenario_suffix: \"{{ scenario_suffix | regex_replace(\u0027_metal\u0027, \u0027\u0027) }}\""},{"line_number":25,"context_line":"          when:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dfbec78f_0d38f1ec","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":68},"updated":"2019-05-10 18:05:22.000000000","message":"Would be good to add a comment about why this is here. I personally don\u0027t know without digging :)","commit_id":"9c62214fb556638015e1891d991355bcbaf58ddd"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"d03f009ac25ec0998e8ec72d9f455965e8babc20","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name} }}}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        - name: Remove \u0027metal\u0027 key word if service_name \u003d\u003d \u0027horizon\u0027"},{"line_number":23,"context_line":"          set_fact:"},{"line_number":24,"context_line":"            scenario_suffix: \"{{ scenario_suffix | regex_replace(\u0027_metal\u0027, \u0027\u0027) }}\""},{"line_number":25,"context_line":"          when:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dfbec78f_2d2cd5aa","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":68},"in_reply_to":"dfbec78f_0d38f1ec","updated":"2019-05-10 18:07:21.000000000","message":"Also I don\u0027t understand how this can ever run. Above this, you would set scenario_suffix \u003d \u0027lxc\u0027 when the service_name is horizon.\n\nHere you are replacing something in the scenario suffix that will never be there, right?","commit_id":"9c62214fb556638015e1891d991355bcbaf58ddd"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7b52c5f6e9f83f970ad04e7a41328cc2e1226a19","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name} }}}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        - name: Remove \u0027metal\u0027 key word if service_name \u003d\u003d \u0027horizon\u0027"},{"line_number":23,"context_line":"          set_fact:"},{"line_number":24,"context_line":"            scenario_suffix: \"{{ scenario_suffix | regex_replace(\u0027_metal\u0027, \u0027\u0027) }}\""},{"line_number":25,"context_line":"          when:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dfbec78f_88112f55","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":68},"in_reply_to":"dfbec78f_2d2cd5aa","updated":"2019-05-10 18:08:41.000000000","message":"We\u0027re using a default scenario (defined in the job) named \u0027aio_metal\u0027. The suffix addition above sets it to \u0027aio_metal_lxc\u0027, so we need to remove \u0027_metal\u0027 from the string.","commit_id":"9c62214fb556638015e1891d991355bcbaf58ddd"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"0a84f97b3ecabb95609101606a89c917893a1f5c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name} }}}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        - name: Remove \u0027metal\u0027 key word if service_name \u003d\u003d \u0027horizon\u0027"},{"line_number":23,"context_line":"          set_fact:"},{"line_number":24,"context_line":"            scenario_suffix: \"{{ scenario_suffix | regex_replace(\u0027_metal\u0027, \u0027\u0027) }}\""},{"line_number":25,"context_line":"          when:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dfbec78f_88adafea","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":68},"in_reply_to":"dfbec78f_48457742","updated":"2019-05-10 18:12:13.000000000","message":"Oh bother, you\u0027re right. :/","commit_id":"9c62214fb556638015e1891d991355bcbaf58ddd"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"1f05eaba46efee826371f86dadb84588b1e69682","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name} }}}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        - name: Remove \u0027metal\u0027 key word if service_name \u003d\u003d \u0027horizon\u0027"},{"line_number":23,"context_line":"          set_fact:"},{"line_number":24,"context_line":"            scenario_suffix: \"{{ scenario_suffix | regex_replace(\u0027_metal\u0027, \u0027\u0027) }}\""},{"line_number":25,"context_line":"          when:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dfbec78f_48457742","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":68},"in_reply_to":"dfbec78f_88112f55","updated":"2019-05-10 18:10:49.000000000","message":"set_fact:\n            scenario_suffix: \"{{ scenario_map[service_name] }}\"\n\nsets scenario_suffix to \u0027lxc\u0027, not \u0027aio_metal_lxc\u0027 I think?","commit_id":"9c62214fb556638015e1891d991355bcbaf58ddd"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"a0ce625c4393776ba219432675bc9e11eb8e1f51","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name) }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        # Horizon\u0027s apache uses the same ip:port combinations as"},{"line_number":23,"context_line":"        # the repo server\u0027s nginx service. As such, we force the"},{"line_number":24,"context_line":"        # use of containers to ensure that they do not conflict."},{"line_number":25,"context_line":"        - name: Add services based on test repo name"},{"line_number":26,"context_line":"          set_fact:"},{"line_number":27,"context_line":"            scenario: \"{{ (service_name \u003d\u003d \u0027horizon\u0027) | ternary(scenario | regex_replace(\u0027_metal\u0027, \u0027\u0027), scenario) }}_{{ scenario_suffix }}\""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"dfbec78f_56c3d538","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":64},"updated":"2019-05-11 07:52:38.000000000","message":"If Horizon is not compatible with _metal jobs, can\u0027t we just not run jobs with metal scenarios in that role?","commit_id":"900376c5bf1d131b92531d5c287c8a78e5f3c370"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"2e5c2d784a6925fcd842a6a68223fc325819e144","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          set_fact:"},{"line_number":20,"context_line":"            scenario_suffix: \"{{ scenario_map[service_name] | default(service_name) }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        # Horizon\u0027s apache uses the same ip:port combinations as"},{"line_number":23,"context_line":"        # the repo server\u0027s nginx service. As such, we force the"},{"line_number":24,"context_line":"        # use of containers to ensure that they do not conflict."},{"line_number":25,"context_line":"        - name: Add services based on test repo name"},{"line_number":26,"context_line":"          set_fact:"},{"line_number":27,"context_line":"            scenario: \"{{ (service_name \u003d\u003d \u0027horizon\u0027) | ternary(scenario | regex_replace(\u0027_metal\u0027, \u0027\u0027), scenario) }}_{{ scenario_suffix }}\""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"dfbec78f_309d00bc","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":64},"in_reply_to":"dfbec78f_56c3d538","updated":"2019-05-12 10:03:05.000000000","message":"Probably, during moving everything to either nginx or apache (according to PTG agenda this was planned?), we can make them work together, by adding \"/dashboard\" (or whatever) for horizon url?\nAs for now we may go forward with this...","commit_id":"900376c5bf1d131b92531d5c287c8a78e5f3c370"}]}
