)]}'
{"id":"openstack%2Fplacement~660691","triplet_id":"openstack%2Fplacement~master~Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f","project":"openstack/placement","branch":"master","topic":"cd/check-summary-dict","hashtags":[],"change_id":"Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f","subject":"Avoid traversing summaries in _check_traits_for_alloc_request","status":"MERGED","created":"2019-05-22 11:58:13.000000000","updated":"2019-05-29 08:35:33.000000000","submitted":"2019-05-29 02:53:42.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"660691-1559098422787-e94487ec","meta_rev_id":"2b4e4d2ef804978a2e880720ba4490c7869113a1","_number":660691,"virtual_id_number":660691,"owner":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},{"value":2,"date":"2019-05-29 02:53:42.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"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":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"all":[{"value":2,"date":"2019-05-28 20:12:06.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":2,"date":"2019-05-25 06:43:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"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":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"all":[{"value":1,"date":"2019-05-28 20:12:06.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-05-25 06:43:10.000000000","updated_by":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"reviewer":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"state":"REVIEWER"},{"updated":"2019-05-28 20:12:06.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"},{"updated":"2019-05-29 02:53:42.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":"5658dc1a6a56ab2421704df9df5732991af6e24b","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-22 11:58:13.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"507e86ac28d890ee6136388d5c48227df87da126","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-22 15:52:55.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 http://logs.openstack.org/91/660691/1/check/grenade-py3/c85796c/ : SUCCESS in 59m 00s\n- tempest-full-py3 http://logs.openstack.org/91/660691/1/check/tempest-full-py3/3cb1940/ : SUCCESS in 1h 15m 17s\n- openstack-tox-docs http://logs.openstack.org/91/660691/1/check/openstack-tox-docs/c67a3f9/html/ : SUCCESS in 4m 06s\n- openstack-tox-cover http://logs.openstack.org/91/660691/1/check/openstack-tox-cover/202d79e/cover/ : SUCCESS in 5m 36s\n- openstack-tox-lower-constraints http://logs.openstack.org/91/660691/1/check/openstack-tox-lower-constraints/4312f44/ : SUCCESS in 4m 13s\n- openstack-tox-pep8 http://logs.openstack.org/91/660691/1/check/openstack-tox-pep8/8efecd6/ : SUCCESS in 4m 29s\n- openstack-tox-py27 http://logs.openstack.org/91/660691/1/check/openstack-tox-py27/97f855f/ : SUCCESS in 5m 57s\n- openstack-tox-py36 http://logs.openstack.org/91/660691/1/check/openstack-tox-py36/977c541/ : SUCCESS in 4m 16s\n- openstack-tox-py37 http://logs.openstack.org/91/660691/1/check/openstack-tox-py37/e069dca/ : SUCCESS in 4m 45s\n- openstack-tox-functional http://logs.openstack.org/91/660691/1/check/openstack-tox-functional/d607792/ : SUCCESS in 5m 59s\n- openstack-tox-functional-py36 http://logs.openstack.org/91/660691/1/check/openstack-tox-functional-py36/07674aa/ : SUCCESS in 5m 13s\n- placement-nova-tox-functional-py36 http://logs.openstack.org/91/660691/1/check/placement-nova-tox-functional-py36/7f3b3d5/ : SUCCESS in 14m 45s\n- placement-perfload http://logs.openstack.org/91/660691/1/check/placement-perfload/c071174/ : SUCCESS in 3m 29s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"7cdcbf9c0d18def1a0edf0a6694e6e888a0b7560","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-23 14:47:41.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"28bbf59f4c25ebf8f1aa06f4c208c992ec8e010a","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-23 19:34:59.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 http://logs.openstack.org/91/660691/2/check/grenade-py3/1de88b1/ : SUCCESS in 58m 17s\n- tempest-full-py3 http://logs.openstack.org/91/660691/2/check/tempest-full-py3/d79a9fa/ : SUCCESS in 1h 30m 13s\n- openstack-tox-docs http://logs.openstack.org/91/660691/2/check/openstack-tox-docs/d193707/html/ : SUCCESS in 5m 05s\n- openstack-tox-cover http://logs.openstack.org/91/660691/2/check/openstack-tox-cover/1010fac/cover/ : SUCCESS in 5m 35s\n- openstack-tox-lower-constraints http://logs.openstack.org/91/660691/2/check/openstack-tox-lower-constraints/4483d4f/ : SUCCESS in 5m 04s\n- openstack-tox-pep8 http://logs.openstack.org/91/660691/2/check/openstack-tox-pep8/6d2f474/ : SUCCESS in 5m 33s\n- openstack-tox-py27 http://logs.openstack.org/91/660691/2/check/openstack-tox-py27/987ce43/ : SUCCESS in 6m 12s\n- openstack-tox-py36 http://logs.openstack.org/91/660691/2/check/openstack-tox-py36/0116340/ : SUCCESS in 4m 12s\n- openstack-tox-py37 http://logs.openstack.org/91/660691/2/check/openstack-tox-py37/a2d1d9c/ : SUCCESS in 5m 17s\n- openstack-tox-functional http://logs.openstack.org/91/660691/2/check/openstack-tox-functional/5ef3e27/ : SUCCESS in 5m 14s\n- openstack-tox-functional-py36 http://logs.openstack.org/91/660691/2/check/openstack-tox-functional-py36/916be43/ : SUCCESS in 4m 25s\n- placement-nova-tox-functional-py36 http://logs.openstack.org/91/660691/2/check/placement-nova-tox-functional-py36/078edbc/ : SUCCESS in 11m 21s\n- placement-perfload http://logs.openstack.org/91/660691/2/check/placement-perfload/7c21bb7/ : SUCCESS in 3m 31s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"dd8b56d8ac4fef796bebef45f93ead33840d6035","author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"date":"2019-05-24 05:52:32.000000000","message":"Patch Set 2: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"6417d7ecccbd4872914af24d02ec2eb3c1aee143","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-24 08:10:18.000000000","message":"Patch Set 2: Workflow-1\n\n(1 comment)\n\nTetsuro to the rescue with a bitter solution. Will fix up a better version asap.","accounts_in_message":[],"_revision_number":2},{"id":"edfecc9af389ef4c45262b107a8d4b2ee208fe43","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-24 09:56:59.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"3303bcc14820134be458e7d8a514ed854db6bb79","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-24 11:40:00.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- grenade-py3 http://logs.openstack.org/91/660691/3/check/grenade-py3/fbe34a7/ : SUCCESS in 1h 00m 06s\n- tempest-full-py3 http://logs.openstack.org/91/660691/3/check/tempest-full-py3/1862d79/ : SUCCESS in 1h 37m 09s\n- openstack-tox-docs http://logs.openstack.org/91/660691/3/check/openstack-tox-docs/8f35077/html/ : SUCCESS in 3m 43s\n- openstack-tox-cover http://logs.openstack.org/91/660691/3/check/openstack-tox-cover/61eb9f9/ : FAILURE in 4m 29s\n- openstack-tox-lower-constraints http://logs.openstack.org/91/660691/3/check/openstack-tox-lower-constraints/3cf757e/ : SUCCESS in 4m 12s\n- openstack-tox-pep8 http://logs.openstack.org/91/660691/3/check/openstack-tox-pep8/0446ab4/ : SUCCESS in 3m 48s\n- openstack-tox-py27 http://logs.openstack.org/91/660691/3/check/openstack-tox-py27/15dfddc/ : SUCCESS in 3m 57s\n- openstack-tox-py36 http://logs.openstack.org/91/660691/3/check/openstack-tox-py36/73ceb13/ : SUCCESS in 3m 49s\n- openstack-tox-py37 http://logs.openstack.org/91/660691/3/check/openstack-tox-py37/c01d5d2/ : SUCCESS in 4m 06s\n- openstack-tox-functional http://logs.openstack.org/91/660691/3/check/openstack-tox-functional/9ec4069/ : FAILURE in 4m 27s\n- openstack-tox-functional-py36 http://logs.openstack.org/91/660691/3/check/openstack-tox-functional-py36/af05c25/ : FAILURE in 4m 15s\n- placement-nova-tox-functional-py36 http://logs.openstack.org/91/660691/3/check/placement-nova-tox-functional-py36/36eb47b/ : SUCCESS in 11m 40s\n- placement-perfload http://logs.openstack.org/91/660691/3/check/placement-perfload/4ab9dae/ : SUCCESS in 3m 05s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"574f4a434a0811e8fdee757256b1aa021df6810b","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-24 13:50:16.000000000","message":"Patch Set 4: Patch Set 3 was rebased","accounts_in_message":[],"_revision_number":4},{"id":"12e30c401577655551d399bb8ed8f883ea5ff25b","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-24 17:22:08.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 http://logs.openstack.org/91/660691/4/check/grenade-py3/bfaa5bf/ : SUCCESS in 51m 56s\n- tempest-full-py3 http://logs.openstack.org/91/660691/4/check/tempest-full-py3/ca292b1/ : SUCCESS in 1h 32m 05s\n- openstack-tox-docs http://logs.openstack.org/91/660691/4/check/openstack-tox-docs/4326aed/html/ : SUCCESS in 5m 00s\n- openstack-tox-cover http://logs.openstack.org/91/660691/4/check/openstack-tox-cover/5489721/cover/ : SUCCESS in 4m 29s\n- openstack-tox-lower-constraints http://logs.openstack.org/91/660691/4/check/openstack-tox-lower-constraints/dd9763b/ : SUCCESS in 4m 13s\n- openstack-tox-pep8 http://logs.openstack.org/91/660691/4/check/openstack-tox-pep8/4377f91/ : SUCCESS in 3m 33s\n- openstack-tox-py27 http://logs.openstack.org/91/660691/4/check/openstack-tox-py27/bfec074/ : SUCCESS in 4m 38s\n- openstack-tox-py36 http://logs.openstack.org/91/660691/4/check/openstack-tox-py36/bf4234d/ : SUCCESS in 5m 21s\n- openstack-tox-py37 http://logs.openstack.org/91/660691/4/check/openstack-tox-py37/7f99a7f/ : SUCCESS in 5m 03s\n- openstack-tox-functional http://logs.openstack.org/91/660691/4/check/openstack-tox-functional/33146ed/ : SUCCESS in 4m 59s\n- openstack-tox-functional-py36 http://logs.openstack.org/91/660691/4/check/openstack-tox-functional-py36/93b35fc/ : SUCCESS in 4m 23s\n- placement-nova-tox-functional-py36 http://logs.openstack.org/91/660691/4/check/placement-nova-tox-functional-py36/654d768/ : SUCCESS in 12m 41s\n- placement-perfload http://logs.openstack.org/91/660691/4/check/placement-perfload/c23e7f2/ : SUCCESS in 4m 08s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"4474c98638c4c14c8f7507a72f244db7def0f4b3","author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"date":"2019-05-25 06:43:10.000000000","message":"Patch Set 4: Code-Review+2\n\nThanks!","accounts_in_message":[],"_revision_number":4},{"id":"17adf4f432b812da8673552cc70a4232c16c250f","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-05-28 20:12:06.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\n(2 comments)\n\nNice one guv.","accounts_in_message":[],"_revision_number":4},{"id":"a467440c252c57a6dbb1ab671d4537373961236b","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-28 20:12:32.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"8e2135942690b6939ebd37c37ba5f8a5dee014d9","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-29 02:53:42.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":4},{"id":"c945e0f039a4aeb109eb7834dc174775919d0551","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-29 02:53:42.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- grenade-py3 http://logs.openstack.org/91/660691/4/gate/grenade-py3/39e7d06/ : SUCCESS in 1h 05m 25s\n- tempest-full-py3 http://logs.openstack.org/91/660691/4/gate/tempest-full-py3/1877fd4/ : SUCCESS in 1h 33m 24s\n- openstack-tox-docs http://logs.openstack.org/91/660691/4/gate/openstack-tox-docs/f0e8cd1/html/ : SUCCESS in 3m 58s\n- openstack-tox-lower-constraints http://logs.openstack.org/91/660691/4/gate/openstack-tox-lower-constraints/11fe998/ : SUCCESS in 5m 04s\n- openstack-tox-pep8 http://logs.openstack.org/91/660691/4/gate/openstack-tox-pep8/42f8e34/ : SUCCESS in 4m 29s\n- openstack-tox-py27 http://logs.openstack.org/91/660691/4/gate/openstack-tox-py27/64dbe7e/ : SUCCESS in 4m 22s\n- openstack-tox-py36 http://logs.openstack.org/91/660691/4/gate/openstack-tox-py36/4a86a8e/ : SUCCESS in 4m 34s\n- openstack-tox-py37 http://logs.openstack.org/91/660691/4/gate/openstack-tox-py37/a1cdd66/ : SUCCESS in 4m 42s\n- openstack-tox-functional http://logs.openstack.org/91/660691/4/gate/openstack-tox-functional/6f39eda/ : SUCCESS in 5m 14s\n- openstack-tox-functional-py36 http://logs.openstack.org/91/660691/4/gate/openstack-tox-functional-py36/cc6f36c/ : SUCCESS in 4m 57s\n- placement-nova-tox-functional-py36 http://logs.openstack.org/91/660691/4/gate/placement-nova-tox-functional-py36/1ac857a/ : SUCCESS in 11m 36s","accounts_in_message":[],"_revision_number":4},{"id":"bbc524ae78cb8de980fc1bed3d87637239ce68fe","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-29 08:35:33.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"346509f8fa2f0410aba5db07f75577454502dd28","revisions":{"b5e51f74a9f7563fdcc09f3c52e6f6bf51a0bc2b":{"kind":"REWORK","_number":1,"created":"2019-05-22 11:58:13.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/91/660691/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/91/660691/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/91/660691/1"}}},"commit":{"parents":[{"commit":"e98b5df3d962b0b9da66c1454b6086df9c9659f6","subject":"Add \u0027docs\u0027 worklist to worklist table","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e98b5df3d962b0b9da66c1454b6086df9c9659f6"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-22 11:42:21.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-22 11:42:21.000000000","tz":60},"subject":"WIP: Avoid traversing summaries in _check_traits_for_alloc_request","message":"WIP: Avoid traversing summaries in _check_traits_for_alloc_request\n\nWhile doing other work, I noticed that _check_traits_for_alloc_request\ntraverses a list of summaries multiple time to find the \"right one\".\nThis is a classic case of a list being the wrong data structure for\nthe job.\n\nThe method now takes a summaries which is a dict keyed by uuid and\nuses the uuid it has from the AllocationResourceRequests to find\nthe relevant summary.\n\nThen, since we know the summary has the trait info we need, we don\u0027t\nneed to pass prov_traits to the method.\n\nAs noted in a TODO in the surrounding caller, it might make sense\nto have _build_provider_summaries give us the data structure we want\nbut the cascade of changes from doing this was large and after a\nfew hours of effort was still not working.\n\nWIP: To see that this does not negatively impact performance (one\nwouldn\u0027t expect it to, but...)\n\nChange-Id: Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/b5e51f74a9f7563fdcc09f3c52e6f6bf51a0bc2b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/b5e51f74a9f7563fdcc09f3c52e6f6bf51a0bc2b"}]},"branch":"refs/heads/master"},"078e69d97cc13ce7d13cdfacbb6ae4381d9d78b5":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":2,"created":"2019-05-23 14:47:41.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/91/660691/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/91/660691/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/91/660691/2"}}},"commit":{"parents":[{"commit":"e0efa65e296eea041f88e38cee898f1e7b785798","subject":"Remove null root provider protections","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e0efa65e296eea041f88e38cee898f1e7b785798"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-22 11:42:21.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-23 14:46:55.000000000","tz":60},"subject":"Avoid traversing summaries in _check_traits_for_alloc_request","message":"Avoid traversing summaries in _check_traits_for_alloc_request\n\nWhile doing other work, I noticed that _check_traits_for_alloc_request\ntraverses a list of summaries multiple time to find the \"right one\".\nThis is a classic case of a list being the wrong data structure for\nthe job.\n\nThe method now takes a summaries which is a dict keyed by uuid and\nuses the uuid it has from the AllocationResourceRequests to find\nthe relevant summary.\n\nThen, since we know the summary has the trait info we need, we don\u0027t\nneed to pass prov_traits to the method.\n\nAs noted in a TODO in the surrounding caller, it might make sense\nto have _build_provider_summaries give us the data structure we want\nbut the cascade of changes from doing this was large and after a\nfew hours of effort was still not working.\n\nChange-Id: Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/078e69d97cc13ce7d13cdfacbb6ae4381d9d78b5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/078e69d97cc13ce7d13cdfacbb6ae4381d9d78b5"}]},"branch":"refs/heads/master"},"1755cf6930cf858e17c1c9d26d2e58c3f6216b43":{"kind":"REWORK","_number":3,"created":"2019-05-24 09:56:59.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/91/660691/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/91/660691/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/91/660691/3"}}},"commit":{"parents":[{"commit":"4d05bb8f0bcf3974105ab30825993fccc6b096d0","subject":"Fixups from removing null provider protections","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/4d05bb8f0bcf3974105ab30825993fccc6b096d0"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-22 11:42:21.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-24 09:51:21.000000000","tz":60},"subject":"Avoid traversing summaries in _check_traits_for_alloc_request","message":"Avoid traversing summaries in _check_traits_for_alloc_request\n\nWhile doing other work, I noticed that _check_traits_for_alloc_request\ntraverses a list of summaries multiple time to find the \"right one\".\nThis is a classic case of a list being the wrong data structure for\nthe job.\n\nInstead use the request resource resource provider\u0027s id to key into\nthe summaries dict directly to get the relevant summary.\n\nThen, since we know the summary has the trait info we need, we don\u0027t\nneed to pass prov_traits to the method.\n\nChange-Id: Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/1755cf6930cf858e17c1c9d26d2e58c3f6216b43"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/1755cf6930cf858e17c1c9d26d2e58c3f6216b43"}]},"branch":"refs/heads/master"},"346509f8fa2f0410aba5db07f75577454502dd28":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2019-05-24 13:50:16.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/91/660691/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/91/660691/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/91/660691/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/91/660691/4"}}},"commit":{"parents":[{"commit":"d878d82b6b39839dd2956770b6207d2d930e9a4f","subject":"Merge \"Canary test for os-traits version\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d878d82b6b39839dd2956770b6207d2d930e9a4f"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-22 11:42:21.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-24 13:50:16.000000000","tz":0},"subject":"Avoid traversing summaries in _check_traits_for_alloc_request","message":"Avoid traversing summaries in _check_traits_for_alloc_request\n\nWhile doing other work, I noticed that _check_traits_for_alloc_request\ntraverses a list of summaries multiple time to find the \"right one\".\nThis is a classic case of a list being the wrong data structure for\nthe job.\n\nInstead use the request resource resource provider\u0027s id to key into\nthe summaries dict directly to get the relevant summary.\n\nThen, since we know the summary has the trait info we need, we don\u0027t\nneed to pass prov_traits to the method.\n\nChange-Id: Ic2f8f7bdc2984db2011cec329fb6f5b9efec5a0f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/346509f8fa2f0410aba5db07f75577454502dd28"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/346509f8fa2f0410aba5db07f75577454502dd28"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
