)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c3ebdc9b1f6e698565c5363fb8e25c02ff939dbc","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Fix exporter URL to support multinode deployments"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A previous change (cf2d127) set SERVICE_HOST for constructing"},{"line_number":10,"context_line":"exporter URLs, but SERVICE_HOST references to the controller"},{"line_number":11,"context_line":"node IP. This breaks multinode deployments where exporters are"},{"line_number":12,"context_line":"running on subnodes, as the health checks would try to reach the"},{"line_number":13,"context_line":"controller instead of the local node."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"0982db51_c61b1ea1","line":11,"range":{"start_line":10,"start_character":19,"end_line":11,"end_character":7},"updated":"2026-02-26 11:03:22.000000000","message":"https://opendev.org/openstack/devstack/src/commit/55c045539dd2e47ee34154cadd9f9e280f90d042/.zuul.yaml#L592-L593","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"332666d34781b17377f858f0cb85226e4ac196f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cd8fb4b9_e1b35345","updated":"2026-03-04 15:56:42.000000000","message":"-1 due to missing bracket for IPv6 address.\nI\u0027m wondering if we could add a common separate lib file to avoid duplicated codes but I\u0027m ok with doing that in follow-up.","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d392ede1a527ea7be29d53463202b12099db244e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3f9f13d2_641c32ce","updated":"2026-03-04 15:27:31.000000000","message":"Hold until we get more jobs testing it","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c127c879ca048c00e9ac241bf50710a3537df8b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"981638fe_4006ea0f","updated":"2026-02-25 15:21:50.000000000","message":"Hold until we run some tests with 3-node job in watcher repo","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fad454264a90964cbad8cf022b90b31c12ae1db6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6cb674f0_44845813","updated":"2026-03-02 11:22:05.000000000","message":"by the way it might be nice to do a DNM chagne to one fo the telemery repos for example aodh ro ceilometer to ensure it does not break any of there jobs","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5261fd3e78821f55207dca8cfd64d2f1d33940c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b8e7e23a_b49370af","updated":"2026-03-02 11:21:01.000000000","message":"do we want to facotr this out into a get_host_ip function before we proceed?","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a8fd39dcdcab9e1b218839977c7379a4fbce74b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dba54f46_d6d7194d","updated":"2026-03-02 07:31:03.000000000","message":"make sense!","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ec5714daec494a8fd79c8d8dff0af214d1bed563","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"98c37791_ad7a1a6b","updated":"2026-02-25 16:55:29.000000000","message":"ready for review. Tested in https://zuul.opendev.org/t/openstack/build/d36562d589a345d3b309b339e87af8a7\n\n```\ncompute2 | ++ /opt/stack/devstack-plugin-prometheus/devstack/lib/node_exporter:check_data_node_exporter:87 :   local host_ip\ncompute2 | ++ /opt/stack/devstack-plugin-prometheus/devstack/lib/node_exporter:check_data_node_exporter:88 :   [[ 4 \u003d\u003d 6 ]]\ncompute2 | ++ /opt/stack/devstack-plugin-prometheus/devstack/lib/node_exporter:check_data_node_exporter:91 :   host_ip\u003d10.0.19.239\ncompute2 | ++ /opt/stack/devstack-plugin-prometheus/devstack/lib/node_exporter:check_data_node_exporter:93 :   curl -s --head --request GET http://10.0.19.239:9100/metrics\ncompute2 | ++ /opt/stack/devstack-plugin-prometheus/devstack/lib/node_exporter:check_data_node_exporter:93 :   grep \u0027200 OK\u0027\n```","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d392ede1a527ea7be29d53463202b12099db244e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ad468ebc_3e1dcfe1","in_reply_to":"6cb674f0_44845813","updated":"2026-03-04 15:27:31.000000000","message":"Ack, makes sense, running now some test with both ipv4 and ipv6 jobs here:\nhttps://review.opendev.org/c/openstack/aetos/+/978882","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5bf25249829160f93392520c977cdd556e4a2e2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7c2a9922_5133268f","in_reply_to":"cd8fb4b9_e1b35345","updated":"2026-03-05 11:18:53.000000000","message":"we proabvly shoud just provide a helper function in devstack for this so that plugins dont have to reinvent it","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a61f6fd078a98a817691c6818ddf0c7b1dfc3df3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6a4b5c96_31c7fb4f","updated":"2026-03-04 20:06:50.000000000","message":"It is ready for review.\nTest results from Watcher realdata jobs (the that are failing currently): https://review.opendev.org/c/openstack/watcher/+/977960/1#message-3ee93051f532f51180a263fae6f0e027436e05a2\n\nTest results from Aetos jobs (IPv4 and IPv6 jobs): https://review.opendev.org/c/openstack/aetos/+/978882/1#message-992e28e052b161f6c6215e12a11ec6ecccaa847d","commit_id":"428b9050c19a603426b8c0a0bc6eb621f9660f25"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"32bcf0198bdfa645d533980be45179551315cc89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"211971dd_8ab3ffa9","updated":"2026-03-04 18:33:15.000000000","message":"waiting results from aetos jobs in: https://review.opendev.org/c/openstack/aetos/+/978882","commit_id":"428b9050c19a603426b8c0a0bc6eb621f9660f25"}],"devstack/lib/node_exporter":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"332666d34781b17377f858f0cb85226e4ac196f7","unresolved":true,"context_lines":[{"line_number":86,"context_line":"function check_data_node_exporter {"},{"line_number":87,"context_line":"    local host_ip"},{"line_number":88,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":89,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":90,"context_line":"    else"},{"line_number":91,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":92,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"e7f4f081_49728287","line":89,"range":{"start_line":89,"start_character":16,"end_line":89,"end_character":26},"updated":"2026-03-04 15:56:42.000000000","message":"This should be [$HOST_IPV6] (the surrounding bracket is needed)","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9681213bfb5ecad4a0297f58b91035b97472c4b5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"function check_data_node_exporter {"},{"line_number":87,"context_line":"    local host_ip"},{"line_number":88,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":89,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":90,"context_line":"    else"},{"line_number":91,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":92,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"6abf77ad_25d0bc4b","line":89,"range":{"start_line":89,"start_character":16,"end_line":89,"end_character":26},"in_reply_to":"e7f4f081_49728287","updated":"2026-03-05 03:29:56.000000000","message":"Done","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5261fd3e78821f55207dca8cfd64d2f1d33940c","unresolved":true,"context_lines":[{"line_number":90,"context_line":"    else"},{"line_number":91,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":"    if curl -s --head  --request  GET \"http://$host_ip:$NODE_EXPORTER_PORT/metrics\" | grep \"200 OK\" \u003e /dev/null; then"},{"line_number":94,"context_line":"        echo \"#### Metrics data ####\""},{"line_number":95,"context_line":"        curl \"http://$host_ip:$NODE_EXPORTER_PORT/metrics\""},{"line_number":96,"context_line":"    else"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"39453bb4_74fb02be","line":93,"updated":"2026-03-02 11:21:01.000000000","message":"technically the IP_VERSION for neutron can  be 4,6, or 4+6\n\nbut as noted for the service ip dual stack is not supproted\n\nhttps://github.com/openstack/devstack/blob/55c045539dd2e47ee34154cadd9f9e280f90d042/doc/source/configuration.rst#service-ip-version\n\n\nso yes this is the correct way to detect this.\nyou may condier factorign this out into a helper fucntion sinc eyou are using it in a few places but the logic is correct","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"}],"devstack/lib/openstack_exporter":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"332666d34781b17377f858f0cb85226e4ac196f7","unresolved":true,"context_lines":[{"line_number":76,"context_line":"function check_data_openstack_exporter {"},{"line_number":77,"context_line":"    local host_ip"},{"line_number":78,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":79,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":80,"context_line":"    else"},{"line_number":81,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":82,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"4e6ecd3f_a611cf90","line":79,"range":{"start_line":79,"start_character":16,"end_line":79,"end_character":26},"updated":"2026-03-04 15:56:42.000000000","message":"This should be [$HOST_IPV6] (the surrounding bracket is needed)","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9681213bfb5ecad4a0297f58b91035b97472c4b5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"function check_data_openstack_exporter {"},{"line_number":77,"context_line":"    local host_ip"},{"line_number":78,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":79,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":80,"context_line":"    else"},{"line_number":81,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":82,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"4d7921f0_778d61b4","line":79,"range":{"start_line":79,"start_character":16,"end_line":79,"end_character":26},"in_reply_to":"4e6ecd3f_a611cf90","updated":"2026-03-05 03:29:56.000000000","message":"Done","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"}],"devstack/lib/podman_exporter":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"332666d34781b17377f858f0cb85226e4ac196f7","unresolved":true,"context_lines":[{"line_number":72,"context_line":"function check_data_podman_exporter {"},{"line_number":73,"context_line":"    local host_ip"},{"line_number":74,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":75,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":76,"context_line":"    else"},{"line_number":77,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":78,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"92b492a9_b4e9146d","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":26},"updated":"2026-03-04 15:56:42.000000000","message":"This should be [$HOST_IPV6] (the surrounding bracket is needed)","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9681213bfb5ecad4a0297f58b91035b97472c4b5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"function check_data_podman_exporter {"},{"line_number":73,"context_line":"    local host_ip"},{"line_number":74,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":75,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":76,"context_line":"    else"},{"line_number":77,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":78,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"80f5a801_cfbc076f","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":26},"in_reply_to":"92b492a9_b4e9146d","updated":"2026-03-05 03:29:56.000000000","message":"Done","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"}],"devstack/lib/prometheus":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"332666d34781b17377f858f0cb85226e4ac196f7","unresolved":true,"context_lines":[{"line_number":143,"context_line":"function check_data_prometheus {"},{"line_number":144,"context_line":"    local host_ip"},{"line_number":145,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":146,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":147,"context_line":"    else"},{"line_number":148,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":149,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"98e3cb0b_124cd30c","line":146,"range":{"start_line":146,"start_character":16,"end_line":146,"end_character":26},"updated":"2026-03-04 15:56:42.000000000","message":"This should be [$HOST_IPV6] (the surrounding bracket is needed)","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9681213bfb5ecad4a0297f58b91035b97472c4b5","unresolved":false,"context_lines":[{"line_number":143,"context_line":"function check_data_prometheus {"},{"line_number":144,"context_line":"    local host_ip"},{"line_number":145,"context_line":"    if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":146,"context_line":"        host_ip\u003d$HOST_IPV6"},{"line_number":147,"context_line":"    else"},{"line_number":148,"context_line":"        host_ip\u003d$HOST_IP"},{"line_number":149,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"24913ebf_094466aa","line":146,"range":{"start_line":146,"start_character":16,"end_line":146,"end_character":26},"in_reply_to":"98e3cb0b_124cd30c","updated":"2026-03-05 03:29:56.000000000","message":"Done","commit_id":"216632c8626d1720a5544f786232090fb3beee8a"}]}
