)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8e5f1c995f242a39d3927770ce82c07b31efd512","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"TODO"},{"line_number":10,"context_line":"  - releasenote"},{"line_number":11,"context_line":"  - update doc/source/admin/hw-machine-type.rst"},{"line_number":12,"context_line":"  - functional tests asserting the generated config post update"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Blueprint: nova-manage-commands-to-move-between-device-models"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a5465c9_666b5054","line":11,"updated":"2022-02-23 03:34:56.000000000","message":"Hm, this is odd (to me) because the new image property commands seem to do the same thing as the machine type commands, except in a generic way. Is the intention to update this page to be generic and not machine type specific? Or should we add the image property stuff in a new section and keep the machine type section? If it\u0027s the latter then it seems like the title of the doc should be different because then this won\u0027t only be about machine type.","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"da5f41fc60eee04f47ee0981085f07984898326a","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"TODO"},{"line_number":10,"context_line":"  - releasenote"},{"line_number":11,"context_line":"  - update doc/source/admin/hw-machine-type.rst"},{"line_number":12,"context_line":"  - functional tests asserting the generated config post update"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Blueprint: nova-manage-commands-to-move-between-device-models"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"4800e18e_5276c5f1","line":11,"in_reply_to":"5a5465c9_666b5054","updated":"2022-02-23 03:44:26.000000000","message":"(later) Re-reading the spec I think I understand now that the motivation for the new commands is to allow users to update image properties that became invalidated by a machine type change, without a rebuild. So we can add a section about how changing the machine type might cause issues with existing image properties and that these commands can be used to fix it without rebuilding.","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"97038a5cc8ff346b4d00914686f37a4fd2b4dd83","unresolved":true,"context_lines":[{"line_number":11,"context_line":"  - update doc/source/admin/hw-machine-type.rst"},{"line_number":12,"context_line":"  - functional tests asserting the generated config post update"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Blueprint: nova-manage-commands-to-move-between-device-models"},{"line_number":15,"context_line":"Change-Id: Ic8783053778cf4614742186e94059d5675121db1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"be932f01_e7c4a6de","line":14,"range":{"start_line":14,"start_character":11,"end_line":14,"end_character":61},"updated":"2022-02-08 21:40:02.000000000","message":"libvirt-device-bus-model-update","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":7,"context_line":"manage: Add image_property commands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds an image property show and image property set command to"},{"line_number":10,"context_line":"nova-manage allow users to update image properties stored for an"},{"line_number":11,"context_line":"instance in system metadata without having to rebuild the instance."},{"line_number":12,"context_line":"This is intended to ease migration to new machine types, as updating"},{"line_number":13,"context_line":"the machine type could potentially invalidate the existing image"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"e9a3df0a_680f8828","line":10,"range":{"start_line":10,"start_character":11,"end_line":10,"end_character":12},"updated":"2022-02-23 17:36:15.000000000","message":"to ?","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":7,"context_line":"manage: Add image_property commands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds an image property show and image property set command to"},{"line_number":10,"context_line":"nova-manage allow users to update image properties stored for an"},{"line_number":11,"context_line":"instance in system metadata without having to rebuild the instance."},{"line_number":12,"context_line":"This is intended to ease migration to new machine types, as updating"},{"line_number":13,"context_line":"the machine type could potentially invalidate the existing image"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"10f25e89_f943d04d","line":10,"range":{"start_line":10,"start_character":11,"end_line":10,"end_character":12},"in_reply_to":"e9a3df0a_680f8828","updated":"2022-02-24 01:03:45.000000000","message":"Done","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"78f9c4870f2a4112b840cb97e37642269257982f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     melanie witt \u003cmelwittt@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-02-24 01:00:36 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"manage: Add image_property commands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds an image property show and image property set command to"},{"line_number":10,"context_line":"nova-manage to allow users to update image properties stored for an"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f886783_51412503","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":35},"updated":"2024-04-02 12:05:14.000000000","message":"How to keep system_metadata and request_specs the same change?\nIf migrate happened after you change the properties, it\u0027s preferred to use the old properties in request_specs instead of system_metadata.","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4f327b88ccf63c7fba185f0ff8e43c29f0f0232d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3c6e7965_c28224a7","updated":"2022-02-17 12:00:17.000000000","message":"Impl and test looks good. I will upgrade my vote when the doc is updated.","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"5d09035538523ade40347ceaa64440225e8f7607","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8b15f3dc_69b4407f","updated":"2022-01-27 09:43:50.000000000","message":"recheck","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"66706ecd84b0c5474bf8005bc62fd062948a4a66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8c0f9209_96c496f6","updated":"2022-02-23 14:29:44.000000000","message":"Looks good","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"88f37910_aa29eb69","updated":"2022-02-23 17:36:15.000000000","message":"Lots of nits but nothing blocking. The -1 is because we need to update the CLI docs in doc/source/cli/nova-manage.rst I spents ages on those so let\u0027s not let them rot 😊 Adding a reminder to the header of the various nova.cmd modules to update said docs might be a good idea (that could be done separately)","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6ee1317b_545797db","in_reply_to":"88f37910_aa29eb69","updated":"2022-02-24 01:03:45.000000000","message":"Oops. I have added an update.","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"435104e6971a26658b461383d92ce14aeef700d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7390d3fa_8d7ea02c","updated":"2022-02-24 10:25:10.000000000","message":"Thanks!","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"21255788a8a46019019bc261b5208380a186c169","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f6a99973_367e02be","updated":"2022-02-24 11:03:33.000000000","message":"still looks good","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"}],"doc/source/admin/hw-machine-type.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Device bus and model image properties"},{"line_number":144,"context_line":"-------------------------------------"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Device bus and model types defined as image properties associated with an"},{"line_number":147,"context_line":"instance are always used when launching instances with the libvirt driver."},{"line_number":148,"context_line":"Support for each device bus and model is dependent on the machine type used and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fe3d655e_520e46a5","line":145,"updated":"2022-02-23 17:36:15.000000000","message":"A \u0027versionadded\u0027 directive here would be helpful. You can replace the \"From the Yoga (25.0.0) release it is now possible\" with \"It is possible\"","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Device bus and model image properties"},{"line_number":144,"context_line":"-------------------------------------"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Device bus and model types defined as image properties associated with an"},{"line_number":147,"context_line":"instance are always used when launching instances with the libvirt driver."},{"line_number":148,"context_line":"Support for each device bus and model is dependent on the machine type used and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c181636b_22485a10","line":145,"in_reply_to":"fe3d655e_520e46a5","updated":"2022-02-24 01:03:45.000000000","message":"Done","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"}],"doc/source/cli/nova-manage.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"435104e6971a26658b461383d92ce14aeef700d0","unresolved":false,"context_lines":[{"line_number":1667,"context_line":"     - Unable to find cell mapping"},{"line_number":1668,"context_line":"   * - 3"},{"line_number":1669,"context_line":"     - Instances found without ``hw_machine_type`` set"},{"line_number":1670,"context_line":""},{"line_number":1671,"context_line":"Image Property Commands"},{"line_number":1672,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1673,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d0c3ab43_e5e04517","line":1670,"updated":"2022-02-24 10:25:10.000000000","message":"nit: we tend to use two newlines to separate sections (h2, effectively)","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"76797c2a6725c84b4db9acb581db37ecd5566cab","unresolved":false,"context_lines":[{"line_number":1667,"context_line":"     - Unable to find cell mapping"},{"line_number":1668,"context_line":"   * - 3"},{"line_number":1669,"context_line":"     - Instances found without ``hw_machine_type`` set"},{"line_number":1670,"context_line":""},{"line_number":1671,"context_line":"Image Property Commands"},{"line_number":1672,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1673,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"78b1caaf_c23e4bb8","line":1670,"in_reply_to":"d0c3ab43_e5e04517","updated":"2022-02-24 16:13:36.000000000","message":"Gotcha. I happened to look at the Libvirt Commands section as an example and it had only one newline before it 😣","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"}],"nova/cmd/manage.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4f327b88ccf63c7fba185f0ff8e43c29f0f0232d","unresolved":false,"context_lines":[{"line_number":3250,"context_line":"                \"--property should use the format key\u003dvalue\")"},{"line_number":3251,"context_line":""},{"line_number":3252,"context_line":"        # Transform the list of delimited properties to a dict"},{"line_number":3253,"context_line":"        image_properties \u003d dict(prop.split(\u0027\u003d\u0027) for prop in image_properties)"},{"line_number":3254,"context_line":""},{"line_number":3255,"context_line":"        # Validate the names of each property by checking against the o.vo"},{"line_number":3256,"context_line":"        # fields currently listed by ImageProps. We can\u0027t use from_dict to"}],"source_content_type":"text/x-python","patch_set":2,"id":"32348f6c_c9133cdb","line":3253,"updated":"2022-02-17 12:00:17.000000000","message":"OK, we catch ValueError in the command so if the split returns a list with other than 2 elements (e.g. prop\u003d\u0027foo\u003d\u003dbar\u0027) then that is handled","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8e5f1c995f242a39d3927770ce82c07b31efd512","unresolved":true,"context_lines":[{"line_number":3273,"context_line":"        :param image_properties: List of image properties and values to update"},{"line_number":3274,"context_line":"        \"\"\""},{"line_number":3275,"context_line":"        # Check the state of the instance"},{"line_number":3276,"context_line":"        if instance.vm_state !\u003d obj_fields.InstanceState.STOPPED:"},{"line_number":3277,"context_line":"            raise exception.InstanceInvalidState("},{"line_number":3278,"context_line":"                instance_uuid\u003dinstance.uuid, attr\u003d\u0027vm_state\u0027,"},{"line_number":3279,"context_line":"                state\u003dinstance.vm_state,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ac5220fe_5693ca61","line":3276,"updated":"2022-02-23 03:34:56.000000000","message":"I wonder if this is unnecessarily restrictive ... the update_machine_type command is allowed for STOPPED, SHELVED, and SHELVED_OFFLOADED instance states. Seems like this would be the same.","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"66706ecd84b0c5474bf8005bc62fd062948a4a66","unresolved":false,"context_lines":[{"line_number":3273,"context_line":"        :param image_properties: List of image properties and values to update"},{"line_number":3274,"context_line":"        \"\"\""},{"line_number":3275,"context_line":"        # Check the state of the instance"},{"line_number":3276,"context_line":"        if instance.vm_state !\u003d obj_fields.InstanceState.STOPPED:"},{"line_number":3277,"context_line":"            raise exception.InstanceInvalidState("},{"line_number":3278,"context_line":"                instance_uuid\u003dinstance.uuid, attr\u003d\u0027vm_state\u0027,"},{"line_number":3279,"context_line":"                state\u003dinstance.vm_state,"}],"source_content_type":"text/x-python","patch_set":2,"id":"4f9fbc20_0bf6eb1b","line":3276,"in_reply_to":"ac5220fe_5693ca61","updated":"2022-02-23 14:29:44.000000000","message":"I agree","commit_id":"c644ee9e2e732d53265cb584f8e9533589f7cf01"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":3192,"context_line":"            return 1"},{"line_number":3193,"context_line":""},{"line_number":3194,"context_line":""},{"line_number":3195,"context_line":"class ImagePropertyCommands(object):"},{"line_number":3196,"context_line":""},{"line_number":3197,"context_line":"    @action_description(_(\"Show the value of an instance image property.\"))"},{"line_number":3198,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":4,"id":"35724a8b_b6864c32","line":3195,"range":{"start_line":3195,"start_character":27,"end_line":3195,"end_character":35},"updated":"2022-02-23 17:36:15.000000000","message":"nit: don\u0027t need this (Python 3)","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":3192,"context_line":"            return 1"},{"line_number":3193,"context_line":""},{"line_number":3194,"context_line":""},{"line_number":3195,"context_line":"class ImagePropertyCommands(object):"},{"line_number":3196,"context_line":""},{"line_number":3197,"context_line":"    @action_description(_(\"Show the value of an instance image property.\"))"},{"line_number":3198,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":4,"id":"c9479b91_e7221e1e","line":3195,"range":{"start_line":3195,"start_character":27,"end_line":3195,"end_character":35},"in_reply_to":"35724a8b_b6864c32","updated":"2022-02-24 01:03:45.000000000","message":"Done","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":3217,"context_line":"            with context.target_cell(ctxt, im.cell_mapping) as cctxt:"},{"line_number":3218,"context_line":"                instance \u003d objects.Instance.get_by_uuid("},{"line_number":3219,"context_line":"                    cctxt, instance_uuid, expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":3220,"context_line":"                property \u003d instance.system_metadata.get("},{"line_number":3221,"context_line":"                    f\u0027image_{property}\u0027)"},{"line_number":3222,"context_line":"                if property:"},{"line_number":3223,"context_line":"                    print(property)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d8e56168_64c5d69e","line":3220,"range":{"start_line":3220,"start_character":16,"end_line":3220,"end_character":24},"updated":"2022-02-23 17:36:15.000000000","message":"This is aliasing a built in function. Can we use a different name?","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":3217,"context_line":"            with context.target_cell(ctxt, im.cell_mapping) as cctxt:"},{"line_number":3218,"context_line":"                instance \u003d objects.Instance.get_by_uuid("},{"line_number":3219,"context_line":"                    cctxt, instance_uuid, expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":3220,"context_line":"                property \u003d instance.system_metadata.get("},{"line_number":3221,"context_line":"                    f\u0027image_{property}\u0027)"},{"line_number":3222,"context_line":"                if property:"},{"line_number":3223,"context_line":"                    print(property)"}],"source_content_type":"text/x-python","patch_set":4,"id":"95d81ce0_43bacd8c","line":3220,"range":{"start_line":3220,"start_character":16,"end_line":3220,"end_character":24},"in_reply_to":"d8e56168_64c5d69e","updated":"2022-02-24 01:03:45.000000000","message":"Done","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":3218,"context_line":"                instance \u003d objects.Instance.get_by_uuid("},{"line_number":3219,"context_line":"                    cctxt, instance_uuid, expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":3220,"context_line":"                property \u003d instance.system_metadata.get("},{"line_number":3221,"context_line":"                    f\u0027image_{property}\u0027)"},{"line_number":3222,"context_line":"                if property:"},{"line_number":3223,"context_line":"                    print(property)"},{"line_number":3224,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":4,"id":"8fd28d0c_0bd6b48b","line":3221,"updated":"2022-02-23 17:36:15.000000000","message":"nit: would fit on one line","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":3218,"context_line":"                instance \u003d objects.Instance.get_by_uuid("},{"line_number":3219,"context_line":"                    cctxt, instance_uuid, expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":3220,"context_line":"                property \u003d instance.system_metadata.get("},{"line_number":3221,"context_line":"                    f\u0027image_{property}\u0027)"},{"line_number":3222,"context_line":"                if property:"},{"line_number":3223,"context_line":"                    print(property)"},{"line_number":3224,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":4,"id":"77289452_34dd0c26","line":3221,"in_reply_to":"8fd28d0c_0bd6b48b","updated":"2022-02-24 01:03:45.000000000","message":"Ack","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":3230,"context_line":"            exception.InstanceNotFound,"},{"line_number":3231,"context_line":"            exception.InstanceMappingNotFound,"},{"line_number":3232,"context_line":"        ) as e:"},{"line_number":3233,"context_line":"            print(str(e))"},{"line_number":3234,"context_line":"            return 2"},{"line_number":3235,"context_line":"        except Exception as e:"},{"line_number":3236,"context_line":"            print(f\u0027Unexpected error, see nova-manage.log for the full \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"51e276a0_44d2d8c0","line":3233,"updated":"2022-02-23 17:36:15.000000000","message":"nit: Why do you print here, yet log below? Do you actually want the log below?\n\nLater: Seems this might be a common patter throughout nova-manage?","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":true,"context_lines":[{"line_number":3230,"context_line":"            exception.InstanceNotFound,"},{"line_number":3231,"context_line":"            exception.InstanceMappingNotFound,"},{"line_number":3232,"context_line":"        ) as e:"},{"line_number":3233,"context_line":"            print(str(e))"},{"line_number":3234,"context_line":"            return 2"},{"line_number":3235,"context_line":"        except Exception as e:"},{"line_number":3236,"context_line":"            print(f\u0027Unexpected error, see nova-manage.log for the full \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"b5a3cde0_fab20399","line":3233,"in_reply_to":"51e276a0_44d2d8c0","updated":"2022-02-24 01:03:45.000000000","message":"If I had to guess, it might be because here the exceptions are \"expected\" so a trace isn\u0027t likely needed. Whereas for the unexpected exception, one could use the trace to debug and put it to the log so as not to spam the console?","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"435104e6971a26658b461383d92ce14aeef700d0","unresolved":false,"context_lines":[{"line_number":3230,"context_line":"            exception.InstanceNotFound,"},{"line_number":3231,"context_line":"            exception.InstanceMappingNotFound,"},{"line_number":3232,"context_line":"        ) as e:"},{"line_number":3233,"context_line":"            print(str(e))"},{"line_number":3234,"context_line":"            return 2"},{"line_number":3235,"context_line":"        except Exception as e:"},{"line_number":3236,"context_line":"            print(f\u0027Unexpected error, see nova-manage.log for the full \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfcc7726_49b8729d","line":3233,"in_reply_to":"b5a3cde0_fab20399","updated":"2022-02-24 10:25:10.000000000","message":"Yup, makes sense. It\u0027s consistently odd anyway so good enough for me 😇","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":true,"context_lines":[{"line_number":3297,"context_line":"        return 0"},{"line_number":3298,"context_line":""},{"line_number":3299,"context_line":"    @action_description(_(\"Set the values of instance image properties stored \""},{"line_number":3300,"context_line":"                          \"in the database. This is only allowed for \""},{"line_number":3301,"context_line":"                          \"instances with a STOPPED, SHELVED or \""},{"line_number":3302,"context_line":"                          \"SHELVED_OFFLOADED vm_state.\"))"},{"line_number":3303,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":4,"id":"129cf9f0_46d2ecca","line":3300,"range":{"start_line":3300,"start_character":8,"end_line":3300,"end_character":26},"updated":"2022-02-23 17:36:15.000000000","message":"nit: can you avoid the huge indent and do what you did below instead?","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":3297,"context_line":"        return 0"},{"line_number":3298,"context_line":""},{"line_number":3299,"context_line":"    @action_description(_(\"Set the values of instance image properties stored \""},{"line_number":3300,"context_line":"                          \"in the database. This is only allowed for \""},{"line_number":3301,"context_line":"                          \"instances with a STOPPED, SHELVED or \""},{"line_number":3302,"context_line":"                          \"SHELVED_OFFLOADED vm_state.\"))"},{"line_number":3303,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":4,"id":"a0f48007_40b78911","line":3300,"range":{"start_line":3300,"start_character":8,"end_line":3300,"end_character":26},"in_reply_to":"129cf9f0_46d2ecca","updated":"2022-02-24 01:03:45.000000000","message":"I followed the existing pattern but I agree this looks weird.","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"53929c6fa89b231c4b3690d261f1f54791560c25","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"    @args("},{"line_number":3307,"context_line":"        \u0027--property\u0027, metavar\u003d\u0027\u003cproperty\u003e\u0027, action\u003d\u0027append\u0027,"},{"line_number":3308,"context_line":"        help\u003d\u0027Image property to set using the format name\u003dvalue. For example: \u0027"},{"line_number":3309,"context_line":"             \u0027--property hw_disk_bus\u003dvirtio --property hw_cdrom_bus\u003dsata\u0027)"},{"line_number":3310,"context_line":"    def set(self, instance_uuid\u003dNone, property\u003dNone):"},{"line_number":3311,"context_line":"        \"\"\"Set instance image property values"},{"line_number":3312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"a007e9fc_5085f9a6","line":3309,"updated":"2022-02-23 17:36:15.000000000","message":"osc-lib has a lovely custom action for this that you might want to re-use? [1] I expect we have it as a transitive dependency but copy-paste would also work. Purely optional though - what you\u0027ve done will work also\n\n[1] https://github.com/openstack/osc-lib/blob/cce539d65e8aeb1001be936f3ae0659e6e35f738/osc_lib/cli/parseractions.py#L23-L74","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff807b5299c414338bc61126ccd9a8480de8a249","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"    @args("},{"line_number":3307,"context_line":"        \u0027--property\u0027, metavar\u003d\u0027\u003cproperty\u003e\u0027, action\u003d\u0027append\u0027,"},{"line_number":3308,"context_line":"        help\u003d\u0027Image property to set using the format name\u003dvalue. For example: \u0027"},{"line_number":3309,"context_line":"             \u0027--property hw_disk_bus\u003dvirtio --property hw_cdrom_bus\u003dsata\u0027)"},{"line_number":3310,"context_line":"    def set(self, instance_uuid\u003dNone, property\u003dNone):"},{"line_number":3311,"context_line":"        \"\"\"Set instance image property values"},{"line_number":3312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ebed41db_57345482","line":3309,"in_reply_to":"a007e9fc_5085f9a6","updated":"2022-02-24 01:03:45.000000000","message":"Thanks for the pointer, I will leave that for a future time.","commit_id":"8b798515c87e76abcd19630e507225fbee12333c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"435104e6971a26658b461383d92ce14aeef700d0","unresolved":true,"context_lines":[{"line_number":3192,"context_line":"            return 1"},{"line_number":3193,"context_line":""},{"line_number":3194,"context_line":""},{"line_number":3195,"context_line":"class ImagePropertyCommands():"},{"line_number":3196,"context_line":""},{"line_number":3197,"context_line":"    @action_description(_(\"Show the value of an instance image property.\"))"},{"line_number":3198,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":5,"id":"715ee1cd_55986061","line":3195,"range":{"start_line":3195,"start_character":27,"end_line":3195,"end_character":29},"updated":"2022-02-24 10:25:10.000000000","message":"nit: Also don\u0027t need this","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"76797c2a6725c84b4db9acb581db37ecd5566cab","unresolved":true,"context_lines":[{"line_number":3192,"context_line":"            return 1"},{"line_number":3193,"context_line":""},{"line_number":3194,"context_line":""},{"line_number":3195,"context_line":"class ImagePropertyCommands():"},{"line_number":3196,"context_line":""},{"line_number":3197,"context_line":"    @action_description(_(\"Show the value of an instance image property.\"))"},{"line_number":3198,"context_line":"    @args("}],"source_content_type":"text/x-python","patch_set":5,"id":"05176896_28148941","line":3195,"range":{"start_line":3195,"start_character":27,"end_line":3195,"end_character":29},"in_reply_to":"715ee1cd_55986061","updated":"2022-02-24 16:13:36.000000000","message":"Oh whoops, I didn\u0027t know that /facepalm","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"78f9c4870f2a4112b840cb97e37642269257982f","unresolved":true,"context_lines":[{"line_number":3199,"context_line":"        \u0027instance_uuid\u0027, metavar\u003d\u0027\u003cinstance_uuid\u003e\u0027,"},{"line_number":3200,"context_line":"        help\u003d\u0027UUID of the instance\u0027)"},{"line_number":3201,"context_line":"    @args("},{"line_number":3202,"context_line":"        \u0027property\u0027, metavar\u003d\u0027\u003cimage_property\u003e\u0027,"},{"line_number":3203,"context_line":"        help\u003d\u0027Image property to show\u0027)"},{"line_number":3204,"context_line":"    def show(self, instance_uuid\u003dNone, image_property\u003dNone):"},{"line_number":3205,"context_line":"        \"\"\"Show value of a given instance image property."}],"source_content_type":"text/x-python","patch_set":5,"id":"ff646bcf_088860da","line":3202,"range":{"start_line":3202,"start_character":9,"end_line":3202,"end_character":17},"updated":"2024-04-02 12:05:14.000000000","message":"image_property?","commit_id":"19b7cf21706c7975088dd52e02178e7c5f85666b"}]}
