)]}'
{"playbooks/ironic-python-agent-build-image/post.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"dba30054f84451545268a3a5f91cc1b29901c3d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- hosts: all"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  vars:"},{"line_number":4,"context_line":"    ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"    ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  tasks:"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_2ba48fa2","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":98},"updated":"2019-09-03 12:14:29.000000000","message":"You could use job vars to keep this DRY.","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"085de59087bc56b032a7ae05ea74b8dbf9fc471f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- hosts: all"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  vars:"},{"line_number":4,"context_line":"    ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"    ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  tasks:"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_57d64cc5","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":98},"in_reply_to":"7faddb67_2ba48fa2","updated":"2019-09-03 16:04:23.000000000","message":"Do we have substitutions for job vars? I can try","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"89e32e1310b9feb6bb84ec4dd856a75d7dfcecea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- hosts: all"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  vars:"},{"line_number":4,"context_line":"    ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"    ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  tasks:"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_e2653446","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":98},"in_reply_to":"7faddb67_57d64cc5","updated":"2019-09-03 16:07:12.000000000","message":"Yes, works nicely: https://opendev.org/x/kayobe/src/branch/master/zuul.d/jobs.yaml#L77","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"}],"playbooks/ironic-python-agent-build-image/run.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"dba30054f84451545268a3a5f91cc1b29901c3d5","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        path: \u0027{{ ipa_tar_dir }}\u0027"},{"line_number":17,"context_line":"        state: directory"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - import_role:"},{"line_number":20,"context_line":"        name: ipa-build-tinyipa-image"},{"line_number":21,"context_line":"      when: image_type \u003d\u003d \u0027tinyipa\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    - import_role:"},{"line_number":24,"context_line":"        name: ipa-build-dib-image"},{"line_number":25,"context_line":"      when: image_type \u003d\u003d \u0027dib\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_2beb2fa4","line":25,"range":{"start_line":19,"start_character":0,"end_line":25,"end_character":31},"updated":"2019-09-03 12:14:29.000000000","message":"Could do:\n\n    - include_role:\n        name: ipa-build-{{ image_type }}-image\n\nBenefit is you won\u0027t see skipped tasks due to dynamic role include.","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"085de59087bc56b032a7ae05ea74b8dbf9fc471f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        path: \u0027{{ ipa_tar_dir }}\u0027"},{"line_number":17,"context_line":"        state: directory"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - import_role:"},{"line_number":20,"context_line":"        name: ipa-build-tinyipa-image"},{"line_number":21,"context_line":"      when: image_type \u003d\u003d \u0027tinyipa\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    - import_role:"},{"line_number":24,"context_line":"        name: ipa-build-dib-image"},{"line_number":25,"context_line":"      when: image_type \u003d\u003d \u0027dib\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_b761c013","line":25,"range":{"start_line":19,"start_character":0,"end_line":25,"end_character":31},"in_reply_to":"7faddb67_2beb2fa4","updated":"2019-09-03 16:04:23.000000000","message":"Done","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"}],"roles/ipa-build-dib-image/defaults/main.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"dba30054f84451545268a3a5f91cc1b29901c3d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"image_distro: centos7"},{"line_number":2,"context_line":"ipa_branch_path: \u0027{{ zuul.branch | replace(\"/\", \"-\") }}\u0027"},{"line_number":3,"context_line":"ipa_source_path: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent\u0027"},{"line_number":4,"context_line":"ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_2b96cf4a","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":94},"updated":"2019-09-03 12:14:29.000000000","message":"nit: you should get these from the play","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"031ef9cac2287eb9fe8974428d023f1e6604f8b6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"image_distro: centos7"},{"line_number":2,"context_line":"ipa_branch_path: \u0027{{ zuul.branch | replace(\"/\", \"-\") }}\u0027"},{"line_number":3,"context_line":"ipa_source_path: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent\u0027"},{"line_number":4,"context_line":"ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_22a34c45","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":94},"in_reply_to":"7faddb67_021c10c0","updated":"2019-09-03 16:10:48.000000000","message":"I wonder if we could just use relative (to the current dir) paths here just to provide some defaults:\n\n ipa_raw_dir: UPLOAD_RAW\n ipa_tar_dir: UPLOAD_TAR\n\nand maybe make tar optional. WDYT?","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"89e32e1310b9feb6bb84ec4dd856a75d7dfcecea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"image_distro: centos7"},{"line_number":2,"context_line":"ipa_branch_path: \u0027{{ zuul.branch | replace(\"/\", \"-\") }}\u0027"},{"line_number":3,"context_line":"ipa_source_path: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent\u0027"},{"line_number":4,"context_line":"ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_021c10c0","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":94},"in_reply_to":"7faddb67_1778d4be","updated":"2019-09-03 16:07:12.000000000","message":"Just to keep it DRY - we have these in a number of places.","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"70b9c1a7005366a422ea91bdaa195b7f7ca409af","unresolved":false,"context_lines":[{"line_number":1,"context_line":"image_distro: centos7"},{"line_number":2,"context_line":"ipa_branch_path: \u0027{{ zuul.branch | replace(\"/\", \"-\") }}\u0027"},{"line_number":3,"context_line":"ipa_source_path: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent\u0027"},{"line_number":4,"context_line":"ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_bd820151","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":94},"in_reply_to":"7faddb67_22a34c45","updated":"2019-09-03 16:21:58.000000000","message":"Makes sense, we already have a variable for the source path.\n\nAlternatively,\n\nipa_raw_dir: \"{{ ipa_source_path }}/UPLOAD_RAW\"","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"085de59087bc56b032a7ae05ea74b8dbf9fc471f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"image_distro: centos7"},{"line_number":2,"context_line":"ipa_branch_path: \u0027{{ zuul.branch | replace(\"/\", \"-\") }}\u0027"},{"line_number":3,"context_line":"ipa_source_path: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent\u0027"},{"line_number":4,"context_line":"ipa_raw_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW\u0027"},{"line_number":5,"context_line":"ipa_tar_dir: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR\u0027"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_1778d4be","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":94},"in_reply_to":"7faddb67_2b96cf4a","updated":"2019-09-03 16:04:23.000000000","message":"Not sure I get it, why not have defaults?","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"}],"roles/ipa-build-dib-image/tasks/install.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"dba30054f84451545268a3a5f91cc1b29901c3d5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    extra_args: -c \"{{ ansible_user_dir }}/{{ zuul.projects[\u0027opendev.org/openstack/requirements\u0027].src_dir }}/upper-constraints.txt\""},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- name: Install ironic-python-agent-builder"},{"line_number":14,"context_line":"  pip:"},{"line_number":15,"context_line":"    name: \"{{ ansible_user_dir }}/{{ zuul.projects[\u0027opendev.org/openstack/ironic-python-agent-builder\u0027].src_dir }}\""},{"line_number":16,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_2b6faf60","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":14},"updated":"2019-09-03 12:14:29.000000000","message":"Why not just install this, and add extra_args? It should pull in requirements.txt.","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"085de59087bc56b032a7ae05ea74b8dbf9fc471f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    extra_args: -c \"{{ ansible_user_dir }}/{{ zuul.projects[\u0027opendev.org/openstack/requirements\u0027].src_dir }}/upper-constraints.txt\""},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- name: Install ironic-python-agent-builder"},{"line_number":14,"context_line":"  pip:"},{"line_number":15,"context_line":"    name: \"{{ ansible_user_dir }}/{{ zuul.projects[\u0027opendev.org/openstack/ironic-python-agent-builder\u0027].src_dir }}\""},{"line_number":16,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_77402860","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":14},"in_reply_to":"7faddb67_2b6faf60","updated":"2019-09-03 16:04:23.000000000","message":"I recall having some problems with upper-constraints. Can give it a try.","commit_id":"98d6d62c3a7bf8c66bba70183fe2164381769799"}]}
