)]}'
{"id":"openstack%2Fwatcher~671395","triplet_id":"openstack%2Fwatcher~master~I50fcc5f812be42038852662639fb10c6dd2f6f72","project":"openstack/watcher","branch":"master","topic":"optimize_opts","hashtags":[],"change_id":"I50fcc5f812be42038852662639fb10c6dd2f6f72","subject":"Optimize method list_opts() in watcher/conf/opts.py","status":"MERGED","created":"2019-07-18 05:16:39.000000000","updated":"2019-07-26 10:12:38.000000000","submitted":"2019-07-26 10:12:38.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":"671395-1564135958823-cd2898e8","meta_rev_id":"d21cd3bd8ed1f5a9ba1b2033d9c57df66d130781","_number":671395,"virtual_id_number":671395,"owner":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},{"value":0,"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},{"value":2,"date":"2019-07-26 10:12:38.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"all":[{"value":0,"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},{"value":2,"date":"2019-07-25 03:17:09.000000000","_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},{"value":0,"_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":{"approved":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"all":[{"value":0,"date":"2019-07-18 05:26:19.000000000","_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},{"value":0,"date":"2019-07-18 05:26:27.000000000","_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"date":"2019-07-18 05:26:31.000000000","_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},{"value":1,"date":"2019-07-26 09:29:29.000000000","_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},{"value":0,"_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,"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},{"value":0,"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-07-18 05:26:19.000000000","updated_by":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"reviewer":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"state":"REVIEWER"},{"updated":"2019-07-18 05:26:27.000000000","updated_by":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"reviewer":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"state":"REVIEWER"},{"updated":"2019-07-18 05:26:31.000000000","updated_by":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"reviewer":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"state":"REVIEWER"},{"updated":"2019-07-26 09:29:29.000000000","updated_by":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"reviewer":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"state":"REVIEWER"},{"updated":"2019-07-26 10:12:38.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":"7da2f31057ba038d89afef1130ce9e67dd9558aa","author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"date":"2019-07-18 05:16:39.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"adf8869dd03f7991bf94ae579fbf69bae943699a","author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"date":"2019-07-18 05:18:15.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"3b1f9ef3d9d09c032535d40bbae1077754019e67","author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"date":"2019-07-18 05:20:47.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"52360387393b6beb73ca842cedfe60312c93e89a","author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"date":"2019-07-18 05:24:04.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"3d4784f11af3458d32cfd959b0c98676f1b6a4fd","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-18 06:29:12.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover http://logs.openstack.org/95/671395/4/check/openstack-tox-cover/0f7d4b7/cover/ : SUCCESS in 4m 38s\n- openstack-tox-lower-constraints http://logs.openstack.org/95/671395/4/check/openstack-tox-lower-constraints/6a6e3c5/ : SUCCESS in 4m 18s\n- openstack-tox-pep8 http://logs.openstack.org/95/671395/4/check/openstack-tox-pep8/5b3d58f/ : SUCCESS in 4m 44s\n- openstack-tox-py27 http://logs.openstack.org/95/671395/4/check/openstack-tox-py27/a2b652f/ : SUCCESS in 5m 36s\n- openstack-tox-py36 http://logs.openstack.org/95/671395/4/check/openstack-tox-py36/4e14360/ : SUCCESS in 6m 41s\n- openstack-tox-py37 http://logs.openstack.org/95/671395/4/check/openstack-tox-py37/cdba319/ : SUCCESS in 5m 36s\n- openstack-tox-docs http://logs.openstack.org/95/671395/4/check/openstack-tox-docs/e009b42/html/ : SUCCESS in 4m 21s\n- watcher-tempest-functional http://logs.openstack.org/95/671395/4/check/watcher-tempest-functional/7b12dc8/ : SUCCESS in 40m 29s\n- watcher-grenade http://logs.openstack.org/95/671395/4/check/watcher-grenade/9b3edc2/ : SUCCESS in 55m 49s\n- watcher-tempest-dummy_optim http://logs.openstack.org/95/671395/4/check/watcher-tempest-dummy_optim/eebb3f4/ : SUCCESS in 53m 18s\n- watcher-tempest-actuator http://logs.openstack.org/95/671395/4/check/watcher-tempest-actuator/00a8bd0/ : SUCCESS in 55m 00s\n- watcher-tempest-basic_optim http://logs.openstack.org/95/671395/4/check/watcher-tempest-basic_optim/4eb9e21/ : SUCCESS in 50m 38s\n- watcher-tempest-vm_workload_consolidation http://logs.openstack.org/95/671395/4/check/watcher-tempest-vm_workload_consolidation/fb8a976/ : SUCCESS in 55m 54s\n- watcher-tempest-workload_balancing http://logs.openstack.org/95/671395/4/check/watcher-tempest-workload_balancing/d23731c/ : SUCCESS in 1h 00m 13s\n- watcherclient-tempest-functional http://logs.openstack.org/95/671395/4/check/watcherclient-tempest-functional/20d9508/ : SUCCESS in 37m 52s\n- watcher-tempest-zone_migration http://logs.openstack.org/95/671395/4/check/watcher-tempest-zone_migration/8565005/ : SUCCESS in 56m 24s\n- watcher-tempest-host_maintenance http://logs.openstack.org/95/671395/4/check/watcher-tempest-host_maintenance/17b81a2/ : SUCCESS in 57m 08s\n- watcher-tempest-storage_balance http://logs.openstack.org/95/671395/4/check/watcher-tempest-storage_balance/fd4f0a2/ : SUCCESS in 57m 49s\n- watcher-tls-test http://logs.openstack.org/95/671395/4/check/watcher-tls-test/f9ca261/ : SUCCESS in 56m 41s","accounts_in_message":[],"_revision_number":4},{"id":"0556ee4b44f7d16f8a245d1aefd21111353e7648","author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"date":"2019-07-25 03:17:09.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"2df7b7b7adccfcdfbd06679ffd9a7f3eb2fba0c7","author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"date":"2019-07-26 09:29:29.000000000","message":"Patch Set 4: Workflow+1","accounts_in_message":[],"_revision_number":4},{"id":"1522c56040be17bb98ff44881f1bd81011d01a34","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-26 09:29:41.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"d6a94eaacddcf5448eee8e8f6409a82c18e47077","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-26 10:12:38.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints http://logs.openstack.org/95/671395/4/gate/openstack-tox-lower-constraints/1bca7dd/ : SUCCESS in 6m 32s\n- openstack-tox-pep8 http://logs.openstack.org/95/671395/4/gate/openstack-tox-pep8/066f003/ : SUCCESS in 4m 57s\n- openstack-tox-py27 http://logs.openstack.org/95/671395/4/gate/openstack-tox-py27/f6643db/ : SUCCESS in 5m 29s\n- openstack-tox-py36 http://logs.openstack.org/95/671395/4/gate/openstack-tox-py36/5e15905/ : SUCCESS in 6m 49s\n- openstack-tox-py37 http://logs.openstack.org/95/671395/4/gate/openstack-tox-py37/fa2e6f3/ : SUCCESS in 4m 41s\n- openstack-tox-docs http://logs.openstack.org/95/671395/4/gate/openstack-tox-docs/7bccd4d/html/ : SUCCESS in 4m 42s\n- watcher-tempest-functional http://logs.openstack.org/95/671395/4/gate/watcher-tempest-functional/22892a5/ : SUCCESS in 37m 01s","accounts_in_message":[],"_revision_number":4},{"id":"1f205ec13fd2b8d6fccefc025859e1076f101d80","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-26 10:12:38.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"458ad0869337f256d0f0f68955fdc76dcfd236ed","revisions":{"bdf42e4b31f77df84a6b86b46fd7faafb9be8916":{"kind":"REWORK","_number":1,"created":"2019-07-18 05:16:39.000000000","uploader":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"ref":"refs/changes/95/671395/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/95/671395/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/95/671395/1"}}},"commit":{"parents":[{"commit":"375ae32fadb8a165f112874ccb8645b637c1ae0a","subject":"Merge \"Fix watcher/conf/applier.py default worker value\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/375ae32fadb8a165f112874ccb8645b637c1ae0a"}]}],"author":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 03:14:19.000000000","tz":480},"committer":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 05:15:18.000000000","tz":480},"subject":"Optimize method list_opts() in watcher/conf/opts.py","message":"Optimize method list_opts() in watcher/conf/opts.py\n\nActually list_opts() return a list like[1], So we don\u0027t need to\nconvert list to dict and then convert to list[2].\n\nThe reason why we need to convert it before is to put together\nthe same group of configuration objects, but we don\u0027t need it\nactually.\n\nNow, the list_opts()\u0027s result like this[3].\n\nReference:\n[1]. [(Group1,[cfgObj1,cfgObj2....]),(Group2,[cfgObj3,cfgObj3....])..]\n[2]. https://github.com/openstack/watcher/blob/375ae32fadb8a165f112874ccb8645b637c1ae0a/watcher/conf/opts.py#L51-L52\n[3]. [(Group1,[cfgObj1]),(Group1,[cfgObj2])..]\n\nChange-Id: I50fcc5f812be42038852662639fb10c6dd2f6f72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bdf42e4b31f77df84a6b86b46fd7faafb9be8916"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bdf42e4b31f77df84a6b86b46fd7faafb9be8916"}]},"branch":"refs/heads/master"},"53aba550f59ab75a939cf9c04797f6b1c70866ee":{"kind":"REWORK","_number":2,"created":"2019-07-18 05:18:15.000000000","uploader":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"ref":"refs/changes/95/671395/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/95/671395/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/95/671395/2"}}},"commit":{"parents":[{"commit":"375ae32fadb8a165f112874ccb8645b637c1ae0a","subject":"Merge \"Fix watcher/conf/applier.py default worker value\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/375ae32fadb8a165f112874ccb8645b637c1ae0a"}]}],"author":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 03:14:19.000000000","tz":480},"committer":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 05:17:46.000000000","tz":480},"subject":"Optimize method list_opts() in watcher/conf/opts.py","message":"Optimize method list_opts() in watcher/conf/opts.py\n\nActually list_opts() return a list like[1], So we don\u0027t need to\nconvert list to dict and then convert to list[2].\n\nThe reason why we need to convert it before is to put together\nthe same group of configuration objects, but we don\u0027t need it\nactually.\n\nNow, the list_opts()\u0027s result like this[3].\n\nReference:\n[1]. [(Group1,[cfgObj1,cfgObj2....]),(Group2,[cfgObj3,cfgObj3....])..]\n[2]. https://github.com/openstack/watcher/blob/375ae32fadb8a165f112874ccb8645b637c1ae0a/watcher/conf/opts.py#L51-L52\n[3]. [(Group1,[cfgObj1]),(Group1,[cfgObj2])..]\n\nChange-Id: I50fcc5f812be42038852662639fb10c6dd2f6f72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/53aba550f59ab75a939cf9c04797f6b1c70866ee"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/53aba550f59ab75a939cf9c04797f6b1c70866ee"}]},"branch":"refs/heads/master"},"78f9f46d075c8c2b8e93ee6cbbb8151a05cc2d07":{"kind":"REWORK","_number":3,"created":"2019-07-18 05:20:47.000000000","uploader":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"ref":"refs/changes/95/671395/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/95/671395/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/95/671395/3"}}},"commit":{"parents":[{"commit":"375ae32fadb8a165f112874ccb8645b637c1ae0a","subject":"Merge \"Fix watcher/conf/applier.py default worker value\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/375ae32fadb8a165f112874ccb8645b637c1ae0a"}]}],"author":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 03:14:19.000000000","tz":480},"committer":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 05:20:19.000000000","tz":480},"subject":"Optimize method list_opts() in watcher/conf/opts.py","message":"Optimize method list_opts() in watcher/conf/opts.py\n\nActually list_opts() return a list like[1], So we don\u0027t need to\nconvert list to dict and then convert to list[2].\n\nThe reason why we need to convert it before is to put together\nthe same group of configuration objects, but we don\u0027t need it\nactually.\n\nNow, the list_opts()\u0027s result like this[3].\n\nReference:\n[1]. [(Group1,[cfgObj1,cfgObj2....]),(Group2,[cfgObj3,cfgObj3....])..]\n[2]. https://github.com/openstack/watcher/blob/375ae32fadb8a165f112874ccb8645b637c1ae0a/watcher/conf/opts.py#L51-L52\n[3]. [(Group1,[cfgObj1]),(Group1,[cfgObj2])..]\n\nChange-Id: I50fcc5f812be42038852662639fb10c6dd2f6f72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/78f9f46d075c8c2b8e93ee6cbbb8151a05cc2d07"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/78f9f46d075c8c2b8e93ee6cbbb8151a05cc2d07"}]},"branch":"refs/heads/master"},"458ad0869337f256d0f0f68955fdc76dcfd236ed":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2019-07-18 05:24:04.000000000","uploader":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"ref":"refs/changes/95/671395/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/95/671395/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/95/671395/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/95/671395/4"}}},"commit":{"parents":[{"commit":"375ae32fadb8a165f112874ccb8645b637c1ae0a","subject":"Merge \"Fix watcher/conf/applier.py default worker value\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/375ae32fadb8a165f112874ccb8645b637c1ae0a"}]}],"author":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 03:14:19.000000000","tz":480},"committer":{"name":"chenke","email":"chen.ke14@zte.com.cn","date":"2019-07-18 05:23:04.000000000","tz":480},"subject":"Optimize method list_opts() in watcher/conf/opts.py","message":"Optimize method list_opts() in watcher/conf/opts.py\n\nActually list_opts() return a list like[1], So we don\u0027t need to\nconvert list to dict and then convert to list[2].\n\nThe reason why we need to convert it before is to put together\nthe same group of configuration objects, but we don\u0027t need it\nactually.\n\nNow, the list_opts()\u0027s result like this[3].\n\nReference:\n[1]. [(Group1,[cfgObj1,cfgObj2....]),(Group2,[cfgObj3,cfgObj3....])..]\n[2]. https://github.com/openstack/watcher/blob/375ae32fadb8a165f112874ccb8645b637c1ae0a/watcher/conf/opts.py#L51-L52\n[3]. [(Group1,[cfgObj1]),(Group1,[cfgObj2]),(Group2,[cfgObj3,cfgObj3....])..]\n\nChange-Id: I50fcc5f812be42038852662639fb10c6dd2f6f72\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/458ad0869337f256d0f0f68955fdc76dcfd236ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/458ad0869337f256d0f0f68955fdc76dcfd236ed"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
