)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c8bcb3a6_b386a6c0","updated":"2022-11-15 11:06:56.000000000","message":"I\u0027m 99% all good, I just prefer to have a launchpad blueprint attached to this spec before we can merge it (or this would mean I\u0027d have to amend this spec with another patch...) :)\n\nSo, yeah, +1 please because of a respin being trivial","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"04638afe_2d140a66","updated":"2022-11-15 13:01:26.000000000","message":"overall im ok with this too.\nsome comments inline\n\nalo i hate that gerrit is now defaulting to setting all commend to resolved","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8192d477cfb8734b467f895ebc33dc272e8d92fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"42de3b07_ba2c2def","updated":"2022-11-16 05:01:46.000000000","message":"Looks sensible to me.","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6788da7e162018235059ba41c0f4fae01ee594b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4dea0c34_46a6012f","updated":"2022-12-05 15:19:40.000000000","message":"Thanks for having created a Launchpad blueprint and for adding new comments in your spec related to our review thoughts.\n\n\u003c3","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a36ca09251af4eba672e25aec90490d36d49166","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"844f5930_88b1968c","updated":"2022-11-15 18:51:00.000000000","message":"im ok with this version in terms of scope and content.\n\ni belvie gibi\u0027s comments and sylvain\u0027s have been addressed so +2","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3d9b088a48cad0086065623b6a4238278b551fb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4aa80657_379d601b","updated":"2022-11-21 16:33:52.000000000","message":"looks good","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"}],"specs/2023.1/approved/stable-compute-uuid.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":16,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":7,"id":"385bef3d_d54ba663","line":13,"updated":"2022-11-15 11:06:56.000000000","message":"Do you want me to do the paperwork, really ? 😊","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":16,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c93e2e88_5ff26fa8","line":13,"in_reply_to":"385bef3d_d54ba663","updated":"2022-11-15 13:01:26.000000000","message":"thanks for volunteering :P, its awful nice of you :)","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":16,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b4676cc0_7785fdb9","line":13,"in_reply_to":"ac300605_6064e2ed","updated":"2022-11-15 16:33:26.000000000","message":"Done","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":16,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ac300605_6064e2ed","line":13,"in_reply_to":"c93e2e88_5ff26fa8","updated":"2022-11-15 14:38:46.000000000","message":"Yeah, sorry, I never want to burn a blueprint until I\u0027m sure we\u0027re going to do it, sure it\u0027s going to be named this, etc, but then often end up forgetting to ever do it. I\u0027ll do it.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1def9fb4d2e95435dc86e9ce87d4acba1a16824e","unresolved":true,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As an operator, I want nova to be able to survive an accidental system"},{"line_number":37,"context_line":"hostname change without damage or silent data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As an operator, I want nova to alert me to a hostname mismatch."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"aff7cb6c_1a5517ed","line":37,"updated":"2022-11-15 15:07:48.000000000","message":"I think couple of sentences are missing from the Proposed change section below that describes how having the node UUID persisted on disk will prevent the damage.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f45bbf113fbe0c67103a84b8712f2b638322b3fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As an operator, I want nova to be able to survive an accidental system"},{"line_number":37,"context_line":"hostname change without damage or silent data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As an operator, I want nova to alert me to a hostname mismatch."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"51a3a0c7_a93e4beb","line":37,"in_reply_to":"aff7cb6c_1a5517ed","updated":"2022-11-15 16:27:34.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1def9fb4d2e95435dc86e9ce87d4acba1a16824e","unresolved":true,"context_lines":[{"line_number":36,"context_line":"As an operator, I want nova to be able to survive an accidental system"},{"line_number":37,"context_line":"hostname change without damage or silent data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As an operator, I want nova to alert me to a hostname mismatch."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As a deployment tool developer, I want to be able to pre-generate the"},{"line_number":42,"context_line":"UUID for a given compute host being deployed so that I will know it"}],"source_content_type":"text/x-rst","patch_set":7,"id":"22bfa8bc_34ef7ad2","line":39,"range":{"start_line":39,"start_character":31,"end_line":39,"end_character":40},"updated":"2022-11-15 15:07:48.000000000","message":"what will be that alert? Will the nova-compute service refuse to start?","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f45bbf113fbe0c67103a84b8712f2b638322b3fe","unresolved":false,"context_lines":[{"line_number":36,"context_line":"As an operator, I want nova to be able to survive an accidental system"},{"line_number":37,"context_line":"hostname change without damage or silent data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As an operator, I want nova to alert me to a hostname mismatch."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As a deployment tool developer, I want to be able to pre-generate the"},{"line_number":42,"context_line":"UUID for a given compute host being deployed so that I will know it"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f62d12ba_5e2428da","line":39,"range":{"start_line":39,"start_character":31,"end_line":39,"end_character":40},"in_reply_to":"22bfa8bc_34ef7ad2","updated":"2022-11-15 16:27:34.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0ebe4f1d_4429f24a","line":48,"range":{"start_line":48,"start_character":48,"end_line":48,"end_character":65},"updated":"2022-11-15 13:01:26.000000000","message":"it is a minor extension but i would liek to bring up also adding a second file for the compute_service uuid.\n\nnow if we start populating the comptue service uuid again in the compute node table then this is entirly unrequired but we lookup the service uuid by conf.host today if i recall correctly. it would be nice ot avoid that and just read the uuid from file and look it up by uuid.\n\nthis would allow use to protect from change to CONF.host\n\nwere as teh current propsal is more focused on changes to the hypervior_hostname or the actual hostname on the comptue node.\n\nif you want to defer this converstaion to a followup thats ok but i think doing both woudl make sense. feel free to just declare this out of scope fo this cycle if you dont think its a simple chage or required more discussion then you want to include in this spec.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"}],"source_content_type":"text/x-rst","patch_set":7,"id":"410be5a7_e9409df8","line":48,"range":{"start_line":48,"start_character":48,"end_line":48,"end_character":65},"in_reply_to":"0ebe4f1d_4429f24a","updated":"2022-11-15 14:38:46.000000000","message":"Yeah, this spec is about compute nodes, so I\u0027d rather keep that separate.\n\nIf I know my compute node uuid, and my service is linked to my compute node by a strong relationship in the DB, I think I can reliably find my service. It may make sense to just persist it because of the ordering, but let\u0027s make that a separate step.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0ed3c608_f1a39bd8","line":48,"range":{"start_line":48,"start_character":48,"end_line":48,"end_character":65},"in_reply_to":"410be5a7_e9409df8","updated":"2022-11-15 16:33:26.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c665b058_296da50d","line":49,"range":{"start_line":48,"start_character":66,"end_line":49,"end_character":23},"updated":"2022-11-15 11:06:56.000000000","message":"true","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4c93dffb_12f1264c","line":49,"range":{"start_line":48,"start_character":66,"end_line":49,"end_character":23},"in_reply_to":"067f9d21_10ef858a","updated":"2022-11-15 17:55:15.000000000","message":"ok yes i was thinkig about how it work with vsheap i didnt knwo there was a differnce to be honest between that and what we still have in tree.\n\nso the current vmware supprot i guess is basically nova talking to esxi hyperviors one to one.\n\nif that is the case then ya ironic is the last one that is special.\n\n\nin that case then sure we can do a simple check fo the virt_driver config option for ironic","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":true,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"}],"source_content_type":"text/x-rst","patch_set":7,"id":"067f9d21_10ef858a","line":49,"range":{"start_line":48,"start_character":66,"end_line":49,"end_character":23},"in_reply_to":"0fc7308e_d4dbb697","updated":"2022-11-15 16:33:26.000000000","message":"vmware is single-node and has been for a while:\n\nhttps://github.com/openstack/nova/blob/c97507dfcd57cce9d76670d3b0d48538900c00e9/nova/virt/vmwareapi/driver.py#L410-L415\n\nI think you\u0027re thinking of the vsphere support which was dropped.\n\nHyperV is single-node:\n\nhttps://github.com/openstack/nova/blob/c97507dfcd57cce9d76670d3b0d48538900c00e9/nova/virt/hyperv/driver.py#L201-L202\n\nOnce we got the vmware people to drop the multi-node stuff, AFAIK ironic became the last multi-node driver and I believe we all agreed to never expand that to new clustered drivers. Thus, I think an ironic-specific exception is the best option here so as to make it clear that we do *not* support that for anything else.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Nova will use a persistent file for storing the compute node UUID for"},{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0fc7308e_d4dbb697","line":49,"range":{"start_line":48,"start_character":66,"end_line":49,"end_character":23},"in_reply_to":"c665b058_296da50d","updated":"2022-11-15 13:01:26.000000000","message":"so im wondering if this should just say for libvirt\n\nlooking at https://github.com/openstack/nova/tree/master/nova/virt\n\nhyperv, vmware and ironic are clustered with one comptue service managing multipel compute nodes.\n\nthat just leaves libvirt and zvm it think?\n\nvmware and ironic defiently are clusterd not 100% sure about hyperv but i think it is too?\n\nperhaps jsut say \"non clustered virt drivers\" if you want to be generic.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"},{"line_number":53,"context_line":"should be able to live in a non-writable (by `nova-compute`) location"},{"line_number":54,"context_line":"and treated like config, but also in a writable location and treated"},{"line_number":55,"context_line":"like state. The latter is important to avoid adding a required"},{"line_number":56,"context_line":"mandatory deployment step."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This file will be named `compute_id` and will be honored in the first"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c07fcf54_dc134185","line":55,"range":{"start_line":52,"start_character":42,"end_line":55,"end_character":11},"updated":"2022-11-15 11:06:56.000000000","message":"you lost me : I just feel nova-compute needs to be able to read/write contents of this file on disk, that\u0027s it but yeah, this is a security flaw (but not a problem, as you wrote below)","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"},{"line_number":53,"context_line":"should be able to live in a non-writable (by `nova-compute`) location"},{"line_number":54,"context_line":"and treated like config, but also in a writable location and treated"},{"line_number":55,"context_line":"like state. The latter is important to avoid adding a required"},{"line_number":56,"context_line":"mandatory deployment step."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This file will be named `compute_id` and will be honored in the first"}],"source_content_type":"text/x-rst","patch_set":7,"id":"aa55fe90_20209e37","line":55,"range":{"start_line":52,"start_character":42,"end_line":55,"end_character":11},"in_reply_to":"3633ff44_844df488","updated":"2022-11-15 16:33:26.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"},{"line_number":53,"context_line":"should be able to live in a non-writable (by `nova-compute`) location"},{"line_number":54,"context_line":"and treated like config, but also in a writable location and treated"},{"line_number":55,"context_line":"like state. The latter is important to avoid adding a required"},{"line_number":56,"context_line":"mandatory deployment step."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This file will be named `compute_id` and will be honored in the first"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3633ff44_844df488","line":55,"range":{"start_line":52,"start_character":42,"end_line":55,"end_character":11},"in_reply_to":"36f77ecc_e964f3cd","updated":"2022-11-15 14:38:46.000000000","message":"Right, I want nova to write it, at most, one time. If it exists, then it\u0027s immutable to nova (and thus should also be read-only).","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":49,"context_line":"non-Ironic environments. If this file does not exist on startup, then"},{"line_number":50,"context_line":"it will be created once and only once. This UUID will serve to provide"},{"line_number":51,"context_line":"a stable lookup of the ComputeNode object in the database which"},{"line_number":52,"context_line":"represents a given nova-compute instance. This identification file"},{"line_number":53,"context_line":"should be able to live in a non-writable (by `nova-compute`) location"},{"line_number":54,"context_line":"and treated like config, but also in a writable location and treated"},{"line_number":55,"context_line":"like state. The latter is important to avoid adding a required"},{"line_number":56,"context_line":"mandatory deployment step."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This file will be named `compute_id` and will be honored in the first"}],"source_content_type":"text/x-rst","patch_set":7,"id":"36f77ecc_e964f3cd","line":55,"range":{"start_line":52,"start_character":42,"end_line":55,"end_character":11},"in_reply_to":"c07fcf54_dc134185","updated":"2022-11-15 13:01:26.000000000","message":"dan is sayting that you or the installer should be able to pre create the file and mount it readonly or otherwise only give read only permission at the file level so that as an installer you can choose the uuid and nova will just use it or provide a path to a writabel location and if it does not exist nova will just create it for you.\n\nso either its dynmic state i.e. generate by nova or static config generated by the operator.\n\nthe default location should just be in /var/lib/nova i.e. the default nova state dir which is readwrite but i belive dan is suggesting that the exact path will be configurable and we should allow readonly locations and not asume we can open it with readwrite access.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"10407e3f_b42fd3fc","line":67,"updated":"2022-11-15 11:06:56.000000000","message":"ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"a304889f_13914495","line":67,"in_reply_to":"10407e3f_b42fd3fc","updated":"2022-11-15 13:01:26.000000000","message":"ok i proably would have just had a config option that if unset defaulted to CONF.state_path so that we did not have multiple locations","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a36ca09251af4eba672e25aec90490d36d49166","unresolved":false,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"f3ffa512_bcf42872","line":67,"in_reply_to":"51bb3d6b_b5d2979a","updated":"2022-11-15 18:51:00.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f23bd0369288597141c422672720451d1d712646","unresolved":true,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"51bb3d6b_b5d2979a","line":67,"in_reply_to":"6d5b9c10_89b33907","updated":"2022-11-15 18:23:15.000000000","message":"Yeah, but CONF.host is physically mutable by the operator, yet they can\u0027t change it, so it kinda breaks down a bit. Anyway, I want it to be easy to set by a deployment tool, but also easy for nova to \"just work\" also. Unless there are strong objections to what I have here, I\u0027ll just leave it, which sounds like it\u0027s okay.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"b6623a7a_e5909d19","line":67,"in_reply_to":"a304889f_13914495","updated":"2022-11-15 14:38:46.000000000","message":"I don\u0027t want people to have to configure this to make it work, and I also want to encourage them to treat it like config and not state.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":true,"context_lines":[{"line_number":64,"context_line":"For safety, all of the above locations will always be searched and any"},{"line_number":65,"context_line":"`compute_id` files found will be examined. If there are any"},{"line_number":66,"context_line":"discrepancies (i.e. more than one files with non-identical contents),"},{"line_number":67,"context_line":"an error will be logged and `nova-compute` will refuse to start."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The file format will be a single 36-character string containing a UUID"},{"line_number":70,"context_line":"in canonical text representation (i.e. `uuidgen \u003e /path/to/file`)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"6d5b9c10_89b33907","line":67,"in_reply_to":"b6623a7a_e5909d19","updated":"2022-11-15 17:55:15.000000000","message":"oh i didnt want that either.\nbut ok if you want to make that distiction of config vs state then im ok with that\nbut for what its worth i think of config as mutable by the operator and state as only mutabel by nova and must not be changed by the operator.\n\nso i woudl consider the state directory (/var/lib/nova/compute_id) to be more static then the config directory (/etc/nova/comptue_id).","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"will be created once and initialized with a UUID in the"},{"line_number":74,"context_line":"`CONF.state_path` location."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"95841adc_3ea1f692","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":53},"updated":"2022-11-15 11:06:56.000000000","message":"technically, this doesn\u0027t strictly reduce to Ironic-only, but rather any driver that does support multiple nodes per compute... which AFAIK is only Ironic today. But yeah, got you.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":73,"context_line":"will be created once and initialized with a UUID in the"},{"line_number":74,"context_line":"`CONF.state_path` location."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"65ea9891_b764b9e1","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":53},"in_reply_to":"043fdbd8_c0faf532","updated":"2022-11-15 14:38:46.000000000","message":"Okay, TBH, I thought ironic was actually the only one left and that we agreed not to ever expand it to more.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":73,"context_line":"will be created once and initialized with a UUID in the"},{"line_number":74,"context_line":"`CONF.state_path` location."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"121d2f6d_3a88d42b","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":53},"in_reply_to":"65ea9891_b764b9e1","updated":"2022-11-15 16:33:26.000000000","message":"Done","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":73,"context_line":"will be created once and initialized with a UUID in the"},{"line_number":74,"context_line":"`CONF.state_path` location."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"043fdbd8_c0faf532","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":53},"in_reply_to":"95841adc_3ea1f692","updated":"2022-11-15 13:01:26.000000000","message":"well fo vmware i tought we had one compute service that just talked to vspheare which is why they support cold migrate to saem host since they have only one rpc host.\n\nso its \"For clustered virt driver, we do not ....\"","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"},{"line_number":80,"context_line":"correct."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"49ef6cc3_e2007be7","line":80,"range":{"start_line":78,"start_character":51,"end_line":80,"end_character":8},"updated":"2022-11-15 11:06:56.000000000","message":"I suppose you\u0027re differentiating between Ironic and other virt drivers by some virt driver flag, but I wonder if this would be better if we wouldn\u0027t just do the persistence if the list of nodes returned by the driver is equal to 1.\nNote, this is an implementation detail, nothing holding the spec to be approved.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9e6a5152c4bf8ee0771d16b8d42437098cf3084","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"},{"line_number":80,"context_line":"correct."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f38dd533_adbcd379","line":80,"range":{"start_line":78,"start_character":51,"end_line":80,"end_character":8},"in_reply_to":"1395536b_82eb3cdf","updated":"2022-11-15 14:38:46.000000000","message":"I don\u0027t think we can do it via nodes, because we don\u0027t have a stable number. Ironic won\u0027t return nodes until ironic is up and we are assigned. Further, if it ever dropped to one during maintenance or something, we wouldn\u0027t want to turn this on suddenly.\n\nSo I do think we need some sort of flag or list. Since I thought only the ironic driver was still doing multinode, I was literally going to check for it as further special-casing.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"},{"line_number":80,"context_line":"correct."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1395536b_82eb3cdf","line":80,"range":{"start_line":78,"start_character":51,"end_line":80,"end_character":8},"in_reply_to":"49ef6cc3_e2007be7","updated":"2022-11-15 13:01:26.000000000","message":"ya so just checkign the length of the list of compute nodes is proably a good way to approch this we could have a compute capablity flag that defaults to false \nvirt_driver_clustered which we could check too.\n\ni would avoid just have a list of virt driver names.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f23bd0369288597141c422672720451d1d712646","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"},{"line_number":80,"context_line":"correct."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"db087deb_0ed3dca2","line":80,"range":{"start_line":78,"start_character":51,"end_line":80,"end_character":8},"in_reply_to":"e9656ee6_151343dd","updated":"2022-11-15 18:23:15.000000000","message":"Cool.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For configurations where the driver is set to Ironic, we will do no"},{"line_number":77,"context_line":"persistence of the compute node, since there is not a 1:1 mapping"},{"line_number":78,"context_line":"between `nova-compute` instances and Ironic nodes. The mapping that"},{"line_number":79,"context_line":"Ironic pushes up (via `get_available_nodes()`) will be assumed to be"},{"line_number":80,"context_line":"correct."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e9656ee6_151343dd","line":80,"range":{"start_line":78,"start_character":51,"end_line":80,"end_character":8},"in_reply_to":"f38dd533_adbcd379","updated":"2022-11-15 17:55:15.000000000","message":"based on your comment above yes we can jsut to a simple check on the virt drier config option for ironic","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"maintained by the image cache code. I think this is a less-good idea"},{"line_number":99,"context_line":"because it\u0027s stored in a place that is potentially shared among"},{"line_number":100,"context_line":"multiple (but not all) compute nodes and thus may provide a difficult"},{"line_number":101,"context_line":"path to stable \"who am I?\" determination."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"}],"source_content_type":"text/x-rst","patch_set":7,"id":"af102bfd_c46674ac","line":101,"updated":"2022-11-15 11:06:56.000000000","message":"absolutly true that it would be waaaay errorprone.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":98,"context_line":"maintained by the image cache code. I think this is a less-good idea"},{"line_number":99,"context_line":"because it\u0027s stored in a place that is potentially shared among"},{"line_number":100,"context_line":"multiple (but not all) compute nodes and thus may provide a difficult"},{"line_number":101,"context_line":"path to stable \"who am I?\" determination."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"}],"source_content_type":"text/x-rst","patch_set":7,"id":"cc9c776f_9227f829","line":101,"in_reply_to":"af102bfd_c46674ac","updated":"2022-11-15 13:01:26.000000000","message":"ya so when i raise the existence of that file in the ptg i was tinking of it as a potialial inital value if and only if it existed but the new file we were creating did not.\n\nits too fragile in its current form to relie on\n\nhowever we can just lookup the id as we do today after the upgrade and use that to create the file before we attempt to create a new comptue node so this isnt needed.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"maintained by the image cache code. I think this is a less-good idea"},{"line_number":99,"context_line":"because it\u0027s stored in a place that is potentially shared among"},{"line_number":100,"context_line":"multiple (but not all) compute nodes and thus may provide a difficult"},{"line_number":101,"context_line":"path to stable \"who am I?\" determination."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"}],"source_content_type":"text/x-rst","patch_set":7,"id":"29ef9317_cf167d19","line":101,"in_reply_to":"cc9c776f_9227f829","updated":"2022-11-15 17:55:15.000000000","message":"Ack","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"},{"line_number":105,"context_line":"exist everywhere, especially in a containerized environment."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da190572_580dcfd4","line":105,"updated":"2022-11-15 11:06:56.000000000","message":"Another alternative could be to use another UUID which wouldn\u0027t be UUID4 and use a namespace, but given we already create UUID4s this is nonsense.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"},{"line_number":105,"context_line":"exist everywhere, especially in a containerized environment."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"67f7d8bf_b996a91c","line":105,"in_reply_to":"17a922ad_0cdd5e5e","updated":"2022-11-15 16:33:26.000000000","message":"We\u0027ve got UUID4 in the database already. Also, I think the pre-generation case works better for UUID4, so I think we should just stick with it. Definitely not in favor of anything else based on CONF.host :D","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"},{"line_number":105,"context_line":"exist everywhere, especially in a containerized environment."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1d8a95f7_0ddba5da","line":105,"in_reply_to":"67f7d8bf_b996a91c","updated":"2022-11-15 17:55:15.000000000","message":"ack\nlets keep it as is with uuid4","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"We could use `/etc/machine-id` or some amount of it. It\u0027s not a UUID,"},{"line_number":104,"context_line":"but it\u0027s close. It\u0027s also a freedesktop/systemd thing and may not"},{"line_number":105,"context_line":"exist everywhere, especially in a containerized environment."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"17a922ad_0cdd5e5e","line":105,"in_reply_to":"da190572_580dcfd4","updated":"2022-11-15 13:01:26.000000000","message":"well we could have used uuid5 with the dns namespace usign the conf.host as the input string but change at this point is a pain. that has come up before.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":122,"context_line":"So, while not a data model impact directly, this effort will move to"},{"line_number":123,"context_line":"always providing a `ComputeNode.uuid` value when the record is"},{"line_number":124,"context_line":"created, either because we read it from the persistent file, or"},{"line_number":125,"context_line":"pre-generated it to write the file."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"REST API impact"},{"line_number":128,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3918b105_7b091abc","line":125,"updated":"2022-11-15 11:06:56.000000000","message":"good catch","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"700066fd2675bdacaadfbc3e52a82c6971236c0a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"So, while not a data model impact directly, this effort will move to"},{"line_number":123,"context_line":"always providing a `ComputeNode.uuid` value when the record is"},{"line_number":124,"context_line":"created, either because we read it from the persistent file, or"},{"line_number":125,"context_line":"pre-generated it to write the file."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"REST API impact"},{"line_number":128,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b81a946d_1070f826","line":125,"in_reply_to":"16c77210_f1ff0054","updated":"2022-11-15 17:55:15.000000000","message":"ok so we will need to update the rest of the intree drivers to also pass the uuid and then they will all be the same\nare you going to do that generically as part of this spec.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":122,"context_line":"So, while not a data model impact directly, this effort will move to"},{"line_number":123,"context_line":"always providing a `ComputeNode.uuid` value when the record is"},{"line_number":124,"context_line":"created, either because we read it from the persistent file, or"},{"line_number":125,"context_line":"pre-generated it to write the file."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"REST API impact"},{"line_number":128,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"16c77210_f1ff0054","line":125,"in_reply_to":"31f84cc5_f7ebcf5a","updated":"2022-11-15 16:33:26.000000000","message":"No, vmware does the same as libvirt.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":122,"context_line":"So, while not a data model impact directly, this effort will move to"},{"line_number":123,"context_line":"always providing a `ComputeNode.uuid` value when the record is"},{"line_number":124,"context_line":"created, either because we read it from the persistent file, or"},{"line_number":125,"context_line":"pre-generated it to write the file."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"REST API impact"},{"line_number":128,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"31f84cc5_f7ebcf5a","line":125,"in_reply_to":"3918b105_7b091abc","updated":"2022-11-15 13:01:26.000000000","message":"ack makes sense it will align libvirt with ironic.\npresumable vmware does the same as ironic","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"`nova-compute` runs. This could potentially provide a path to"},{"line_number":140,"context_line":"disruption, although if an attacker gains access to write things owned"},{"line_number":141,"context_line":"by that user, all the instance disks and configs are similarly"},{"line_number":142,"context_line":"exposed."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Notifications impact"},{"line_number":145,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b1486940_25ff3054","line":142,"updated":"2022-11-15 11:06:56.000000000","message":"++","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"af40ecc6942a6450b3bb58d9f7ef7471ae1e8d7d","unresolved":true,"context_lines":[{"line_number":179,"context_line":"behavior, we can use the `Service.version` that we find attached to"},{"line_number":180,"context_line":"our `ComputeNode` object to determine whether or not we should write"},{"line_number":181,"context_line":"an existing UUID to the `compute_id` file or generate it from"},{"line_number":182,"context_line":"scratch. In a subsequent release we should remove that behavior"},{"line_number":183,"context_line":"(although potentially retain a start-blocking check if the version is"},{"line_number":184,"context_line":"being upgraded across that boundary)."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bd86228a_d4c97c0f","line":182,"range":{"start_line":182,"start_character":9,"end_line":182,"end_character":33},"updated":"2022-11-15 11:06:56.000000000","message":"yeah, potentially not B at least please.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f10e60735de1b17322c1ce0e428eafa4a7be7f51","unresolved":false,"context_lines":[{"line_number":179,"context_line":"behavior, we can use the `Service.version` that we find attached to"},{"line_number":180,"context_line":"our `ComputeNode` object to determine whether or not we should write"},{"line_number":181,"context_line":"an existing UUID to the `compute_id` file or generate it from"},{"line_number":182,"context_line":"scratch. In a subsequent release we should remove that behavior"},{"line_number":183,"context_line":"(although potentially retain a start-blocking check if the version is"},{"line_number":184,"context_line":"being upgraded across that boundary)."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8569f265_f5e482d7","line":182,"range":{"start_line":182,"start_character":9,"end_line":182,"end_character":33},"in_reply_to":"69d7efca_888c1a3f","updated":"2022-11-15 16:33:26.000000000","message":"Yeah, we can worry about the mechanics and timing of when to drop it later. We just need to make sure we have the compatibility on the leading edge.","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a941c1fad8ae8ebe6ab0966d34c5f34b1fffddb","unresolved":true,"context_lines":[{"line_number":179,"context_line":"behavior, we can use the `Service.version` that we find attached to"},{"line_number":180,"context_line":"our `ComputeNode` object to determine whether or not we should write"},{"line_number":181,"context_line":"an existing UUID to the `compute_id` file or generate it from"},{"line_number":182,"context_line":"scratch. In a subsequent release we should remove that behavior"},{"line_number":183,"context_line":"(although potentially retain a start-blocking check if the version is"},{"line_number":184,"context_line":"being upgraded across that boundary)."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"69d7efca_888c1a3f","line":182,"range":{"start_line":182,"start_character":9,"end_line":182,"end_character":33},"in_reply_to":"bd86228a_d4c97c0f","updated":"2022-11-15 13:01:26.000000000","message":"ok so you want to only allow writeing the file for an existign comptue node if the service is \u003c A and the file does not exist and at some point we will disable that behind a workaround i assume and then remove it entirly.\n\nshould we start with a workaround config option form the start and deprecate it 2024.1/C for removal in D or later?\n\nor just intoduce it when we decided we are gong to drop it.\n\ni dont think we woudl drop this in B and and with the new lifecycle we cant remove it in b or c unless e deprecate it in A so realistically this woudl be removed in D at the earliest with deprecation in B/C\n\nor we can jus skip the option and deprecate the functionality in B/C and remove in D","commit_id":"3569938e1c664f228b258708e90e2ac444378c2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a36ca09251af4eba672e25aec90490d36d49166","unresolved":false,"context_lines":[{"line_number":35,"context_line":"hostname change without damage or silent data corruption."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an operator, I want nova to detect a hostname mismatch and avoid"},{"line_number":38,"context_line":"corrupting its database."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As a deployment tool developer, I want to be able to pre-generate the"},{"line_number":41,"context_line":"UUID for a given compute host being deployed so that I will know it"}],"source_content_type":"text/x-rst","patch_set":8,"id":"6484816f_1e32d44e","line":38,"updated":"2022-11-15 18:51:00.000000000","message":"hehe that asking an awful lot.\nnext you will be telling me that you want to be able to boot vms 😊\n\nthis is simple and too the point so +1","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8192d477cfb8734b467f895ebc33dc272e8d92fa","unresolved":false,"context_lines":[{"line_number":35,"context_line":"hostname change without damage or silent data corruption."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an operator, I want nova to detect a hostname mismatch and avoid"},{"line_number":38,"context_line":"corrupting its database."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As a deployment tool developer, I want to be able to pre-generate the"},{"line_number":41,"context_line":"UUID for a given compute host being deployed so that I will know it"}],"source_content_type":"text/x-rst","patch_set":8,"id":"4471370f_66516139","line":38,"in_reply_to":"6484816f_1e32d44e","updated":"2022-11-16 05:01:46.000000000","message":"\u003e next you will be telling me that you want to be able to boot vms 😊\n\nYeah... we don\u0027t do that here.","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a36ca09251af4eba672e25aec90490d36d49166","unresolved":true,"context_lines":[{"line_number":58,"context_line":"find the ComputeNode record, and will check for a potential hostname"},{"line_number":59,"context_line":"(or CONF.host) change on startup. If such a rename is detected,"},{"line_number":60,"context_line":"`nova-compute` will fail to start and warn about the situation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"This file will be named `compute_id` and will be honored in the first"},{"line_number":63,"context_line":"location found in any of the following locations:"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"eb9ad2bc_a6508bff","line":61,"updated":"2022-11-15 18:51:00.000000000","message":"+1\n\nthanks for calling this out explictly and including CONF.host","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3d9b088a48cad0086065623b6a4238278b551fb6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"find the ComputeNode record, and will check for a potential hostname"},{"line_number":59,"context_line":"(or CONF.host) change on startup. If such a rename is detected,"},{"line_number":60,"context_line":"`nova-compute` will fail to start and warn about the situation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"This file will be named `compute_id` and will be honored in the first"},{"line_number":63,"context_line":"location found in any of the following locations:"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"4fca30e3_2982c169","line":61,"in_reply_to":"eb9ad2bc_a6508bff","updated":"2022-11-21 16:33:52.000000000","message":"thanks!","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a36ca09251af4eba672e25aec90490d36d49166","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Note that all drivers in Nova other than Ironic manage a single"},{"line_number":87,"context_line":"compute node. Ironic is \"special\" in this regard and thus will be"},{"line_number":88,"context_line":"special-cased for this effort."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Alternatives"},{"line_number":91,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8eff6269_209b49fc","line":88,"updated":"2022-11-15 18:51:00.000000000","message":"+1","commit_id":"3769079c0a6cad1db8bef021f7cbd892a5180dd9"}]}
