)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d486e434dee59a7d482d13c044f2aefa83682f9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6382441c_3c6cb510","updated":"2025-12-19 09:04:17.000000000","message":"Thank you for your patch!\n\nA couple of small things","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9b069efba3ebb510e9b8127f008033e0d5542cc4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e06041ab_c6d07930","updated":"2025-12-19 16:12:07.000000000","message":"Thanks for the review!\n\nI honestly have *not* tested anything at all, I\u0027m relying entirely on the unit tests.","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"f17be2b309222df56bcfb69db68549bd6609bf0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5b3875af_6ecfc30e","updated":"2026-01-07 11:23:17.000000000","message":"I have tried to run this in devstack, and it does not work. From the logs:\n\nERROR ceilometer.polling.manager [-] Continue after error from image.size:\n  \u0027Image\u0027 object has no attribute \u0027protected\u0027:\n  AttributeError: \u0027Image\u0027 object has no attribute \u0027protected\u0027. Did you mean: \u0027is_protected\u0027?\n  \nIt seems to be an issue in https://opendev.org/openstack/ceilometer/src/branch/master/ceilometer/image/glance.py#L40\n  \nThis is not being picked up by the unit tests, which might also be another thing to consider.","commit_id":"ca12f95b5e7c24168a6724c540e99ba89b600e1b"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"b1febe6dc5ffbb4f1cd46948467d4344284fca48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"76ca4e7c_8cf831e0","updated":"2026-01-05 15:48:50.000000000","message":"LGTM. @jlarriba@redhat.com I saw you had some comments previously (although they\u0027re resolved now). Do you have any further comments?","commit_id":"ca12f95b5e7c24168a6724c540e99ba89b600e1b"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"78d559be8491af882bbdcceb4c5cb24e65092bb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"37d70070_72c8efc4","in_reply_to":"5b3875af_6ecfc30e","updated":"2026-01-07 11:24:25.000000000","message":"If I change \"protected\" to \"is_protected\", everything works and the glance metrics start to get retrieved.","commit_id":"ca12f95b5e7c24168a6724c540e99ba89b600e1b"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"12c1eabd2d78deac91e75b9f7a9373ccabf2534e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"2b878d92_02c0738a","updated":"2026-01-27 15:30:14.000000000","message":"I think that my suggestions for resolving the merge conflict are doing worse than helping, I was trying to test new things.\n\nThis just needs a rebase on master and it would be ready.","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"c47140184cbb6c8684265a4fc90c72d09fae953b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b42b0931_2554ef79","updated":"2026-01-13 17:18:47.000000000","message":"Thanks a lot for the review, I somehow missed that, but indeed a few properties have been \"renamed\" in the SDK:\n\n\n- os_hidden\n- protected\n- os_hash_algo\n- os_hash_value\n- img_config_drive\n- os_secure_boot\n- hw_vif_multiqueue_enabled\n- hw_boot_menu\n- auto_disk_config","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"4eacdc0da3646054737d886d8f45ee8ea0abfe99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"dfb8c6bc_2bb320bd","in_reply_to":"2b878d92_02c0738a","updated":"2026-02-03 15:48:33.000000000","message":"Thanks! I\u0027ve just rebased the patch, it should be OK now.","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"10e8ac32fa6a73ca4a373e2b8fa39c880fb506a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a7d37ae1_400c90aa","updated":"2026-02-04 07:45:07.000000000","message":"Thank you Cyril!","commit_id":"95500ce2521b032bb166b2c86fb1f326d7f33512"}],"ceilometer/image/discovery.py":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d486e434dee59a7d482d13c044f2aefa83682f9e","unresolved":true,"context_lines":[{"line_number":17,"context_line":"from ceilometer import keystone_client"},{"line_number":18,"context_line":"from ceilometer.polling import plugin_base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027glance\u0027,"},{"line_number":22,"context_line":"               default\u003d\u0027image\u0027,"},{"line_number":23,"context_line":"               help\u003d\u0027Glance service type.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"efe95b4e_6e1dd9f3","line":20,"updated":"2025-12-19 09:04:17.000000000","message":"this is not used anymore, consider remove it","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9b069efba3ebb510e9b8127f008033e0d5542cc4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ceilometer import keystone_client"},{"line_number":18,"context_line":"from ceilometer.polling import plugin_base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027glance\u0027,"},{"line_number":22,"context_line":"               default\u003d\u0027image\u0027,"},{"line_number":23,"context_line":"               help\u003d\u0027Glance service type.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"2490fddd_a3eaaed2","line":20,"in_reply_to":"efe95b4e_6e1dd9f3","updated":"2025-12-19 16:12:07.000000000","message":"Indeed. We could have kept it and passed:\n\n    oslo_conf\u003dcfg.CONF,\n    service_types\u003d[conf.service_types.glance],\n\nto openstack.connection.Connection(), but I feel it might be unnecessary.","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d486e434dee59a7d482d13c044f2aefa83682f9e","unresolved":true,"context_lines":[{"line_number":29,"context_line":"        super().__init__(conf)"},{"line_number":30,"context_line":"        creds \u003d conf.service_credentials"},{"line_number":31,"context_line":"        self.image_client \u003d openstack.connection.Connection("},{"line_number":32,"context_line":"            image_version\u003d\u00272\u0027,"},{"line_number":33,"context_line":"            session\u003dkeystone_client.get_session(conf),"},{"line_number":34,"context_line":"            region_name\u003dcreds.region_name,"},{"line_number":35,"context_line":"            image_interface\u003dcreds.interface)"}],"source_content_type":"text/x-python","patch_set":4,"id":"343f4826_ebfcc30c","line":32,"updated":"2025-12-19 09:04:17.000000000","message":"sorry for the nit, but for consistency this variable must be called image_api_version","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9b069efba3ebb510e9b8127f008033e0d5542cc4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super().__init__(conf)"},{"line_number":30,"context_line":"        creds \u003d conf.service_credentials"},{"line_number":31,"context_line":"        self.image_client \u003d openstack.connection.Connection("},{"line_number":32,"context_line":"            image_version\u003d\u00272\u0027,"},{"line_number":33,"context_line":"            session\u003dkeystone_client.get_session(conf),"},{"line_number":34,"context_line":"            region_name\u003dcreds.region_name,"},{"line_number":35,"context_line":"            image_interface\u003dcreds.interface)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7b5a3cf2_e4b3059e","line":32,"in_reply_to":"343f4826_ebfcc30c","updated":"2025-12-19 16:12:07.000000000","message":"Indeed, I don\u0027t think image_version would have even worked. Good catch!","commit_id":"9ca696ac7ef92f282337fc9ba04461f6d02b6731"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e5b1ec0cf48241a83899191e32ab8b8041864dbd","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from ceilometer.polling import plugin_base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027glance\u0027,"},{"line_number":22,"context_line":"               default\u003d\u0027image\u0027,"},{"line_number":23,"context_line":"               help\u003d\u0027Glance service type.\u0027),"},{"line_number":24,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1adc8991_951223bf","side":"PARENT","line":21,"range":{"start_line":21,"start_character":16,"end_line":21,"end_character":22},"updated":"2025-12-22 09:32:43.000000000","message":"You don\u0027t have to remove this. AFAIK adding image_service_type\u003dconf.service.image may work.","commit_id":"942220b7d78f392e0db08dd134df6bde64c0bcf8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b269e60db5fe2f54d41eeb53caf59309320bc3b6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ceilometer.polling import plugin_base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027glance\u0027,"},{"line_number":22,"context_line":"               default\u003d\u0027image\u0027,"},{"line_number":23,"context_line":"               help\u003d\u0027Glance service type.\u0027),"},{"line_number":24,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"b37eba0f_62e556f9","side":"PARENT","line":21,"range":{"start_line":21,"start_character":16,"end_line":21,"end_character":22},"in_reply_to":"1adc8991_951223bf","updated":"2025-12-22 09:34:43.000000000","message":"Done","commit_id":"942220b7d78f392e0db08dd134df6bde64c0bcf8"}],"ceilometer/opts.py":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"77ce274eaff83ddbc2afed458e272dc78e5d8923","unresolved":true,"context_lines":[{"line_number":96,"context_line":"        (\u0027publisher\u0027, ceilometer.publisher.utils.OPTS),"},{"line_number":97,"context_line":"        (\u0027publisher_notifier\u0027, ceilometer.publisher.messaging.NOTIFIER_OPTS),"},{"line_number":98,"context_line":"        (\u0027rgw_admin_credentials\u0027, ceilometer.objectstore.rgw.CREDENTIAL_OPTS),"},{"line_number":99,"context_line":"        (\u0027rgw_client\u0027, ceilometer.objectstore.rgw.CLIENT_OPTS),"},{"line_number":100,"context_line":"        (\u0027service_types\u0027,"},{"line_number":101,"context_line":"         itertools.chain(ceilometer.alarm.discovery.SERVICE_OPTS,"},{"line_number":102,"context_line":"                         ceilometer.neutron_client.SERVICE_OPTS,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fc7f864f_210ab9f1","line":99,"updated":"2026-01-27 13:45:48.000000000","message":"After rebasing, this section should look like:\n\n```suggestion\n        (\u0027service_types\u0027,\n         itertools.chain(ceilometer.alarm.discovery.SERVICE_OPTS,\n                         ceilometer.designate_client.SERVICE_OPTS,\n                         ceilometer.manila_client.SERVICE_OPTS,\n                         ceilometer.neutron_client.SERVICE_OPTS,\n                         ceilometer.nova_client.SERVICE_OPTS,\n                         ceilometer.objectstore.rgw.SERVICE_OPTS,\n                         ceilometer.objectstore.swift.SERVICE_OPTS,\n                         ceilometer.octavia_client.SERVICE_OPTS,\n                         ceilometer.volume.discovery.SERVICE_OPTS,))\n```","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"3d17de6e4b91a39b5c2c1b78f85043bb4a1619a4","unresolved":true,"context_lines":[{"line_number":101,"context_line":"         itertools.chain(ceilometer.alarm.discovery.SERVICE_OPTS,"},{"line_number":102,"context_line":"                         ceilometer.neutron_client.SERVICE_OPTS,"},{"line_number":103,"context_line":"                         ceilometer.nova_client.SERVICE_OPTS,"},{"line_number":104,"context_line":"                         ceilometer.objectstore.rgw.SERVICE_OPTS,"},{"line_number":105,"context_line":"                         ceilometer.objectstore.swift.SERVICE_OPTS,"},{"line_number":106,"context_line":"                         ceilometer.volume.discovery.SERVICE_OPTS,))"},{"line_number":107,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3705c129_ecc2dea4","line":104,"updated":"2026-01-27 13:41:22.000000000","message":"This patch conflicts with master. The `service_types` section now includes additional SERVICE_OPTS that were added after this patch was created:\n- `ceilometer.designate_client.SERVICE_OPTS`\n- `ceilometer.manila_client.SERVICE_OPTS`\n- `ceilometer.octavia_client.SERVICE_OPTS`\n\nThe updated removal should be:\n```python\n(\u0027service_types\u0027,\n itertools.chain(ceilometer.alarm.discovery.SERVICE_OPTS,\n                 ceilometer.designate_client.SERVICE_OPTS,\n                 ceilometer.manila_client.SERVICE_OPTS,\n                 ceilometer.neutron_client.SERVICE_OPTS,\n                 ceilometer.nova_client.SERVICE_OPTS,\n                 ceilometer.objectstore.rgw.SERVICE_OPTS,\n                 ceilometer.objectstore.swift.SERVICE_OPTS,\n                 ceilometer.octavia_client.SERVICE_OPTS,\n                 ceilometer.volume.discovery.SERVICE_OPTS,))\n```\n\nAlso remove the import line: `import ceilometer.image.discovery`","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"}],"requirements.txt":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"c4e901c1f46ea9303bf4c05b3d63d4b4293dd613","unresolved":true,"context_lines":[{"line_number":20,"context_line":"oslo.upgradecheck\u003e\u003d0.1.1 # Apache-2.0"},{"line_number":21,"context_line":"oslo.utils\u003e\u003d4.7.0 # Apache-2.0"},{"line_number":22,"context_line":"oslo.privsep\u003e\u003d1.32.0 # Apache-2.0"},{"line_number":23,"context_line":"python-keystoneclient\u003e\u003d3.18.0 # Apache-2.0"},{"line_number":24,"context_line":"keystoneauth1\u003e\u003d3.18.0 # Apache-2.0"},{"line_number":25,"context_line":"python-neutronclient\u003e\u003d6.7.0 # Apache-2.0"},{"line_number":26,"context_line":"python-novaclient\u003e\u003d9.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":10,"id":"593544da_035e5188","line":23,"updated":"2026-01-27 13:41:24.000000000","message":"`openstacksdk\u003e\u003d4.6.0` is already present in master (added by a previous patch). Only the removal of `python-glanceclient\u003e\u003d2.8.0` is needed.","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"1d6b7505fea44d7685a202565a65e265cae819d3","unresolved":true,"context_lines":[{"line_number":38,"context_line":"aodhclient\u003e\u003d3.8.0 # Apache-2.0"},{"line_number":39,"context_line":"awscurl\u003e\u003d0.36 # MIT"},{"line_number":40,"context_line":"botocore\u003e\u003d1.20.0 # Apache-2.0"},{"line_number":41,"context_line":"openstacksdk\u003e\u003d4.6.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":10,"id":"fc81f14e_13e53190","line":41,"updated":"2026-01-27 13:45:54.000000000","message":"This line should be removed - `openstacksdk\u003e\u003d4.6.0` is already in master.\n\n```suggestion\n```","commit_id":"e4da0dcd0246097d0806ad80c37879a4e85f2d73"}]}
