)]}'
{"functions.sh":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"2700aea455516c3df01bcb2673fa74cf9dec5594","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    return ${PIPESTATUS[0]}"},{"line_number":97,"context_line":"}"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"function _ping_check {"},{"line_number":100,"context_line":"    local host\u003d$1"},{"line_number":101,"context_line":"    local times\u003d${2:-20}"},{"line_number":102,"context_line":"    echo \"Testing ICMP connectivity to $host\""},{"line_number":103,"context_line":"    ping -c $times $host"},{"line_number":104,"context_line":"}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"function _http_check {"},{"line_number":107,"context_line":"    local url\u003d$1"},{"line_number":108,"context_line":"    local dl\u003d\u0027wget --progress\u003dbar -O /dev/null\u0027"},{"line_number":109,"context_line":"    if [[ `which curl` ]]; then"},{"line_number":110,"context_line":"        dl\u003d\u0027curl -# -o /dev/null\u0027"},{"line_number":111,"context_line":"    fi"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    # do a pypi http fetch, to make sure that we\u0027re good"},{"line_number":114,"context_line":"    for i in `seq 1 10`; do"},{"line_number":115,"context_line":"        echo \"HTTP check of $url - attempt #$i\""},{"line_number":116,"context_line":"        $dl $url || /bin/true"},{"line_number":117,"context_line":"    done"},{"line_number":118,"context_line":"}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# create the start timer for when the job began"},{"line_number":121,"context_line":"function start_timer {"}],"source_content_type":"text/x-sh","patch_set":23,"id":"da36d5c6_092d3c46","line":118,"range":{"start_line":99,"start_character":0,"end_line":118,"end_character":1},"updated":"2017-02-21 14:51:40.000000000","message":"I believe all this can be removed too, but happy for that to be in a followup.","commit_id":"4d7b92ca16c5ac04af71512d39230004abf3b4db"}],"playbooks/devstack_gate_vars.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"9d8cbd3b98b54fd29ec3310243f9f8a00d83a5f7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"BASE: \"{{ lookup(\u0027env\u0027, \u0027BASE\u0027)|default(\u0027/opt/stack\u0027, true) }}\""},{"line_number":3,"context_line":"TIMES: 5"},{"line_number":4,"context_line":"PIP_CONFIG_FILE: \"{{ lookup(\u0027env\u0027, \u0027PIP_CONFIG_FILE\u0027)|default(\u0027/etc/pip.conf\u0027, true) }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7a3c09a3_ed06cccc","line":3,"updated":"2017-01-17 18:20:38.000000000","message":"Note the old code did 20 ping packets.","commit_id":"29ee2c206607f6da7cc558e093b04995d0b339a2"}],"playbooks/roles/network_sanity_check/tasks/http_check.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"9d8cbd3b98b54fd29ec3310243f9f8a00d83a5f7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- name: Perform HTTP check"},{"line_number":2,"context_line":"  uri: url\u003d{{ url }}"},{"line_number":3,"context_line":"  with_sequence: count\u003d10"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7a3c09a3_d0b44736","line":3,"updated":"2017-01-17 18:20:38.000000000","message":"The ping \"times\" has been parameterized but this count hasn\u0027t been. Maybe we should just hardcode those values as they are supposedly an upper threshold on what we want to check for before failing?\n\nAlso I note that this will check the http GET works 10 times in a row. And fail if any one of them fails. This is slightly different than the old behavior which just ran curl/wget 10 times or returned true...\n\nI think the intent here was to run up to ten times and succeed if eventually it succeeds? Either way I think we should either preserve the old behavior or make it a little smarter and allow for the first one to succeed to cause it to short circuit. (note this is why I -1\u0027d).","commit_id":"29ee2c206607f6da7cc558e093b04995d0b339a2"}],"playbooks/roles/network_sanity_check/tasks/main.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"9d8cbd3b98b54fd29ec3310243f9f8a00d83a5f7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    - include: http_check.yaml url\u003d{{ pypi_url }}"},{"line_number":12,"context_line":"  when: st.stat.exists"},{"line_number":13,"context_line":"- name: Get NODEPOOL_MIRROR_HOST from /etc/nodepool/provider"},{"line_number":14,"context_line":"  set_fact: NODEPOOL_MIRROR_HOST\u003d{{ lookup(\u0027ini\u0027, \u0027NODEPOOL_MIRROR_HOST type\u003dproperties file\u003d/etc/nodepool/provider\u0027)|lower }}"},{"line_number":15,"context_line":"- name: Get NODEPOOL_REGION from /etc/nodepool/provider"},{"line_number":16,"context_line":"  set_fact: NODEPOOL_REGION\u003d{{ lookup(\u0027ini\u0027, \u0027NODEPOOL_REGION type\u003dproperties file\u003d/etc/nodepool/provider\u0027)|lower }}"},{"line_number":17,"context_line":"- name: Get NODEPOOL_CLOUD from /etc/nodepool/provider"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7a3c09a3_300aeb79","line":14,"updated":"2017-01-17 18:20:38.000000000","message":"Worth noting this isn\u0027t strictly ini and according to the docs intended to be used in a shell useable form. This means that by treating it as ini we have potential api mismatches in the future. Should work today though.\n\nAn alternative might be to use the command module to source the file and echo back the key/value pair and use that to set the fact?\n\nAlso more generally we might want to source these facts \"globally\" so that they are available to all the playbooks in d-g?","commit_id":"29ee2c206607f6da7cc558e093b04995d0b339a2"},{"author":{"_account_id":6589,"name":"Jesse Keating","email":"jkeating@j2solutions.net","username":"jesse-keating"},"change_message_id":"9755b40f28b9d9d602f9b3217e2c86118e95cef2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  when: st.stat.exists"},{"line_number":13,"context_line":"- name: Get NODEPOOL_MIRROR_HOST from /etc/nodepool/provider"},{"line_number":14,"context_line":"  shell: grep NODEPOOL_MIRROR_HOST /etc/nodepool/provider | cut -d \"\u003d\" -f2"},{"line_number":15,"context_line":"  register: grep_mirror_host"},{"line_number":16,"context_line":"- name: Get NODEPOOL_REGION from /etc/nodepool/provider"},{"line_number":17,"context_line":"  shell: grep NODEPOOL_REGION /etc/nodepool/provider | cut -d \"\u003d\" -f2"},{"line_number":18,"context_line":"  register: grep_region"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"da36d5c6_ad8373cb","line":15,"updated":"2017-02-20 22:59:20.000000000","message":"shell tasks will always result in \"change\" unless marked otherwise. Is this okay?","commit_id":"7d6f60576f146f9716e52141496fc57227ddc744"},{"author":{"_account_id":1106,"name":"Ricardo Carrillo Cruz","email":"ricardo.carrillo.cruz@gmail.com","username":"rcc"},"change_message_id":"26f5287b0272e89dddd155452b302d39945fa70e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  when: st.stat.exists"},{"line_number":13,"context_line":"- name: Get NODEPOOL_MIRROR_HOST from /etc/nodepool/provider"},{"line_number":14,"context_line":"  shell: grep NODEPOOL_MIRROR_HOST /etc/nodepool/provider | cut -d \"\u003d\" -f2"},{"line_number":15,"context_line":"  register: grep_mirror_host"},{"line_number":16,"context_line":"- name: Get NODEPOOL_REGION from /etc/nodepool/provider"},{"line_number":17,"context_line":"  shell: grep NODEPOOL_REGION /etc/nodepool/provider | cut -d \"\u003d\" -f2"},{"line_number":18,"context_line":"  register: grep_region"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"da36d5c6_e8263915","line":15,"in_reply_to":"da36d5c6_ad8373cb","updated":"2017-02-21 00:05:12.000000000","message":"yup, totally correct, thx!","commit_id":"7d6f60576f146f9716e52141496fc57227ddc744"}],"playbooks/roles/network_sanity_check/tasks/ping_check.yaml":[{"author":{"_account_id":9061,"name":"David Moreau Simard","email":"moi@dmsimard.com","username":"dmsimard"},"change_message_id":"215f96a04ab9a03eeac2b83d7f316f7655d1b7d8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- name: Perform ping check"},{"line_number":2,"context_line":"  command: ping -c {{ PING_TIMES }} {{ host }}"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"da36d5c6_c7408859","line":2,"updated":"2017-02-20 21:58:54.000000000","message":"This returns a changed status:\n\n    http://logs.openstack.org/43/404243/22/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/937d53c/logs/ara/playbook/c2a05417-da4f-48ab-9f53-1e295a2b71d3/task/e679757d-092a-464b-8a16-7cb475e449c1/index.html\n\nProbably want to return either OK or Failed for checks.\nUse changed_when/failed_when ?\nCould maybe consider using asserts too (ex: https://github.com/ansible/ansible/blob/devel/test/integration/roles/test_gce/tasks/main.yml )","commit_id":"7d6f60576f146f9716e52141496fc57227ddc744"},{"author":{"_account_id":1106,"name":"Ricardo Carrillo Cruz","email":"ricardo.carrillo.cruz@gmail.com","username":"rcc"},"change_message_id":"26f5287b0272e89dddd155452b302d39945fa70e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- name: Perform ping check"},{"line_number":2,"context_line":"  command: ping -c {{ PING_TIMES }} {{ host }}"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"da36d5c6_08246d0b","line":2,"in_reply_to":"da36d5c6_c7408859","updated":"2017-02-21 00:05:12.000000000","message":"yup, totally correct, thx!","commit_id":"7d6f60576f146f9716e52141496fc57227ddc744"}]}
