)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ff6f1a88781b3701c39a9a8ca1b47230a59d4ede","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"289663dd_0a44894e","updated":"2024-08-28 14:13:41.000000000","message":"Some of my comments are still open. But the change is moved to good direction.","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e09f9d9d5c1ec95838ab92b147044c441a365a71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":60,"id":"0e42b0dc_4b9ae265","updated":"2024-11-19 14:11:02.000000000","message":"That was a big code change but most of that was coming from the object version bump and some aggressive IDE file touching.","commit_id":"1826ad4d2a0614a55831aff51fe9a447823e0683"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f1f17f741f8fcb30221c60bb4a40986e19f45ed7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":60,"id":"9f7aa31e_f178fa94","updated":"2024-11-15 10:48:02.000000000","message":"still good.","commit_id":"1826ad4d2a0614a55831aff51fe9a447823e0683"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0cc6d8ad340bd807a807ab3815c2da5dd03aef6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"a60bc4af_95bf7f01","updated":"2024-11-23 09:22:33.000000000","message":"recheck guest ping failure","commit_id":"05ef27e3999e4c9651bfee23df1933e76b7d8b77"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"16225346c356930b37892ccf9bd0c81081a8e2cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":65,"id":"18e81e91_e6a69328","updated":"2024-12-08 20:07:55.000000000","message":"recheck https://review.opendev.org/851028 is now merged.","commit_id":"bf96ca7c9a270a8b13892c0062c8fbb5c5f4c494"}],"doc/notification_samples/common_payloads/InstanceActionResizePrepPayload.json":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ff6f1a88781b3701c39a9a8ca1b47230a59d4ede","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":53,"id":"5c1a2128_f30cfb1d","updated":"2024-08-28 14:13:41.000000000","message":"nit: your editor is a bit aggressive about reformatting existing files. But I can live with the new format.","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e09f9d9d5c1ec95838ab92b147044c441a365a71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"9a1a5704_fe0e6672","in_reply_to":"5c1a2128_f30cfb1d","updated":"2024-11-19 14:11:02.000000000","message":"Done","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"}],"doc/notification_samples/common_payloads/InstancePayload.json":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5e51b5e960b1600c4b8115d997609e7d2e7fc617","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        \"action_initiator_user\": \"fake\","},{"line_number":40,"context_line":"        \"action_initiator_project\": \"6f70656e737461636b20342065766572\","},{"line_number":41,"context_line":"        \"locked_reason\": null,"},{"line_number":42,"context_line":"        \"shares\": []"},{"line_number":43,"context_line":"    },"},{"line_number":44,"context_line":"    \"nova_object.name\":\"InstancePayload\","},{"line_number":45,"context_line":"    \"nova_object.namespace\":\"nova\","}],"source_content_type":"application/json","patch_set":19,"id":"aa674844_f2a1a1d6","line":42,"updated":"2023-02-08 17:42:40.000000000","message":"I would aim for a sample that has actual shares in it as we are using this for documentation purposes as well","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b08be77ea254135469d59f8218ec70efe3311f33","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \"action_initiator_user\": \"fake\","},{"line_number":40,"context_line":"        \"action_initiator_project\": \"6f70656e737461636b20342065766572\","},{"line_number":41,"context_line":"        \"locked_reason\": null,"},{"line_number":42,"context_line":"        \"shares\": []"},{"line_number":43,"context_line":"    },"},{"line_number":44,"context_line":"    \"nova_object.name\":\"InstancePayload\","},{"line_number":45,"context_line":"    \"nova_object.namespace\":\"nova\","}],"source_content_type":"application/json","patch_set":19,"id":"b9755d77_dbfff837","line":42,"in_reply_to":"aa674844_f2a1a1d6","updated":"2023-03-06 10:18:50.000000000","message":"Done","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"}],"nova/conf/notifications.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"367bd7d7f1bff4062c86335a2ddea214afc93cd5","unresolved":false,"context_lines":[{"line_number":107,"context_line":"may need to be loaded from the database."},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"    cfg.BoolOpt("},{"line_number":110,"context_line":"        \u0027include_share_mapping\u0027,"},{"line_number":111,"context_line":"        default\u003dFalse,"},{"line_number":112,"context_line":"        help\u003d\"\"\""},{"line_number":113,"context_line":"If enabled, include share mapping information in the versioned notification"}],"source_content_type":"text/x-python","patch_set":53,"id":"a7a4ae4a_573320fe","line":110,"updated":"2024-08-29 14:13:25.000000000","message":"tested, this works as expected. If I set it I start getting the shares in the InstancePayload filled. While the IntanceSharePayload always have the share_id filled regardless.","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ae1429d6b0448aa328f0a146506da85948652261","unresolved":false,"context_lines":[{"line_number":107,"context_line":"may need to be loaded from the database."},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"    cfg.BoolOpt("},{"line_number":110,"context_line":"        \u0027include_share_mapping\u0027,"},{"line_number":111,"context_line":"        default\u003dFalse,"},{"line_number":112,"context_line":"        help\u003d\"\"\""},{"line_number":113,"context_line":"If enabled, include share mapping information in the versioned notification"}],"source_content_type":"text/x-python","patch_set":53,"id":"e7e650ff_6d7b90fc","line":110,"in_reply_to":"1ece7f62_e78aa9fa","updated":"2024-08-29 15:36:46.000000000","message":"OK I figured it out. This instance.update notification is coming from the nova-conductor and I only set include_share_mapping \u003d true on my compute config. Once I set that in the conductor config the instance.update notification also got the shares field filled properly. So all good in the notifications.","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4e52a61c7fdd31599a646d67ef11af79eb18b262","unresolved":true,"context_lines":[{"line_number":107,"context_line":"may need to be loaded from the database."},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"    cfg.BoolOpt("},{"line_number":110,"context_line":"        \u0027include_share_mapping\u0027,"},{"line_number":111,"context_line":"        default\u003dFalse,"},{"line_number":112,"context_line":"        help\u003d\"\"\""},{"line_number":113,"context_line":"If enabled, include share mapping information in the versioned notification"}],"source_content_type":"text/x-python","patch_set":53,"id":"1ece7f62_e78aa9fa","line":110,"in_reply_to":"a7a4ae4a_573320fe","updated":"2024-08-29 14:28:30.000000000","message":"aaactually it works for the instance action notifications. But for some unknown reason shares are always null for the instance.update notification:\n```\n{\n  \"nova_object.name\": \"InstanceUpdatePayload\",\n  \"nova_object.namespace\": \"nova\",\n  \"nova_object.version\": \"2.1\",\n  \"nova_object.data\": {\n    \"state_update\": {\n      \"nova_object.name\": \"InstanceStateUpdatePayload\",\n      \"nova_object.namespace\": \"nova\",\n      \"nova_object.version\": \"1.0\",\n      \"nova_object.data\": {\n        \"old_state\": \"active\",\n        \"state\": \"active\",\n        \"old_task_state\": \"rebooting\",\n        \"new_task_state\": \"rebooting\"\n      }\n    },\n    \"audit_period\": {\n      \"nova_object.name\": \"AuditPeriodPayload\",\n      \"nova_object.namespace\": \"nova\",\n      \"nova_object.version\": \"1.0\",\n      \"nova_object.data\": {\n        \"audit_period_beginning\": \"2024-08-01T00:00:00Z\",\n        \"audit_period_ending\": \"2024-08-29T14:19:28Z\"\n      }\n    },\n    \"old_display_name\": null,\n    \"tags\": [],\n    \"uuid\": \"5a33b995-17a3-406a-b06d-ff11ff358478\",\n    \"user_id\": \"f1bff943dae94122a196e67a5fc0b276\",\n    \"tenant_id\": \"e20ffcd42d424a739fa224589aa0fa06\",\n    \"reservation_id\": \"r-ytvskn9o\",\n    \"display_name\": \"vm3\",\n    \"display_description\": null,\n    \"host_name\": \"vm3\",\n    \"host\": \"gibi-devstack-aio-jammy\",\n    \"node\": \"gibi-devstack-aio-jammy\",\n    \"os_type\": null,\n    \"architecture\": null,\n    \"availability_zone\": \"nova\",\n    \"flavor\": {\n      \"nova_object.name\": \"FlavorPayload\",\n      \"nova_object.namespace\": \"nova\",\n      \"nova_object.version\": \"1.4\",\n      \"nova_object.data\": {\n        \"flavorid\": \"d2\",\n        \"memory_mb\": 1024,\n        \"vcpus\": 1,\n        \"root_gb\": 10,\n        \"ephemeral_gb\": 0,\n        \"name\": \"ds1G\",\n        \"swap\": 0,\n        \"rxtx_factor\": 1,\n        \"vcpu_weight\": 0,\n        \"disabled\": false,\n        \"is_public\": true,\n        \"extra_specs\": {\n          \"hw_rng:allowed\": \"True\"\n        },\n        \"projects\": null,\n        \"description\": null\n      }\n    },\n    \"image_uuid\": \"b3dd644a-1e6d-4876-b9f3-733849c8c2f6\",\n    \"key_name\": null,\n    \"kernel_id\": \"\",\n    \"ramdisk_id\": \"\",\n    \"created_at\": \"2024-08-28T11:59:26Z\",\n    \"launched_at\": \"2024-08-29T13:37:19Z\",\n    \"terminated_at\": null,\n    \"deleted_at\": null,\n    \"updated_at\": \"2024-08-29T14:18:51Z\",\n    \"state\": \"active\",\n    \"power_state\": \"running\",\n    \"task_state\": \"rebooting\",\n    \"progress\": 0,\n    \"ip_addresses\": [\n      {\n        \"nova_object.name\": \"IpPayload\",\n        \"nova_object.namespace\": \"nova\",\n        \"nova_object.version\": \"1.0\",\n        \"nova_object.data\": {\n          \"label\": \"private\",\n          \"mac\": \"fa:16:3e:48:d5:44\",\n          \"meta\": {},\n          \"port_uuid\": \"a9ac4f5c-0b6b-490a-9b89-d8e1b694a583\",\n          \"version\": 4,\n          \"address\": \"10.0.0.23\",\n          \"device_name\": \"tapa9ac4f5c-0b\"\n        }\n      },\n      {\n        \"nova_object.name\": \"IpPayload\",\n        \"nova_object.namespace\": \"nova\",\n        \"nova_object.version\": \"1.0\",\n        \"nova_object.data\": {\n          \"label\": \"private\",\n          \"mac\": \"fa:16:3e:48:d5:44\",\n          \"meta\": {},\n          \"port_uuid\": \"a9ac4f5c-0b6b-490a-9b89-d8e1b694a583\",\n          \"version\": 6,\n          \"address\": \"fd0f:3f0e:dd79:0:f816:3eff:fe48:d544\",\n          \"device_name\": \"tapa9ac4f5c-0b\"\n        }\n      }\n    ],\n    \"block_devices\": [],\n    \"metadata\": {},\n    \"locked\": false,\n    \"auto_disk_config\": \"MANUAL\",\n    \"request_id\": \"req-6e9b9faf-2027-4932-9943-7989e6dbe924\",\n    \"action_initiator_user\": \"f1bff943dae94122a196e67a5fc0b276\",\n    \"action_initiator_project\": \"e20ffcd42d424a739fa224589aa0fa06\",\n    \"locked_reason\": null,\n    \"shares\": null\n  }\n}\n```\n\nyou can reproduce this by attaching a share then starting up the VM, the start notification will have the share filled but the instance.update will not.\nYou can see the notifications in the nova-compute logs if you set the notification driver to log:\n```\n[oslo_messaging_notifications]\ndriver \u003d log\n\n[notifications]\nnotify_on_state_change \u003d vm_and_task_state\nbdms_in_notifications \u003d true\nnotification_format \u003d both\ninclude_share_mapping \u003d true\n\n```","commit_id":"3de384d7d5fa265b3549b94d0c80f9218c31adc3"}],"nova/notifications/objects/instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5e51b5e960b1600c4b8115d997609e7d2e7fc617","unresolved":true,"context_lines":[{"line_number":117,"context_line":"        \u0027action_initiator_user\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":118,"context_line":"        \u0027action_initiator_project\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":119,"context_line":"        \u0027locked_reason\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":120,"context_line":"        \u0027shares\u0027: fields.ListOfObjectsField(\u0027SharePayload\u0027,"},{"line_number":121,"context_line":"                                                   nullable\u003dTrue),"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def __init__(self, context, instance, bdms\u003dNone):"}],"source_content_type":"text/x-python","patch_set":19,"id":"61700c0c_39878ebb","line":121,"range":{"start_line":120,"start_character":0,"end_line":121,"end_character":66},"updated":"2023-02-08 17:42:40.000000000","message":"nit: if it does not fit to a single line then I would wrap it like:\n```\n        \u0027shares\u0027: fields.ListOfObjectsField(\n            \u0027SharePayload\u0027, nullable\u003dTrue),\n```","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b08be77ea254135469d59f8218ec70efe3311f33","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        \u0027action_initiator_user\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":118,"context_line":"        \u0027action_initiator_project\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":119,"context_line":"        \u0027locked_reason\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":120,"context_line":"        \u0027shares\u0027: fields.ListOfObjectsField(\u0027SharePayload\u0027,"},{"line_number":121,"context_line":"                                                   nullable\u003dTrue),"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def __init__(self, context, instance, bdms\u003dNone):"}],"source_content_type":"text/x-python","patch_set":19,"id":"88fafea9_3a27ee42","line":121,"range":{"start_line":120,"start_character":0,"end_line":121,"end_character":66},"in_reply_to":"61700c0c_39878ebb","updated":"2023-03-06 10:18:50.000000000","message":"Done","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5e51b5e960b1600c4b8115d997609e7d2e7fc617","unresolved":true,"context_lines":[{"line_number":504,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    SCHEMA \u003d {"},{"line_number":507,"context_line":"        \u0027instance_uuid\u0027: (\u0027share\u0027, \u0027instance_uuid\u0027),"},{"line_number":508,"context_line":"        \u0027attachementID\u0027: (\u0027share\u0027, \u0027uuid\u0027),"},{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"f513f141_8b184ce7","line":507,"updated":"2023-02-08 17:42:40.000000000","message":"As far as I see we always attach this to an InstancePayload so the instance_uuid is redundant information.","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b08be77ea254135469d59f8218ec70efe3311f33","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    SCHEMA \u003d {"},{"line_number":507,"context_line":"        \u0027instance_uuid\u0027: (\u0027share\u0027, \u0027instance_uuid\u0027),"},{"line_number":508,"context_line":"        \u0027attachementID\u0027: (\u0027share\u0027, \u0027uuid\u0027),"},{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"66e10e8f_ba4b9bcf","line":507,"in_reply_to":"f513f141_8b184ce7","updated":"2023-03-06 10:18:50.000000000","message":"Done","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5e51b5e960b1600c4b8115d997609e7d2e7fc617","unresolved":true,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    SCHEMA \u003d {"},{"line_number":507,"context_line":"        \u0027instance_uuid\u0027: (\u0027share\u0027, \u0027instance_uuid\u0027),"},{"line_number":508,"context_line":"        \u0027attachementID\u0027: (\u0027share\u0027, \u0027uuid\u0027),"},{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"697827d2_e11b5e2d","line":508,"range":{"start_line":508,"start_character":9,"end_line":508,"end_character":22},"updated":"2023-02-08 17:42:40.000000000","message":"I would name it `share_mapping_uuid` or `attachment_uuid`","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b08be77ea254135469d59f8218ec70efe3311f33","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    SCHEMA \u003d {"},{"line_number":507,"context_line":"        \u0027instance_uuid\u0027: (\u0027share\u0027, \u0027instance_uuid\u0027),"},{"line_number":508,"context_line":"        \u0027attachementID\u0027: (\u0027share\u0027, \u0027uuid\u0027),"},{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"c2bb8302_ee97f6bc","line":508,"range":{"start_line":508,"start_character":9,"end_line":508,"end_character":22},"in_reply_to":"697827d2_e11b5e2d","updated":"2023-03-06 10:18:50.000000000","message":"Done","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5e51b5e960b1600c4b8115d997609e7d2e7fc617","unresolved":true,"context_lines":[{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"},{"line_number":512,"context_line":"        \u0027export_location\u0027: (\u0027share\u0027, \u0027export_location\u0027)"},{"line_number":513,"context_line":"    }"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"8d7e893a_cbc38d45","line":512,"updated":"2023-02-08 17:42:40.000000000","message":"is this just a path on the hypervisor or is it a URL with password? If the latter then I would not add it to the notification.","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ff6f1a88781b3701c39a9a8ca1b47230a59d4ede","unresolved":true,"context_lines":[{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"},{"line_number":512,"context_line":"        \u0027export_location\u0027: (\u0027share\u0027, \u0027export_location\u0027)"},{"line_number":513,"context_line":"    }"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"e195f38a_fb8d3f32","line":512,"in_reply_to":"712925bb_0bbacc90","updated":"2024-08-28 14:13:41.000000000","message":"This is still open. I would still suggest not to add export_location as it feels too sensitive data.","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b08be77ea254135469d59f8218ec70efe3311f33","unresolved":true,"context_lines":[{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"},{"line_number":512,"context_line":"        \u0027export_location\u0027: (\u0027share\u0027, \u0027export_location\u0027)"},{"line_number":513,"context_line":"    }"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"bc2d1889_22a28174","line":512,"in_reply_to":"8d7e893a_cbc38d45","updated":"2023-03-06 10:18:50.000000000","message":"It is only a path that contains the IP of the host providing the manila share, no password in it.","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"},{"line_number":512,"context_line":"        \u0027export_location\u0027: (\u0027share\u0027, \u0027export_location\u0027)"},{"line_number":513,"context_line":"    }"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"712925bb_0bbacc90","line":512,"in_reply_to":"bc2d1889_22a28174","updated":"2024-06-20 12:32:43.000000000","message":"I would not add it. The IP of the manila backend is too much infrastructure information.","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"486f9b31bf3a6aaad2eca6f22a4ed2767dc27d0d","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        \u0027share_id\u0027: (\u0027share\u0027, \u0027share_id\u0027),"},{"line_number":510,"context_line":"        \u0027status\u0027: (\u0027share\u0027, \u0027status\u0027),"},{"line_number":511,"context_line":"        \u0027tag\u0027: (\u0027share\u0027, \u0027tag\u0027),"},{"line_number":512,"context_line":"        \u0027export_location\u0027: (\u0027share\u0027, \u0027export_location\u0027)"},{"line_number":513,"context_line":"    }"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"f32f9073_d5ff9c25","line":512,"in_reply_to":"e195f38a_fb8d3f32","updated":"2024-09-17 06:42:36.000000000","message":"Done","commit_id":"0974041503efe5c928f1059fd11e238348f56a8b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"683f8d517ef685b803fa7d16ff7dd0b25e136fc5","unresolved":true,"context_lines":[{"line_number":124,"context_line":"        network_info \u003d instance.get_network_info()"},{"line_number":125,"context_line":"        self.ip_addresses \u003d IpPayload.from_network_info(network_info)"},{"line_number":126,"context_line":"        self.flavor \u003d flavor_payload.FlavorPayload(flavor\u003dinstance.flavor)"},{"line_number":127,"context_line":"        if bdms is not None:"},{"line_number":128,"context_line":"            self.block_devices \u003d BlockDevicePayload.from_bdms(bdms)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            self.block_devices \u003d BlockDevicePayload.from_instance(instance)"},{"line_number":131,"context_line":"        self.shares \u003d SharePayload.from_instance(instance)"},{"line_number":132,"context_line":"        # NOTE(Kevin_Zheng): Don\u0027t include request_id for periodic tasks,"},{"line_number":133,"context_line":"        # RequestContext for periodic tasks does not include project_id"},{"line_number":134,"context_line":"        # and user_id. Consider modify this once periodic tasks got a"}],"source_content_type":"text/x-python","patch_set":49,"id":"a5c4f911_312a6d1c","line":131,"range":{"start_line":127,"start_character":0,"end_line":131,"end_character":58},"updated":"2024-06-20 13:52:04.000000000","message":"lets check if we already have the shares loaded in the caller side when we send the notification similarly how we have it in some cases with bdms.\n\nExample usage of bdms case:\n* bdms already loaded and therefore passed in https://github.com/openstack/nova/blob/7dc4b1ea627d864a0ee2745cc9de4336fc0ba7b5/nova/compute/manager.py#L3130-L3132\n* bdms is not loaded so it lets the notification function to load it if the config asks for it https://github.com/openstack/nova/blob/7dc4b1ea627d864a0ee2745cc9de4336fc0ba7b5/nova/compute/manager.py#L4748-L4750","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        if not CONF.notifications.include_share_mapping:"},{"line_number":530,"context_line":"            return None"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        instance_shares \u003d instance.get_shares()"},{"line_number":533,"context_line":"        if instance_shares is not None:"},{"line_number":534,"context_line":"            return cls.from_shares(instance_shares)"},{"line_number":535,"context_line":"        else:"},{"line_number":536,"context_line":"            return []"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    @classmethod"},{"line_number":539,"context_line":"    def from_shares(cls, shares):"}],"source_content_type":"text/x-python","patch_set":49,"id":"ff387af1_1c072c37","line":536,"range":{"start_line":532,"start_character":0,"end_line":536,"end_character":21},"updated":"2024-06-20 12:32:43.000000000","message":"this can be as simple as:\n```\ninstance_shares \u003d instance.get_shares() or []\nreturn [cls(share) for share in instance_shares]\n```\n\n// later\nyou can also drop the `or []` the as far as I see the db method never returns None","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"486f9b31bf3a6aaad2eca6f22a4ed2767dc27d0d","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        if not CONF.notifications.include_share_mapping:"},{"line_number":530,"context_line":"            return None"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        instance_shares \u003d instance.get_shares()"},{"line_number":533,"context_line":"        if instance_shares is not None:"},{"line_number":534,"context_line":"            return cls.from_shares(instance_shares)"},{"line_number":535,"context_line":"        else:"},{"line_number":536,"context_line":"            return []"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    @classmethod"},{"line_number":539,"context_line":"    def from_shares(cls, shares):"}],"source_content_type":"text/x-python","patch_set":49,"id":"01913079_a6930470","line":536,"range":{"start_line":532,"start_character":0,"end_line":536,"end_character":21},"in_reply_to":"ff387af1_1c072c37","updated":"2024-09-17 06:42:36.000000000","message":"Done","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":539,"context_line":"    def from_shares(cls, shares):"},{"line_number":540,"context_line":"        \"\"\"Returns a list of SharePayload objects based on the passed"},{"line_number":541,"context_line":"        ShareMappingList."},{"line_number":542,"context_line":"        \"\"\""},{"line_number":543,"context_line":"        payloads \u003d []"},{"line_number":544,"context_line":"        for share in shares:"},{"line_number":545,"context_line":"            payloads.append(cls(share))"},{"line_number":546,"context_line":"        return payloads"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"@nova_base.NovaObjectRegistry.register_notification"}],"source_content_type":"text/x-python","patch_set":49,"id":"73b29a5a_03e5865a","line":546,"range":{"start_line":542,"start_character":0,"end_line":546,"end_character":23},"updated":"2024-06-20 12:32:43.000000000","message":"this can be as simple as:\n```\nreturn [cls(share) for share in shares]\n```","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"486f9b31bf3a6aaad2eca6f22a4ed2767dc27d0d","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    def from_shares(cls, shares):"},{"line_number":540,"context_line":"        \"\"\"Returns a list of SharePayload objects based on the passed"},{"line_number":541,"context_line":"        ShareMappingList."},{"line_number":542,"context_line":"        \"\"\""},{"line_number":543,"context_line":"        payloads \u003d []"},{"line_number":544,"context_line":"        for share in shares:"},{"line_number":545,"context_line":"            payloads.append(cls(share))"},{"line_number":546,"context_line":"        return payloads"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"@nova_base.NovaObjectRegistry.register_notification"}],"source_content_type":"text/x-python","patch_set":49,"id":"6faa704a_3840124d","line":546,"range":{"start_line":542,"start_character":0,"end_line":546,"end_character":23},"in_reply_to":"73b29a5a_03e5865a","updated":"2024-09-17 06:42:36.000000000","message":"Done","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"}],"nova/tests/functional/notification_sample_tests/test_instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":1726,"context_line":"        # Return a constant share uuid"},{"line_number":1727,"context_line":"        with mock.patch("},{"line_number":1728,"context_line":"            \"oslo_utils.uuidutils.generate_uuid\","},{"line_number":1729,"context_line":"            return_value\u003d\"f7c1726d-7622-42b3-8b2c-4473239d60d1\","},{"line_number":1730,"context_line":"        ):"},{"line_number":1731,"context_line":"            self._attach_share("},{"line_number":1732,"context_line":"                server, \"e8debdc0-447a-4376-a10a-4cd9122d7986\""}],"source_content_type":"text/x-python","patch_set":49,"id":"338d422b_cd2ce5a8","line":1729,"updated":"2024-06-20 12:32:43.000000000","message":"I noted before that you don\u0027t need this. Now I see you need this here as the instance payload has the shares list with the mapping uuid. I still think that mocking is not the good answer in the functional test. Could you use the replacements to replace only the share_mapping_uuid directly? I assume nova returns the generated share_mapping_id in the response of the attach_share call.","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"4602a99e8218de6fb1fddf0fe6cd8e2504ca37f7","unresolved":false,"context_lines":[{"line_number":1726,"context_line":"        # Return a constant share uuid"},{"line_number":1727,"context_line":"        with mock.patch("},{"line_number":1728,"context_line":"            \"oslo_utils.uuidutils.generate_uuid\","},{"line_number":1729,"context_line":"            return_value\u003d\"f7c1726d-7622-42b3-8b2c-4473239d60d1\","},{"line_number":1730,"context_line":"        ):"},{"line_number":1731,"context_line":"            self._attach_share("},{"line_number":1732,"context_line":"                server, \"e8debdc0-447a-4376-a10a-4cd9122d7986\""}],"source_content_type":"text/x-python","patch_set":49,"id":"71406c72_bda30660","line":1729,"in_reply_to":"338d422b_cd2ce5a8","updated":"2024-06-26 16:19:39.000000000","message":"Done","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":1845,"context_line":"        self.notifier.reset()"},{"line_number":1846,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027os-start\u0027: {}})"},{"line_number":1847,"context_line":"        self._wait_for_state_change(server, expected_status\u003d\u0027ACTIVE\u0027)"},{"line_number":1848,"context_line":"        self.assertEqual(2, len(self.notifier.versioned_notifications),"},{"line_number":1849,"context_line":"                         self.notifier.versioned_notifications)"},{"line_number":1850,"context_line":"        self._verify_notification("},{"line_number":1851,"context_line":"            \u0027instance-power_on-start\u0027,"}],"source_content_type":"text/x-python","patch_set":49,"id":"c1a9f10d_c05232d3","line":1848,"updated":"2024-06-20 12:32:43.000000000","message":"you can skip the assert at the end as you already covered the power-on above, and you only power on here to return the instance to ACTIVE state for other action testing.","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"486f9b31bf3a6aaad2eca6f22a4ed2767dc27d0d","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"        self.notifier.reset()"},{"line_number":1846,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027os-start\u0027: {}})"},{"line_number":1847,"context_line":"        self._wait_for_state_change(server, expected_status\u003d\u0027ACTIVE\u0027)"},{"line_number":1848,"context_line":"        self.assertEqual(2, len(self.notifier.versioned_notifications),"},{"line_number":1849,"context_line":"                         self.notifier.versioned_notifications)"},{"line_number":1850,"context_line":"        self._verify_notification("},{"line_number":1851,"context_line":"            \u0027instance-power_on-start\u0027,"}],"source_content_type":"text/x-python","patch_set":49,"id":"22fe4765_b37569a8","line":1848,"in_reply_to":"c1a9f10d_c05232d3","updated":"2024-09-17 06:42:36.000000000","message":"Done","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"}],"nova/tests/unit/notifications/objects/test_notification.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7107715ae12f9bb1171aa40e8fb5a958a58bfe22","unresolved":true,"context_lines":[{"line_number":390,"context_line":"    \u0027InstanceActionPayload\u0027: \u00271.9-525dcf81b6e4592d935712a2675309dc\u0027,"},{"line_number":391,"context_line":"    \u0027InstanceActionRebuildNotification\u0027:"},{"line_number":392,"context_line":"        \u00271.0-a73147b93b520ff0061865849d3dfa56\u0027,"},{"line_number":393,"context_line":"    \u0027InstanceActionRebuildPayload\u0027: \u00271.9-b741a7add29a8c1f584fd5d5b3362372\u0027,"},{"line_number":394,"context_line":"    \u0027InstanceActionRescueNotification\u0027: \u00271.0-a73147b93b520ff0061865849d3dfa56\u0027,"},{"line_number":395,"context_line":"    \u0027InstanceActionRescuePayload\u0027: \u00271.3-29e0327c2ad6953d367db68d9aceef20\u0027,"},{"line_number":396,"context_line":"    \u0027InstanceActionResizePrepNotification\u0027:"}],"source_content_type":"text/x-python","patch_set":49,"id":"04e38b73_52645724","line":393,"updated":"2024-06-20 12:32:43.000000000","message":"this is wrong. Here and below you need to bump the version as well","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"4602a99e8218de6fb1fddf0fe6cd8e2504ca37f7","unresolved":false,"context_lines":[{"line_number":390,"context_line":"    \u0027InstanceActionPayload\u0027: \u00271.9-525dcf81b6e4592d935712a2675309dc\u0027,"},{"line_number":391,"context_line":"    \u0027InstanceActionRebuildNotification\u0027:"},{"line_number":392,"context_line":"        \u00271.0-a73147b93b520ff0061865849d3dfa56\u0027,"},{"line_number":393,"context_line":"    \u0027InstanceActionRebuildPayload\u0027: \u00271.9-b741a7add29a8c1f584fd5d5b3362372\u0027,"},{"line_number":394,"context_line":"    \u0027InstanceActionRescueNotification\u0027: \u00271.0-a73147b93b520ff0061865849d3dfa56\u0027,"},{"line_number":395,"context_line":"    \u0027InstanceActionRescuePayload\u0027: \u00271.3-29e0327c2ad6953d367db68d9aceef20\u0027,"},{"line_number":396,"context_line":"    \u0027InstanceActionResizePrepNotification\u0027:"}],"source_content_type":"text/x-python","patch_set":49,"id":"f8bef00f_518c38b2","line":393,"in_reply_to":"04e38b73_52645724","updated":"2024-06-26 16:19:39.000000000","message":"Done","commit_id":"338cc567983cff7c83e85df6a75b598de736daa5"}]}
