)]}'
{"id":"openstack%2Fosc-placement~651939","triplet_id":"openstack%2Fosc-placement~master~I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc","project":"openstack/osc-placement","branch":"master","topic":"story/2005411","hashtags":[],"change_id":"I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc","subject":"Use PlacementFixture in functional tests","status":"MERGED","created":"2019-04-11 22:33:54.000000000","updated":"2019-05-06 21:27:52.000000000","submitted":"2019-05-06 21:27:52.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":29,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"651939-1557178072466-d5ff61c5","meta_rev_id":"5ed7bf88ffd080505f6e24f4a57fd336c61e327a","_number":651939,"virtual_id_number":651939,"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":2,"date":"2019-05-06 21:27:52.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":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":2,"date":"2019-05-06 21:17:57.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"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":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2019-05-06 21:17:57.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"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":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-04-18 00:18:41.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2019-05-02 22:51:44.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-05-06 21:17:57.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-06 21:27:52.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":"c2d09a4b7f996bf53eb366d7b61fb63c32b78c47","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-11 22:33:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b4034378d37c07450ff3cc37040fb1f05db4a8b4","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-11 22:34:53.000000000","message":"Patch Set 1:\n\nThis ought to go boom (or at least waste time) on the functional tests. And see the commit message for other fixes that need to happy.","accounts_in_message":[],"_revision_number":1},{"id":"eb594a690d45981f1da8492d80a5c635b5ea3b4c","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-11 23:00:52.000000000","message":"Patch Set 1: 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- openstack-tox-pep8 http://logs.openstack.org/39/651939/1/check/openstack-tox-pep8/ff472b5/ : SUCCESS in 5m 18s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/1/check/openstack-tox-py27/d8392f9/ : SUCCESS in 6m 01s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/1/check/openstack-tox-py35/1ecdb62/ : SUCCESS in 5m 57s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/1/check/openstack-tox-py36/eaab1f2/ : SUCCESS in 4m 56s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/1/check/openstack-tox-py37/8217d86/ : SUCCESS in 6m 02s\n- requirements-check http://logs.openstack.org/39/651939/1/check/requirements-check/bcbec29/ : FAILURE in 4m 56s\n- openstack-tox-docs http://logs.openstack.org/39/651939/1/check/openstack-tox-docs/c4ae851/html/ : SUCCESS in 5m 09s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/1/check/build-openstack-releasenotes/be5fcdc/html/ : SUCCESS in 4m 48s\n- osc-placement-dsvm-functional http://logs.openstack.org/39/651939/1/check/osc-placement-dsvm-functional/4e006f9/ : FAILURE in 18m 30s\n- osc-placement-dsvm-functional-py3 http://logs.openstack.org/39/651939/1/check/osc-placement-dsvm-functional-py3/bf5460a/ : FAILURE in 19m 46s","accounts_in_message":[],"_revision_number":1},{"id":"2b629c26ab94f01c249e1bf4e2137264de8a098c","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-12 11:38:39.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"75d9a9c2025754878ea2d297b50bbba98d4609cb","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-12 11:48:13.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/2/check/openstack-tox-pep8/844b900/ : SUCCESS in 4m 16s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/2/check/openstack-tox-py27/f206454/ : SUCCESS in 5m 36s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/2/check/openstack-tox-py35/92c1af2/ : SUCCESS in 5m 32s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/2/check/openstack-tox-py36/9964057/ : SUCCESS in 4m 00s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/2/check/openstack-tox-py37/2381c21/ : SUCCESS in 4m 32s\n- requirements-check http://logs.openstack.org/39/651939/2/check/requirements-check/df27fd8/ : SUCCESS in 3m 28s\n- openstack-tox-docs http://logs.openstack.org/39/651939/2/check/openstack-tox-docs/bc8277a/html/ : SUCCESS in 3m 50s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/2/check/build-openstack-releasenotes/e5d7af4/html/ : SUCCESS in 4m 18s\n- openstack-tox-functional http://logs.openstack.org/39/651939/2/check/openstack-tox-functional/039fc7c/ : SUCCESS in 4m 40s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/2/check/openstack-tox-functional-py36/7a775fc/ : SUCCESS in 4m 38s","accounts_in_message":[],"_revision_number":2},{"id":"24ca1965ad9c423e8e2a245efa4abf0edc153c1b","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-04-12 16:15:20.000000000","message":"Patch Set 2: Code-Review+1\n\nSuper cool, Chris.\n\nThe fact that it works is worth a +1. I\u0027ll take a closer look later on, though I\u0027m not sure I\u0027ll be confident enough to approve given my limited background in several aspects of this change.","accounts_in_message":[],"_revision_number":2},{"id":"7db25eef62037b921f3fa3e7e3145069262fd385","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-12 16:25:12.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"c9339041f959cef7b139d8ff36544740df467673","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-04-17 16:57:16.000000000","message":"Patch Set 2:\n\n(11 comments)\n\nSeveral follow-up type comments within but overall I\u0027m happy with this. The one nagging thing is the placement.db.api warning in the output - do we know what\u0027s causing that and can we safely squash it somehow?","accounts_in_message":[],"_revision_number":2},{"id":"191718b1cf4445b81a5e8a7c81c452a3f79af8e7","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-17 17:19:48.000000000","message":"Patch Set 2:\n\n(9 comments)\n\nThanks for the comments, good grist for the mill. I\u0027ll make a new version before I disappear for a week.","accounts_in_message":[],"_revision_number":2},{"id":"a08eae0d0a8658b4331caf82f2c3cd57a3f24cb8","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-17 17:50:34.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"e5d32fc8ae950faa32d561688011d0d54be531a0","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-17 17:51:04.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"92f547cd183e9303a191b526a2f24ac605f16ab6","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-04-17 18:14:15.000000000","message":"Patch Set 3: Code-Review+2\n\n(1 comment)\n\nlgtm","accounts_in_message":[],"_revision_number":3},{"id":"91a7d542947cad1d5faca92ea2b9661b9fa0cb6d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-17 18:17:39.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/3/check/openstack-tox-pep8/a42aa72/ : SUCCESS in 5m 04s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/3/check/openstack-tox-py27/94066e9/ : SUCCESS in 7m 27s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/3/check/openstack-tox-py35/2cf1ba5/ : SUCCESS in 5m 08s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/3/check/openstack-tox-py36/ed18ea8/ : SUCCESS in 4m 26s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/3/check/openstack-tox-py37/aab4385/ : SUCCESS in 5m 12s\n- requirements-check http://logs.openstack.org/39/651939/3/check/requirements-check/657dfad/ : SUCCESS in 4m 10s\n- openstack-tox-docs http://logs.openstack.org/39/651939/3/check/openstack-tox-docs/c16aacd/html/ : SUCCESS in 4m 50s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/3/check/build-openstack-releasenotes/10191da/html/ : SUCCESS in 4m 13s\n- openstack-tox-functional http://logs.openstack.org/39/651939/3/check/openstack-tox-functional/f18f991/ : SUCCESS in 5m 15s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/3/check/openstack-tox-functional-py36/19b4d5f/ : SUCCESS in 5m 21s","accounts_in_message":[],"_revision_number":3},{"id":"959da5455f6c258189edc96efa70477e44cfbd53","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-17 18:18:00.000000000","message":"Patch Set 4: Published edit on patch set 3.","accounts_in_message":[],"_revision_number":4},{"id":"432897a483417004195cd035ec37a85e6517985a","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-17 18:41:59.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/4/check/openstack-tox-pep8/322861c/ : SUCCESS in 7m 34s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/4/check/openstack-tox-py27/2d4a837/ : SUCCESS in 7m 20s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/4/check/openstack-tox-py35/4fb54dc/ : SUCCESS in 7m 13s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/4/check/openstack-tox-py36/c9ccbe9/ : SUCCESS in 6m 49s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/4/check/openstack-tox-py37/a0f6e0d/ : SUCCESS in 6m 50s\n- requirements-check http://logs.openstack.org/39/651939/4/check/requirements-check/943ffdb/ : SUCCESS in 5m 34s\n- openstack-tox-docs http://logs.openstack.org/39/651939/4/check/openstack-tox-docs/dade4c2/html/ : SUCCESS in 4m 37s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/4/check/build-openstack-releasenotes/5d170d4/html/ : SUCCESS in 3m 28s\n- openstack-tox-functional http://logs.openstack.org/39/651939/4/check/openstack-tox-functional/c41c9ea/ : SUCCESS in 6m 48s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/4/check/openstack-tox-functional-py36/66688e2/ : SUCCESS in 5m 25s","accounts_in_message":[],"_revision_number":4},{"id":"330e2ecb30181ea6d2352cd2dc6addb8e19af74d","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-28 20:05:36.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"f640467926aae8c06cc8e7595e00a034e25c56c6","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-28 20:15:48.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/5/check/openstack-tox-pep8/a43ff6d/ : SUCCESS in 3m 58s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/5/check/openstack-tox-py27/035082d/ : SUCCESS in 6m 05s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/5/check/openstack-tox-py35/65ea0db/ : SUCCESS in 4m 27s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/5/check/openstack-tox-py36/8af7574/ : SUCCESS in 4m 56s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/5/check/openstack-tox-py37/940ed95/ : SUCCESS in 6m 20s\n- requirements-check http://logs.openstack.org/39/651939/5/check/requirements-check/405d421/ : SUCCESS in 4m 10s\n- openstack-tox-docs http://logs.openstack.org/39/651939/5/check/openstack-tox-docs/d5befc7/html/ : SUCCESS in 5m 40s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/5/check/build-openstack-releasenotes/e64e60b/html/ : SUCCESS in 3m 44s\n- openstack-tox-functional http://logs.openstack.org/39/651939/5/check/openstack-tox-functional/c99227d/ : SUCCESS in 5m 39s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/5/check/openstack-tox-functional-py36/c3fefc3/ : SUCCESS in 4m 24s","accounts_in_message":[],"_revision_number":5},{"id":"acb7e1f76b68730f8a7e97105a605c89ed41f131","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-29 17:39:36.000000000","message":"Patch Set 5: Workflow-1\n\n(1 comment)\n\nThere are intermittent issues with subunit.parser failing because attachment sizes are too big, working on it.","accounts_in_message":[],"_revision_number":5},{"id":"a66e95851d57720d7e0cd20fbc1e76f8958f81ac","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-04-29 19:00:02.000000000","message":"Patch Set 5:\n\n\u003e There are intermittent issues with subunit.parser failing because attachment sizes are too big, working on it.\n\nMaybe it\u0027s those warning logs I pointed out earlier? But there aren\u0027t that many tests in this repo so I\u0027m surprised we\u0027d be pushing over the subunit output limit.","accounts_in_message":[],"_revision_number":5},{"id":"569aac936e7172bee12ad629a6f380d9c83484aa","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-29 19:53:08.000000000","message":"Patch Set 5:\n\n\u003e Maybe it\u0027s those warning logs I pointed out earlier? But there\n \u003e aren\u0027t that many tests in this repo so I\u0027m surprised we\u0027d be\n \u003e pushing over the subunit output limit.\n\nIt\u0027s not that. The error happens when one individual attachment is larger that subunit is willing to deal with. In this case it is happening because something is causing the openstack shell to go into debug mode for everything, which creates a huge blast of log output, which is then  captured. Under some circumstances that log is bigger than subunit can deal with.\n\nSo \"logging less\" is what I\u0027m trying to do but, strangely, I can\u0027t figure out which piece of the pie is turning debug on. Various attempts to raise the log level, adjust conf, etc, have thus far failed, in part because it hard to concentrate at these things.","accounts_in_message":[],"_revision_number":5},{"id":"5a8daa5678375213401784995b1eae136dafeef9","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-04-29 23:06:49.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"a648ae9112f0d3519cdf9e5add1950916993e7d8","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-04-29 23:16:11.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/6/check/openstack-tox-pep8/909d317/ : SUCCESS in 4m 13s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/6/check/openstack-tox-py27/d307fa7/ : SUCCESS in 6m 29s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/6/check/openstack-tox-py35/76778a7/ : SUCCESS in 6m 40s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/6/check/openstack-tox-py36/420ce54/ : SUCCESS in 4m 02s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/6/check/openstack-tox-py37/618a270/ : SUCCESS in 4m 41s\n- requirements-check http://logs.openstack.org/39/651939/6/check/requirements-check/4bb4ea8/ : SUCCESS in 2m 53s\n- openstack-tox-docs http://logs.openstack.org/39/651939/6/check/openstack-tox-docs/c3e5706/html/ : SUCCESS in 4m 04s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/6/check/build-openstack-releasenotes/f20af20/html/ : SUCCESS in 6m 00s\n- openstack-tox-functional http://logs.openstack.org/39/651939/6/check/openstack-tox-functional/d240201/ : SUCCESS in 4m 37s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/6/check/openstack-tox-functional-py36/4820b19/ : SUCCESS in 8m 08s","accounts_in_message":[],"_revision_number":6},{"id":"ca8b74f9b95de39f09b9e533656e53ed2a37a083","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-05-02 22:51:44.000000000","message":"Patch Set 6: Code-Review+2\n\n(3 comments)","accounts_in_message":[],"_revision_number":6},{"id":"3d120ac2cdf74cf45534a764b5a80518ee358dd7","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-05-03 21:05:22.000000000","message":"Uploaded patch set 7: Commit message was updated.","accounts_in_message":[],"_revision_number":7},{"id":"f097e22df625911494a2d8bb4af33d86da42df97","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-03 21:26:38.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/7/check/openstack-tox-pep8/de6dd6d/ : SUCCESS in 4m 12s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/7/check/openstack-tox-py27/bd312e1/ : SUCCESS in 4m 43s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/7/check/openstack-tox-py35/9114d8c/ : SUCCESS in 6m 53s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/7/check/openstack-tox-py36/31bd7c6/ : SUCCESS in 8m 05s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/7/check/openstack-tox-py37/9ac7e72/ : SUCCESS in 6m 03s\n- requirements-check http://logs.openstack.org/39/651939/7/check/requirements-check/c96004b/ : SUCCESS in 3m 30s\n- openstack-tox-docs http://logs.openstack.org/39/651939/7/check/openstack-tox-docs/91341b9/html/ : SUCCESS in 7m 16s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/7/check/build-openstack-releasenotes/52cdb46/html/ : SUCCESS in 4m 04s\n- openstack-tox-functional http://logs.openstack.org/39/651939/7/check/openstack-tox-functional/e26375d/ : SUCCESS in 4m 59s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/7/check/openstack-tox-functional-py36/3477daf/ : SUCCESS in 4m 59s","accounts_in_message":[],"_revision_number":7},{"id":"009e85a00e2510761aa590e3f0ed284448a9343d","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-05-06 21:17:57.000000000","message":"Patch Set 7: Code-Review+2 Workflow+1\n\nMatt was +2 before commit message typo fixes. Let\u0027s do this.","accounts_in_message":[],"_revision_number":7},{"id":"ae849bc32ff1f7791aaf5b1b7038b9086be9e88b","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-06 21:18:12.000000000","message":"Patch Set 7: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":7},{"id":"a051cd24fd5deed98cf3136228025ae49ad1db85","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-06 21:27:52.000000000","message":"Patch Set 7: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-pep8 http://logs.openstack.org/39/651939/7/gate/openstack-tox-pep8/6907935/ : SUCCESS in 5m 06s\n- openstack-tox-py27 http://logs.openstack.org/39/651939/7/gate/openstack-tox-py27/a75f09e/ : SUCCESS in 4m 10s\n- openstack-tox-py35 http://logs.openstack.org/39/651939/7/gate/openstack-tox-py35/810f553/ : SUCCESS in 4m 07s\n- openstack-tox-py36 http://logs.openstack.org/39/651939/7/gate/openstack-tox-py36/8f96c8d/ : SUCCESS in 4m 50s\n- openstack-tox-py37 http://logs.openstack.org/39/651939/7/gate/openstack-tox-py37/9092ac3/ : SUCCESS in 4m 09s\n- requirements-check http://logs.openstack.org/39/651939/7/gate/requirements-check/bb82f82/ : SUCCESS in 4m 42s\n- openstack-tox-docs http://logs.openstack.org/39/651939/7/gate/openstack-tox-docs/7ec1648/html/ : SUCCESS in 3m 42s\n- build-openstack-releasenotes http://logs.openstack.org/39/651939/7/gate/build-openstack-releasenotes/c4ceb34/html/ : SUCCESS in 3m 17s\n- openstack-tox-functional http://logs.openstack.org/39/651939/7/gate/openstack-tox-functional/a165419/ : SUCCESS in 6m 02s\n- openstack-tox-functional-py36 http://logs.openstack.org/39/651939/7/gate/openstack-tox-functional-py36/4d54e47/ : SUCCESS in 4m 31s","accounts_in_message":[],"_revision_number":7},{"id":"49612ee9fb1c801189eaa42b6fb8bbcdf89c8f95","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-06 21:27:52.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"da8cd4d68b06399c607776db2a704b4578146996","revisions":{"e3f79f7c3a08add093c371a476af1648e2dd9cc2":{"kind":"REWORK","_number":1,"created":"2019-04-11 22:33:54.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/1"}}},"commit":{"parents":[{"commit":"ffc2ee4c09089baa65702abb6926a62f2cdf9996","subject":"Merge \"Only enable keystone and placement for functional test runs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/ffc2ee4c09089baa65702abb6926a62f2cdf9996"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"subject":"WIP: Use PlacementFixture in functional tests","message":"WIP: Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThis is not yet ready as there were many rabbit holes to\ntraverse before this even began to work.\n\nThere are three primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\nThings that need to be cleaned up:\n\n* The zuul jobs for functional tests are still using devstack, that\n  can be turned off.\n\n* When new functional test jobs are created, placement needs to\n  listed as a required project to get tox-siblings working.\n\n* The new base._CommandException is used in several modules, so\n  should be public.\n\n* I\u0027ve seen evidence of sys.stdout and sys.stderr sometimes getting\n  a bit confused, especially with the log capture going on, sometimes\n  causing tests to go into an \u0027in progress\u0027 mode, eventually failing.\n\n  I\u0027ve only seen it a couple times and it may be the result of something\n  else I was doing, so I\u0027m going to leave it for now.\n\nI\u0027m committing now because I\u0027d like to go to bed and not lose this if\nthe sky falls.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/e3f79f7c3a08add093c371a476af1648e2dd9cc2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/e3f79f7c3a08add093c371a476af1648e2dd9cc2"}]},"branch":"refs/heads/master"},"bb5e206aa9059594999f10a6846e3c1a965e46c5":{"kind":"REWORK","_number":2,"created":"2019-04-12 11:38:39.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/2"}}},"commit":{"parents":[{"commit":"ffc2ee4c09089baa65702abb6926a62f2cdf9996","subject":"Merge \"Only enable keystone and placement for functional test runs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/ffc2ee4c09089baa65702abb6926a62f2cdf9996"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-12 11:38:37.000000000","tz":60},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/bb5e206aa9059594999f10a6846e3c1a965e46c5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/bb5e206aa9059594999f10a6846e3c1a965e46c5"}]},"branch":"refs/heads/master"},"be67b30adcfbcdb7d12312dfe3961edd8ebd9ab3":{"kind":"REWORK","_number":3,"created":"2019-04-17 17:50:34.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/3"}}},"commit":{"parents":[{"commit":"ffc2ee4c09089baa65702abb6926a62f2cdf9996","subject":"Merge \"Only enable keystone and placement for functional test runs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/ffc2ee4c09089baa65702abb6926a62f2cdf9996"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-17 17:48:32.000000000","tz":60},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests. The 3.5 functional job is removed because we no longer target\n  that.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/be67b30adcfbcdb7d12312dfe3961edd8ebd9ab3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/be67b30adcfbcdb7d12312dfe3961edd8ebd9ab3"}]},"branch":"refs/heads/master"},"a67f4ffd3feb2527b9fe1b4ddc845fd7f87438a8":{"kind":"REWORK","_number":4,"created":"2019-04-17 18:18:00.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/4"}}},"commit":{"parents":[{"commit":"ffc2ee4c09089baa65702abb6926a62f2cdf9996","subject":"Merge \"Only enable keystone and placement for functional test runs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/ffc2ee4c09089baa65702abb6926a62f2cdf9996"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-17 18:17:48.000000000","tz":0},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests. The 3.5 functional job is removed because we no longer target\n  that.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/a67f4ffd3feb2527b9fe1b4ddc845fd7f87438a8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/a67f4ffd3feb2527b9fe1b4ddc845fd7f87438a8"}]},"branch":"refs/heads/master"},"6072e047402c2e54d999d7cb7daa7e52194c723b":{"kind":"REWORK","_number":5,"created":"2019-04-28 20:05:36.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/5"}}},"commit":{"parents":[{"commit":"f79dbf7277c323adc0f04b21ba8f290b22841018","subject":"OpenDev Migration Patch","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/f79dbf7277c323adc0f04b21ba8f290b22841018"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-28 20:04:57.000000000","tz":-360},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests. The 3.5 functional job is removed because we no longer target\n  that.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/6072e047402c2e54d999d7cb7daa7e52194c723b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/6072e047402c2e54d999d7cb7daa7e52194c723b"}]},"branch":"refs/heads/master"},"778d1df6c49cd0b472bc7db58f0004856db60e32":{"kind":"REWORK","_number":6,"created":"2019-04-29 23:06:49.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/6"}}},"commit":{"parents":[{"commit":"f79dbf7277c323adc0f04b21ba8f290b22841018","subject":"OpenDev Migration Patch","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/f79dbf7277c323adc0f04b21ba8f290b22841018"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-29 23:03:15.000000000","tz":-360},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests. The 3.5 functional job is removed because we no longer target\n  that.\n\nAfter running these for a while it became clear that there were\nintermittent failures being caused by subunit attachments being too\nlarger. This was eventually traced back to logging from all packages\nbeing set to DEBUG even when something else was requested. That was\ntraced back to a poor interaction between the way that osc does\nlogging and the way oslo_logging does logging (used by placement and\nthus the placement fixture). The workaround, embodied in the\nRESET_LOGGING list in in osc_placement/tests/functional/base.py, is\nto get and reset the log level for a subset of the packages that are\nused.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/778d1df6c49cd0b472bc7db58f0004856db60e32"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/778d1df6c49cd0b472bc7db58f0004856db60e32"}]},"branch":"refs/heads/master"},"da8cd4d68b06399c607776db2a704b4578146996":{"kind":"NO_CODE_CHANGE","_number":7,"created":"2019-05-03 21:05:22.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/39/651939/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/39/651939/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/39/651939/7"}}},"commit":{"parents":[{"commit":"f79dbf7277c323adc0f04b21ba8f290b22841018","subject":"OpenDev Migration Patch","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/f79dbf7277c323adc0f04b21ba8f290b22841018"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-04-11 22:17:17.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-05-03 21:04:56.000000000","tz":-360},"subject":"Use PlacementFixture in functional tests","message":"Use PlacementFixture in functional tests\n\nChange the functional tests to use the PlacementFixture instead\nof devstack as the source of a placement API. This speeds up\nthe tests considerably and lowers the number of dependencies.\n\nThere are four primary changes:\n\n* For each test a PlacementFixture is instantiated, using the\n  usual in-RAM db and in-process placement.\n\n* Because of some exceedingly confusing optimizations in\n  osc_lib and python-openstackclient, done to improve start\n  up time, a session to placement was caching the service\n  url. This meant that after a first test succeeded, every\n  subsequent one would not because it was trying to talk\n  to a fake hostname that was no longer being intercepted.\n\n  The workaround for this was to monkeypatch the method\n  in the ClientCache class which provides access to a client (per\n  service-type). The replacement method makes a new client\n  every time.\n\n* The previous tests would subprocess out to a real call of\n  the openstack command and then interpret the results.\n\n  Now, a run() method on OpenStackShell is called instead.\n  This accepts arguments in the same way, but we need to\n  a) capture stderr and stdout, b) make a try/except for\n  SystemExit to get some error responses (mostly from\n  the argparse lib which has a tendency to exit for you\n  instead of politely telling you it wants to), c) deal\n  with errors from commands ourself rather than using\n  exceptions from the subprocess module.\n\n  Switching to this form means that logging becomes in-process\n  and more visible. To accomodate this the Capture fixture\n  from placement is used. This was chosen because we are already\n  pulling in the PlacementFixture. If this seems icky, I can fix\n  it with a local one. This was the shorter path.\n\n* The legacy dsvm jobs have been removed in favor of \"standard\"\n  functional jobs for 2.7 and 3.6 that require openstack/placement.\n  The playbooks associated with the legacy jobs are removed.\n\n  tox.ini is adjusted to reflect this new setup. Because tox-siblings\n  functional is being used, we don\u0027t want to share tox envs with the unit\n  tests. The 3.5 functional job is removed because we no longer target\n  that.\n\nAfter running these for a while it became clear that there were\nintermittent failures being caused by subunit attachments being too\nlarge. This was eventually traced back to logging from all packages\nbeing set to DEBUG even when something else was requested. That was\ntraced back to a poor interaction between the way that osc does\nlogging and the way oslo_logging does logging (used by placement and\nthus the placement fixture). The workaround, embodied in the\nRESET_LOGGING list in osc_placement/tests/functional/base.py, is to\nget and reset the log level for a subset of the packages that are\nused.\n\nChange-Id: I7deda200b372ff6a7ba67b0c4fa0e53c4fa16ffc\nStory: 2005411\nTask: 30428\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/da8cd4d68b06399c607776db2a704b4578146996"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/da8cd4d68b06399c607776db2a704b4578146996"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
