)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e83164c416569b1f1b88c0c4c1feaf81e2097315","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"08a463bf_be3a496d","updated":"2023-03-13 15:19:42.000000000","message":"Note that I didn\u0027t do any of the paperwork for the 2023.2 directory, so the doc build will fail for this. I just wanted to get it up.","commit_id":"e0cc3dc369284100cdc19e1fae4811f629860f22"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"94e318c6_cbbbad9b","updated":"2023-03-23 09:26:43.000000000","message":"+1 now as I think this is a reasonable effort, but I\u0027d somehow need to think more about the rolling upgrade cases before I offically say yes to it.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f784bc3fd2983d9ec194ec0d90f0b7c94abc7177","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"10b5bc4d_8bce72e5","in_reply_to":"94e318c6_cbbbad9b","updated":"2023-03-23 14:00:05.000000000","message":"\u003e +1 now as I think this is a reasonable effort, but I\u0027d somehow need to think more about the rolling upgrade cases before I offically say yes to it.\n\nThere really shouldn\u0027t be able impact from this specific effort. There *will* be impact from a follow-on effort where we start utilizing those IDs instead of the current relationships, which is why I said what I said. Would you be happy if I just mentioned this \"not now, but definitely later\" nature in the text?","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"378089a9_87a410e7","updated":"2023-04-12 17:06:39.000000000","message":"I think we drafted here the most crucial bits and the upgrade path seems clear to me. No online data migrations are planned, those fields will be softly updated when upgrading the computes and in the case of a rolling upgrade with a migration between two versions of computes, we just failback to the legacy checks.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"33bf4fe0_2a3d11b5","updated":"2023-06-12 09:42:44.000000000","message":"holding +2w based  on the rest api impact if you confirm that the compute_id filds will be admin only im happy to adress any remaing comment in a followup and merge this as is.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6333e1c0e29bf4f441154d9321d6d0839228e954","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8c580a32_9ef68ca3","updated":"2023-06-12 16:33:29.000000000","message":"thanks given dan\u0027s responces im happy to proceed with this as is","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"}],"specs/2023.2/approved/compute-object-ids.rst":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3091b29afcc5ff96f35dd35cad5de7c66e62b929","unresolved":true,"context_lines":[{"line_number":52,"context_line":"We will need to add a `compute_id` field to the `Instance` object, which will"},{"line_number":53,"context_line":"require a schema migration. This field will need to remain nullable, and will"},{"line_number":54,"context_line":"be `NULL` for instances before scheduling, as well as instances in"},{"line_number":55,"context_line":"`SHELVED_OFFLOADED` state. The `compute_id` field can be populated at the same"},{"line_number":56,"context_line":"time we currently set `Instance.host`, and similar to `ComputeNode` records"},{"line_number":57,"context_line":"above, we can migrate existing records during"},{"line_number":58,"context_line":"`ComputeManager._init_instance()`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"6dd7a004_7690f1d5","line":55,"updated":"2023-03-13 15:49:18.000000000","message":"So hold on, instance.host will be the host name of the *service* that\u0027s managing the instance, whereas instance.compute_id will be the id of the *node* that it\u0027s on?\n\nI guess dropping instance.host entirely, and relying solely on the instance.compute_id -\u003e compute_node.id -\u003e compute_node.service_id -\u003e service.id -\u003e service.hostname relation chain is too complicated? I guess I\u0027m just worried about split-brain if we error out somewhere, and only update the instance.host half, or only the instance.compute_id half.","commit_id":"e0cc3dc369284100cdc19e1fae4811f629860f22"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8fd173e316b2f93b44ec89c167ea4a89ea8c10ed","unresolved":true,"context_lines":[{"line_number":52,"context_line":"We will need to add a `compute_id` field to the `Instance` object, which will"},{"line_number":53,"context_line":"require a schema migration. This field will need to remain nullable, and will"},{"line_number":54,"context_line":"be `NULL` for instances before scheduling, as well as instances in"},{"line_number":55,"context_line":"`SHELVED_OFFLOADED` state. The `compute_id` field can be populated at the same"},{"line_number":56,"context_line":"time we currently set `Instance.host`, and similar to `ComputeNode` records"},{"line_number":57,"context_line":"above, we can migrate existing records during"},{"line_number":58,"context_line":"`ComputeManager._init_instance()`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"f3260b91_4fb22651","line":55,"in_reply_to":"6dd7a004_7690f1d5","updated":"2023-03-13 16:00:05.000000000","message":"\u003e So hold on, instance.host will be the host name of the *service* that\u0027s managing the instance, whereas instance.compute_id will be the id of the *node* that it\u0027s on?\n\nInstance.host won\u0027t change as part of this. Currently it is the Service.host, and Instance.node is the ComputeNode.hypervisor_hostname. \n\n\u003e I guess dropping instance.host entirely, and relying solely on the instance.compute_id -\u003e compute_node.id -\u003e compute_node.service_id -\u003e service.id -\u003e service.hostname relation chain is too complicated?\n\nNo, it\u0027s not too complicated, and it\u0027s what we *should* be doing, IMHO. This spec is about getting that linkage set so in a follow-on effort we can rely on that being in place and actually use it (see L60).\n\n\u003e I guess I\u0027m just worried about split-brain if we error out somewhere, and only update the instance.host half, or only the instance.compute_id half.\n\nWe can\u0027t do it atomically across the entire cluster at once without a large amount of downtime during upgrade, which we avoid. However, the Instance.host and Instance.compute_id updates will happen in the same exact place, in the same transaction, so there\u0027s no concern about one being updated and not the other.","commit_id":"e0cc3dc369284100cdc19e1fae4811f629860f22"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22aeee6329bec2d7e06ff47d566c62635b5c7337","unresolved":false,"context_lines":[{"line_number":52,"context_line":"We will need to add a `compute_id` field to the `Instance` object, which will"},{"line_number":53,"context_line":"require a schema migration. This field will need to remain nullable, and will"},{"line_number":54,"context_line":"be `NULL` for instances before scheduling, as well as instances in"},{"line_number":55,"context_line":"`SHELVED_OFFLOADED` state. The `compute_id` field can be populated at the same"},{"line_number":56,"context_line":"time we currently set `Instance.host`, and similar to `ComputeNode` records"},{"line_number":57,"context_line":"above, we can migrate existing records during"},{"line_number":58,"context_line":"`ComputeManager._init_instance()`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"70c569f1_16b28e82","line":55,"in_reply_to":"f3260b91_4fb22651","updated":"2023-04-07 17:58:49.000000000","message":"Done","commit_id":"e0cc3dc369284100cdc19e1fae4811f629860f22"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Link Compute Objects by ID"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/compute-object-ids"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":14,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9e1e0f41_9665cde6","line":11,"updated":"2023-03-23 09:26:43.000000000","message":"please don\u0027t forget to fill in the blueprint ;)","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Link Compute Objects by ID"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/compute-object-ids"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":14,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":2,"id":"23e7fe0b_1cb313de","line":11,"in_reply_to":"1941acb4_131ffcd1","updated":"2023-04-12 17:06:39.000000000","message":"I can do the paperwork, that\u0027s actually what in general I do 😄","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f784bc3fd2983d9ec194ec0d90f0b7c94abc7177","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Link Compute Objects by ID"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/compute-object-ids"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova has long had a dependency on an unchanging hostname on the"},{"line_number":14,"context_line":"compute nodes. This spec aims to address this limitation, at least"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1941acb4_131ffcd1","line":11,"in_reply_to":"9e1e0f41_9665cde6","updated":"2023-03-23 14:00:05.000000000","message":"Yeah, I kinda think it\u0027s silly for us to make people file blueprints for things that might not be approved. Why can\u0027t we just put a URL here, make sure it\u0027s unused and the create them once this lands as approved?","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"As a continuation of the effort to `robustify compute hostnames`_, this spec"},{"line_number":20,"context_line":"describes the next phase which involves strengthening the linkage between the"},{"line_number":21,"context_line":"primary database objects managed by the compute nodes."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3bc42eb1_9f168c09","line":21,"updated":"2023-03-23 09:26:43.000000000","message":"you could also mention the implemented spec in the 2023.1 series, but meh.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f784bc3fd2983d9ec194ec0d90f0b7c94abc7177","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"As a continuation of the effort to `robustify compute hostnames`_, this spec"},{"line_number":20,"context_line":"describes the next phase which involves strengthening the linkage between the"},{"line_number":21,"context_line":"primary database objects managed by the compute nodes."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b1e25699_8408a5cd","line":21,"in_reply_to":"3bc42eb1_9f168c09","updated":"2023-03-23 14:00:05.000000000","message":"It\u0027s linked below?","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"As a continuation of the effort to `robustify compute hostnames`_, this spec"},{"line_number":20,"context_line":"describes the next phase which involves strengthening the linkage between the"},{"line_number":21,"context_line":"primary database objects managed by the compute nodes."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"92549129_aba9c7eb","line":21,"in_reply_to":"b1e25699_8408a5cd","updated":"2023-04-12 17:06:39.000000000","message":"Well, you anyway wrote the first stage in the References, so meh.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":false,"context_lines":[{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The ``ComputeNode``, ``Service``, and ``Instance`` objects form the primary"},{"line_number":27,"context_line":"data model for our compute nodes. Instances run on compute nodes, which are"},{"line_number":28,"context_line":"managed by services. We rely on this hierarchy to know where instances are"},{"line_number":29,"context_line":"(physically) as well as which RPC endpoint to send messages to for management."},{"line_number":30,"context_line":"Currently, the linkage between all three objects is a relatively loose and"},{"line_number":31,"context_line":"string-based, association using the hostname of the compute node and/or the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"70dae615_9080b500","line":28,"range":{"start_line":27,"start_character":34,"end_line":28,"end_character":19},"updated":"2023-03-23 09:26:43.000000000","message":"I like this terminology which is less hypervisor-based.\nTo me, an instance is run on a physical compute node but its lifecycle is managed thru RPC calls to the RPC service that handles a list of compute nodes thru a virt driver.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":31,"context_line":"string-based, association using the hostname of the compute node and/or the"},{"line_number":32,"context_line":"``CONF.host`` values. This not only makes an actual/intentional rename very"},{"line_number":33,"context_line":"difficult, but also risks breaking critical links as a result of an"},{"line_number":34,"context_line":"*accidental* one."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Use Cases"},{"line_number":37,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8d963cef_8520d9a0","line":34,"updated":"2023-03-23 09:26:43.000000000","message":"TBH, I have to plead guilty here : \nhttps://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/detach-service-from-computenode.html\n\nWe wanted to split the DB concepts since those objects aren\u0027t related, but we forgot to take care of the risk of accidental breakages of the DB normalizations we did with removing the FK.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22aeee6329bec2d7e06ff47d566c62635b5c7337","unresolved":false,"context_lines":[{"line_number":31,"context_line":"string-based, association using the hostname of the compute node and/or the"},{"line_number":32,"context_line":"``CONF.host`` values. This not only makes an actual/intentional rename very"},{"line_number":33,"context_line":"difficult, but also risks breaking critical links as a result of an"},{"line_number":34,"context_line":"*accidental* one."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Use Cases"},{"line_number":37,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6c402448_f680a03d","line":34,"in_reply_to":"8d963cef_8520d9a0","updated":"2023-04-07 17:58:49.000000000","message":"Ack","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":53,"context_line":"We will need to add a ``compute_id`` field to the ``Instance`` object, which"},{"line_number":54,"context_line":"will require a schema migration. This field will need to remain nullable, and"},{"line_number":55,"context_line":"will be ``NULL`` for instances before scheduling, as well as instances in"},{"line_number":56,"context_line":"``SHELVED_OFFLOADED`` state. The ``compute_id`` field can be populated at the"},{"line_number":57,"context_line":"same time we currently set ``Instance.host``, and similar to ``ComputeNode``"},{"line_number":58,"context_line":"records above, we can migrate existing records during"},{"line_number":59,"context_line":"``ComputeManager._init_instance()``."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"060d7f0a_c2436fc5","line":57,"range":{"start_line":56,"start_character":29,"end_line":57,"end_character":45},"updated":"2023-03-23 09:26:43.000000000","message":"sounds reasonable, provided we don\u0027t miss any update...","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f784bc3fd2983d9ec194ec0d90f0b7c94abc7177","unresolved":true,"context_lines":[{"line_number":53,"context_line":"We will need to add a ``compute_id`` field to the ``Instance`` object, which"},{"line_number":54,"context_line":"will require a schema migration. This field will need to remain nullable, and"},{"line_number":55,"context_line":"will be ``NULL`` for instances before scheduling, as well as instances in"},{"line_number":56,"context_line":"``SHELVED_OFFLOADED`` state. The ``compute_id`` field can be populated at the"},{"line_number":57,"context_line":"same time we currently set ``Instance.host``, and similar to ``ComputeNode``"},{"line_number":58,"context_line":"records above, we can migrate existing records during"},{"line_number":59,"context_line":"``ComputeManager._init_instance()``."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"6d5a5d24_65285903","line":57,"range":{"start_line":56,"start_character":29,"end_line":57,"end_character":45},"in_reply_to":"060d7f0a_c2436fc5","updated":"2023-03-23 14:00:05.000000000","message":"Yeah, Artom raised this as well. We won\u0027t miss it in the sense of succeeding to update one and not the other, and I think that including that update at the same time we currently update host (I can only think of one place, but I\u0027ll look) should be fine.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22aeee6329bec2d7e06ff47d566c62635b5c7337","unresolved":false,"context_lines":[{"line_number":53,"context_line":"We will need to add a ``compute_id`` field to the ``Instance`` object, which"},{"line_number":54,"context_line":"will require a schema migration. This field will need to remain nullable, and"},{"line_number":55,"context_line":"will be ``NULL`` for instances before scheduling, as well as instances in"},{"line_number":56,"context_line":"``SHELVED_OFFLOADED`` state. The ``compute_id`` field can be populated at the"},{"line_number":57,"context_line":"same time we currently set ``Instance.host``, and similar to ``ComputeNode``"},{"line_number":58,"context_line":"records above, we can migrate existing records during"},{"line_number":59,"context_line":"``ComputeManager._init_instance()``."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa8711da_d566e015","line":57,"range":{"start_line":56,"start_character":29,"end_line":57,"end_character":45},"in_reply_to":"6d5a5d24_65285903","updated":"2023-04-07 17:58:49.000000000","message":"See the new section about the checks added in `save()` and `create()`.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":53,"context_line":"We will need to add a ``compute_id`` field to the ``Instance`` object, which"},{"line_number":54,"context_line":"will require a schema migration. This field will need to remain nullable, and"},{"line_number":55,"context_line":"will be ``NULL`` for instances before scheduling, as well as instances in"},{"line_number":56,"context_line":"``SHELVED_OFFLOADED`` state. The ``compute_id`` field can be populated at the"},{"line_number":57,"context_line":"same time we currently set ``Instance.host``, and similar to ``ComputeNode``"},{"line_number":58,"context_line":"records above, we can migrate existing records during"},{"line_number":59,"context_line":"``ComputeManager._init_instance()``."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c4fd86c1_76bcb3db","line":57,"range":{"start_line":56,"start_character":29,"end_line":57,"end_character":45},"in_reply_to":"fa8711da_d566e015","updated":"2023-04-12 17:06:39.000000000","message":"Ack.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":61,"context_line":"It is important to note that this spec defines one part of a two-part effort."},{"line_number":62,"context_line":"The setup described here will require a subsequent step to change how we"},{"line_number":63,"context_line":"look up these objects to use the new relationships once all the data has been"},{"line_number":64,"context_line":"migrated."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aad97dd_9f9cf915","line":64,"updated":"2023-03-23 09:26:43.000000000","message":"++, and tbc, it will probably require to have it in C.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22aeee6329bec2d7e06ff47d566c62635b5c7337","unresolved":false,"context_lines":[{"line_number":61,"context_line":"It is important to note that this spec defines one part of a two-part effort."},{"line_number":62,"context_line":"The setup described here will require a subsequent step to change how we"},{"line_number":63,"context_line":"look up these objects to use the new relationships once all the data has been"},{"line_number":64,"context_line":"migrated."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"75e3e07c_9e64ad28","line":64,"in_reply_to":"7aad97dd_9f9cf915","updated":"2023-04-07 17:58:49.000000000","message":"Ack","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":69,"context_line":"This is not *required* for proper operation, so we could choose to do nothing."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"We could also choose to keep the string-based association, strengthened by"},{"line_number":72,"context_line":"Foreign Key relationships."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"acb0623d_66e9c1dd","line":72,"updated":"2023-03-23 09:26:43.000000000","message":"we could undo what we did in Kilo, in other words. Honestly, I\u0027m not really *against* a revert, since we did the normalization more for the beauty of DB concepts than actual usecases.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22aeee6329bec2d7e06ff47d566c62635b5c7337","unresolved":false,"context_lines":[{"line_number":69,"context_line":"This is not *required* for proper operation, so we could choose to do nothing."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"We could also choose to keep the string-based association, strengthened by"},{"line_number":72,"context_line":"Foreign Key relationships."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4e67676e_cb5916d9","line":72,"in_reply_to":"acb0623d_66e9c1dd","updated":"2023-04-07 17:58:49.000000000","message":"Ack","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"41521b25b5db10f1b55d36f7f46abeac6ecab251","unresolved":true,"context_lines":[{"line_number":127,"context_line":"No real upgrade impact here, other than what is already expected. A simple and"},{"line_number":128,"context_line":"database migration will be added, with no specific requirements about ordering"},{"line_number":129,"context_line":"or simultaneous code change. Compute nodes will migrate existing records during"},{"line_number":130,"context_line":"the first post-upgrade restart."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Implementation"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"87e214ae_6f2815a8","line":130,"updated":"2023-03-23 09:26:43.000000000","message":"since nothing is reading yet such fields, we\u0027re cool, but here I feel we need to make it clear that given we support old computes, we\u0027ll just wait for all the computes to be fully upgraded (and supported with this version) before we gonna lookup those new fields.\n\nOh, and btw. we are lucky, this is a non-SLURP release, so we\u0027re only committed to support Bobcat nodes for C deployments.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":127,"context_line":"No real upgrade impact here, other than what is already expected. A simple and"},{"line_number":128,"context_line":"database migration will be added, with no specific requirements about ordering"},{"line_number":129,"context_line":"or simultaneous code change. Compute nodes will migrate existing records during"},{"line_number":130,"context_line":"the first post-upgrade restart."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Implementation"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8eb72af4_1d88bcd1","line":130,"in_reply_to":"8006c900_9b257000","updated":"2023-06-12 09:42:44.000000000","message":"im not sure if this was ironic specific but we actully do have some code that checks if the service_id is populated and will use that to look up the service if set otherwise it falls back to the hostname\n\nso tha will start takeing the fast path automatically once its populated.\nbut i agree there should be no real upgrade impact out side of the normal automtic rpc version pinning and minor db migration","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f784bc3fd2983d9ec194ec0d90f0b7c94abc7177","unresolved":true,"context_lines":[{"line_number":127,"context_line":"No real upgrade impact here, other than what is already expected. A simple and"},{"line_number":128,"context_line":"database migration will be added, with no specific requirements about ordering"},{"line_number":129,"context_line":"or simultaneous code change. Compute nodes will migrate existing records during"},{"line_number":130,"context_line":"the first post-upgrade restart."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Implementation"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8006c900_9b257000","line":130,"in_reply_to":"87e214ae_6f2815a8","updated":"2023-03-23 14:00:05.000000000","message":"The upgrade impact comes when we start to rely on these fields, in my mind. This is getting us set to be able to do it, and thus no real upgrade impact from this. Meaning, no upgrade impact if we do this and nothing else. I can mention as much in here though if you think it would be helpful.","commit_id":"5e740810ceb16fde556f80bf1a07e5fc8cc029b4"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"61563decf57390b90797dd797360484b725b74e7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"As a continuation of the effort to `robustify compute hostnames`_, this spec"},{"line_number":20,"context_line":"describes the next phase which involves strengthening the linkage between the"},{"line_number":21,"context_line":"primary database objects managed by the compute nodes."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"26cdd0e4_64795e13","line":22,"updated":"2023-06-07 14:57:44.000000000","message":"right now if compute node hostname is set once, it can not renamed. \nif changed will result in DB catastrophe.\n\nwhich table in DB: nova_cell1.compute_nodes.\n\nname matters, although each compute-node have ID as primary key and unique UUID.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"61563decf57390b90797dd797360484b725b74e7","unresolved":true,"context_lines":[{"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":"We already have a ``service_id`` field on our ``ComputeNode`` object. We should"},{"line_number":49,"context_line":"resume populating that when we create a new ``ComputeNode`` and we should fix"},{"line_number":50,"context_line":"existing records during ``ComputeManager.init_host()``, similar to how we added"},{"line_number":51,"context_line":"checks for hostname discrepancies in the earlier phase of this effort."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"b165a172_73ab1533","line":49,"range":{"start_line":49,"start_character":28,"end_line":49,"end_character":43},"updated":"2023-06-07 14:57:44.000000000","message":"is this mean, adding new compute node to openstack deployment, that time we run\n`nova-manage cell_v2 discover_hosts`\n\nand then new node(row) will be added in compute_nodes table, so service_id should be present.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c6ae03e31949e271c71139af2a1e6ce81fff60fc","unresolved":true,"context_lines":[{"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":"We already have a ``service_id`` field on our ``ComputeNode`` object. We should"},{"line_number":49,"context_line":"resume populating that when we create a new ``ComputeNode`` and we should fix"},{"line_number":50,"context_line":"existing records during ``ComputeManager.init_host()``, similar to how we added"},{"line_number":51,"context_line":"checks for hostname discrepancies in the earlier phase of this effort."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"23777098_8878542a","line":49,"range":{"start_line":49,"start_character":28,"end_line":49,"end_character":43},"in_reply_to":"b165a172_73ab1533","updated":"2023-06-07 15:49:11.000000000","message":"I\u0027m not sure what you\u0027re asking, but this has nothing to do with discover_hosts. The compute_node-\u003eservice relationship happens when the compute manager creates its first compute_node record. It will happen independently of discover_hosts. They\u0027re not related.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":61,"context_line":"``Instance.update()`` methods will perform a check to ensure that the former is"},{"line_number":62,"context_line":"never changed without the latter also being changed. This check will (by the"},{"line_number":63,"context_line":"nature of those two ``@remotable`` methods) be run on the conductor nodes, and"},{"line_number":64,"context_line":"will only enforce the requirement if the version of the objects is new enough."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Many of the times we update ``Instance.node``, we do so from a ``Migration``"},{"line_number":67,"context_line":"object, using either ``source_node`` for reverted migrations or ``dest_node``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b50a5b6a_027e8267","line":64,"updated":"2023-04-12 17:06:39.000000000","message":"++","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"``Instance.update()`` methods will perform a check to ensure that the former is"},{"line_number":62,"context_line":"never changed without the latter also being changed. This check will (by the"},{"line_number":63,"context_line":"nature of those two ``@remotable`` methods) be run on the conductor nodes, and"},{"line_number":64,"context_line":"will only enforce the requirement if the version of the objects is new enough."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Many of the times we update ``Instance.node``, we do so from a ``Migration``"},{"line_number":67,"context_line":"object, using either ``source_node`` for reverted migrations or ``dest_node``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f614dff2_93dff7a4","line":64,"in_reply_to":"b50a5b6a_027e8267","updated":"2023-06-12 09:42:44.000000000","message":"i dont think i have every called instance.update() directly but i guess its called internally by instance.save after it computes what files are changed.?\n\nin anycase what is written above sounds reasonable","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"The only place where we currently update ``Instance.node`` from a location that"},{"line_number":89,"context_line":"is *not* the host where the Instance is staying is during the early part of"},{"line_number":90,"context_line":"resize, where ``_resize_instance()`` runs on the sending host with information"},{"line_number":91,"context_line":"provided by the destination. In this case, we will modify the ``Migration``"},{"line_number":92,"context_line":"object to have one additional ``dest_compute_id`` field, which will be filled"},{"line_number":93,"context_line":"by the destination host with its known-correct value, to be used by the sending"},{"line_number":94,"context_line":"host when it modifies ``Instance.node`` (and ``Instance.compute_id``) to be the"},{"line_number":95,"context_line":"values for the new host."}],"source_content_type":"text/x-rst","patch_set":4,"id":"e9f0ce7d_c80a46d4","line":92,"range":{"start_line":91,"start_character":43,"end_line":92,"end_character":55},"updated":"2023-04-12 17:06:39.000000000","message":"yeah that was expected after all.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":92,"context_line":"object to have one additional ``dest_compute_id`` field, which will be filled"},{"line_number":93,"context_line":"by the destination host with its known-correct value, to be used by the sending"},{"line_number":94,"context_line":"host when it modifies ``Instance.node`` (and ``Instance.compute_id``) to be the"},{"line_number":95,"context_line":"values for the new host."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Upgrade Concerns"},{"line_number":98,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7dfe2597_114999a4","line":95,"updated":"2023-06-12 09:42:44.000000000","message":"you will also need to update _post_live_migration_update_host just an fyi to ensure we also always set the compute_id\n\nhttps://github.com/openstack/nova/blob/308633f93aef5823ba0e03cb5284ed8f647af7e8/nova/compute/manager.py#L9178-L9212","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2a5faf7510d8fbab2ff51f510b4a359b2229aaf","unresolved":true,"context_lines":[{"line_number":92,"context_line":"object to have one additional ``dest_compute_id`` field, which will be filled"},{"line_number":93,"context_line":"by the destination host with its known-correct value, to be used by the sending"},{"line_number":94,"context_line":"host when it modifies ``Instance.node`` (and ``Instance.compute_id``) to be the"},{"line_number":95,"context_line":"values for the new host."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Upgrade Concerns"},{"line_number":98,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b1ef7a2a_8793934d","line":95,"in_reply_to":"7dfe2597_114999a4","updated":"2023-06-12 13:39:52.000000000","message":"This specific bit is just about the happy path for migration where the source is the one that needs to record the *other* compute_id after success. I\u0027ve modified all the failure cases (including this one) which happen on the host the compute is staying on.\n\nhttps://review.opendev.org/c/openstack/nova/+/879500/11/nova/compute/manager.py#9215","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6333e1c0e29bf4f441154d9321d6d0839228e954","unresolved":false,"context_lines":[{"line_number":92,"context_line":"object to have one additional ``dest_compute_id`` field, which will be filled"},{"line_number":93,"context_line":"by the destination host with its known-correct value, to be used by the sending"},{"line_number":94,"context_line":"host when it modifies ``Instance.node`` (and ``Instance.compute_id``) to be the"},{"line_number":95,"context_line":"values for the new host."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Upgrade Concerns"},{"line_number":98,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"37863738_40de22f6","line":95,"in_reply_to":"b1ef7a2a_8793934d","updated":"2023-06-12 16:33:29.000000000","message":"Ack","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"``dest_compute_id`` field in ``Migration`` will be used if present, and if not,"},{"line_number":105,"context_line":"a fallback to finding the node\u0027s ID will rely on a call to"},{"line_number":106,"context_line":"``ComputeNode.get_by_host_and_nodename()``, which is \"easy\" since the"},{"line_number":107,"context_line":"``Migration`` has all the fields necessary to make that call."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Alternatives"},{"line_number":110,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f9517be8_6c9ee744","line":107,"updated":"2023-04-12 17:06:39.000000000","message":"thanks for describing the failback cases.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fbec1d6b0eed18a6f9ae8e350efd997ccb9b68fc","unresolved":false,"context_lines":[{"line_number":117,"context_line":"For the ``Migration`` changes, we could also make the destination compute ID"},{"line_number":118,"context_line":"be a new RPC parameter that is passed from the destination compute back to the"},{"line_number":119,"context_line":"source to avoid needing to change the ``Migration`` object. However that"},{"line_number":120,"context_line":"brings with it more upgrade concerns."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"We could also use the ``ComputeNode.uuid`` on the ``Migration`` object instead"},{"line_number":123,"context_line":"of the ID. There is no real reason to do that because cross-cell migration"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4b1e4cde_f9685a3a","line":120,"updated":"2023-04-12 17:06:39.000000000","message":"+1","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"61563decf57390b90797dd797360484b725b74e7","unresolved":true,"context_lines":[{"line_number":134,"context_line":"* Migration will grow a ``dest_compute_id`` field"},{"line_number":135,"context_line":"* Consistency checks for both of these will need to be added to the object"},{"line_number":136,"context_line":"  lifecycle operations."},{"line_number":137,"context_line":"* ComputeNode\u0027s existing ``service_id`` field will be populated"},{"line_number":138,"context_line":"* Both will be populated during new record creation, and for existing records"},{"line_number":139,"context_line":"  at runtime during ``nova-compute`` startup."},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"39df4b8f_35adab87","line":137,"updated":"2023-06-07 14:57:44.000000000","message":"I missed.\nany reason service_id is mentioned, its a part of model so anyway it will come, and default value will be NULL.\n\nafter adding new compute-node in deployment, will this new row/node service_id column be filled later?","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c6ae03e31949e271c71139af2a1e6ce81fff60fc","unresolved":true,"context_lines":[{"line_number":134,"context_line":"* Migration will grow a ``dest_compute_id`` field"},{"line_number":135,"context_line":"* Consistency checks for both of these will need to be added to the object"},{"line_number":136,"context_line":"  lifecycle operations."},{"line_number":137,"context_line":"* ComputeNode\u0027s existing ``service_id`` field will be populated"},{"line_number":138,"context_line":"* Both will be populated during new record creation, and for existing records"},{"line_number":139,"context_line":"  at runtime during ``nova-compute`` startup."},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9d77a301_9ffdf29b","line":137,"in_reply_to":"39df4b8f_35adab87","updated":"2023-06-07 15:49:11.000000000","message":"It will be filled when new compute_node records are created, and existing compute_node records will be updated by new code when they are loaded after a restart.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":134,"context_line":"* Migration will grow a ``dest_compute_id`` field"},{"line_number":135,"context_line":"* Consistency checks for both of these will need to be added to the object"},{"line_number":136,"context_line":"  lifecycle operations."},{"line_number":137,"context_line":"* ComputeNode\u0027s existing ``service_id`` field will be populated"},{"line_number":138,"context_line":"* Both will be populated during new record creation, and for existing records"},{"line_number":139,"context_line":"  at runtime during ``nova-compute`` startup."},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c20bdbca_f47a150b","line":137,"in_reply_to":"9d77a301_9ffdf29b","updated":"2023-06-12 09:42:44.000000000","message":"the filed already exist but we stopped using it a few years ago because of ironic \nbut we are now partly reverting that. ironic will still conintue to not use/set this (at least until the ironic driver stops moving compute nodes between comptue services) but other drivers can start setting this again. if we get rid of the peer_list in the ironic deiver with the shardign work then ironic could eventually stat setting this too but that is out of scope.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":141,"context_line":"REST API impact"},{"line_number":142,"context_line":"---------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Security impact"},{"line_number":147,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fdc37e0_d6799f2e","line":144,"updated":"2023-06-12 09:42:44.000000000","message":"technially we will start seeing the compute_id on the instance object and that would presumable be admin only like the hypervisor_hostname and node today.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2a5faf7510d8fbab2ff51f510b4a359b2229aaf","unresolved":true,"context_lines":[{"line_number":141,"context_line":"REST API impact"},{"line_number":142,"context_line":"---------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Security impact"},{"line_number":147,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ccfae902_1e2739f2","line":144,"in_reply_to":"3fdc37e0_d6799f2e","updated":"2023-06-12 13:39:52.000000000","message":"No, we don\u0027t get that automatically. I don\u0027t think we need to expose it to admins either. Like everything else, we can use it to change how we look up the associated host and what-not but I don\u0027t think we need to expose the actual integer ID.\n\nIn the implementation I had to to add the id to the migration object, which I\u0027m filtering out of the API response here:\n\nhttps://review.opendev.org/c/openstack/nova/+/879682/8/nova/api/openstack/compute/migrations.py\n\nI didn\u0027t have to do the same in the instance patch because it\u0027s not included automatically (else api samples tests would fail).","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6333e1c0e29bf4f441154d9321d6d0839228e954","unresolved":false,"context_lines":[{"line_number":141,"context_line":"REST API impact"},{"line_number":142,"context_line":"---------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Security impact"},{"line_number":147,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e9114c63_a2937e5a","line":144,"in_reply_to":"ccfae902_1e2739f2","updated":"2023-06-12 16:33:29.000000000","message":"Ack","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":181,"context_line":"Upgrade impact"},{"line_number":182,"context_line":"--------------"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"No real upgrade impact here, other than what is already expected. A simple and"},{"line_number":185,"context_line":"database migration will be added, with no specific requirements about ordering"},{"line_number":186,"context_line":"or simultaneous code change. Compute nodes will migrate existing records during"},{"line_number":187,"context_line":"the first post-upgrade restart."}],"source_content_type":"text/x-rst","patch_set":4,"id":"4286f7e1_ca75358a","line":184,"range":{"start_line":184,"start_character":75,"end_line":184,"end_character":78},"updated":"2023-06-12 09:42:44.000000000","message":"delete","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2a5faf7510d8fbab2ff51f510b4a359b2229aaf","unresolved":false,"context_lines":[{"line_number":181,"context_line":"Upgrade impact"},{"line_number":182,"context_line":"--------------"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"No real upgrade impact here, other than what is already expected. A simple and"},{"line_number":185,"context_line":"database migration will be added, with no specific requirements about ordering"},{"line_number":186,"context_line":"or simultaneous code change. Compute nodes will migrate existing records during"},{"line_number":187,"context_line":"the first post-upgrade restart."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fabebc23_a7a9a40f","line":184,"range":{"start_line":184,"start_character":75,"end_line":184,"end_character":78},"in_reply_to":"4286f7e1_ca75358a","updated":"2023-06-12 13:39:52.000000000","message":"Ack","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"61563decf57390b90797dd797360484b725b74e7","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Unit and Functional tests will be added to verify that new and existing objects"},{"line_number":219,"context_line":"are properly linked and migrated."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"Documentation Impact"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"13324041_42e7eec6","line":220,"updated":"2023-06-07 14:57:44.000000000","message":"as renaming compute hostname can be a manual process.\ndoes tempest tests are required for this ?","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c6ae03e31949e271c71139af2a1e6ce81fff60fc","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Unit and Functional tests will be added to verify that new and existing objects"},{"line_number":219,"context_line":"are properly linked and migrated."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"Documentation Impact"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"2d2783aa_fc39e491","line":220,"in_reply_to":"13324041_42e7eec6","updated":"2023-06-07 15:49:11.000000000","message":"No, this is not something we would (or could) test via tempest. Also note that this spec does not outline a solution to the renaming problem, only additional integrity measures to help avoid disaster if a compute node is accidentally renamed,","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5242a5fdccd6e7d7d46421bd5a9189a143736f8","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Unit and Functional tests will be added to verify that new and existing objects"},{"line_number":219,"context_line":"are properly linked and migrated."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"Documentation Impact"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"461ad5d2_96800704","line":220,"in_reply_to":"2d2783aa_fc39e491","updated":"2023-06-12 09:42:44.000000000","message":"tempest can only test things that end users can do via the rest api.\n\nrenaming a compute is not something that you can cdo via a rest api. this is also\nnot really about renaming computes, that was catered for by the previous work this is about hardening how our internal db relationships work and optimising how we corralate instance with compute nodes.\n\n\nthe only thing that would be visabel at the tempset level would be extra fileds on the instnce object but asserting they are present in tempest adds no value over asserting they are presnet in the nova api tests.","commit_id":"17504f1f262c652b2879ccb70a3e9791af7d46ac"}]}
