)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"319af0479df4a93de50d64221e5e0bcb9c236879","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- project:"},{"line_number":4,"context_line":"    templates:"},{"line_number":5,"context_line":"      - check-requirements"},{"line_number":6,"context_line":"      - lib-forward-testing-python3"},{"line_number":7,"context_line":"      - openstack-cover-jobs"},{"line_number":8,"context_line":"      - openstack-python3-jobs"},{"line_number":9,"context_line":"      - openstack-python3-next-jobs"},{"line_number":10,"context_line":"      - periodic-stable-jobs"},{"line_number":11,"context_line":"      - publish-openstack-docs-pti"},{"line_number":12,"context_line":"      - release-notes-jobs-python3"},{"line_number":13,"context_line":"    check:"},{"line_number":14,"context_line":"      jobs:"},{"line_number":15,"context_line":"        - tooz-tox-examples"},{"line_number":16,"context_line":"        - tooz-tox-py311-etcd3gw"},{"line_number":17,"context_line":"        - tooz-tox-py314-etcd3gw"},{"line_number":18,"context_line":"        - tooz-tox-py311-zookeeper"},{"line_number":19,"context_line":"        - tooz-tox-py314-zookeeper"},{"line_number":20,"context_line":"        - tooz-tox-py311-redis"},{"line_number":21,"context_line":"        - tooz-tox-py314-redis"},{"line_number":22,"context_line":"        - tooz-tox-py311-sentinel"},{"line_number":23,"context_line":"        - tooz-tox-py314-sentinel"},{"line_number":24,"context_line":"        - tooz-tox-py311-memcached"},{"line_number":25,"context_line":"        - tooz-tox-py314-memcached"},{"line_number":26,"context_line":"        - tooz-tox-py311-postgresql"},{"line_number":27,"context_line":"        - tooz-tox-py314-postgresql"},{"line_number":28,"context_line":"        - tooz-tox-py311-mysql"},{"line_number":29,"context_line":"        - tooz-tox-py314-mysql"},{"line_number":30,"context_line":"        - tooz-tox-py311-consul"},{"line_number":31,"context_line":"        - tooz-tox-py314-consul"},{"line_number":32,"context_line":"        - tooz-tox-py311-k8s"},{"line_number":33,"context_line":"        - tooz-tox-py314-k8s"},{"line_number":34,"context_line":"    gate:"},{"line_number":35,"context_line":"      jobs:"},{"line_number":36,"context_line":"        - tooz-tox-examples"},{"line_number":37,"context_line":"        - tooz-tox-py311-etcd3gw"},{"line_number":38,"context_line":"        - tooz-tox-py314-etcd3gw"},{"line_number":39,"context_line":"        - tooz-tox-py311-zookeeper"},{"line_number":40,"context_line":"        - tooz-tox-py314-zookeeper"},{"line_number":41,"context_line":"        - tooz-tox-py311-redis"},{"line_number":42,"context_line":"        - tooz-tox-py314-redis"},{"line_number":43,"context_line":"        - tooz-tox-py311-sentinel"},{"line_number":44,"context_line":"        - tooz-tox-py314-sentinel"},{"line_number":45,"context_line":"        - tooz-tox-py311-memcached"},{"line_number":46,"context_line":"        - tooz-tox-py314-memcached"},{"line_number":47,"context_line":"        - tooz-tox-py311-postgresql"},{"line_number":48,"context_line":"        - tooz-tox-py314-postgresql"},{"line_number":49,"context_line":"        - tooz-tox-py311-mysql"},{"line_number":50,"context_line":"        - tooz-tox-py314-mysql"},{"line_number":51,"context_line":"        - tooz-tox-py311-consul"},{"line_number":52,"context_line":"        - tooz-tox-py314-consul"},{"line_number":53,"context_line":"        - tooz-tox-py311-k8s"},{"line_number":54,"context_line":"        - tooz-tox-py314-k8s"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"- job:"},{"line_number":57,"context_line":"    name: tooz-tox-examples"},{"line_number":58,"context_line":"    parent: openstack-tox-py312"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"f0878934_853be184","line":55,"range":{"start_line":3,"start_character":2,"end_line":55,"end_character":0},"updated":"2026-07-14 23:21:24.000000000","message":"Job tooz-tox-py311-k8s not defined","commit_id":"a5ff74c0bd3ebde27b518b0e0a971ac31826163d"}],"tooz/drivers/consul.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1f2a0ca98cdb083b5d38c63709d1eeb686024815","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    \"\"\"Return a member\u0027s explicit endpoint health-check URL, if any."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    A member opts in to Consul server-side health checking by including"},{"line_number":69,"context_line":"    a fully-formed ``health_url`` in its capabilities at join time."},{"line_number":70,"context_line":"    Only an explicit, non-empty string triggers the HTTP check; other"},{"line_number":71,"context_line":"    capability keys are never used to derive a probe URL."},{"line_number":72,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"70250124_9060bd37","line":69,"range":{"start_line":69,"start_character":21,"end_line":69,"end_character":31},"updated":"2026-07-23 11:27:29.000000000","message":"Can we rename it to healthcheck_url (or health_check_url ) to make it more explicit ?","commit_id":"e3661f3f6338547bd4d29f54e359638b1bb14542"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1f2a0ca98cdb083b5d38c63709d1eeb686024815","unresolved":true,"context_lines":[{"line_number":75,"context_line":"    url \u003d capabilities.get(\u0027health_url\u0027)"},{"line_number":76,"context_line":"    if isinstance(url, str) and url:"},{"line_number":77,"context_line":"        return url"},{"line_number":78,"context_line":"    return None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"R \u003d TypeVar(\u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"63ce2800_4b81442c","line":78,"range":{"start_line":78,"start_character":4,"end_line":78,"end_character":10},"updated":"2026-07-23 11:27:29.000000000","message":"should we log a warning here because this indicates something wrong with client side ?","commit_id":"e3661f3f6338547bd4d29f54e359638b1bb14542"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1f2a0ca98cdb083b5d38c63709d1eeb686024815","unresolved":true,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"# KV prefix for group markers (existence tracking)."},{"line_number":90,"context_line":"_GROUP_PREFIX \u003d \"tooz/groups/\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"# How often a blocking lock acquire re-polls Consul while waiting."},{"line_number":93,"context_line":"_LOCK_POLL_INTERVAL \u003d 0.5"}],"source_content_type":"text/x-python","patch_set":15,"id":"06117b9d_2d5f6d99","line":90,"range":{"start_line":90,"start_character":17,"end_line":90,"end_character":21},"updated":"2026-07-23 11:27:29.000000000","message":"I wonder if we can make this \"tooz\" prefix configurable by the namespace option ? This is what was implemented in earlier consul driver, and may be useful in case multiple services share the same consul cluster.","commit_id":"e3661f3f6338547bd4d29f54e359638b1bb14542"}],"tooz/tests/drivers/test_consul_driver.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5a162918d38301ac4f54df2ab828e24f997bdaf6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"try:"},{"line_number":19,"context_line":"    import consul  # noqa: F401"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    HAS_CONSUL \u003d True"},{"line_number":22,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0fa1e436_bc8c5ecf","line":19,"updated":"2026-07-14 07:41:28.000000000","message":"pep8: error: Cannot find implementation or library stub for module named \"consul\"  [import-not-found]","commit_id":"b13961a15c8f25dab47f45926016577fdd42017c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5a162918d38301ac4f54df2ab828e24f997bdaf6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"try:"},{"line_number":19,"context_line":"    import consul  # noqa: F401"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    HAS_CONSUL \u003d True"},{"line_number":22,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0ead22f4_8b7eda64","line":19,"updated":"2026-07-14 07:41:28.000000000","message":"pep8: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports","commit_id":"b13961a15c8f25dab47f45926016577fdd42017c"}]}
