)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"25ace005ae93ab16c45501a73b39a793c968d6f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"64527cc6_4fdce643","updated":"2026-04-27 08:05:05.000000000","message":"I am good with this, I wonder if Emma\u0027s request should block this from merging?","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"5e3ad1b02e149bedb8e244fcd0b3cadfbb00991c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"22ff15ee_3925bf55","updated":"2026-04-24 19:45:46.000000000","message":"Minor nit in ordering.","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"642b8a1a3aab95e123e61534b65095c4b6edfeaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"830c5a18_bac05034","in_reply_to":"64527cc6_4fdce643","updated":"2026-04-27 08:09:23.000000000","message":"I can move the code around today, it\u0027s not a big deal. Let\u0027s have it as perfect as possible thanks to Emma noticing this. I think I can get back to this within today.","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"760add44341c58b2509afc1addbd96ebdd7cdd22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3ec52892_1f0e8078","in_reply_to":"830c5a18_bac05034","updated":"2026-04-27 11:07:21.000000000","message":"I\u0027ll move it anyway in a follow up, since I\u0027ll be dealing with the cinder parts of the code, as I refactor the cinderclient interactions and prepare for sdk migration","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"}],"ceilometer/tests/unit/volume/test_cinder.py":[{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"5e3ad1b02e149bedb8e244fcd0b3cadfbb00991c","unresolved":true,"context_lines":[{"line_number":122,"context_line":"          \u0027size\u0027: 1})"},{"line_number":123,"context_line":"]"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"SERVICE_LIST \u003d ["},{"line_number":126,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":127,"context_line":"         {\u0027binary\u0027: \u0027cinder-volume\u0027,"},{"line_number":128,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":129,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":130,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":131,"context_line":"          \u0027state\u0027: \u0027up\u0027}),"},{"line_number":132,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":133,"context_line":"         {\u0027binary\u0027: \u0027cinder-scheduler\u0027,"},{"line_number":134,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":135,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":136,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":137,"context_line":"          \u0027state\u0027: \u0027up\u0027}),"},{"line_number":138,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":139,"context_line":"         {\u0027binary\u0027: \u0027cinder-backup\u0027,"},{"line_number":140,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":141,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":142,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":143,"context_line":"          \u0027state\u0027: \u0027down\u0027}),"},{"line_number":144,"context_line":"]"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"POOL_LIST \u003d ["},{"line_number":147,"context_line":"    type(\u0027VolumePool\u0027, (object,),"}],"source_content_type":"text/x-python","patch_set":2,"id":"2335cd37_43f62249","line":144,"range":{"start_line":125,"start_character":0,"end_line":144,"end_character":1},"updated":"2026-04-24 19:45:46.000000000","message":"nit: Can you put this in at the bottom of the data list?\nThis keeps the pollsters, discoverers, fake data and tests in the same order (volume, snapshots, basckup, pools, services)","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"cb87be9f3254c37336cc64fa00e1e66d1a7ee41c","unresolved":false,"context_lines":[{"line_number":122,"context_line":"          \u0027size\u0027: 1})"},{"line_number":123,"context_line":"]"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"SERVICE_LIST \u003d ["},{"line_number":126,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":127,"context_line":"         {\u0027binary\u0027: \u0027cinder-volume\u0027,"},{"line_number":128,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":129,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":130,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":131,"context_line":"          \u0027state\u0027: \u0027up\u0027}),"},{"line_number":132,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":133,"context_line":"         {\u0027binary\u0027: \u0027cinder-scheduler\u0027,"},{"line_number":134,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":135,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":136,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":137,"context_line":"          \u0027state\u0027: \u0027up\u0027}),"},{"line_number":138,"context_line":"    type(\u0027Service\u0027, (object,),"},{"line_number":139,"context_line":"         {\u0027binary\u0027: \u0027cinder-backup\u0027,"},{"line_number":140,"context_line":"          \u0027host\u0027: \u0027devstack\u0027,"},{"line_number":141,"context_line":"          \u0027zone\u0027: \u0027nova\u0027,"},{"line_number":142,"context_line":"          \u0027status\u0027: \u0027enabled\u0027,"},{"line_number":143,"context_line":"          \u0027state\u0027: \u0027down\u0027}),"},{"line_number":144,"context_line":"]"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"POOL_LIST \u003d ["},{"line_number":147,"context_line":"    type(\u0027VolumePool\u0027, (object,),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9acd0afc_265974d7","line":144,"range":{"start_line":125,"start_character":0,"end_line":144,"end_character":1},"in_reply_to":"2335cd37_43f62249","updated":"2026-04-27 11:07:40.000000000","message":"Done","commit_id":"d6060c7a507a023ad2932cd83c51af6f372ab8ca"}],"ceilometer/volume/cinder.py":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"f447469cacea72609458f9b38de8f79c9acbbe7b","unresolved":true,"context_lines":[{"line_number":260,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":261,"context_line":"        for svc in resources:"},{"line_number":262,"context_line":"            state \u003d SERVICE_STATE.get("},{"line_number":263,"context_line":"                getattr(svc, \u0027state\u0027, \u0027\u0027).lower(), -1)"},{"line_number":264,"context_line":"            yield sample.Sample("},{"line_number":265,"context_line":"                name\u003d\u0027volume.service.health\u0027,"},{"line_number":266,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc0dfcd5_54962229","line":263,"updated":"2026-04-13 10:55:24.000000000","message":"That -1 there makes me nervous. SERVICE_STATE and the release note both \"declare\" that there are only two possible states: 0 or 1. This -1 returned in case of a failure seems strange and undeclared. Wouldn\u0027t it be better to raise an exception","commit_id":"7eeacdb7e3125f147bc24c4c7c52d2d9987f3836"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"594327923b677d388a9d48f357fe6bd6f230a50e","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":261,"context_line":"        for svc in resources:"},{"line_number":262,"context_line":"            state \u003d SERVICE_STATE.get("},{"line_number":263,"context_line":"                getattr(svc, \u0027state\u0027, \u0027\u0027).lower(), -1)"},{"line_number":264,"context_line":"            yield sample.Sample("},{"line_number":265,"context_line":"                name\u003d\u0027volume.service.health\u0027,"},{"line_number":266,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c911d95d_e22f438f","line":263,"in_reply_to":"fc0dfcd5_54962229","updated":"2026-04-20 10:38:41.000000000","message":"I rewrote this part to raise an exception instead as suggested and I also added a test for this case. Just to note, according to the Cinder documentation, we should always get either \"up\" or \"down\", so we shouldn\u0027t really reach that exception unless something really unexpected happens or a new state is added in cinder.","commit_id":"7eeacdb7e3125f147bc24c4c7c52d2d9987f3836"}],"releasenotes/notes/add-volume-service-health-metric-a1b2c3d4e5f6a7b8.yaml":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"f447469cacea72609458f9b38de8f79c9acbbe7b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``volume.service.health`` meter to the central agent to monitor"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"a4f019d4_c404d1b3","line":1,"updated":"2026-04-13 10:55:24.000000000","message":"I would create a proper hash with \"reno new\" instead of using this one, which seems manually generated, but this is just a nit.","commit_id":"7eeacdb7e3125f147bc24c4c7c52d2d9987f3836"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"594327923b677d388a9d48f357fe6bd6f230a50e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``volume.service.health`` meter to the central agent to monitor"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"a6a7fb7d_62d58dcb","line":1,"in_reply_to":"4d17349b_7c5d1faa","updated":"2026-04-20 10:38:41.000000000","message":"Done","commit_id":"7eeacdb7e3125f147bc24c4c7c52d2d9987f3836"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"e3df81953b4324fb07f9950907c264f9660cfbd4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``volume.service.health`` meter to the central agent to monitor"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"4d17349b_7c5d1faa","line":1,"in_reply_to":"a4f019d4_c404d1b3","updated":"2026-04-20 10:11:37.000000000","message":"I let Claude Code generate the releasenote. I checked the contents of the file and the rest of the patch. But I didn\u0027t think about looking at the file name lol :D","commit_id":"7eeacdb7e3125f147bc24c4c7c52d2d9987f3836"}]}
