)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"b126c6971727382a1c8f7618e260d0031bb6686e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4fdb5607_34830fa7","updated":"2022-08-04 03:28:58.000000000","message":"I\u0027ll monitor this","commit_id":"65ddba3a9958a65998b19db21e9605c3a7899a96"}],"playbooks/zuul/run-production-playbook-post.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d7fd3789623432fc5e3b5274138cfa44ddd21a4f","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    # Save files locally on bridge"},{"line_number":85,"context_line":"    - name: Get original timestamp from file header"},{"line_number":86,"context_line":"      shell: |"},{"line_number":87,"context_line":"          head -1 /var/log/ansible/{{ playbook_name.log }} | sed -n \u0027s/^Running \\(.*\\):.*$/\\1/p\u0027"},{"line_number":88,"context_line":"      args:"},{"line_number":89,"context_line":"        executable: /bin/bash"},{"line_number":90,"context_line":"      register: _log_timestamp"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0ed88ec1_1e20b64a","line":87,"updated":"2022-07-22 16:52:36.000000000","message":"Is it worth putting a note here: https://opendev.org/opendev/system-config/src/branch/master/playbooks/zuul/run-production-playbook.yaml#L24 to indicate that the format of the timestamp and line needs to be parseable by this post run playbook?","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2390f9d973b229511fc5290c6cc3b56cc47425","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # Save files locally on bridge"},{"line_number":85,"context_line":"    - name: Get original timestamp from file header"},{"line_number":86,"context_line":"      shell: |"},{"line_number":87,"context_line":"          head -1 /var/log/ansible/{{ playbook_name.log }} | sed -n \u0027s/^Running \\(.*\\):.*$/\\1/p\u0027"},{"line_number":88,"context_line":"      args:"},{"line_number":89,"context_line":"        executable: /bin/bash"},{"line_number":90,"context_line":"      register: _log_timestamp"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"8328ea04_2277c546","line":87,"in_reply_to":"0ed88ec1_1e20b64a","updated":"2022-07-25 05:01:18.000000000","message":"Done","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d7fd3789623432fc5e3b5274138cfa44ddd21a4f","unresolved":true,"context_lines":[{"line_number":95,"context_line":"      copy:"},{"line_number":96,"context_line":"        remote_src: yes"},{"line_number":97,"context_line":"        src: \"/var/log/ansible/{{ playbook_name }}.log\""},{"line_number":98,"context_line":"        dest: \"/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Reset the access/modification time to the timestamp in the filename; this"},{"line_number":101,"context_line":"    # makes lining things up more logical"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f56b3c43_3c44da0a","line":98,"updated":"2022-07-22 16:52:36.000000000","message":"_log_timestamp is now the registered value of a shell task which means we need to access the specific return value attributes to get the timestamp string here. In this case I think we want to use something like {{ _log_timestamp.stdout_lines.1 }}\n\nhttps://docs.ansible.com/ansible/latest/collections/ansible/builtin/shell_module.html#return-values","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2390f9d973b229511fc5290c6cc3b56cc47425","unresolved":false,"context_lines":[{"line_number":95,"context_line":"      copy:"},{"line_number":96,"context_line":"        remote_src: yes"},{"line_number":97,"context_line":"        src: \"/var/log/ansible/{{ playbook_name }}.log\""},{"line_number":98,"context_line":"        dest: \"/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Reset the access/modification time to the timestamp in the filename; this"},{"line_number":101,"context_line":"    # makes lining things up more logical"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0316846d_b1c0f5aa","line":98,"in_reply_to":"f56b3c43_3c44da0a","updated":"2022-07-25 05:01:18.000000000","message":"Done","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d7fd3789623432fc5e3b5274138cfa44ddd21a4f","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    # makes lining things up more logical"},{"line_number":102,"context_line":"    - name: Reset file time"},{"line_number":103,"context_line":"      file:"},{"line_number":104,"context_line":"        src: \u0027/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\u0027"},{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"872b91f0_d1fdaf9a","line":104,"updated":"2022-07-22 16:52:36.000000000","message":"See above","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2390f9d973b229511fc5290c6cc3b56cc47425","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    # makes lining things up more logical"},{"line_number":102,"context_line":"    - name: Reset file time"},{"line_number":103,"context_line":"      file:"},{"line_number":104,"context_line":"        src: \u0027/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\u0027"},{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"46f1421f_73176fda","line":104,"in_reply_to":"872b91f0_d1fdaf9a","updated":"2022-07-25 05:01:18.000000000","message":"Done","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d7fd3789623432fc5e3b5274138cfa44ddd21a4f","unresolved":true,"context_lines":[{"line_number":103,"context_line":"      file:"},{"line_number":104,"context_line":"        src: \u0027/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\u0027"},{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":108,"context_line":"        access_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":109,"context_line":"        access_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"2de7d655_f47bd91a","line":106,"updated":"2022-07-22 16:52:36.000000000","message":"See above","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2390f9d973b229511fc5290c6cc3b56cc47425","unresolved":false,"context_lines":[{"line_number":103,"context_line":"      file:"},{"line_number":104,"context_line":"        src: \u0027/var/log/ansible/{{ playbook_name }}.log.{{ _log_timestamp }}\u0027"},{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":108,"context_line":"        access_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":109,"context_line":"        access_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ff64e535_88101110","line":106,"in_reply_to":"2de7d655_f47bd91a","updated":"2022-07-25 05:01:18.000000000","message":"Done","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d7fd3789623432fc5e3b5274138cfa44ddd21a4f","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":108,"context_line":"        access_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":109,"context_line":"        access_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    - name: Cleanup old playbook logs on bridge"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"22d744f0_411e26ee","line":108,"updated":"2022-07-22 16:52:36.000000000","message":"See above","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2390f9d973b229511fc5290c6cc3b56cc47425","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        state: touch"},{"line_number":106,"context_line":"        modification_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":107,"context_line":"        modification_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":108,"context_line":"        access_time: \u0027{{ _log_timestamp }}\u0027"},{"line_number":109,"context_line":"        access_time_format: \u0027%Y-%m%-%dT%H:%M:%S\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    - name: Cleanup old playbook logs on bridge"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7f20e322_e008ef47","line":108,"in_reply_to":"22d744f0_411e26ee","updated":"2022-07-25 05:01:18.000000000","message":"Done","commit_id":"2f693a7c537a95dd2e98dc0e6645440fd66a62ed"}]}
