)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"d42606126e295d07d9e9b0ec3e2467a32f62ccab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b8b1b924_4c068394","updated":"2022-12-23 15:10:00.000000000","message":"Please review comments.","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"6a45fdcf3c70332023986b9760eff2ca6ef59bff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1378fba2_165d520c","updated":"2022-12-23 22:38:42.000000000","message":"LGTM - thank you!","commit_id":"0e807191dbc53c3a4e8df0a7119019d6415bcc94"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4771d87a8e570ed8f977b744fbb8dfe72336e0c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b8e9b208_353eb57e","updated":"2023-01-04 13:47:24.000000000","message":"recheck","commit_id":"0e807191dbc53c3a4e8df0a7119019d6415bcc94"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"68e03634f14cb2de3da304feef7c287ef1563700","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"265ac760_0d98b351","updated":"2023-01-05 15:19:42.000000000","message":"recheck","commit_id":"429abd41fe2f6de3446e94c2d308ccf05a3679b7"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"51cfe1883b4daab29e45fd223bfb39ab576d6c2a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"55489973_76035735","updated":"2023-02-01 14:48:20.000000000","message":"this patch seems sensible and low-risk to me but I would have one nit/suggestion which is that instead if defining the validation in-line it might be better to put it into api/validation/parameter_types.py as e.g. extra_specs_large_string or something like that to make it (a) reusable and (b) clear as to what the validation actually is.","commit_id":"429abd41fe2f6de3446e94c2d308ccf05a3679b7"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"3f52a0a6e956bb75244492792d847ead234b7c13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1ffb26f5_c679eeae","updated":"2023-02-09 13:29:21.000000000","message":"I think this looks ok to me.  Should have a team member with more DB experience give the final +2 though.","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"51afab380173469eb96c608799bab3578c7835f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0defdaf7_ed50d327","updated":"2023-02-07 10:54:44.000000000","message":"LGTM","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"7b23fbbaa2cbd49f94d22f67bbc859f4d0d80cc7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e0bb9b60_fd309f76","updated":"2023-03-15 11:10:44.000000000","message":"Looks good, but since this patch is changing /api/schemas/ I think we should mentioned this patch on the cinder meeting!","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"adfab0ce2c1e841d9f3c61de89a99f385a297885","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f8cb9d42_63a0c6a9","updated":"2023-04-19 14:46:18.000000000","message":"Recommendation from the cinder meeting is to add a new parameter type that can check that metadata values don\u0027t exceed 64k bytes (instead of characters) so that the API validation matches what will fail at the database layer.","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"71a5d998d538c639d3c287dfecc34c03b587c10d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0aa46fe7_7f17a488","updated":"2023-04-19 14:43:44.000000000","message":"See inline about naming.  We\u0027re discussing this in the cinder meeting right now, and it sounds like we\u0027re going to request a revision to handle the character counting/byte storage issue, so i don\u0027t feel bad about a naming issue!","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"d97edc2c732bdf9a667f34108ecac2d79ae93b73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bf173172_7fad585e","in_reply_to":"e0bb9b60_fd309f76","updated":"2023-03-15 12:16:59.000000000","message":"I\u0027ve put it in the meeting agenda previously asking for reviews. I can add it to the topics for today\u0027s meeting.","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"5ee4534d00ef706d11dc84c6140368faa34e707e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1d2f2ce0_0debaeb0","updated":"2023-07-05 03:47:06.000000000","message":"LGTM","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"dbf97cfdbd7db33dc9dbe8aa25b8fe9496bed8a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f94bf933_39c4fe8a","updated":"2023-06-02 19:49:48.000000000","message":"Looks good to me - thank you!","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8cf82eca77d71f0131886eac786c7c365c587612","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1cbf8df8_64e2f541","updated":"2023-08-05 00:08:11.000000000","message":"Some suggestions inline to beef up the tests.  I agree with Filipe that this should have a release note; see https://docs.openstack.org/cinder/latest/contributor/releasenotes.html#bugs if you haven\u0027t done a release note before.","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"9507f59da70ef744583fd0aa78e5070065f2fc1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e583a94c_ea5695d4","updated":"2023-05-23 22:01:17.000000000","message":"recheck\nApparently unrelated errors","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"912763bfd94eacb63a93af518e853646c15cd091","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"00781081_7e135aed","updated":"2023-05-26 22:15:13.000000000","message":"recheck\nTests that pass in one run fail in the next and vice versa","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"5e38b6785bed8bfe29e70b5b2637daad3b7317fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"76d8298e_a5531db9","updated":"2023-05-17 15:35:51.000000000","message":"recheck No matching distribution found for tooz\u003d\u003d\u003d4.0.0","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6a50090306279f54e8e727593f806b01a61c41b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2f22edf7_1b667fc2","updated":"2023-08-02 14:27:44.000000000","message":"should it have a release note ?","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a60e52f450cbce2e24205547f10a47f1a0f8156e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e127eb2e_55bc9126","updated":"2023-08-09 14:15:07.000000000","message":"Except for the release note, all my concerns have been addressed for the code and tests.","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"45c5b95ceeff997b4f09acda3c8088f7e7af4d2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"aa71d319_e26de9c9","updated":"2023-08-09 14:34:37.000000000","message":"Nice test.","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf3490b7fc3b2c46dc53dd46830e8b639c574c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"acb4ea86_66c8d07a","updated":"2023-08-09 14:13:24.000000000","message":"Suggestion inline to revise the release note (I think it\u0027s important to emphasize that no database change is required by your fix).","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"d5640c9f435a68ebecb35af63b7bc53dd277e171","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3602d86f_731f7599","updated":"2023-08-08 13:45:58.000000000","message":"recheck","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"99d9b0d2d571077b0d3ef1101e97cb804addfb7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"32b006ed_c8abf31b","updated":"2023-12-13 15:00:22.000000000","message":"After the PTG discussion and drencrom\u0027s question to the ML [0], I\u0027m still +2 on this.  It makes the cinder API consistent with respect to what can be stored as image metadata values.\n\n[0] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/B7UET4JKHQU5SHH44KLSKHFBMFN3ZZYV/","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"45ecdb1b04e20fe0b7df11f9071a0655a80ecb77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2d9e7bb8_26ddc26e","updated":"2023-10-04 14:27:23.000000000","message":"LGTM","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"de363a86373767b339a6981cd06b8f9a04e90610","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9212936d_da575575","updated":"2023-10-17 19:18:21.000000000","message":"Thanks for the comments, Sean.  I think it would be good to work this out at the PTG next week.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c2716e4fb7b73a4327bae426c70830dd207e2802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"60630e4f_5fc93137","updated":"2023-08-16 14:48:45.000000000","message":"This LGTM.  I don\u0027t know why the gates are being so uncooperative.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"898c57a6837796af9959be24bf7c3d667b0a9e5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"85a248ca_eaa84034","updated":"2023-09-28 12:35:12.000000000","message":"This has been sitting too long.  Raising the priority.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5e4ac8c46fe1dc2b16e973456bc23c5a78ffd379","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3097fa68_aadb3a70","updated":"2023-12-13 15:03:32.000000000","message":"This was brought up to the ML[1] and Erno raised a good point regarding this restriction. We again discussed this at our weekly cinder meeting[2] and the idea makes sense for cinder.\nWe already allow setting large image metadata values when creating a volume from image and this change makes it consistent for updating image volume metadata operation.\nIf there are any future issues, we can always revert to using 255 chars and backport the fix but for now this looks good to me.\n\n[1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/B7UET4JKHQU5SHH44KLSKHFBMFN3ZZYV/\n[2] https://meetings.opendev.org/meetings/cinder/2023/cinder.2023-12-13-14.00.log.html#l-124","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"13bccbd81bbc604d84006846c8adb3f680550b81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"dfa83eaf_15f3d080","updated":"2023-10-17 16:37:18.000000000","message":"image metadta properites are actrully defien by nova not glance as part of the ImageMetaProps OVO\nhttps://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L158\n\nthis has been the case for many year since we offically dropped supprot for custom image properties 5+ year ago. \n\nthey are stored in teh nova instance_system_metadta table where the colume is limited to 255\n\nhttps://github.com/openstack/nova/blob/master/nova/db/main/models.py#L945-L946\n\nso no you should not allow this in cinder as it will break nova if the value is longer then 255","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"6d8d72975ea1a18cb46fa845af2ee09c1586e4da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1a425a45_daf06987","updated":"2023-08-15 17:55:47.000000000","message":"recheck","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"936774fcf1effba8642ad183dfbe34fcf03623d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"64988a58_b7ed10f8","updated":"2023-08-13 15:31:15.000000000","message":"recheck","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"615ffed2c96f3bd09808a5a306412bf6a445dab5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8df47fc1_0026d8f5","updated":"2023-10-05 21:23:41.000000000","message":"recheck","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"17cc449f44bd9c3ca679b71d08723efe9d44b2da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c30b2c4c_3acc8d11","updated":"2023-10-10 14:15:29.000000000","message":"recheck","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"e974bbf42bbe6baa472e90a1fdcd6ba7548c503a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7c78240c_dd6c69a3","updated":"2023-08-11 17:56:43.000000000","message":"recheck\nOnly changed the release notes","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"51f726832c40fb56474bbc21141141f76a539960","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"80ac9f5c_55df07ee","updated":"2023-08-18 13:55:40.000000000","message":"recheck cinder-plugin-ceph-tempest https://review.opendev.org/c/openstack/cinderlib/+/891513 had not merged yet","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"46c71d1363fa7c7a0efac4303a68b4ed1a8ffc7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fe298f3d_05d9e304","updated":"2023-08-16 14:48:07.000000000","message":"recheck i think this got caught in the zuul out-of-disk-space problem that happened yesterday","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bedadbb3c23b3e3d1354b9e94fcce39ee36bed9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1e353cad_2a462445","updated":"2023-12-14 19:55:57.000000000","message":"recheck openstack-tox-py311 looks like some kind of random issue causing a post_failure","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"1f93136e27ef89519b0c037f40d6872b8c57c86a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c218a575_cd35855a","updated":"2024-08-19 19:31:15.000000000","message":"run Pure Storage CI","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"540a7707b82a9942ef208cc7353f479e1492f437","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5aa7776e_7d6efe08","in_reply_to":"82038aee_e89e642a","updated":"2023-10-18 11:30:14.000000000","message":"its more a case of agreeing on the intended semantics and documenting them and perhaps makign nova reject any image with oversized values.\n\ni do not belive extending novas db to 64k or whatever text is woudl be approarprte\n\ntruncating that values not what i was expecting, i was expecting a db error on insert and im not sure if that is relying on undefiend behavior or not.\n\ni.e. i dont know if insterting 500 chars into a 255 char filed alwasy truncates on diffent databases (sqlight vs mysql vs postgress) or if that is just an implmation detail.\n\nthe behavior shoudl not alter based on diffent backends.\n\nwhat likely woudl be lest problamatic approch is for nova to continue to ignore custome image properties and enforce lenght limits on the ones we define.\n\nthat woudl allow cinder and other project to use image metadata to sotre extended info for its own use.\n\nwe woudl need to update the docs for the nova filters to make it clear that custom image propertis are not supproted by them as that is likely confusing to oeprators today.\n\ni belive there is a nova cinder cross project session next week so lets agree a path forward then, likely we can merge this but then update nova to accomidate since it looks like we whould be doing that anyway based on the lack of validation in glance in general.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"a6165cc5e11ef5122379a49cbb25bf579a29cbf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"82038aee_e89e642a","in_reply_to":"dfa83eaf_15f3d080","updated":"2023-10-17 23:54:56.000000000","message":"I tested this again and you\u0027re right that the properties are stored by nova in the instance_system_metadata table and if longer than 255 are truncated to 255. But apart from that I don\u0027t see any problems in nova when attaching a volume with long metadata values.\nIn any case, cinder allows long values for metadata properties when a volume is created from an image, it just does not allow to set them afterwards (that was changed by my patch)\nIf long metadata values are considered a problem I suppose that cinder should refuse to create a volume based on an image with long metadata values. If, as in my tests, nova just truncates the value and carries on I don\u0027t see the problem on retaining those longer values in glance and cinder.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"}],"cinder/api/schemas/volume_image_metadata.py":[{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"d42606126e295d07d9e9b0ec3e2467a32f62ccab","unresolved":true,"context_lines":[{"line_number":30,"context_line":"                \u0027metadata\u0027: {"},{"line_number":31,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":32,"context_line":"                    \u0027patternProperties\u0027: {"},{"line_number":33,"context_line":"                        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":34,"context_line":"                            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 65535"},{"line_number":35,"context_line":"                        }"},{"line_number":36,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ca592fe_f95c01f2","line":33,"updated":"2022-12-23 15:10:00.000000000","message":"I think it should be be:\n```\n\u0027^[a-zA-Z0-9-_:. /]{1,65535}$\u0027: {\n```\n\nif you would like to have large metadata values.","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"ab014566f9bf55412d2f5c59f45bbebeeef1efa7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                \u0027metadata\u0027: {"},{"line_number":31,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":32,"context_line":"                    \u0027patternProperties\u0027: {"},{"line_number":33,"context_line":"                        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":34,"context_line":"                            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 65535"},{"line_number":35,"context_line":"                        }"},{"line_number":36,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":1,"id":"b2363087_8b9cf8fb","line":33,"in_reply_to":"16f8ddd0_199a7050","updated":"2022-12-23 16:38:03.000000000","message":"Hello Jorge,\n\nAh yes, you are right! Thank you!","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"6d79500ac00f4b90c05ef925fd864a5c78f50b8c","unresolved":true,"context_lines":[{"line_number":30,"context_line":"                \u0027metadata\u0027: {"},{"line_number":31,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":32,"context_line":"                    \u0027patternProperties\u0027: {"},{"line_number":33,"context_line":"                        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":34,"context_line":"                            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 65535"},{"line_number":35,"context_line":"                        }"},{"line_number":36,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":1,"id":"16f8ddd0_199a7050","line":33,"in_reply_to":"3ca592fe_f95c01f2","updated":"2022-12-23 16:05:51.000000000","message":"Maybe I\u0027m reading this wrong, but I think that is the key\u0027s size not the value. The key size is limited to 255 per the database table.","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"71a5d998d538c639d3c287dfecc34c03b587c10d","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        \u0027os-set_image_metadata\u0027: {"},{"line_number":28,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":29,"context_line":"            \u0027properties\u0027: {"},{"line_number":30,"context_line":"                \u0027metadata\u0027: parameter_types.extra_specs_large,"},{"line_number":31,"context_line":"            },"},{"line_number":32,"context_line":"            \u0027required\u0027: [\u0027metadata\u0027],"},{"line_number":33,"context_line":"            \u0027additionalProperties\u0027: False,"}],"source_content_type":"text/x-python","patch_set":5,"id":"924d98ff_ed9ea32f","line":30,"range":{"start_line":30,"start_character":44,"end_line":30,"end_character":61},"updated":"2023-04-19 14:43:44.000000000","message":"I suspect that \"extra_specs\" was only used here previously so that we didn\u0027t have to define 2 different types that had identical definitions.  I suggest calling this parameter_types.image_metadata , since that\u0027s what it is.","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"03ae8901574959419ce78eaff81bb5c6160cdf9e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        \u0027os-set_image_metadata\u0027: {"},{"line_number":28,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":29,"context_line":"            \u0027properties\u0027: {"},{"line_number":30,"context_line":"                \u0027metadata\u0027: parameter_types.extra_specs_large,"},{"line_number":31,"context_line":"            },"},{"line_number":32,"context_line":"            \u0027required\u0027: [\u0027metadata\u0027],"},{"line_number":33,"context_line":"            \u0027additionalProperties\u0027: False,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ea52e07e_aa5c6483","line":30,"range":{"start_line":30,"start_character":44,"end_line":30,"end_character":61},"in_reply_to":"924d98ff_ed9ea32f","updated":"2023-04-24 12:30:30.000000000","message":"Done","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1bba3f109845b95f19724818d57fb8d92c167ee1","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        \u0027os-set_image_metadata\u0027: {"},{"line_number":28,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":29,"context_line":"            \u0027properties\u0027: {"},{"line_number":30,"context_line":"                \u0027metadata\u0027: parameter_types.image_metadata,"},{"line_number":31,"context_line":"            },"},{"line_number":32,"context_line":"            \u0027required\u0027: [\u0027metadata\u0027],"},{"line_number":33,"context_line":"            \u0027additionalProperties\u0027: False,"}],"source_content_type":"text/x-python","patch_set":9,"id":"c1f193f3_b72f7acb","line":30,"updated":"2023-10-17 17:36:36.000000000","message":"by the way i feel like this requried an api microversion bump\nif we are going to allow new properies vlaues with a diffent key lenght","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"}],"cinder/api/validation/parameter_types.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"c78fe0186c0f725e2542c7c0c3fccf8d29fb9010","unresolved":true,"context_lines":[{"line_number":160,"context_line":"extra_specs_large \u003d {"},{"line_number":161,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":162,"context_line":"    \u0027patternProperties\u0027: {"},{"line_number":163,"context_line":"        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":164,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 65535"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":5,"id":"078f9b97_b744752d","line":163,"range":{"start_line":163,"start_character":30,"end_line":163,"end_character":33},"updated":"2023-02-10 00:21:47.000000000","message":"Are you sure that only 255 repetitions are allowed?","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"f19eb3bdb872dfdc5431bb9a29b7ab004eafee17","unresolved":false,"context_lines":[{"line_number":160,"context_line":"extra_specs_large \u003d {"},{"line_number":161,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":162,"context_line":"    \u0027patternProperties\u0027: {"},{"line_number":163,"context_line":"        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":164,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 65535"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":5,"id":"7e3a0f22_e0fbe2ea","line":163,"range":{"start_line":163,"start_character":30,"end_line":163,"end_character":33},"in_reply_to":"078f9b97_b744752d","updated":"2023-02-10 15:47:00.000000000","message":"Yes, that is the length of the metadata keys that is defined as varchar(255) in the database.","commit_id":"a866fdeb0e0a366e108a75d1499a0200bfa14f03"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"74377caf9e6800e86bd61904730449a88f80de38","unresolved":true,"context_lines":[{"line_number":160,"context_line":"image_metadata \u003d {"},{"line_number":161,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":162,"context_line":"    \u0027patternProperties\u0027: {"},{"line_number":163,"context_line":"        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":164,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027mysql_text\u0027"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":9,"id":"3c107b19_d4e12700","line":163,"range":{"start_line":163,"start_character":9,"end_line":163,"end_character":35},"updated":"2023-10-05 12:43:27.000000000","message":"This pattern seems overly restrictive -- just alphanumeric and a few punctuation characters etc?\n\nWe don\u0027t support unicode strings here?\n\nRegardless, it\u0027s no less restrictive than what we have now, so not a problem for this change.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc74ae8aee6b62ea5328a4168debb4940fa3d2c0","unresolved":true,"context_lines":[{"line_number":160,"context_line":"image_metadata \u003d {"},{"line_number":161,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":162,"context_line":"    \u0027patternProperties\u0027: {"},{"line_number":163,"context_line":"        \u0027^[a-zA-Z0-9-_:. /]{1,255}$\u0027: {"},{"line_number":164,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027mysql_text\u0027"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":9,"id":"491dc5c1_53a02719","line":163,"range":{"start_line":163,"start_character":9,"end_line":163,"end_character":35},"in_reply_to":"3c107b19_d4e12700","updated":"2023-10-17 17:21:24.000000000","message":"image meta keys and values are not free form they are defined by nova \nas strictly checked OVO. \n\n\nwhen constuction the ImageMEtaProps object form a dict \nhttps://github.com/openstack/nova/blob/9dceb735f6926c71a8c2e2c6ef8b5e0a1363041d/nova/objects/image_meta.py#L695-L716\nwe loop over the dict looking for the well knwo values as well as some legacy vlues for upgrade reasons.\n\nwhen we get a respocne form the glance api we build the object via that dict interface\n\nhttps://github.com/openstack/nova/blob/9dceb735f6926c71a8c2e2c6ef8b5e0a1363041d/nova/objects/image_meta.py#L138-L154\n\n\nso i guess any non standard will be droped but we have not offically supported that since mitaka.\n\nso anything that is useing non standard image properies or values over 255 is technailly not supproted from a nova prespective.\n\n\nglance have an option to prevent the creation of non stadard image peorptys but its disabeld by defualt since the glance metadef are not directly kept in sync with nova. as such glance cannot really enforece this reliably so its disabeld by default.\n\n```\n# DEPRECATED:\n# Allow users to add additional/custom properties to images.\n#\n# Glance defines a standard set of properties (in its schema) that\n# appear on every image. These properties are also known as\n# ``base properties``. In addition to these properties, Glance\n# allows users to add custom properties to images. These are known\n# as ``additional properties``.\n#\n# By default, this configuration option is set to ``True`` and users\n# are allowed to add additional properties. The number of additional\n# properties that can be added to an image can be controlled via\n# ``image_property_quota`` configuration option.\n#\n# Possible values:\n#     * True\n#     * False\n#\n# Related options:\n#     * image_property_quota\n#\n#  (boolean value)\n# This option is deprecated for removal since Ussuri.\n# Its value may be silently ignored in the future.\n# Reason:\n# This option is redundant.  Control custom image property usage via the\n# \u0027image_property_quota\u0027 configuration option.  This option is scheduled\n# to be removed during the Victoria development cycle.\n#allow_additional_image_properties \u003d true\n```\n\nwe likely need to have a converstaion between project about the actual status fo custome image proeprties\n\non the nova side schduler filters like \n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/filters/aggregate_image_properties_isolation.py\nand \nhttps://github.com/openstack/nova/blob/master/nova/scheduler/filters/image_props_filter.py\n\nexplictly do not supprot them regardless of the lenght.\n\n\nthere are some special case usage of image propetiese that i am aware of that might be relevent.\n\nspeficially for snapshots\n\nhttps://github.com/openstack/nova/blob/9dceb735f6926c71a8c2e2c6ef8b5e0a1363041d/nova/virt/libvirt/driver.py#L2976-L2985\n\n\n  metadata \u003d {\u0027status\u0027: \u0027active\u0027,\n                    \u0027name\u0027: snp_name,\n                    \u0027properties\u0027: {\n                                   \u0027kernel_id\u0027: instance.kernel_id,\n                                   \u0027image_location\u0027: \u0027snapshot\u0027,\n                                   \u0027image_state\u0027: \u0027available\u0027,\n                                   \u0027owner_id\u0027: instance.project_id,\n                                   \u0027ramdisk_id\u0027: instance.ramdisk_id,\n                                   }\n                    }\n                    \nstrictly speakign not all of thsoe files are valid when contocted into a nova object and they are not store in our db as a result.\n\nso there is some undocuemnted beahvior that we are currently relying on.\n\nbefore we \n\nchange the valdiation in cidner i think ti woudl be good to talke about this perhaps at the ptg next week?","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"}],"cinder/api/validation/validators.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc74ae8aee6b62ea5328a4168debb4940fa3d2c0","unresolved":true,"context_lines":[{"line_number":401,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027mysql_text\u0027)"},{"line_number":402,"context_line":"def _validate_mysql_text(param_value):"},{"line_number":403,"context_line":"    length \u003d len(param_value.encode(\u0027utf8\u0027))"},{"line_number":404,"context_line":"    if length \u003e 65535:"},{"line_number":405,"context_line":"        return False"},{"line_number":406,"context_line":"    return True"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"54167a91_ea3f04c7","line":404,"updated":"2023-10-17 17:21:24.000000000","message":"so for any property used by nova the max length is 255 so this could lead to some late failures in some cases.","commit_id":"0bd1bd699d51162557dd0791ac6e79cb3149db8c"}],"cinder/tests/unit/api/contrib/test_volume_image_metadata.py":[{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"d42606126e295d07d9e9b0ec3e2467a32f62ccab","unresolved":true,"context_lines":[{"line_number":323,"context_line":"                          self.controller.create, req, fake.VOLUME_ID,"},{"line_number":324,"context_line":"                          body\u003ddata)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        # Test for value \u003e 255 (should work)"},{"line_number":327,"context_line":"        data \u003d {\"os-set_image_metadata\": {"},{"line_number":328,"context_line":"            \"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":329,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ef4b08da_fdd99161","line":326,"updated":"2022-12-23 15:10:00.000000000","message":"Please move this test to the positive test case.","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"bc832bde36aa8e4012eb721d0f9ddafa336b70e4","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                          self.controller.create, req, fake.VOLUME_ID,"},{"line_number":324,"context_line":"                          body\u003ddata)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        # Test for value \u003e 255 (should work)"},{"line_number":327,"context_line":"        data \u003d {\"os-set_image_metadata\": {"},{"line_number":328,"context_line":"            \"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":329,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b4ca1c4_700955a9","line":326,"in_reply_to":"ef4b08da_fdd99161","updated":"2022-12-23 18:35:03.000000000","message":"Done","commit_id":"0a6f6e7347bf66e8075e12079e61b3b3f6cf492d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8cf82eca77d71f0131886eac786c7c365c587612","unresolved":true,"context_lines":[{"line_number":353,"context_line":"        req.body \u003d jsonutils.dump_as_bytes(data)"},{"line_number":354,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":355,"context_line":"                          self.controller.create, req, fake.VOLUME_ID,"},{"line_number":356,"context_line":"                          body\u003ddata)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # Test for empty key."},{"line_number":359,"context_line":"        data \u003d {\"os-set_image_metadata\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"7daba35d_a4ae7305","line":356,"updated":"2023-08-05 00:08:11.000000000","message":"I\u0027d like you also to test the boundary condition (here and in the create test).  You can do something like this here:\n\n        # Test a short unicode string that actually exceeds\n        # the allowed byte count\n        char4bytes \u003d \"\\N{CJK UNIFIED IDEOGRAPH-29D98}\"\n        str65536bytes \u003d char4bytes * 16384\n        self.assertEqual(65536, len(str65536bytes.encode(\u0027utf-8\u0027)))\n        self.assertLess(len(str65536bytes), 65535)\n        body \u003d {\"os-set_image_metadata\": {\n            \"metadata\": {\"key\": str65536bytes}}\n        }\n        req.body \u003d jsonutils.dump_as_bytes(body)\n        self.assertRaises(exception.ValidationError,\n                          self.controller.create, req, fake.VOLUME_ID,\n                          body\u003ddata)\n\nand then up in the create test, you can do something like this:\n\n        # This is a weird one ... take a supplementary unicode\n        # char that requires 4 bytes, which will give us a short\n        # string in terms of character count, but a long string\n        # in terms of bytes, and make this string be exactly\n        # 65535 bytes in length.  This should be OK.\n        char4bytes \u003d \"\\N{CJK UNIFIED IDEOGRAPH-29D98}\"\n        self.assertEqual(1, len(char4bytes))\n        self.assertEqual(4, len(char4bytes.encode(\u0027utf-8\u0027)))\n        str65535bytes \u003d char4bytes * 16383 + \u0027123\u0027\n        self.assertLess(len(str65535bytes), 65535)\n        self.assertEqual(65535, len(str65535bytes.encode(\u0027utf-8\u0027)))\n        body \u003d {\"os-set_image_metadata\": {\n            \"metadata\": {\"key\": str65535bytes}}\n        }\n        req \u003d webob.Request.blank(\u0027/v3/%s/volumes/%s/action\u0027 % (\n            fake.PROJECT_ID, fake.VOLUME_ID))\n        req.method \u003d \"POST\"\n        req.body \u003d jsonutils.dump_as_bytes(body)\n        req.headers[\"content-type\"] \u003d \"application/json\"\n        fake_get.return_value \u003d {}\n        res \u003d req.get_response(fakes.wsgi_app(\n            fake_auth_context\u003dself.user_ctxt))\n        self.assertEqual(HTTPStatus.OK, res.status_int)","commit_id":"a67692d2e3c7880276646698df30342a75178826"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"158b5fd2ade37992a84919b5e9e8959c45c8b4d9","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        req.body \u003d jsonutils.dump_as_bytes(data)"},{"line_number":354,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":355,"context_line":"                          self.controller.create, req, fake.VOLUME_ID,"},{"line_number":356,"context_line":"                          body\u003ddata)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # Test for empty key."},{"line_number":359,"context_line":"        data \u003d {\"os-set_image_metadata\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"1c7dc1e0_0a8f9c11","line":356,"in_reply_to":"7daba35d_a4ae7305","updated":"2023-08-07 20:04:02.000000000","message":"Done","commit_id":"a67692d2e3c7880276646698df30342a75178826"}],"releasenotes/notes/image-metadata-size-increase-323812970dc0e513.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf3490b7fc3b2c46dc53dd46830e8b639c574c7","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1988942 \u003chttps://bugs.launchpad.net/cinder/+bug/1988942\u003e`_: Increased"},{"line_number":5,"context_line":"    size of volume image metadata values. Volume image metadata values were"},{"line_number":6,"context_line":"    limited to 255 characters but Glance allows up to 65535 bytes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"811f76ce_f981b0b5","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":41},"updated":"2023-08-09 14:13:24.000000000","message":"maybe add: \"accepted by the Block Storage API\"","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"21b6a418069c72469a4a4c3ba54eb87707fe8a38","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1988942 \u003chttps://bugs.launchpad.net/cinder/+bug/1988942\u003e`_: Increased"},{"line_number":5,"context_line":"    size of volume image metadata values. Volume image metadata values were"},{"line_number":6,"context_line":"    limited to 255 characters but Glance allows up to 65535 bytes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ed81feac_2a0cb95d","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":41},"in_reply_to":"811f76ce_f981b0b5","updated":"2023-08-11 14:51:33.000000000","message":"Done","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf3490b7fc3b2c46dc53dd46830e8b639c574c7","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1988942 \u003chttps://bugs.launchpad.net/cinder/+bug/1988942\u003e`_: Increased"},{"line_number":5,"context_line":"    size of volume image metadata values. Volume image metadata values were"},{"line_number":6,"context_line":"    limited to 255 characters but Glance allows up to 65535 bytes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"b36a2460_1b76181c","line":6,"updated":"2023-08-09 14:13:24.000000000","message":"add something like:  \"This change does not affect the database, which was already capable of accepting up to 65535 bytes for volume image metadata values.\"","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"},{"author":{"_account_id":34275,"name":"Jorge Merlino","email":"jorge.merlino@canonical.com","username":"drencrom"},"change_message_id":"21b6a418069c72469a4a4c3ba54eb87707fe8a38","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1988942 \u003chttps://bugs.launchpad.net/cinder/+bug/1988942\u003e`_: Increased"},{"line_number":5,"context_line":"    size of volume image metadata values. Volume image metadata values were"},{"line_number":6,"context_line":"    limited to 255 characters but Glance allows up to 65535 bytes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"27c1d815_286859d2","line":6,"in_reply_to":"b36a2460_1b76181c","updated":"2023-08-11 14:51:33.000000000","message":"Done","commit_id":"4dafc2dfb3278eeb7defc9cecb5f5ae917f61254"}]}
