)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":true,"context_lines":[{"line_number":22,"context_line":" 1. Being selective with our microversion during the revert, keeping"},{"line_number":23,"context_line":"    only a type on migrations for the moment"},{"line_number":24,"context_line":" 2. We could just proceed with setting COMPUTE_INSTANCE on all"},{"line_number":25,"context_line":"    instance allocations going forward."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Assisted-By: GPT 6.1 Sol"},{"line_number":28,"context_line":"Change-Id: I6d2f40e7fa071e76bb4258efe4d2e2dffef16abc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e50e6ee8_f4de8146","line":25,"updated":"2026-10-29 13:18:33.000000000","message":"I vote for option 2. That would be more complete.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b3ceb9cb5e3f772033488f2c73ab357d4b16cc5b","unresolved":true,"context_lines":[{"line_number":22,"context_line":" 1. Being selective with our microversion during the revert, keeping"},{"line_number":23,"context_line":"    only a type on migrations for the moment"},{"line_number":24,"context_line":" 2. We could just proceed with setting COMPUTE_INSTANCE on all"},{"line_number":25,"context_line":"    instance allocations going forward."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Assisted-By: GPT 6.1 Sol"},{"line_number":28,"context_line":"Change-Id: I6d2f40e7fa071e76bb4258efe4d2e2dffef16abc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"edfd7b3c_3a5e4291","line":25,"in_reply_to":"2f10d197_34c1f4b1","updated":"2026-11-05 14:51:24.000000000","message":"the maintenance writers comment in https://review.opendev.org/c/openstack/nova/+/1013978 shows that option 2 might be more complicated than I anticipated. So I\u0027m changed my mind. I\u0027m OK to land this after the IGNORED value added to the report.py.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"366d912cccaced9bfcaa117e2ef799c15d03203f","unresolved":true,"context_lines":[{"line_number":22,"context_line":" 1. Being selective with our microversion during the revert, keeping"},{"line_number":23,"context_line":"    only a type on migrations for the moment"},{"line_number":24,"context_line":" 2. We could just proceed with setting COMPUTE_INSTANCE on all"},{"line_number":25,"context_line":"    instance allocations going forward."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Assisted-By: GPT 6.1 Sol"},{"line_number":28,"context_line":"Change-Id: I6d2f40e7fa071e76bb4258efe4d2e2dffef16abc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"2f10d197_34c1f4b1","line":25,"in_reply_to":"e50e6ee8_f4de8146","updated":"2026-10-29 13:50:24.000000000","message":"It is, it just increases the scope here beyond what we need for migrations. But, ack.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"79989992ea34becbe515f468ec81b5c18a7cc53b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e446a3ca_7673d86c","updated":"2026-10-23 17:48:40.000000000","message":"I have reviewed the production code and tested this locally. I haven\u0027t gone through all the LLM-written tests yet (and TBH they seem maybe overkill). Oh and I just realized I missed the Assisted-By here, which I will fix the next time I push.\n\nWanted to get this up for eyes and so I can start trying to make the liveMigrate set work with it.","commit_id":"603d47e23701659c2f27c3bac7dd069400535964"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"96303a9f_581a159b","updated":"2026-10-29 13:18:33.000000000","message":"Direction looks good. I would start labeling all allocations from nova for completeness. Also I see one possible symplification of the move_allocations interface. \n\nI haven\u0027t looked at the test, I will wait until your review your own (generated) code ;)","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"19027b3ee79946500c3ca1af14fa2ffedec18444","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2e21de60_292d254a","updated":"2026-11-04 15:17:23.000000000","message":"I put the rest-of-the-instances changes in a patch above this so we can see how much it adds. I also started on that before doing the `IGNORE` thing, so that\u0027s in a third patch to be squashed into this before merge one way or the other.","commit_id":"7627bcb979b36300e19c9062cefa6dd53b0aab33"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1951aa22360618f5f6e61667c7b7a60db9fb766a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1eedf5c5_602393e0","updated":"2026-11-04 15:35:59.000000000","message":"recheck looking through the graceful shutdown test logs I don\u0027t see anything related to allocations or consumer types (but also nor do I fully grok the failure) so doing another run to see if it repeats.","commit_id":"7627bcb979b36300e19c9062cefa6dd53b0aab33"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"074f24a0d1e28679122dbe36d201c7ae6074f5ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ad20b0c8_92c2b8f4","updated":"2026-11-05 20:22:08.000000000","message":"Okay, the IGNORED thing is squashed in and the tests de-LLMed a bit (otherwise I think it did a pretty good job).","commit_id":"ad2f8de340d2279ebdb870438b0b11ad8b7a7752"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":false,"context_lines":[{"line_number":5838,"context_line":"        self.reportclient.move_allocations("},{"line_number":5839,"context_line":"            context, migration.uuid, instance.uuid,"},{"line_number":5840,"context_line":"            source_consumer_type\u003d\u0027COMPUTE_MIGRATION\u0027,"},{"line_number":5841,"context_line":"            target_consumer_type\u003d\u0027COMPUTE_INSTANCE\u0027)"},{"line_number":5842,"context_line":"        return orig_alloc"},{"line_number":5843,"context_line":""},{"line_number":5844,"context_line":"    def _prep_resize("}],"source_content_type":"text/x-python","patch_set":2,"id":"5c020994_e1458f02","line":5841,"updated":"2026-10-29 13:18:33.000000000","message":"as we revert the migration allocation is moved to be held by the instance uuid so yes this need the type COMPUTE_INSTANCE.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fc11d876586bdbc5f8293b91023eaf9bd42f0ab5","unresolved":true,"context_lines":[{"line_number":5837,"context_line":"        # untyped because they do not use this allocation-move path."},{"line_number":5838,"context_line":"        self.reportclient.move_allocations("},{"line_number":5839,"context_line":"            context, migration.uuid, instance.uuid,"},{"line_number":5840,"context_line":"            target_consumer_type\u003d\u0027COMPUTE_INSTANCE\u0027)"},{"line_number":5841,"context_line":"        return orig_alloc"},{"line_number":5842,"context_line":""},{"line_number":5843,"context_line":"    def _prep_resize("}],"source_content_type":"text/x-python","patch_set":5,"id":"334b7824_b14b48a7","line":5840,"updated":"2026-11-05 20:31:13.000000000","message":"Oops, I forgot I wanted to move the report.TYPE constants back here, so I\u0027ll do that real quick.","commit_id":"ad2f8de340d2279ebdb870438b0b11ad8b7a7752"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9e00589dbfa28feed315c98ec440f1607a44e72","unresolved":false,"context_lines":[{"line_number":5837,"context_line":"        # untyped because they do not use this allocation-move path."},{"line_number":5838,"context_line":"        self.reportclient.move_allocations("},{"line_number":5839,"context_line":"            context, migration.uuid, instance.uuid,"},{"line_number":5840,"context_line":"            target_consumer_type\u003d\u0027COMPUTE_INSTANCE\u0027)"},{"line_number":5841,"context_line":"        return orig_alloc"},{"line_number":5842,"context_line":""},{"line_number":5843,"context_line":"    def _prep_resize("}],"source_content_type":"text/x-python","patch_set":5,"id":"4fe3c9da_de33f800","line":5840,"in_reply_to":"334b7824_b14b48a7","updated":"2026-11-05 20:43:16.000000000","message":"Done","commit_id":"ad2f8de340d2279ebdb870438b0b11ad8b7a7752"}],"nova/conductor/tasks/migrate.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    success \u003d reportclient.move_allocations("},{"line_number":78,"context_line":"        context, instance.uuid, migration.uuid,"},{"line_number":79,"context_line":"        source_consumer_type\u003d\u0027COMPUTE_INSTANCE\u0027,"},{"line_number":80,"context_line":"        target_consumer_type\u003d\u0027COMPUTE_MIGRATION\u0027)"},{"line_number":81,"context_line":"    if not success:"},{"line_number":82,"context_line":"        LOG.error(\u0027Unable to replace resource claim on source \u0027"},{"line_number":83,"context_line":"                  \u0027host %(host)s node %(node)s for instance\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"41536ca2_a0d485f8","line":80,"updated":"2026-10-29 13:18:33.000000000","message":"yepp, the source node allocation will be held by the migration uuid so the type is migration.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    success \u003d reportclient.move_allocations("},{"line_number":116,"context_line":"        context, migration.uuid, instance.uuid,"},{"line_number":117,"context_line":"        source_consumer_type\u003d\u0027COMPUTE_MIGRATION\u0027,"},{"line_number":118,"context_line":"        target_consumer_type\u003d\u0027COMPUTE_INSTANCE\u0027)"},{"line_number":119,"context_line":"    if not success:"},{"line_number":120,"context_line":"        LOG.error(\u0027Unable to replace resource claim on source \u0027"},{"line_number":121,"context_line":"                  \u0027host %(host)s node %(node)s for instance\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8172368d_1cbd039d","line":118,"updated":"2026-10-29 13:18:33.000000000","message":"yepp revert to the resulting allocation is an instance allocation.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"806147cd0b3b178a4ade0076a15fbb74adf7c96a","unresolved":true,"context_lines":[{"line_number":2096,"context_line":"                \u0027allocations\u0027: {},"},{"line_number":2097,"context_line":"                \u0027project_id\u0027: source_alloc[\u0027project_id\u0027],"},{"line_number":2098,"context_line":"                \u0027user_id\u0027: source_alloc[\u0027user_id\u0027],"},{"line_number":2099,"context_line":"                \u0027consumer_type\u0027: source_consumer_type,"},{"line_number":2100,"context_line":"                \u0027consumer_generation\u0027: source_alloc[\u0027consumer_generation\u0027]},"},{"line_number":2101,"context_line":"            target_consumer_uuid: {"},{"line_number":2102,"context_line":"                \u0027allocations\u0027: source_alloc[\u0027allocations\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"940ab947_f9894f16","line":2099,"updated":"2026-10-29 13:18:33.000000000","message":"hehe, this is an API edge case. Afaik placement hard deletes the consumer from the DB when the allocation is empty. So this consumer_type goes to /dev/null. I suggest  to just pass some placeholder value here to satisfy the API contract without exposing this placeholder as a parameter of move_allocations(). So the API ugliness is contained.","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"366d912cccaced9bfcaa117e2ef799c15d03203f","unresolved":true,"context_lines":[{"line_number":2096,"context_line":"                \u0027allocations\u0027: {},"},{"line_number":2097,"context_line":"                \u0027project_id\u0027: source_alloc[\u0027project_id\u0027],"},{"line_number":2098,"context_line":"                \u0027user_id\u0027: source_alloc[\u0027user_id\u0027],"},{"line_number":2099,"context_line":"                \u0027consumer_type\u0027: source_consumer_type,"},{"line_number":2100,"context_line":"                \u0027consumer_generation\u0027: source_alloc[\u0027consumer_generation\u0027]},"},{"line_number":2101,"context_line":"            target_consumer_uuid: {"},{"line_number":2102,"context_line":"                \u0027allocations\u0027: source_alloc[\u0027allocations\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"adedf6e0_9cce9b4c","line":2099,"in_reply_to":"940ab947_f9894f16","updated":"2026-10-29 13:50:24.000000000","message":"Yeah I know it goes to /dev/null but I hadn\u0027t thought of providing a dummy value here. Is there any chance placement might in the future decide to check that the deleting migrations are of the correct type? If not, then fine, I\u0027ll set it to something local to the move function, perhaps actually use `DEVNULL` or `IGNORED` to make it clear(er) when that future comes?","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9e00589dbfa28feed315c98ec440f1607a44e72","unresolved":false,"context_lines":[{"line_number":2096,"context_line":"                \u0027allocations\u0027: {},"},{"line_number":2097,"context_line":"                \u0027project_id\u0027: source_alloc[\u0027project_id\u0027],"},{"line_number":2098,"context_line":"                \u0027user_id\u0027: source_alloc[\u0027user_id\u0027],"},{"line_number":2099,"context_line":"                \u0027consumer_type\u0027: source_consumer_type,"},{"line_number":2100,"context_line":"                \u0027consumer_generation\u0027: source_alloc[\u0027consumer_generation\u0027]},"},{"line_number":2101,"context_line":"            target_consumer_uuid: {"},{"line_number":2102,"context_line":"                \u0027allocations\u0027: source_alloc[\u0027allocations\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"50abac32_aa0bc7ca","line":2099,"in_reply_to":"9d99a4dd_d820fce3","updated":"2026-11-05 20:43:16.000000000","message":"Done","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e5f1de6033a70aa6ccb1c4967725f99cf2fadcf5","unresolved":true,"context_lines":[{"line_number":2096,"context_line":"                \u0027allocations\u0027: {},"},{"line_number":2097,"context_line":"                \u0027project_id\u0027: source_alloc[\u0027project_id\u0027],"},{"line_number":2098,"context_line":"                \u0027user_id\u0027: source_alloc[\u0027user_id\u0027],"},{"line_number":2099,"context_line":"                \u0027consumer_type\u0027: source_consumer_type,"},{"line_number":2100,"context_line":"                \u0027consumer_generation\u0027: source_alloc[\u0027consumer_generation\u0027]},"},{"line_number":2101,"context_line":"            target_consumer_uuid: {"},{"line_number":2102,"context_line":"                \u0027allocations\u0027: source_alloc[\u0027allocations\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"9d99a4dd_d820fce3","line":2099,"in_reply_to":"adedf6e0_9cce9b4c","updated":"2026-11-02 10:14:40.000000000","message":"IGNORED is fine","commit_id":"8d5a9835074c872218c0d67a869cc9c0c544f538"}]}
