)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e359a938041d3d586e92dc96e360458efaac6f4e","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     libo04 \u003clibo04@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-10-28 16:38:16 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"upport ironic instance change host while it\u0027s host not up"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":10,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f720b5db_bc59fc18","line":7,"updated":"2021-11-16 10:08:57.000000000","message":"Support","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8dcf728644dcecfb12cb76fec5753f29fd13fd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a0590158_67ebbfce","updated":"2022-07-18 09:36:58.000000000","message":"Dropping -2 before abandoning","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8ca2a4b4_e2224ffd","updated":"2021-11-16 10:34:28.000000000","message":"OK I think this sounds a valid usecase but I miss details. I exactly need to understand the problem and what we\u0027re trying to solve.\nFWIW, https://review.opendev.org/c/openstack/nova/+/813897 seems reasonable and I don\u0027t really think we need a spec for covering this so I\u0027d be in favor of reviewing the above change and only ask for a spec if we see reasons for it.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80425e27ee1d95997ff370ae743a070c3b7a5589","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"af04b9b1_4da4e459","updated":"2022-01-14 09:10:41.000000000","message":"Procedural -2: We hit spec freeze [1]. If you are still working on this the please re-propose it to Z release once we have the directory created (we miss the Z release naming).\nDetails of the process of accepting feature requests can be found on [2].\nIf any questions left about the process, feel free to ping bauzas on #openstack-nova or please attend any Nova meeting [3].\n\nThanks.\n\n[1] http://lists.openstack.org/pipermail/openstack-discuss/2022-January/026530.html\n[2] https://docs.openstack.org/nova/latest/contributor/process.html#spec-and-blueprint-approval-freeze\n[3] https://wiki.openstack.org/wiki/Meetings/Nova\n\n","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"87faed8756027b0d2fd6ab56fd916cc7bdf4456a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"21212ce0_e318c731","updated":"2021-12-14 14:50:05.000000000","message":"Some further clarifications, mostly about our terminology.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f2eee668_7dee483f","updated":"2021-11-16 17:33:56.000000000","message":"over all im ok with the direction but i think it need to be enabled/enabeld not up/down\nthey are to differnt thing for the comptue serivce.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"}],"specs/yoga/approved/ironic-instance-change-host.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/ironic-instance-change-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5d146ffb_dff660df","line":13,"range":{"start_line":13,"start_character":61,"end_line":13,"end_character":65},"updated":"2021-11-16 10:34:28.000000000","message":"nit: hosts","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/ironic-instance-change-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f2917f20_cc5d1619","line":14,"range":{"start_line":13,"start_character":20,"end_line":14,"end_character":15},"updated":"2021-11-16 10:34:28.000000000","message":"just to clarify, you say that since Newton, an Ironic hyervisor (ie. the Ironic node) can be used by more than one nova-compute service.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3eee37f12ffcb2623005d24757b771f5513fd1d","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/ironic-instance-change-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ebb88f38_90060b8f","line":14,"range":{"start_line":13,"start_character":20,"end_line":14,"end_character":15},"in_reply_to":"f2917f20_cc5d1619","updated":"2022-05-17 01:14:37.000000000","message":"And realistically more than one nova deployment entirely.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9cc434cb_62c87409","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":31},"updated":"2021-11-16 10:34:28.000000000","message":"what do you mean by the \"hypervisor\" ?","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a453b14f_42774349","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":31},"in_reply_to":"9cc434cb_62c87409","updated":"2021-11-16 17:33:56.000000000","message":"compute service instance","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"87faed8756027b0d2fd6ab56fd916cc7bdf4456a","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"20a33e6c_81985a7a","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":31},"in_reply_to":"a453b14f_42774349","updated":"2021-12-14 14:50:05.000000000","message":"that\u0027s where it\u0027s confusing. In nova, we have specific distinct terminology between \n- the nova-compute RPC service, which we name either \"host\" or \"service\"\n- the underlying hypervisor(s) (plural with Ironic), which we call \"node\" or \"hypervisor_hostname\"\n\nHere, the problem is with the service, not the hypervisor.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"},{"line_number":19,"context_line":"re-select a host for ironic instance host that has an up compute"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d4c2d673_d57d56a0","line":16,"range":{"start_line":16,"start_character":39,"end_line":16,"end_character":49},"updated":"2021-11-16 10:34:28.000000000","message":"nit: plural too","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"},{"line_number":19,"context_line":"re-select a host for ironic instance host that has an up compute"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d31eabe_6db50a98","line":16,"range":{"start_line":16,"start_character":39,"end_line":16,"end_character":49},"in_reply_to":"d4c2d673_d57d56a0","updated":"2021-11-16 17:33:56.000000000","message":"ironic servers?\n\nhypervior is slightly strange to use for baremetal and we avoid taht term in nova in general even for vms as its ambiuqoust if it refers to the compute node recored, the sofware on the host (QEMU/KVM, hyperv) or the phsyical host.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"},{"line_number":19,"context_line":"re-select a host for ironic instance host that has an up compute"},{"line_number":20,"context_line":"service, and change it then we can manage the instance again."}],"source_content_type":"text/x-rst","patch_set":1,"id":"21e92f61_a7edcc83","line":17,"range":{"start_line":16,"start_character":51,"end_line":17,"end_character":43},"updated":"2021-11-16 10:34:28.000000000","message":"well, Nova uses distributed services thanks to RPC APIs. So, when a compute services goes down, there are no ways for calling the hypervisor if only one nova-compute service is using it.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"},{"line_number":19,"context_line":"re-select a host for ironic instance host that has an up compute"},{"line_number":20,"context_line":"service, and change it then we can manage the instance again."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2d0217c_b8b40505","line":17,"range":{"start_line":16,"start_character":51,"end_line":17,"end_character":43},"in_reply_to":"21e92f61_a7edcc83","updated":"2021-11-16 17:33:56.000000000","message":"that not what happens for ironic. \nfor ironic any of the nova compute serive with the ironic driver can manage any fo the ironic physical servers in the general case. we just ahave a restriction currently whihc wont allow the baremetal nodes to be reblacned to active compute service instnaces.\n\nso in this case the fact we cant manage a node if the ocmpute service its currently assigned to goes dow is an artifical limiation fo the current code.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"87faed8756027b0d2fd6ab56fd916cc7bdf4456a","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Compute service for IronicDriver had been supported multiple host from"},{"line_number":14,"context_line":"Newton release, but an ironic instance can\u0027t be managed by nova if"},{"line_number":15,"context_line":"its hypervisor is brought down. Even more serious, an IronicDriver"},{"line_number":16,"context_line":"compute usually has a number of ironic hypervisor, while a compute"},{"line_number":17,"context_line":"service goes down, many hypervisor go down. Fortunately, The ironic"},{"line_number":18,"context_line":"hypervisor does not actually create and run instances, so we just need to"},{"line_number":19,"context_line":"re-select a host for ironic instance host that has an up compute"},{"line_number":20,"context_line":"service, and change it then we can manage the instance again."}],"source_content_type":"text/x-rst","patch_set":1,"id":"02c912b4_9d5ee779","line":17,"range":{"start_line":16,"start_character":51,"end_line":17,"end_character":43},"in_reply_to":"a2d0217c_b8b40505","updated":"2021-12-14 14:50:05.000000000","message":"I think you misunderstood me, but no worries. I mean, we need to rebalance the ironic nodes to other nova-compute services, at least one, but the phrasing was saying something like \"heh, we don\u0027t need it\"","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Once the compute service of IronicDriver is down, all of ironic"},{"line_number":31,"context_line":"hypervisor enrolled on this host go down, then nova can\u0027t manage these"},{"line_number":32,"context_line":"ironic instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"It is should note that a baremetal node in available provisioning state"},{"line_number":35,"context_line":"can be managed because the service could choose another compute service"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d88c990_6f9852ac","line":32,"updated":"2021-11-16 10:34:28.000000000","message":"I thought you said this is now possible since Newton to have multiple nova-compute services enrolling the same Ironic node ?","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Once the compute service of IronicDriver is down, all of ironic"},{"line_number":31,"context_line":"hypervisor enrolled on this host go down, then nova can\u0027t manage these"},{"line_number":32,"context_line":"ironic instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"It is should note that a baremetal node in available provisioning state"},{"line_number":35,"context_line":"can be managed because the service could choose another compute service"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7d0883_fbb998ec","line":32,"in_reply_to":"6d88c990_6f9852ac","updated":"2021-11-16 17:33:56.000000000","message":"no from netonw it posibel for any  specific ironic node to be manage by at most 1 compute service but any of the compute service could be selcted to manage it.\n\nthe issue is once that selection hapens wehn we do the inial nova boot it will never be moved in the curent implemations.\n\nso any of the compute service were a valid candidate to mange the ironic instnace but once that a slelection happens it stays fiex for the lifetime of the nova instnace.\n\nif the nova instance is delete the ironic hypervior node could be reblanced today but if the ironci node has an instance assinged it cannot.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3eee37f12ffcb2623005d24757b771f5513fd1d","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Once the compute service of IronicDriver is down, all of ironic"},{"line_number":31,"context_line":"hypervisor enrolled on this host go down, then nova can\u0027t manage these"},{"line_number":32,"context_line":"ironic instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"It is should note that a baremetal node in available provisioning state"},{"line_number":35,"context_line":"can be managed because the service could choose another compute service"}],"source_content_type":"text/x-rst","patch_set":1,"id":"97d1e35c_ea37fca9","line":32,"in_reply_to":"da7d0883_fbb998ec","updated":"2022-05-17 01:14:37.000000000","message":"\"initial nova boot it will never be moved\" is not exactly correct. Rebalance occurs, but only after the instance is deleted. When a baremetal node is not an active instance, it can move between nova-compute services freely based upon the evolution of cluster of nova-compute services. As soon as an instance is provisioned, it gets locked to the nova-compute which it was mapped to at the time of deploy. The issue is just that, it gets locked to it, and bad things happen because ComputeNode and Instance host fields are not updated as time moves on.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":34,"context_line":"It is should note that a baremetal node in available provisioning state"},{"line_number":35,"context_line":"can be managed because the service could choose another compute service"},{"line_number":36,"context_line":"for its hypervisor from IronicDriver compute service hash ring, but case"},{"line_number":37,"context_line":"of the baremetal node has an instance is not be dealt."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Use Cases"},{"line_number":40,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"174fa6df_e5168983","line":37,"updated":"2021-11-16 10:34:28.000000000","message":"Oh, I see your problem.\nYou mean that *unless* we have a Nova instance using this Ironic node, it\u0027s possible to continue to get the Ironic node for new instances as we have multiple nova-compute services, but once a Nova instance is created, you can\u0027t do anything with it if the found nova-compute service is no longer running.\n\nOK, then I get it. But what do you want to do with this instance ? Moving it ? Deleting it ?","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":34,"context_line":"It is should note that a baremetal node in available provisioning state"},{"line_number":35,"context_line":"can be managed because the service could choose another compute service"},{"line_number":36,"context_line":"for its hypervisor from IronicDriver compute service hash ring, but case"},{"line_number":37,"context_line":"of the baremetal node has an instance is not be dealt."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Use Cases"},{"line_number":40,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6819f836_a36e8bbd","line":37,"in_reply_to":"174fa6df_e5168983","updated":"2021-11-16 17:33:56.000000000","message":"we reblance it to the new compute service by having the running  compute service update the instance.host\nafter it confrims that the old compute service is disable or deleted.\n\ndisable allows the operator to opt into this behavior and prevent a race and deleted work automaticly if the broken service is never coming back.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":43,"context_line":"instance, so that the vendor of controller can manage and watch the"},{"line_number":44,"context_line":"ironic instance continuously. Of course, the cluster has more than one"},{"line_number":45,"context_line":"nova-compute service for Ironic is the first request, and these service"},{"line_number":46,"context_line":"should be distributed among different hosts."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"51fb2833_b63888c8","line":46,"updated":"2021-11-16 10:34:28.000000000","message":"I don\u0027t understand the usecases.\nPlease look at other specs we have, in general we explain for example who would like this new feature and why.\n\nWhat is the problem with the nova-compute service not working if the Ironic node is now already used ?","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"87faed8756027b0d2fd6ab56fd916cc7bdf4456a","unresolved":true,"context_lines":[{"line_number":43,"context_line":"instance, so that the vendor of controller can manage and watch the"},{"line_number":44,"context_line":"ironic instance continuously. Of course, the cluster has more than one"},{"line_number":45,"context_line":"nova-compute service for Ironic is the first request, and these service"},{"line_number":46,"context_line":"should be distributed among different hosts."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2046491b_8eba97f4","line":46,"in_reply_to":"01c0ca92_4ee431b5","updated":"2021-12-14 14:50:05.000000000","message":"Works for me as use cases, thanks Sean.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":43,"context_line":"instance, so that the vendor of controller can manage and watch the"},{"line_number":44,"context_line":"ironic instance continuously. Of course, the cluster has more than one"},{"line_number":45,"context_line":"nova-compute service for Ironic is the first request, and these service"},{"line_number":46,"context_line":"should be distributed among different hosts."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"01c0ca92_4ee431b5","line":46,"in_reply_to":"51fb2833_b63888c8","updated":"2021-11-16 17:33:56.000000000","message":"As an operator i want the ironic compute nodes to automaticly replance between enabled nova ironic compute servcies when the current compute service is deleted.\n\nAs an operator when i have a fixable node outage, i want to be able to signal to nova that the ironic isntance shoudl be rebalance away form the failed host while i disable it for mantaince. when maintance is complete i want existing unused nodes to be rebalced to the now fixed compute service when i reenable it in the nova api.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"547ed3cd13aa0d66ffcbfd8480f5d83ea783e373","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"We\u0027ll add a logic in ``nova.driver.IronicDriver`` to deal with that an"},{"line_number":53,"context_line":"ironic instance. The existing of processing logic of IronicDriver is:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d4788aa1_ef329497","line":50,"updated":"2021-11-16 10:34:28.000000000","message":"I see some related proposal in https://review.opendev.org/c/openstack/nova/+/813897 \nAm I correct ?","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"We\u0027ll add a logic in ``nova.driver.IronicDriver`` to deal with that an"},{"line_number":53,"context_line":"ironic instance. The existing of processing logic of IronicDriver is:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7beef5b3_1af2ac59","line":50,"in_reply_to":"d4788aa1_ef329497","updated":"2021-11-16 17:33:56.000000000","message":"yes i think that is related. im not sure if it has been updated to take account of this spec or if ti was the orginal ideay julia had before we disucssed this after the ptg.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The problem is those node with instance is ignored their compute service"},{"line_number":62,"context_line":"was brought down, we fix this problem using follow method: Change host of"},{"line_number":63,"context_line":"ironic instance without an up state service."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"First we check whether each bare metal node has an instance, if so"},{"line_number":66,"context_line":"which is it; Second we get the service managing the instance and check"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bc6cc85f_c3861f24","line":63,"range":{"start_line":63,"start_character":27,"end_line":63,"end_character":44},"updated":"2021-11-16 17:33:56.000000000","message":"not up state.\n\nthe condition we shoudl check for is it disabled or has it been deleted.\n\nup could be racy if there is a network partiion.\n\nso either the operator has to opt in to the reblance by disabling the broken compute service via the\napi or deleteing it.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"First we check whether each bare metal node has an instance, if so"},{"line_number":66,"context_line":"which is it; Second we get the service managing the instance and check"},{"line_number":67,"context_line":"its state is up or down, we can call the service original_service. If the"},{"line_number":68,"context_line":"service is up, we do nothing; else, the service is down, we get a new"},{"line_number":69,"context_line":"service from hash ring and set host of the instance to the service\u0027s,"},{"line_number":70,"context_line":"we call the new one new_service."}],"source_content_type":"text/x-rst","patch_set":1,"id":"f8803c07_7a26c2e3","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":23},"updated":"2021-11-16 17:33:56.000000000","message":"enabled or disabled,","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":65,"context_line":"First we check whether each bare metal node has an instance, if so"},{"line_number":66,"context_line":"which is it; Second we get the service managing the instance and check"},{"line_number":67,"context_line":"its state is up or down, we can call the service original_service. If the"},{"line_number":68,"context_line":"service is up, we do nothing; else, the service is down, we get a new"},{"line_number":69,"context_line":"service from hash ring and set host of the instance to the service\u0027s,"},{"line_number":70,"context_line":"we call the new one new_service."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0b4e24ce_c3177836","line":68,"range":{"start_line":68,"start_character":51,"end_line":68,"end_character":55},"updated":"2021-11-16 17:33:56.000000000","message":"disabled","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":65,"context_line":"First we check whether each bare metal node has an instance, if so"},{"line_number":66,"context_line":"which is it; Second we get the service managing the instance and check"},{"line_number":67,"context_line":"its state is up or down, we can call the service original_service. If the"},{"line_number":68,"context_line":"service is up, we do nothing; else, the service is down, we get a new"},{"line_number":69,"context_line":"service from hash ring and set host of the instance to the service\u0027s,"},{"line_number":70,"context_line":"we call the new one new_service."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ee0c301_3aa417bf","line":68,"range":{"start_line":68,"start_character":11,"end_line":68,"end_character":13},"updated":"2021-11-16 17:33:56.000000000","message":"enabled","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3eee37f12ffcb2623005d24757b771f5513fd1d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"First we check whether each bare metal node has an instance, if so"},{"line_number":66,"context_line":"which is it; Second we get the service managing the instance and check"},{"line_number":67,"context_line":"its state is up or down, we can call the service original_service. If the"},{"line_number":68,"context_line":"service is up, we do nothing; else, the service is down, we get a new"},{"line_number":69,"context_line":"service from hash ring and set host of the instance to the service\u0027s,"},{"line_number":70,"context_line":"we call the new one new_service."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"So, the logic of ``get_available_nodes()`` in IronicDriver becomes:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf8ea72f_41517587","line":70,"range":{"start_line":68,"start_character":57,"end_line":70,"end_character":32},"updated":"2022-05-17 01:14:37.000000000","message":"This is not how the hashring really works. The hashring is modeled as the source of truth.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":76,"context_line":"* return any node with an instance managed by this compute service;"},{"line_number":77,"context_line":"* any node with an instance but couldn\u0027t managed are update a new host,"},{"line_number":78,"context_line":"  but not return;"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The next, the new_service will find it has a compute node no in nova db"},{"line_number":81,"context_line":"compute_nodes table; the resource_tracker will update the hypervisor while"},{"line_number":82,"context_line":"running ``update_available_resource()`` method. That finished, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"33bb8ec2_9b5949ff","line":79,"updated":"2021-11-16 17:33:56.000000000","message":"ack","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":77,"context_line":"* any node with an instance but couldn\u0027t managed are update a new host,"},{"line_number":78,"context_line":"  but not return;"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The next, the new_service will find it has a compute node no in nova db"},{"line_number":81,"context_line":"compute_nodes table; the resource_tracker will update the hypervisor while"},{"line_number":82,"context_line":"running ``update_available_resource()`` method. That finished, the"},{"line_number":83,"context_line":"hypervisor had been changed to the new computes service, the instance"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c425d89d_faedb7b3","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":3},"updated":"2021-11-16 17:33:56.000000000","message":"Then next or then next service... or just Next","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0cfed7cd6a9399625db0b6f8d25bcf97aafaa3b","unresolved":true,"context_lines":[{"line_number":109,"context_line":"service exceptions as instance is running normally. The evacuation scenario"},{"line_number":110,"context_line":"appears to be instance itself not working properly. Further discussion may"},{"line_number":111,"context_line":"be required."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Data model impact"},{"line_number":114,"context_line":"-----------------"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"74ee3401_96039f38","line":112,"updated":"2021-11-16 17:33:56.000000000","message":"this is catered for by usign deisabled/enabled not up or down to tirger the rebalance.","commit_id":"c8196adf5bf329a10f039531e202396418ebaaff"}]}
