)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"0389e3efa5a51dd2948b9a3ef5b7ae27fb8730b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2d06b80c_1e834a73","updated":"2025-01-15 03:39:19.000000000","message":"Small review 😊","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"4c5b648f306e64aef8623062d523a09af21cc07c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"519d1f39_403b720c","updated":"2025-01-15 18:56:02.000000000","message":"I think we need to add a stub for the cli in the validation in order for the tests to pass.","commit_id":"59d0ec3744fee03c3d2d5d92b65a4430a9fd1597"},{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"3e5577e5b94ebfd172c51519cd7507178ac68733","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8b4bb4f1_f975a914","updated":"2025-04-24 19:16:52.000000000","message":"This may have caused an issue when labels are not set on cluster template creation. See the end of https://zuul.opendev.org/t/openstack/build/1cf30a427c2c4bf4ac333efa8d727e27/log/controller/logs/screen-magnum-api.txt for an example.","commit_id":"d8d2016ede09a92ee2a789e2984267bd4c21895f"}],"magnum/api/attr_validator.py":[{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"b20447c0aff3b15c31a534a1515b395de3f7ad4e","unresolved":true,"context_lines":[{"line_number":178,"context_line":"def validate_flavor_root_volume_size(cli, flavor, boot_volume_size):"},{"line_number":179,"context_line":"    \"\"\"Validate flavor root volume size.\"\"\""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    if boot_volume_size \u003e 0:"},{"line_number":182,"context_line":"        return"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    flavor_obj \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"f926795d_75e32376","line":181,"updated":"2025-01-09 21:04:58.000000000","message":"Is zero the only invalid value here? It certainly addresses the common case but I expect 1GiB would have the same problem.\n\nDo we want to have a minimum GiB value in Magnum config, or does this open a larger can of worms?\n\nIn CAPI Helm driver we have added validation for flavor vcpus and ram[1], and added these as `magnum.conf` values. This could really be moved out to Magnum itself and configured in the same way as this disk size?\n\n[1] https://github.com/openstack/magnum-capi-helm/blob/master/magnum_capi_helm/driver.py#L616","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"bac7363e6463aa7f6b58cd3a479d3692813d16b6","unresolved":false,"context_lines":[{"line_number":178,"context_line":"def validate_flavor_root_volume_size(cli, flavor, boot_volume_size):"},{"line_number":179,"context_line":"    \"\"\"Validate flavor root volume size.\"\"\""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    if boot_volume_size \u003e 0:"},{"line_number":182,"context_line":"        return"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    flavor_obj \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"2619bfde_0ca4a30b","line":181,"in_reply_to":"1aeab50e_26f278bc","updated":"2025-01-15 04:15:20.000000000","message":"Ok, I\u0027m fine with just validating the zero case in this patchset. The minimum value complicates the original purpose of this change a bit much.","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"0389e3efa5a51dd2948b9a3ef5b7ae27fb8730b4","unresolved":true,"context_lines":[{"line_number":178,"context_line":"def validate_flavor_root_volume_size(cli, flavor, boot_volume_size):"},{"line_number":179,"context_line":"    \"\"\"Validate flavor root volume size.\"\"\""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    if boot_volume_size \u003e 0:"},{"line_number":182,"context_line":"        return"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    flavor_obj \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aeab50e_26f278bc","line":181,"in_reply_to":"f926795d_75e32376","updated":"2025-01-15 03:39:19.000000000","message":"The issue here is validating if boot_volume_size\u003d0 when the flavor root_gb\u003d0 -- I think that there should be another image validation to check if the image\u0027s size \u003c\u003d boot_volume_size -- that\u0027s another test IMHO.","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"}],"magnum/api/controllers/v1/cluster.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"0389e3efa5a51dd2948b9a3ef5b7ae27fb8730b4","unresolved":true,"context_lines":[{"line_number":166,"context_line":"    \"\"\"Indicates whether the labels will be merged with the CT labels.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    labels_overridden \u003d wtypes.DictType("},{"line_number":169,"context_line":"        wtypes.text, types.MultiType("},{"line_number":170,"context_line":"            wtypes.text, int, bool, float))"},{"line_number":171,"context_line":"    \"\"\"Contains labels that have a value different than the parent labels.\"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    labels_added \u003d wtypes.DictType("}],"source_content_type":"text/x-python","patch_set":3,"id":"b76695be_e004cc22","line":170,"range":{"start_line":169,"start_character":0,"end_line":170,"end_character":43},"updated":"2025-01-15 03:39:19.000000000","message":"Let\u0027s drop this unnecssary change to make the diff cleaner.","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":31746,"name":"Oleksandr Kozachenko","email":"okozachenko1203@gmail.com","username":"okozachenko"},"change_message_id":"21bd16caf16778175af9e8e8e782c1abd1a728bd","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    \"\"\"Indicates whether the labels will be merged with the CT labels.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    labels_overridden \u003d wtypes.DictType("},{"line_number":169,"context_line":"        wtypes.text, types.MultiType("},{"line_number":170,"context_line":"            wtypes.text, int, bool, float))"},{"line_number":171,"context_line":"    \"\"\"Contains labels that have a value different than the parent labels.\"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    labels_added \u003d wtypes.DictType("}],"source_content_type":"text/x-python","patch_set":3,"id":"cfaeb3ed_9d4210a6","line":170,"range":{"start_line":169,"start_character":0,"end_line":170,"end_character":43},"in_reply_to":"b76695be_e004cc22","updated":"2025-01-15 14:39:11.000000000","message":"Done","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"}],"magnum/api/controllers/v1/nodegroup.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"0389e3efa5a51dd2948b9a3ef5b7ae27fb8730b4","unresolved":true,"context_lines":[{"line_number":181,"context_line":"            cluster \u003d api_utils.get_resource(\u0027Cluster\u0027, ng.cluster_id)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"            overridden, added, skipped \u003d api_utils.get_labels_diff("},{"line_number":184,"context_line":"                cluster.labels, ng.labels)"},{"line_number":185,"context_line":"            ng.labels_overridden \u003d overridden"},{"line_number":186,"context_line":"            ng.labels_added \u003d added"},{"line_number":187,"context_line":"            ng.labels_skipped \u003d skipped"}],"source_content_type":"text/x-python","patch_set":3,"id":"94e3d5fe_bf29b813","line":184,"range":{"start_line":184,"start_character":0,"end_line":184,"end_character":42},"updated":"2025-01-15 03:39:19.000000000","message":"Let\u0027s drop the unnecessary diff here too","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":31746,"name":"Oleksandr Kozachenko","email":"okozachenko1203@gmail.com","username":"okozachenko"},"change_message_id":"21bd16caf16778175af9e8e8e782c1abd1a728bd","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            cluster \u003d api_utils.get_resource(\u0027Cluster\u0027, ng.cluster_id)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"            overridden, added, skipped \u003d api_utils.get_labels_diff("},{"line_number":184,"context_line":"                cluster.labels, ng.labels)"},{"line_number":185,"context_line":"            ng.labels_overridden \u003d overridden"},{"line_number":186,"context_line":"            ng.labels_added \u003d added"},{"line_number":187,"context_line":"            ng.labels_skipped \u003d skipped"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ab9ac04_2d16b098","line":184,"range":{"start_line":184,"start_character":0,"end_line":184,"end_character":42},"in_reply_to":"94e3d5fe_bf29b813","updated":"2025-01-15 14:39:11.000000000","message":"Done","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"}],"magnum/common/exception.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"0389e3efa5a51dd2948b9a3ef5b7ae27fb8730b4","unresolved":true,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class FlavorZeroRootVolumeNotSupported(NotSupported):"},{"line_number":447,"context_line":"    message \u003d _(\"Flavor with zero root volume size is not supported \""},{"line_number":448,"context_line":"                \"When boot_volume_size is zero.\")"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"class ClusterUpgradeNotSupported(NotSupported):"}],"source_content_type":"text/x-python","patch_set":3,"id":"8be90767_6dca170b","line":448,"updated":"2025-01-15 03:39:19.000000000","message":"Let\u0027s make this a lower case W because it\u0027s a one long string so the user doesn\u0027t see\n\n\".. not supported When boot_volume_size ..\"","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"},{"author":{"_account_id":31746,"name":"Oleksandr Kozachenko","email":"okozachenko1203@gmail.com","username":"okozachenko"},"change_message_id":"b0c49cfc587e41b2e2312cd4e2b3f6a6ac5bd5a6","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class FlavorZeroRootVolumeNotSupported(NotSupported):"},{"line_number":447,"context_line":"    message \u003d _(\"Flavor with zero root volume size is not supported \""},{"line_number":448,"context_line":"                \"When boot_volume_size is zero.\")"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"class ClusterUpgradeNotSupported(NotSupported):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d269f680_e116fafa","line":448,"in_reply_to":"8be90767_6dca170b","updated":"2025-01-21 13:00:48.000000000","message":"Done","commit_id":"d3343eb82c49a3ea5ecd0051c51417741ca234ee"}]}
