)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"38e75eed2e0fa6f9646b96ded6eb1e2c1e20bf56","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"34c75b7c_11152142","updated":"2024-01-22 10:01:03.000000000","message":"I looks good to me, I have checked:\n- fields name are ok.\n- compatibility code is available for previous version.\n- checksum is changed","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58bfcade3f522510250339f98f22419161f2ad78","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        # flags to indicate that the compute host is new enough to perform a"},{"line_number":278,"context_line":"        # mediated-device-aware live migration. Remove in version 2.0."},{"line_number":279,"context_line":"        \u0027src_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":280,"context_line":"        \u0027dst_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":281,"context_line":"        # key is mdev UUID and value is its type."},{"line_number":282,"context_line":"        \u0027source_mdev_types\u0027: fields.DictOfStringsField(),"},{"line_number":283,"context_line":"        # key is source mdev UUID and value is the destination mdev UUID."}],"source_content_type":"text/x-python","patch_set":2,"id":"d06024b7_9a1a8e70","line":280,"updated":"2024-01-30 14:32:38.000000000","message":"I\u0027m not sure this is the best way to do this necessarily, because it ends up creating debt in this object. However, I see we already set the precedent for numa live migration, so whatever. One service version field would work forever and/or we could look up the service version on either end too..","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1a365805eb92bc0b1888a152b96b7e7df3a70628","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        # flags to indicate that the compute host is new enough to perform a"},{"line_number":278,"context_line":"        # mediated-device-aware live migration. Remove in version 2.0."},{"line_number":279,"context_line":"        \u0027src_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":280,"context_line":"        \u0027dst_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":281,"context_line":"        # key is mdev UUID and value is its type."},{"line_number":282,"context_line":"        \u0027source_mdev_types\u0027: fields.DictOfStringsField(),"},{"line_number":283,"context_line":"        # key is source mdev UUID and value is the destination mdev UUID."}],"source_content_type":"text/x-python","patch_set":2,"id":"da3d9011_d381fcf1","line":280,"in_reply_to":"79f73e71_824d0aef","updated":"2024-02-02 14:40:52.000000000","message":"Ack, well, at least it\u0027s half as verbose nose :)","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"32f87e5a12e973dd61775330e982500ac19cf885","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        # flags to indicate that the compute host is new enough to perform a"},{"line_number":278,"context_line":"        # mediated-device-aware live migration. Remove in version 2.0."},{"line_number":279,"context_line":"        \u0027src_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":280,"context_line":"        \u0027dst_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":281,"context_line":"        # key is mdev UUID and value is its type."},{"line_number":282,"context_line":"        \u0027source_mdev_types\u0027: fields.DictOfStringsField(),"},{"line_number":283,"context_line":"        # key is source mdev UUID and value is the destination mdev UUID."}],"source_content_type":"text/x-python","patch_set":2,"id":"79f73e71_824d0aef","line":280,"in_reply_to":"d06024b7_9a1a8e70","updated":"2024-01-30 18:02:44.000000000","message":"Actually, src_supports_mdev_live_migration is not required since the destination can just check if the source provided the below field, so I\u0027ll remove it.\nFor dst_supports_mdev_live_migration unfortunately we need to support it as we need to make sure that the destination is having the right libvirt and qemu versions (and not only be a Caracal service)","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"821a1291852aea10322533a1cd8999a220080822","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        # flags to indicate that the compute host is new enough to perform a"},{"line_number":278,"context_line":"        # mediated-device-aware live migration. Remove in version 2.0."},{"line_number":279,"context_line":"        \u0027src_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":280,"context_line":"        \u0027dst_supports_mdev_live_migration\u0027: fields.BooleanField(),"},{"line_number":281,"context_line":"        # key is mdev UUID and value is its type."},{"line_number":282,"context_line":"        \u0027source_mdev_types\u0027: fields.DictOfStringsField(),"},{"line_number":283,"context_line":"        # key is source mdev UUID and value is the destination mdev UUID."}],"source_content_type":"text/x-python","patch_set":2,"id":"a22ca05e_cb2d371d","line":280,"in_reply_to":"da3d9011_d381fcf1","updated":"2024-02-05 17:37:25.000000000","message":"Acknowledged","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58bfcade3f522510250339f98f22419161f2ad78","unresolved":true,"context_lines":[{"line_number":299,"context_line":"            del primitive[\u0027src_supports_mdev_live_migration\u0027]"},{"line_number":300,"context_line":"        if (target_version \u003c (1, 11) and"},{"line_number":301,"context_line":"                \u0027dst_supports_mdev_live_migration\u0027 in primitive):"},{"line_number":302,"context_line":"            del primitive[\u0027dst_supports_mdev_live_migration\u0027]"},{"line_number":303,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":304,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":305,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ef5dee54_ef3bc4c3","line":302,"updated":"2024-01-30 14:32:38.000000000","message":"This is a nit, but it might be best to have one \"if \u003c 1.11\" condition and then remove the all the things in there (perhaps with `pop`). It\u0027s just that visually, each of these ifs looks like it\u0027s for one version (as it is in most cases) but this one appears repeated multiple times if you don\u0027t notice the `in` check.","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"32f87e5a12e973dd61775330e982500ac19cf885","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            del primitive[\u0027src_supports_mdev_live_migration\u0027]"},{"line_number":300,"context_line":"        if (target_version \u003c (1, 11) and"},{"line_number":301,"context_line":"                \u0027dst_supports_mdev_live_migration\u0027 in primitive):"},{"line_number":302,"context_line":"            del primitive[\u0027dst_supports_mdev_live_migration\u0027]"},{"line_number":303,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":304,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":305,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"90f597d7_29101355","line":302,"in_reply_to":"ef5dee54_ef3bc4c3","updated":"2024-01-30 18:02:44.000000000","message":"Done","commit_id":"df46aed1f657d8d9e5074d55e7058f08fbad52e0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1a365805eb92bc0b1888a152b96b7e7df3a70628","unresolved":true,"context_lines":[{"line_number":289,"context_line":"        if target_version \u003c (1, 11):"},{"line_number":290,"context_line":"            primitive.pop(\u0027target_mdevs\u0027, None)"},{"line_number":291,"context_line":"            primitive.pop(\u0027source_mdev_types\u0027, None)"},{"line_number":292,"context_line":"            primitive.pop(\u0027dst_supports_mdev_live_migration\u0027, None)"},{"line_number":293,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":294,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":295,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"801a0032_147f3ff5","line":292,"updated":"2024-02-02 14:40:52.000000000","message":"Yeah this is easier for me to read at a glance to see \"these things come out before 1.11\". Definitely a preference, so thanks for changing.","commit_id":"fbdd68d4dea16e4663e420910a51c473e091e3fa"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3b2eeffabe3995b634c1b8088cd32586c47d5653","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        if target_version \u003c (1, 11):"},{"line_number":290,"context_line":"            primitive.pop(\u0027target_mdevs\u0027, None)"},{"line_number":291,"context_line":"            primitive.pop(\u0027source_mdev_types\u0027, None)"},{"line_number":292,"context_line":"            primitive.pop(\u0027dst_supports_mdev_live_migration\u0027, None)"},{"line_number":293,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":294,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":295,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"016cbe39_c40daca4","line":292,"in_reply_to":"687bf742_f0bdcea5","updated":"2024-02-13 14:47:12.000000000","message":"`del` will KeyError if it\u0027s missing, `pop(k, None)` will not. If you look at where this comment from in PS2, Sylvain had version and `k in primitive` checks for each, which is where the pop suggestion came from.","commit_id":"fbdd68d4dea16e4663e420910a51c473e091e3fa"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"821a1291852aea10322533a1cd8999a220080822","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        if target_version \u003c (1, 11):"},{"line_number":290,"context_line":"            primitive.pop(\u0027target_mdevs\u0027, None)"},{"line_number":291,"context_line":"            primitive.pop(\u0027source_mdev_types\u0027, None)"},{"line_number":292,"context_line":"            primitive.pop(\u0027dst_supports_mdev_live_migration\u0027, None)"},{"line_number":293,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":294,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":295,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"8c1af68b_b9bdd1ed","line":292,"in_reply_to":"801a0032_147f3ff5","updated":"2024-02-05 17:37:25.000000000","message":"Acknowledged","commit_id":"fbdd68d4dea16e4663e420910a51c473e091e3fa"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e5dc1a330ebc6e7a126041996459fe8b89513f69","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        if target_version \u003c (1, 11):"},{"line_number":290,"context_line":"            primitive.pop(\u0027target_mdevs\u0027, None)"},{"line_number":291,"context_line":"            primitive.pop(\u0027source_mdev_types\u0027, None)"},{"line_number":292,"context_line":"            primitive.pop(\u0027dst_supports_mdev_live_migration\u0027, None)"},{"line_number":293,"context_line":"        if (target_version \u003c (1, 10) and"},{"line_number":294,"context_line":"                \u0027src_supports_numa_live_migration\u0027 in primitive):"},{"line_number":295,"context_line":"            del primitive[\u0027src_supports_numa_live_migration\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"687bf742_f0bdcea5","line":292,"in_reply_to":"8c1af68b_b9bdd1ed","updated":"2024-02-13 13:14:13.000000000","message":"ya im fine with using pop.\n\nfor single filed the reability of del is about the same but for mulitple this is cleaner","commit_id":"fbdd68d4dea16e4663e420910a51c473e091e3fa"}]}
