)]}'
{"id":"openstack%2Fnova~656510","triplet_id":"openstack%2Fnova~stable%2Frocky~Ib9a9a9a79499272d740a64cc0b909f0299a237d1","project":"openstack/nova","branch":"stable/rocky","topic":"bug/1801897","hashtags":[],"change_id":"Ib9a9a9a79499272d740a64cc0b909f0299a237d1","subject":"AZ list performance optimization: avoid double service list DB fetch","status":"MERGED","created":"2019-04-30 13:17:04.000000000","updated":"2019-05-01 14:12:46.000000000","submitted":"2019-05-01 14:12:45.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"656510-1556719966057-fc2ab011","meta_rev_id":"de99e492b7c6a6c3c3e08b5d572df4977eba7945","_number":656510,"virtual_id_number":656510,"owner":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"date":"2019-04-30 15:58:06.000000000","_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},{"value":0,"date":"2019-04-30 13:22:36.000000000","_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},{"value":0,"date":"2019-04-30 16:00:28.000000000","_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"date":"2019-04-30 14:54:28.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":0,"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},{"value":2,"date":"2019-05-01 14:12:45.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"all":[{"value":0,"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},{"value":0,"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},{"value":0,"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":2,"date":"2019-05-01 12:10:56.000000000","_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"}],"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":{"approved":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"all":[{"value":0,"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},{"value":0,"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},{"value":0,"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":1,"date":"2019-05-01 12:10:56.000000000","_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"date":"2019-04-30 13:40:03.000000000","_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},{"value":0,"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},{"value":0,"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":0,"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},{"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},{"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-04-30 13:22:36.000000000","updated_by":{"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2019-04-30 13:40:03.000000000","updated_by":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"reviewer":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"state":"REVIEWER"},{"updated":"2019-04-30 14:54:28.000000000","updated_by":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"reviewer":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2019-04-30 15:58:06.000000000","updated_by":{"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2019-04-30 16:00:28.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":"REVIEWER"},{"updated":"2019-05-01 12:10:56.000000000","updated_by":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"reviewer":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"state":"REVIEWER"},{"updated":"2019-05-01 14:12:45.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":"c6533933103d29bc237bfa9a91c229baf28f9500","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-04-30 13:17:04.000000000","message":"Patch Set 1: Cherry Picked from branch stable/stein.","accounts_in_message":[],"_revision_number":1},{"id":"a241cf7ed532f949f139d4e747d2e06d2c5f9751","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-04-30 13:17:10.000000000","message":"Topic changed from bug/1801897-stable/rocky to bug/1801897","accounts_in_message":[],"_revision_number":1},{"id":"3d852778b1d704cebafaac88bc7465834f500dfa","author":{"_account_id":14595,"name":"z Systems KVM","email":"zkvm-ci@linux.vnet.ibm.com","username":"ibm-zkvm-ci","tags":["SERVICE_USER"]},"date":"2019-04-30 13:22:36.000000000","message":"Patch Set 1:\n\nTesting failed ubuntu-xenial-s390x. For rechecking only on the ubuntu-xenial-s390x CI, add a review comment with recheck-zkvm. Contact info: zkvm-ci@linux.vnet.ibm.com. For more information, see https://wiki.openstack.org/wiki/ThirdPartySystems/IBM_zKVM_CI\n\n- check-tempest-dsvm-neutron-full-ubuntu-xenial-s390x http://sng01.objectstorage.softlayer.net/v1/AUTH_1940ea10-6e82-4501-b2f9-eb236510e575/ibmzkvmci/production/656510/1/check-tempest-dsvm-neutron-full-ubuntu-xenial-s390x/6c8a8bc : FAILURE in 4m 43s","accounts_in_message":[],"_revision_number":1},{"id":"af13c0220d502e57cb74b6579993ac0007c5765a","author":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"date":"2019-04-30 14:54:28.000000000","message":"Patch Set 1:\n\nBuild succeeded. Test completed on IBM PowerKVM platform. For rechecking only on the IBM PowerKVM CI, add a review comment with pkvm: recheck. For contact and more information, see https://wiki.openstack.org/wiki/PowerKVM\n\n- tempest-dsvm-full-xenial https://dal05.objectstorage.softlayer.net/v1/AUTH_3d8e6ecb-f597-448c-8ec2-164e9f710dd6/pkvmci/nova/10/656510/1/check/tempest-dsvm-full-xenial/d596677/ : SUCCESS in 1h 07m 08s\n- tempest-dsvm-full-xenial-py3 https://dal05.objectstorage.softlayer.net/v1/AUTH_3d8e6ecb-f597-448c-8ec2-164e9f710dd6/pkvmci/nova/10/656510/1/check/tempest-dsvm-full-xenial-py3/972c645/ : SUCCESS in 1h 36m 37s (non-voting)\n- grenade-dsvm-xenial https://dal05.objectstorage.softlayer.net/v1/AUTH_3d8e6ecb-f597-448c-8ec2-164e9f710dd6/pkvmci/nova/10/656510/1/check/grenade-dsvm-xenial/f120cd5/ : SUCCESS in 54m 37s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"9b7217be9662b267012fc906bb72db1c5b6776d5","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-30 15:35:25.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/10/656510/1/check/openstack-tox-pep8/2b26dcb/ : SUCCESS in 9m 29s\n- openstack-tox-py27 http://logs.openstack.org/10/656510/1/check/openstack-tox-py27/5952820/ : SUCCESS in 15m 11s\n- openstack-tox-py35 http://logs.openstack.org/10/656510/1/check/openstack-tox-py35/d38729d/ : SUCCESS in 12m 16s\n- build-openstack-sphinx-docs http://logs.openstack.org/10/656510/1/check/build-openstack-sphinx-docs/5396f5f/html/ : SUCCESS in 8m 01s\n- tempest-full http://logs.openstack.org/10/656510/1/check/tempest-full/9b8bb54/ : SUCCESS in 1h 27m 11s\n- neutron-grenade http://logs.openstack.org/10/656510/1/check/neutron-grenade/b323888/ : SUCCESS in 53m 59s\n- tempest-full-py3 http://logs.openstack.org/10/656510/1/check/tempest-full-py3/753df12/ : SUCCESS in 1h 19m 08s\n- ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa http://logs.openstack.org/10/656510/1/check/ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa/0315afb/ : SUCCESS in 47m 23s (non-voting)\n- nova-cells-v1 http://logs.openstack.org/10/656510/1/check/nova-cells-v1/bfc8de1/ : SUCCESS in 55m 56s\n- nova-grenade-live-migration http://logs.openstack.org/10/656510/1/check/nova-grenade-live-migration/3eca280/ : SUCCESS in 1h 10m 36s (non-voting)\n- nova-live-migration http://logs.openstack.org/10/656510/1/check/nova-live-migration/2963b7b/ : SUCCESS in 44m 31s\n- nova-multiattach http://logs.openstack.org/10/656510/1/check/nova-multiattach/47b7651/ : SUCCESS in 1h 02m 35s\n- nova-next http://logs.openstack.org/10/656510/1/check/nova-next/3b23e67/ : SUCCESS in 1h 35m 53s\n- tempest-slow http://logs.openstack.org/10/656510/1/check/tempest-slow/c10d74c/ : SUCCESS in 2h 03m 18s\n- nova-tox-functional http://logs.openstack.org/10/656510/1/check/nova-tox-functional/9cb964c/ : SUCCESS in 16m 32s\n- nova-tox-functional-py35 http://logs.openstack.org/10/656510/1/check/nova-tox-functional-py35/676020e/ : SUCCESS in 18m 21s\n- openstack-tox-lower-constraints http://logs.openstack.org/10/656510/1/check/openstack-tox-lower-constraints/7b7fdd8/ : SUCCESS in 12m 11s\n- neutron-grenade-multinode http://logs.openstack.org/10/656510/1/check/neutron-grenade-multinode/f9c199b/ : SUCCESS in 1h 04m 26s\n- devstack-plugin-ceph-tempest http://logs.openstack.org/10/656510/1/check/devstack-plugin-ceph-tempest/5b300e0/ : SUCCESS in 1h 26m 57s (non-voting)\n- tempest-multinode-full http://logs.openstack.org/10/656510/1/check/tempest-multinode-full/c6f1f46/ : SUCCESS in 1h 36m 15s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"77f4ba44a49a76d9513887f83226f12268204f93","author":{"_account_id":16128,"name":"IBM PowerVM CI","email":"powervmci@linux.vnet.ibm.com","username":"powervmci","tags":["SERVICE_USER"]},"date":"2019-04-30 15:58:06.000000000","message":"Patch Set 1:\n\nBuild failed. Comment \u0027powervm: recheck\u0027 to recheck.\n For 3rd party CI contact info: https://wiki.openstack.org/wiki/ThirdPartySystems/IBM_PowerVM_CI\n\n- nova-out-of-tree-pvm http://184.172.12.213/10/656510/1/check/nova-out-of-tree-pvm/906b02a : FAILURE in 2h 40m 17s\n- nova-in-tree-pvm http://184.172.12.213/10/656510/1/check/nova-in-tree-pvm/811e93d : FAILURE in 2h 40m 16s","accounts_in_message":[],"_revision_number":1},{"id":"041fc72a17bb5b2763759e28bb99329b81b9a852","author":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"date":"2019-04-30 16:00:28.000000000","message":"Patch Set 1:\n\nBuild succeeded.\n\n- nova http://cloudbase-ci.com/nova/656510/1 : SUCCESS in 2h 07m 03s","accounts_in_message":[],"_revision_number":1},{"id":"5704d8729b72aa24fd248babf5912bb16e5647d5","author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"date":"2019-05-01 12:10:56.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nLGTM, clean and has now landed in stable/stein.\n\nApproving as this was submitted to stable/rocky by another Nova stable core.","accounts_in_message":[],"_revision_number":1},{"id":"9b405cb014f06c096e099a3b8c39c54d1402065f","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-01 12:11:15.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"76097ac98981bd3ea50756a600d9e9f2d8662aa9","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-01 14:12:45.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/10/656510/1/gate/openstack-tox-pep8/5d443a9/ : SUCCESS in 9m 18s\n- openstack-tox-py27 http://logs.openstack.org/10/656510/1/gate/openstack-tox-py27/dd408a9/ : SUCCESS in 11m 24s\n- openstack-tox-py35 http://logs.openstack.org/10/656510/1/gate/openstack-tox-py35/bea843a/ : SUCCESS in 12m 38s\n- build-openstack-sphinx-docs http://logs.openstack.org/10/656510/1/gate/build-openstack-sphinx-docs/cf5da4d/html/ : SUCCESS in 8m 37s\n- tempest-full http://logs.openstack.org/10/656510/1/gate/tempest-full/4fc209b/ : SUCCESS in 1h 25m 12s\n- neutron-grenade http://logs.openstack.org/10/656510/1/gate/neutron-grenade/6fc7667/ : SUCCESS in 56m 20s\n- tempest-full-py3 http://logs.openstack.org/10/656510/1/gate/tempest-full-py3/2500702/ : SUCCESS in 1h 25m 09s\n- nova-cells-v1 http://logs.openstack.org/10/656510/1/gate/nova-cells-v1/6658284/ : SUCCESS in 1h 04m 48s\n- nova-live-migration http://logs.openstack.org/10/656510/1/gate/nova-live-migration/b22b931/ : SUCCESS in 52m 17s\n- nova-multiattach http://logs.openstack.org/10/656510/1/gate/nova-multiattach/8125a12/ : SUCCESS in 59m 37s\n- nova-next http://logs.openstack.org/10/656510/1/gate/nova-next/93a475e/ : SUCCESS in 1h 26m 14s\n- tempest-slow http://logs.openstack.org/10/656510/1/gate/tempest-slow/a3e4102/ : SUCCESS in 1h 56m 33s\n- nova-tox-functional http://logs.openstack.org/10/656510/1/gate/nova-tox-functional/6198e47/ : SUCCESS in 17m 28s\n- nova-tox-functional-py35 http://logs.openstack.org/10/656510/1/gate/nova-tox-functional-py35/e7a8c35/ : SUCCESS in 19m 21s\n- openstack-tox-lower-constraints http://logs.openstack.org/10/656510/1/gate/openstack-tox-lower-constraints/04938ea/ : SUCCESS in 12m 01s","accounts_in_message":[],"_revision_number":1},{"id":"de99e492b7c6a6c3c3e08b5d572df4977eba7945","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-01 14:12:46.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"fa275544c27a5b428ad34b4c03be511607d15bf6","revisions":{"fa275544c27a5b428ad34b4c03be511607d15bf6":{"kind":"REWORK","_number":1,"created":"2019-04-30 13:17:04.000000000","uploader":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"ref":"refs/changes/10/656510/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/10/656510/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/10/656510/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/10/656510/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/10/656510/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/10/656510/1"}}},"commit":{"parents":[{"commit":"75af081868a12b22b9f7bb5bf846e337d2973ae6","subject":"Merge \"Fix {min|max}_version in ironic Adapter setup\" into stable/rocky","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/75af081868a12b22b9f7bb5bf846e337d2973ae6"}]}],"author":{"name":"Andrey Volkov","email":"avolkov@mirantis.com","date":"2019-02-14 12:39:45.000000000","tz":180},"committer":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-04-30 13:17:04.000000000","tz":0},"subject":"AZ list performance optimization: avoid double service list DB fetch","message":"AZ list performance optimization: avoid double service list DB fetch\n\nAssume number of services can be large (10000 as in the bug description),\nthis patch removes second service_get_all call.\n\nzone_hosts changed from dict of lists to dict of sets.\n\nThe HostAPI instance from the API controller is also passed to the\nget_availability_zones method so it does not have to recreate it\nper call (this is both for a slight performance gain but mostly also\nfor test sanity).\n\nOn devstack with 10000 services patch decreased response time twice.\n\nopenstack availability zone list --long --timing\n\n...\n\nBefore:\n\n+-------------------------------------------------------------------------------------------+-----------+\n| URL                                                                                       |   Seconds |\n+-------------------------------------------------------------------------------------------+-----------+\n| GET http://192.168.0.45/identity                                                          |  0.006816 |\n| POST http://192.168.0.45/identity/v3/auth/tokens                                          |  0.456708 |\n| POST http://192.168.0.45/identity/v3/auth/tokens                                          |  0.087485 |\n| GET http://172.18.237.203/compute/v2.1/os-availability-zone/detail                        | 95.667192 |\n| GET http://172.18.237.203/volume/v2/e2671d37ee2c4374bd1533645261f1d4/os-availability-zone |  0.036528 |\n| Total                                                                                     | 96.254729 |\n+-------------------------------------------------------------------------------------------+-----------+\n\nAfter:\n\n+-------------------------------------------------------------------------------------------+-----------+\n| URL                                                                                       |   Seconds |\n+-------------------------------------------------------------------------------------------+-----------+\n| GET http://192.168.0.45/identity                                                          |  0.020215 |\n| POST http://192.168.0.45/identity/v3/auth/tokens                                          |  0.102987 |\n| POST http://192.168.0.45/identity/v3/auth/tokens                                          |  0.111899 |\n| GET http://172.18.237.203/compute/v2.1/os-availability-zone/detail                        | 39.346657 |\n| GET http://172.18.237.203/volume/v2/e2671d37ee2c4374bd1533645261f1d4/os-availability-zone |  0.026403 |\n| Total                                                                                     | 39.608161 |\n+-------------------------------------------------------------------------------------------+-----------+\n\nThe test_availability_zone_detail unit test is updated to assert that\nservices are only retrieved twice (once for enabled, once for disabled).\nWhile in there, the expected response dict is formatted for readability\nand a duplicate zone/host is added to make sure duplicates are handled\nfor available services. To ensure service_get_all is called only twice,\nthe low-level DB API service_get_all stub is replaced with a mock and\nthe mock is changed to be on the HostAPI.service_get_all method which\nis (1) what the API controller code is actually using and (2) allows the\ntest to only mock the instance of the HostAPI being tested - trying to\nmock the DB API service_get_all method causes intermittent failures\nin unrelated tests because of the global nature of that mock.\n\nThere is another opportunity for optimizing get_availability_zones which\nis marked with a TODO but left for a separate patch.\n\nCo-Authored-By: Matt Riedemann \u003cmriedem.os@gmail.com\u003e\n\nPartial-Bug: #1801897\nChange-Id: Ib9a9a9a79499272d740a64cc0b909f0299a237d1\n(cherry picked from commit 74cefe4266a613d4c2afbb0c791e16eb7789aef4)\n(cherry picked from commit c280d747fb23f1abaaf91eea7f6d11e716c6db42)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fa275544c27a5b428ad34b4c03be511607d15bf6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fa275544c27a5b428ad34b4c03be511607d15bf6"}]},"branch":"refs/heads/stable/rocky"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
