)]}'
{"id":"openstack%2Fnova~802241","triplet_id":"openstack%2Fnova~stable%2Ftrain~Iac0e634e66cd4e150a50935cf635f626fc11b70e","project":"openstack/nova","branch":"stable/train","topic":"bug/1934770","hashtags":[],"change_id":"Iac0e634e66cd4e150a50935cf635f626fc11b70e","subject":"api: Align availability zone info with forced host","status":"ABANDONED","created":"2021-07-26 08:37:17.000000000","updated":"2023-09-01 16:57:28.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"ab0b22872afeb57fb88f1ac3ab446d6a011ffc39","_number":802241,"virtual_id_number":802241,"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 11:00:22.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":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-07-26 11:00:22.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"}],"messages":[{"id":"9d1730b08d844d5fc902308a0b1b1df286724d78","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:37:17.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"22987088983dad4e5448696f555fdc631cb71f21","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-07-26 11:00:22.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/62ddcae7ceb84939bec5e99ff83c9e5b : SUCCESS in 1h 07m 06s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7a3ff9e40e844138955432bee0d404b0 : FAILURE in 13m 51s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/47c51bf347064ffc8d4df4f284af37df : FAILURE in 11m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e059057e1cb845d4b34a0f9522ad8725 : FAILURE in 10m 19s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/a8699ec795054746a0e5519c4faf1944 : FAILURE in 13m 14s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/fada5910449844f4a82562bb800ec8ba : FAILURE in 13m 26s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/63604f6c3c3042a68e2409d4ccc7ae76 : FAILURE in 13m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2c09298ad57c49308922b0d88d9b4bd3 : SUCCESS in 11m 54s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/f2d60093eb6a499f86b36e09250d4e7b : SUCCESS in 1h 25m 18s (non-voting)\n- devstack-plugin-ceph-tempest https://zuul.opendev.org/t/openstack/build/9ce422e7b78d45bc82304ddc2ed5bdcf : SUCCESS in 1h 26m 13s (non-voting)\n- neutron-grenade-multinode https://zuul.opendev.org/t/openstack/build/f63b3b6d37454e69aaf0035804ea2930 : SUCCESS in 1h 09m 17s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/918a0a38997e4a68a2cb60d339df9dcc : SUCCESS in 1h 34m 27s\n- nova-next https://zuul.opendev.org/t/openstack/build/3c5e9a5418134a8d81154c9551f2baa6 : SUCCESS in 1h 40m 31s\n- nova-tox-functional https://zuul.opendev.org/t/openstack/build/a4f5dc630e6f4782a3472d777faf067b : SUCCESS in 19m 08s\n- nova-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/eab641cdc2bc4edba576d364cb62f45f : SUCCESS in 22m 46s\n- tempest-slow-py3 https://zuul.opendev.org/t/openstack/build/91878194edcf406bae1636d97ac29c08 : FAILURE in 2h 06m 56s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/7a992a2c3ba44348a2f0ffd8024a4ac4 : SUCCESS in 58m 59s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/10fd90ccc27c470bb24fa1479346358c : SUCCESS in 1h 06m 43s","accounts_in_message":[],"_revision_number":1},{"id":"ab0b22872afeb57fb88f1ac3ab446d6a011ffc39","tag":"autogenerated:gerrit:abandon","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2023-09-01 16:57:28.000000000","message":"Abandoned\n\nstable/train branch of nova projects\u0027 have been tagged as End of Life. All open patches have to be abandoned in order to be able to delete the branch.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"dac4c22ff519e5fd32202a4392a7e53fe3ed86ad","revisions":{"dac4c22ff519e5fd32202a4392a7e53fe3ed86ad":{"kind":"REWORK","_number":1,"created":"2021-07-26 08:37:17.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/41/802241/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/802241/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/802241/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/802241/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/802241/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/802241/1"}}},"commit":{"parents":[{"commit":"ec6db6efde6486b778c9a0477d31554feac38f79","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/ec6db6efde6486b778c9a0477d31554feac38f79"}]}],"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:36:29.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\nConflicts:\n  nova/tests/unit/policies/test_servers.py\n\nNOTE(stephenfin): Conflicts are due to the absence of change\nI3fbb5c8a9cfe94b63fcffb8dfc6ee9065be1ba64 (\"Add test coverage of\nexisting server policies\") which we don\u0027t need to backport here.\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(cherry picked from commit 6ae2be6f6ebb47703159161df34abb57fe875ad2)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/dac4c22ff519e5fd32202a4392a7e53fe3ed86ad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/dac4c22ff519e5fd32202a4392a7e53fe3ed86ad"}]},"branch":"refs/heads/stable/train"}},"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":{}}}]}
