)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35761,"name":"Guillaume Boutry","display_name":"gboutry","email":"guillaume.boutry@canonical.com","username":"gboutry"},"change_message_id":"c080c04d2273bcb7c694cdaba7d0e6dd1a93713e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"56b7eed7_b8073fcf","updated":"2026-06-10 11:21:05.000000000","message":"If you want launchpad (and gerrit) linked to the bug, the commit message must be `Closes-Bug: #2155098`","commit_id":"01f14ac64a94ec0c4cc28931c6dbcf99d79b8b8a"},{"author":{"_account_id":35761,"name":"Guillaume Boutry","display_name":"gboutry","email":"guillaume.boutry@canonical.com","username":"gboutry"},"change_message_id":"a42186c29d2c8bcc111d5c1ceaba2cce73abef3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2a0d6c97_3d28a5f8","in_reply_to":"030de79e_dda64ef3","updated":"2026-06-10 12:31:33.000000000","message":"To also be referenced on launchpad, launchpad bug needs to be associated to `sunbeam-charms` project.","commit_id":"01f14ac64a94ec0c4cc28931c6dbcf99d79b8b8a"},{"author":{"_account_id":34232,"name":"Olivier DUFOUR-CUVILLIER","email":"olivier.dufour@canonical.com","username":"odufourc"},"change_message_id":"deaa4a73929ae12092187256248d89a7341f1085","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"030de79e_dda64ef3","in_reply_to":"56b7eed7_b8073fcf","updated":"2026-06-10 12:21:03.000000000","message":"Ah thanks, I was wondering why it wasn\u0027t referencing the bug on LP.","commit_id":"01f14ac64a94ec0c4cc28931c6dbcf99d79b8b8a"},{"author":{"_account_id":10366,"name":"Hemanth N","email":"hemanth.nakkina@canonical.com","username":"Hemanth"},"change_message_id":"41296e007348a3217bb3e0ecaf60e2242180efd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2dc5b138_eae9e19f","updated":"2026-06-12 07:00:06.000000000","message":"LGTM","commit_id":"031d65b90b8f8bf7f2be006766d0eba74dbff5d9"},{"author":{"_account_id":34232,"name":"Olivier DUFOUR-CUVILLIER","email":"olivier.dufour@canonical.com","username":"odufourc"},"change_message_id":"a4ae9b75ab5e9e0d4a74a17dd4ffa293b2bdad29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"da6f6f9a_9099c085","updated":"2026-06-11 15:05:11.000000000","message":"recheck","commit_id":"031d65b90b8f8bf7f2be006766d0eba74dbff5d9"}],"charms/openstack-hypervisor/src/charm.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"838d528e7b6aaf8efca127d7d1738fcc34712a7e","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        )"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        metrics_endpoints \u003d ["},{"line_number":181,"context_line":"                {\"path\": \"/metrics\", \"port\": 9177},  # libvirt exporter"},{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        # If using MicroOVN, OVS exporter shouldn\u0027t be used, MicroOVN charm has"},{"line_number":184,"context_line":"        # its own endpoints to COS"}],"source_content_type":"text/x-python","patch_set":2,"id":"28a56560_12552ea5","line":181,"updated":"2026-06-10 10:27:02.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"5c957177a5abda33071127c2c599a7a9dd742c90"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"838d528e7b6aaf8efca127d7d1738fcc34712a7e","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        # its own endpoints to COS"},{"line_number":185,"context_line":"        if not self._is_microovn_present():"},{"line_number":186,"context_line":"            metrics_endpoints.append("},{"line_number":187,"context_line":"                {\"path\": \"/metrics\", \"port\": 9475} # ovs exporter"},{"line_number":188,"context_line":"        )"},{"line_number":189,"context_line":"        self._grafana_agent \u003d COSAgentProvider("},{"line_number":190,"context_line":"            self,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f3fab579_7652405d","line":187,"updated":"2026-06-10 10:27:02.000000000","message":"pep8: E261 at least two spaces before inline comment","commit_id":"5c957177a5abda33071127c2c599a7a9dd742c90"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"838d528e7b6aaf8efca127d7d1738fcc34712a7e","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if not self._is_microovn_present():"},{"line_number":186,"context_line":"            metrics_endpoints.append("},{"line_number":187,"context_line":"                {\"path\": \"/metrics\", \"port\": 9475} # ovs exporter"},{"line_number":188,"context_line":"        )"},{"line_number":189,"context_line":"        self._grafana_agent \u003d COSAgentProvider("},{"line_number":190,"context_line":"            self,"},{"line_number":191,"context_line":"            metrics_endpoints\u003dmetrics_endpoints"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f8f9fee_a7f44acc","line":188,"updated":"2026-06-10 10:27:02.000000000","message":"pep8: E122 continuation line missing indentation or outdented","commit_id":"5c957177a5abda33071127c2c599a7a9dd742c90"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9ffacc2d03eb8fb35ee02dd596da01de7649714f","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        )"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        metrics_endpoints \u003d ["},{"line_number":181,"context_line":"                {\"path\": \"/metrics\", \"port\": 9177},  # libvirt exporter"},{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        # If using MicroOVN, OVS exporter shouldn\u0027t be used, MicroOVN charm has"},{"line_number":184,"context_line":"        # its own endpoints to COS"}],"source_content_type":"text/x-python","patch_set":3,"id":"be1ca91f_f8ae7830","line":181,"updated":"2026-06-10 10:46:28.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"01f14ac64a94ec0c4cc28931c6dbcf99d79b8b8a"},{"author":{"_account_id":35007,"name":"Chi Wai CHAN","display_name":"Ray Chan","email":"chiwai.chan@canonical.com","username":"Ray"},"change_message_id":"719649df06d56557b5f9d11a77d60f9c98ec5998","unresolved":true,"context_lines":[{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        # If using MicroOVN, OVS exporter shouldn\u0027t be used, MicroOVN charm has"},{"line_number":184,"context_line":"        # its own endpoints to COS"},{"line_number":185,"context_line":"        if not self._is_microovn_present():"},{"line_number":186,"context_line":"            metrics_endpoints.append("},{"line_number":187,"context_line":"                {\"path\": \"/metrics\", \"port\": 9475}  # ovs exporter"},{"line_number":188,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9012b339_746109f1","line":185,"updated":"2026-06-11 03:39:10.000000000","message":"I recommend also dynamically load ovs related alert rules","commit_id":"5f41a2c0c6d73efb3d19b4ceafb6205d2aef80a8"},{"author":{"_account_id":35007,"name":"Chi Wai CHAN","display_name":"Ray Chan","email":"chiwai.chan@canonical.com","username":"Ray"},"change_message_id":"1f78be8303c2cc1982fc5ae69599390e57a19eb9","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        # If using MicroOVN, OVS exporter shouldn\u0027t be used, MicroOVN charm has"},{"line_number":184,"context_line":"        # its own endpoints to COS"},{"line_number":185,"context_line":"        if not self._is_microovn_present():"},{"line_number":186,"context_line":"            metrics_endpoints.append("},{"line_number":187,"context_line":"                {\"path\": \"/metrics\", \"port\": 9475}  # ovs exporter"},{"line_number":188,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"4c65cb6c_d8d4dfda","line":185,"in_reply_to":"9012b339_746109f1","updated":"2026-06-11 08:07:50.000000000","message":"Logic LGTM\n\nnit: \n\n```python3\nmetrics_rule_dir \u003d \"./src/prometheus_alert_rules\"\nmetrics_endpoints \u003d [{\"path\": \"/metrics\", \"port\": 9177}]  # libvirt exporter\n\nif not self._is_microovn_present():\n  metrics_rule_dir \u003d \"./src/prometheus_alert_rules_with_ovs\"\n  metrics_endpoints.append({\"path\": \"/metrics\", \"port\": 9475})  # ovs exporter\n  \nself._grafana_agent \u003d COSAgentProvider(\n  metrics_endpoints \u003d metrics_endpoints,\n  metrics_rules_dir \u003d metrics_rule_dir,\n)\n```","commit_id":"5f41a2c0c6d73efb3d19b4ceafb6205d2aef80a8"}]}
