)]}'
{"id":"openstack%2Fnova~802239","triplet_id":"openstack%2Fnova~stable%2Fussuri~Iac0e634e66cd4e150a50935cf635f626fc11b70e","project":"openstack/nova","branch":"stable/ussuri","topic":"bug/1934770","hashtags":[],"change_id":"Iac0e634e66cd4e150a50935cf635f626fc11b70e","subject":"api: Align availability zone info with forced host","status":"ABANDONED","created":"2021-07-26 08:35:04.000000000","updated":"2023-11-13 17:15:13.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"b14aa38baf059ba43df8c8f8dcba632a7539246d","_number":802239,"virtual_id_number":802239,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2021-07-26 10:28:46.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-07-26 10:28:46.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2021-07-26 11:08:53.000000000","updated_by":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"reviewer":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"state":"CC"}],"messages":[{"id":"2a66a576383a807a0bbaa3e8927c5b0c2aa9c395","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2021-07-26 08:35:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d8cd2a5247afb185fdac6eee222079fa5b0c86db","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-07-26 10:28:46.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/44441228cd7f47a5bb58bcc4a0bf77ae : SUCCESS in 1h 25m 36s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6a950aa4ea3842b0befb46d7e112aa43 : SUCCESS in 17m 37s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/63622b75b6994f3582c2a59debc470af : SUCCESS in 15m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8cfb912ef10e4bc384344d8cb7172fbc : FAILURE in 9m 02s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/09b1ad84854143bf94968b8b34f02118 : SUCCESS in 13m 33s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/1bfde99afb074a19b05a0befb04158ed : SUCCESS in 18m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2799f614c96b4a03b4b65ebced617419 : SUCCESS in 11m 24s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/9804a3a1b31d40fb816145dd24c1a819 : SUCCESS in 1h 24m 11s (non-voting)\n- devstack-plugin-ceph-tempest-py3 https://zuul.opendev.org/t/openstack/build/a61e783ff48a46f4a64ef3bcd36bd3c4 : FAILURE in 1h 46m 00s (non-voting)\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/62c25947a23e4e2d952b97b9c624a1b8 : SUCCESS in 49m 35s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/a51e0fd330bb4e3f877593b7b52539a9 : SUCCESS in 1h 27m 48s\n- nova-next https://zuul.opendev.org/t/openstack/build/f1e747bb8ffc408abb2a724726e0bcaf : SUCCESS in 1h 31m 13s\n- nova-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/6bb3615eda7e4267818ff192539b7e2b : SUCCESS in 19m 12s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/81ed866435b5406dabdfd404eafc62cb : SUCCESS in 1h 29m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bc3a0bb2f2814f4c89f2a95aba4101fb : SUCCESS in 58m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/71c765bcb9ce41769dbf942f408d35a2 : SUCCESS in 1h 03m 16s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/bad1872987a34fc8b7899b8ba8cbdcd8 : SUCCESS in 34m 20s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"def9e57abc0ffcee8216b1fdf44a3171a32b7cf9","tag":"autogenerated:cloudbase-ci","author":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"date":"2021-07-26 11:08:53.000000000","message":"Patch Set 1:\n\nBuild succeeded. For checking Nova with Ceph, add a comment with run-Cloudbase Nova Ceph Hyper-V CI\n\n- nova http://cloudbase-ci.com/nova/802239/1/iscsi : SUCCESS in 2h 30m 15s","accounts_in_message":[],"_revision_number":1},{"id":"b14aa38baf059ba43df8c8f8dcba632a7539246d","tag":"autogenerated:gerrit:abandon","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2023-11-13 17:15:13.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"6ae2be6f6ebb47703159161df34abb57fe875ad2","revisions":{"6ae2be6f6ebb47703159161df34abb57fe875ad2":{"kind":"REWORK","_number":1,"created":"2021-07-26 08:35:04.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/39/802239/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/39/802239/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/39/802239/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/39/802239/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/39/802239/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/39/802239/1"}}},"commit":{"parents":[{"commit":"35ec9357a1f249cc1309c92006a5a1f48a8ff025","subject":"Fix error that cannot overwrite policy rule for \u0027forced_host\u0027","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/35ec9357a1f249cc1309c92006a5a1f48a8ff025"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-06-25 17:51:06.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-07-26 08:34:54.000000000","tz":60},"subject":"api: Align availability zone info with forced host","message":"api: Align availability zone info with forced host\n\nUsers can create a server like so:\n\n  $ openstack server create --availability-zone az:host ...\n\nThis is a historical way to request that an instance be scheduled to a\nspecific host and it causes the scheduler to be bypassed. However, no\nvalidation of this availability zone-host combo takes place. The host\ncould in fact belong to a different availability zone. If it does, we\u0027ll\nend up in a very odd situation whereby the RequestSpec record for the\ninstance will record the availability zone requested by the user at\ncreate time, but the Instance record itself will record the availability\nzone of the host on which the instance was scheduled. This leads to even\nmore confusing behavior when we attempt to do something like live\nmigrate the instance since the RequestSpec record, with its original and\npossibly invalid availability zone information, is used. The\n\u0027AvailabilityZoneFilter\u0027 will fail an error message like the following:\n\n  Availability Zone \u0027foo\u0027 requested. ... has AZs: bar\n\nbut the \u0027openstack server list --long\u0027 command will show a non-foo value\nfor the availability zone column.\n\nThe solution is simple: when given an availability zone-host combo, make\nsure the availability zone requested matches that of the host (or, more\nspecifically, the host is a member of the host aggregates that form the\navailability zone [1]). If not, simply ignore the requested availability\nzone information in favour of using the availability zone of the host,\nlogging a warning just for record keeping purposes. This is deemed\npreferable to failing with HTTP 400 (Bad Request) since what users are\nreally requesting by using this was to schedule to a specific host: the\navailability zone portion of the request is really irrelevant and just\nan artifact of this legacy mechanism to request hosts. If users wish to\ntruly validate a host-availability zone combo, they can use the \u0027host\u0027\nfield introduced in microversion 2.74 along with the \u0027availability_zone\u0027\nfield:\n\n  $ openstack server create --availability-zone az --host host ...\n\n[1] https://docs.openstack.org/nova/latest/admin/aggregates.html\n\nChange-Id: Iac0e634e66cd4e150a50935cf635f626fc11b70e\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nCloses-Bug: #1934770\n(cherry picked from commit 8f21ee42bd66b62e75e14acf4e91b786d78b9168)\n(cherry picked from commit 58782403cdaad33856fd59715525cee3c63ee3cf)\n(cherry picked from commit bf235c0ed0a1a867ab1b6e5ff34eaf7a8dee6c55)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/6ae2be6f6ebb47703159161df34abb57fe875ad2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/6ae2be6f6ebb47703159161df34abb57fe875ad2"}]},"branch":"refs/heads/stable/ussuri"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
