)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"f464c4c7ef01705d49b62c421d612e9dd824842c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        - openstack-tox-functional-py35"},{"line_number":21,"context_line":"        - openstack-tox-functional-py36"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- job:"},{"line_number":24,"context_line":"    name: placement-tempest-gabbi"},{"line_number":25,"context_line":"    parent: legacy-dsvm-base"},{"line_number":26,"context_line":"    description: |"},{"line_number":27,"context_line":"        Test placement integration with gabbi."},{"line_number":28,"context_line":"    required_projects:"},{"line_number":29,"context_line":"        - openstack/placement "},{"line_number":30,"context_line":"    run: playbooks/placement-tempest-gabbi/run.yaml"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3f79a3b5_f8fb4d12","line":31,"range":{"start_line":23,"start_character":2,"end_line":31,"end_character":0},"updated":"2018-09-11 15:15:10.000000000","message":"extra keys not allowed @ data[\u0027required_projects\u0027]","commit_id":"059feeca0136e441e7fb106b9e1106457367d768"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2ecadc3f1c0ceca41c194906abc16b18009f26a4","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"- job:"},{"line_number":26,"context_line":"    name: placement-tempest-gabbi"},{"line_number":27,"context_line":"    parent: legacy-dsvm-base"},{"line_number":28,"context_line":"    timeout: 10800"},{"line_number":29,"context_line":"    description: |"},{"line_number":30,"context_line":"        Test placement integration with gabbi."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"3f79a3b5_40bbc6c2","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":28},"updated":"2018-09-19 21:04:37.000000000","message":"making new legacy jobs is unhappy making. You want:\n\n  parent: devstack-tempest","commit_id":"0d6529ee2d938bfb9482d1e0084623c07ec5d638"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9409b6bfe64f99416862d0baaba1533e71e744ae","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        - openstack/nova"},{"line_number":35,"context_line":"        - openstack/placement"},{"line_number":36,"context_line":"    vars:"},{"line_number":37,"context_line":"      tempest_test_regex: \u0027gabbi\u0027"},{"line_number":38,"context_line":"      devstack_localrc:"},{"line_number":39,"context_line":"        # gabbi-tempest is currently unofficial so pull it in as a hack"},{"line_number":40,"context_line":"        TEMPEST_PLUGINS: \u0027git+git://github.com/cdent/gabbi-tempest.git#egg\u003dgabbi-tempest\u0027"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"3f79a3b5_a1b17203","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":33},"updated":"2018-09-20 02:11:23.000000000","message":"you need to mention the tox_envlist as all-plugins to make tempest_test_regex work. \n\nBy default tox_envlist value is \u0027smoke\u0027 which would not be able to find the plugins tests.","commit_id":"2b174edfde3eb9f31d74099d57d7efabaeb49454"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2341d588e165f39019ce87f2c6b71637697f572f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        - openstack/nova"},{"line_number":35,"context_line":"        - openstack/placement"},{"line_number":36,"context_line":"    vars:"},{"line_number":37,"context_line":"      tempest_test_regex: \u0027gabbi\u0027"},{"line_number":38,"context_line":"      devstack_localrc:"},{"line_number":39,"context_line":"        # gabbi-tempest is currently unofficial so pull it in as a hack"},{"line_number":40,"context_line":"        TEMPEST_PLUGINS: \u0027git+git://github.com/cdent/gabbi-tempest.git#egg\u003dgabbi-tempest\u0027"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"3f79a3b5_c46efcc6","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":33},"in_reply_to":"3f79a3b5_a1b17203","updated":"2018-09-20 02:44:27.000000000","message":"No, all-plugins is incorrect and should never be used. (it\u0027s only there for legacy support, it is deprecated and I thought we pushed a patch indicateing that) It tells tox to create a venv with system site-packages enabled and that almost always causes more problems than it fixes. Specifying the plugin with TEMPEST_PLUGINS below will make sure the plugin is installed, and if you need to run a tox job without a preset selection regex you should use the \"all\" job. (not all-plugins)","commit_id":"2b174edfde3eb9f31d74099d57d7efabaeb49454"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3384365e68144cfc46a18b999239415d81329810","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        - openstack/nova"},{"line_number":35,"context_line":"        - openstack/placement"},{"line_number":36,"context_line":"    vars:"},{"line_number":37,"context_line":"      tempest_test_regex: \u0027gabbi\u0027"},{"line_number":38,"context_line":"      devstack_localrc:"},{"line_number":39,"context_line":"        # gabbi-tempest is currently unofficial so pull it in as a hack"},{"line_number":40,"context_line":"        TEMPEST_PLUGINS: \u0027git+git://github.com/cdent/gabbi-tempest.git#egg\u003dgabbi-tempest\u0027"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"3f79a3b5_ab4cd675","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":33},"in_reply_to":"3f79a3b5_c46efcc6","updated":"2018-09-21 03:33:31.000000000","message":"thanks. +1 on not using all-plugins tox env. \n\nhere we can use \u0027all\u0027 - \ntox_envlist: all","commit_id":"2b174edfde3eb9f31d74099d57d7efabaeb49454"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    timeout: 10800"},{"line_number":30,"context_line":"    description: |"},{"line_number":31,"context_line":"        Test placement integration with gabbi."},{"line_number":32,"context_line":"    # Use our own roles and run so that we can create a symlink"},{"line_number":33,"context_line":"    # TODO(cdent): Make this dry, somehow."},{"line_number":34,"context_line":"    roles:"},{"line_number":35,"context_line":"      - zuul: openstack/tempest"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_f50c12ec","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":23},"updated":"2018-10-02 12:24:41.000000000","message":"What specifically do you refer to as \"our own roles\" here? Is there something in particular about the openstack/tempest and openstack-dev/devstack roles that aren\u0027t appropriate for placement testing?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93369649633c9b5d83d06068ec9629f772adc6d3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    timeout: 10800"},{"line_number":30,"context_line":"    description: |"},{"line_number":31,"context_line":"        Test placement integration with gabbi."},{"line_number":32,"context_line":"    # Use our own roles and run so that we can create a symlink"},{"line_number":33,"context_line":"    # TODO(cdent): Make this dry, somehow."},{"line_number":34,"context_line":"    roles:"},{"line_number":35,"context_line":"      - zuul: openstack/tempest"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_35084a8f","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":23},"in_reply_to":"3f79a3b5_f50c12ec","updated":"2018-10-02 12:39:46.000000000","message":"Normally when you make a child of devstack-tempest, you set neither roles: nor run: in here, just some of the vars: below.\n\nWe need to have our own run because we need to inject the symlink in the middle of the standard sets of tasks that the default run uses.\n\nIn our custom playbook we need to include roles from elsewhere. For them to be found (as I understood things from the multiple iterations of trying to get this to work) we need to make reference to \"other places to look for roles\".","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":41,"context_line":"      tempest_concurrency: 1"},{"line_number":42,"context_line":"      tox_envlist: all"},{"line_number":43,"context_line":"      devstack_localrc:"},{"line_number":44,"context_line":"        # gabbi-tempest is currently unofficial so pull it in as a hack"},{"line_number":45,"context_line":"        TEMPEST_PLUGINS: \u0027git+git://github.com/cdent/gabbi-tempest.git#egg\u003dgabbi-tempest\u0027"},{"line_number":46,"context_line":"        USE_PYTHON3: True"},{"line_number":47,"context_line":"      devstack_services:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_21d24c35","line":44,"range":{"start_line":44,"start_character":10,"end_line":44,"end_character":71},"updated":"2018-10-02 15:32:29.000000000","message":"This should probably be a TODO","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      tox_envlist: all"},{"line_number":43,"context_line":"      devstack_localrc:"},{"line_number":44,"context_line":"        # gabbi-tempest is currently unofficial so pull it in as a hack"},{"line_number":45,"context_line":"        TEMPEST_PLUGINS: \u0027git+git://github.com/cdent/gabbi-tempest.git#egg\u003dgabbi-tempest\u0027"},{"line_number":46,"context_line":"        USE_PYTHON3: True"},{"line_number":47,"context_line":"      devstack_services:"},{"line_number":48,"context_line":"        # turn off some stuff we don\u0027t strictly need"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_35304a9e","line":45,"updated":"2018-10-02 12:24:41.000000000","message":"ah, I see what your commit message is saying now... gotcha.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ce27dccc54ca4b08f841a65c14b49c10c1cef8ba","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: placement-tempest-gabbi"},{"line_number":28,"context_line":"    parent: devstack-tempest"},{"line_number":29,"context_line":"    timeout: 10800"},{"line_number":30,"context_line":"    description: |"},{"line_number":31,"context_line":"        Test placement integration with gabbi."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"3f79a3b5_75fb2215","line":28,"range":{"start_line":28,"start_character":12,"end_line":28,"end_character":28},"updated":"2018-10-26 02:25:38.000000000","message":"i think you should make tempest-gabbi (or gabbi-tempest)[1] job as parent so that you can reuse most of the basic setup of gabbi (specially L39 to L46)from tempest-gabbi. \n\nand so other new gabbi jobs can do the same. this does not necessary to be done in this patch but that is something good to streamlined sometime. \n\n[1] https://review.openstack.org/#/c/611678/4/.zuul.yaml","commit_id":"f5e63d635e58103c388b98194b07e4052ec5186d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8799d3549d1e5abb655b1a36a042b6b480219a20","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: placement-tempest-gabbi"},{"line_number":28,"context_line":"    parent: devstack-tempest"},{"line_number":29,"context_line":"    timeout: 10800"},{"line_number":30,"context_line":"    description: |"},{"line_number":31,"context_line":"        Test placement integration with gabbi."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"3f79a3b5_d36ecbfc","line":28,"range":{"start_line":28,"start_character":12,"end_line":28,"end_character":28},"in_reply_to":"3f79a3b5_75fb2215","updated":"2018-10-26 08:39:32.000000000","message":"That happens in followup patches that are in this same stack. See https://review.openstack.org/#/c/607508/4\n\nThe reason things are ordered as they are is because this patch drove the development of the job that is now in gabbi-tempest.","commit_id":"f5e63d635e58103c388b98194b07e4052ec5186d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"842fd882e0e70a6967f8e2289c0b240aa7864bcd","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: placement-tempest-gabbi"},{"line_number":28,"context_line":"    parent: devstack-tempest"},{"line_number":29,"context_line":"    timeout: 10800"},{"line_number":30,"context_line":"    description: |"},{"line_number":31,"context_line":"        Test placement integration with gabbi."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"3f79a3b5_568f0921","line":28,"range":{"start_line":28,"start_character":12,"end_line":28,"end_character":28},"in_reply_to":"3f79a3b5_d36ecbfc","updated":"2018-10-26 09:05:17.000000000","message":"perfect.","commit_id":"f5e63d635e58103c388b98194b07e4052ec5186d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"035f8fbf9bf37e66b38692ed1aacd02e3b888561","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        - openstack-tox-functional-py36"},{"line_number":18,"context_line":"        - placement-perfload:"},{"line_number":19,"context_line":"            voting: false"},{"line_number":20,"context_line":"        - placement-tempest-gabbi"},{"line_number":21,"context_line":"        - tempest-full-py3:"},{"line_number":22,"context_line":"            # Alias \u0027gate-irrelevant-files\u0027 define the set of irrelevant-files"},{"line_number":23,"context_line":"            # for which integrated testing jobs not required to run. If"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9fdfeff1_b63585dd","line":20,"updated":"2019-02-23 00:28:28.000000000","message":"so we\u0027re voting now","commit_id":"ef050e270cd38fc58ee9d76d1f2070ef1044f2c9"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"1f0b6ea16cec1f473f0e058cfa089a37b66e8be2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        - openstack-tox-functional-py36"},{"line_number":19,"context_line":"        - placement-perfload:"},{"line_number":20,"context_line":"            voting: false"},{"line_number":21,"context_line":"        - placement-tempest-gabbi"},{"line_number":22,"context_line":"        - tempest-full-py3:"},{"line_number":23,"context_line":"            # Alias \u0027gate-irrelevant-files\u0027 define the set of irrelevant-files"},{"line_number":24,"context_line":"            # for which integrated testing jobs not required to run. If"}],"source_content_type":"text/x-yaml","patch_set":43,"id":"9fdfeff1_6a14db4d","line":21,"updated":"2019-02-26 17:30:05.000000000","message":"this should use gate-irrelevant-files too","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"}],"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":25,"context_line":"This is not yet a perfect solution but it does move us in the"},{"line_number":26,"context_line":"right direction. Things to consider for future iterations:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Not installing gabbi-tempst from github."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* More granular control over which services are runnning so"},{"line_number":31,"context_line":"  that build time before we get to the actual tests is short."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"3f79a3b5_d53b1698","line":28,"updated":"2018-10-02 12:24:41.000000000","message":"What is the alternative you\u0027d suggest? From git.openstack.org you mean?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":25,"context_line":"This is not yet a perfect solution but it does move us in the"},{"line_number":26,"context_line":"right direction. Things to consider for future iterations:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Not installing gabbi-tempst from github."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* More granular control over which services are runnning so"},{"line_number":31,"context_line":"  that build time before we get to the actual tests is short."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"3f79a3b5_c61e0e73","line":28,"range":{"start_line":28,"start_character":23,"end_line":28,"end_character":29},"updated":"2018-10-02 15:32:29.000000000","message":"tempest","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Not installing gabbi-tempst from github."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* More granular control over which services are runnning so"},{"line_number":31,"context_line":"  that build time before we get to the actual tests is short."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Updating tempest\u0027s built-in tox setup and zuul configuration"},{"line_number":34,"context_line":"  so that the GABBI_TEMPEST_PATH variable can be used, removing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"3f79a3b5_b5445a1a","line":31,"updated":"2018-10-02 12:24:41.000000000","message":"++","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"For future reference, one thing that was rather confusing for me"},{"line_number":41,"context_line":"in this process is that zuul v3 and devstack aren\u0027t entirely playing"},{"line_number":42,"context_line":"well together. zuul does it\u0027s own cloning of relevant repos, and"},{"line_number":43,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":44,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":45,"context_line":"in the wrong place."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"3f79a3b5_0612c661","line":42,"range":{"start_line":42,"start_character":25,"end_line":42,"end_character":29},"updated":"2018-10-02 15:32:29.000000000","message":"its","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":42,"context_line":"well together. zuul does it\u0027s own cloning of relevant repos, and"},{"line_number":43,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":44,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":45,"context_line":"in the wrong place."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The Depends-On is necessary to get a working devstack."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"3f79a3b5_f55732c8","line":45,"updated":"2018-10-02 12:24:41.000000000","message":"Good to know! Is there a plan to maybe converge the git checkout sites for zuulv3 and devstack?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3c63af57be7a01484aeaa0393d5bed957b873983","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This patch provides two gabbi files:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* base.yaml checks the version of the placement service"},{"line_number":18,"context_line":"* basic-server.yaml boots a server and checks allocations and"},{"line_number":19,"context_line":"  usage change as expected through a resize. Because resize"},{"line_number":20,"context_line":"  can take fairly inconsistent amounts of time to accomplish"},{"line_number":21,"context_line":"  we wait for up to 5 minutes for VERIFY_RESIZE."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"A custom playbook is provided so we can link gate/gabbits into"},{"line_number":24,"context_line":"the tempest directory, where they can be found by the plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_f7c99d58","line":21,"range":{"start_line":18,"start_character":0,"end_line":21,"end_character":48},"updated":"2019-03-25 14:19:05.000000000","message":"Hmm, nova already has lots of in-tree functional tests for resize that verify allocations at various points along the way, so this would be redundant (using the placement fixture of course).","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ec66067f43742942fdce283c25bdbc89368d4a8b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This patch provides two gabbi files:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* base.yaml checks the version of the placement service"},{"line_number":18,"context_line":"* basic-server.yaml boots a server and checks allocations and"},{"line_number":19,"context_line":"  usage change as expected through a resize. Because resize"},{"line_number":20,"context_line":"  can take fairly inconsistent amounts of time to accomplish"},{"line_number":21,"context_line":"  we wait for up to 5 minutes for VERIFY_RESIZE."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"A custom playbook is provided so we can link gate/gabbits into"},{"line_number":24,"context_line":"the tempest directory, where they can be found by the plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_edf6aad7","line":21,"range":{"start_line":18,"start_character":0,"end_line":21,"end_character":48},"in_reply_to":"5fc1f717_f7c99d58","updated":"2019-03-25 15:15:57.000000000","message":"That file is effectively a demo for future tests (if people choose to make them) for how to have more than one service on the go.","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3c63af57be7a01484aeaa0393d5bed957b873983","unresolved":false,"context_lines":[{"line_number":47,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":48,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":49,"context_line":"in the wrong place."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Change-Id: I6740a6c1b57c8707c790bf5ca46f819c7ac738d8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_97f05993","line":50,"updated":"2019-03-25 14:19:05.000000000","message":"The thing I\u0027m missing is what value does this add for test coverage when we already have tempest-full running on changes in the placement repo? I guess one thing would be that these tests could be doing more fine-grained assertions of placement things like allocations getting cleaned up after some operation completes (resize) which tempest isn\u0027t covering today (but as noted nova does cover that stuff, and it\u0027s really a nova test rather than a placement test).\n\nAre there specific bugs this has uncovered and can be linked here? In the IRC meeting mysql was mentioned but devstack runs with mysql by default in the tempest-full job so I\u0027m not sure what that meant.","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c473506eb0c82a171864195f40b0058ec156536b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":48,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":49,"context_line":"in the wrong place."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Change-Id: I6740a6c1b57c8707c790bf5ca46f819c7ac738d8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_d76d8132","line":50,"in_reply_to":"5fc1f717_97f05993","updated":"2019-03-25 14:21:23.000000000","message":"In the meeting efried also said:\n\n\u003e (9:15:37 AM) efried: IMO it was more about setting the precedent of being able to write jobs in gabbi\n\nBut if these tests are redundant with what tempest and nova already test, and this is the only repo that is going to run this, then it\u0027s not going to be co-gating in anyway with other repos that could break the tests, which is what having the integrated gate with tests in tempest (or at least a tempest plugin) buys us.","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ec66067f43742942fdce283c25bdbc89368d4a8b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":48,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":49,"context_line":"in the wrong place."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Change-Id: I6740a6c1b57c8707c790bf5ca46f819c7ac738d8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_adc3c256","line":50,"in_reply_to":"5fc1f717_97f05993","updated":"2019-03-25 15:15:57.000000000","message":"This patch (with a bug linked from it) is the thing that these tests found that neither functional nor standard tempest found (presumably because it doesn\u0027t make any direct queries to /usages (yet)): https://review.openstack.org/#/c/639216/","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ec66067f43742942fdce283c25bdbc89368d4a8b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"then later devstack does too, to somewhere else. As a result of"},{"line_number":48,"context_line":"that confusion, I had originally been trying to make the symlink"},{"line_number":49,"context_line":"in the wrong place."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Change-Id: I6740a6c1b57c8707c790bf5ca46f819c7ac738d8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5fc1f717_0d59b68c","line":50,"in_reply_to":"5fc1f717_d76d8132","updated":"2019-03-25 15:15:57.000000000","message":"From my standpoint the thing we get here is what you describe above: \"fine-grained assertions of placement things\" in a everything-live situation. So to that end what would matter more (to me) here than the basic-server.yaml would be a sort of full spectrum \"the entire-api\" suite of tests, a bit like what placecat [1] does. Doing it from within a tempest environment makes it possible to be a bit more end to end, which is nice (more on that in the main response).\n\nOn co-gating, that\u0027s certainly a main value of the integrated gate, but not the sole value of integration tests. Find a bug, at any time, is still a win.\n\n[1] https://github.com/cdent/placecat","commit_id":"259cbd74485496a3b18778be1c0788b5ae9cc997"}],"gate/gabbits/base.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        x-auth-token: $ENVIRON[\u0027SERVICE_TOKEN\u0027]"},{"line_number":4,"context_line":"        content-type: application/json"},{"line_number":5,"context_line":"        accept: application/json"},{"line_number":6,"context_line":"        openstack-api-version: \u0027compute latest, placement latest\u0027"},{"line_number":7,"context_line":"        verbose: True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"tests:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_95203e4b","line":6,"updated":"2018-10-02 12:24:41.000000000","message":"✓","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"}],"gate/gabbits/basic-servers.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# These replace full nodes, there is no YAML interpolation"},{"line_number":12,"context_line":"# Experimenting with using YAML anchors to avoid repeating long expansions"},{"line_number":13,"context_line":"# within the tests."},{"line_number":14,"context_line":"vars:"},{"line_number":15,"context_line":"    - \u0026cn1_rp $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]"},{"line_number":16,"context_line":"    - \u0026cn1_inv $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/inventories"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_d5d79621","line":13,"updated":"2018-10-02 12:24:41.000000000","message":"ah, nice. I\u0027ve tried to do this in the past with some gabbits but run into various issues with interpolation not working the way I wanted. Good to see how to do this. ++","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93369649633c9b5d83d06068ec9629f772adc6d3","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# These replace full nodes, there is no YAML interpolation"},{"line_number":12,"context_line":"# Experimenting with using YAML anchors to avoid repeating long expansions"},{"line_number":13,"context_line":"# within the tests."},{"line_number":14,"context_line":"vars:"},{"line_number":15,"context_line":"    - \u0026cn1_rp $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]"},{"line_number":16,"context_line":"    - \u0026cn1_inv $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/inventories"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_152aeee5","line":13,"in_reply_to":"3f79a3b5_d5d79621","updated":"2018-10-02 12:39:46.000000000","message":"The \"replace full nodes\" is the key thing.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# Experimenting with using YAML anchors to avoid repeating long expansions"},{"line_number":13,"context_line":"# within the tests."},{"line_number":14,"context_line":"vars:"},{"line_number":15,"context_line":"    - \u0026cn1_rp $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]"},{"line_number":16,"context_line":"    - \u0026cn1_inv $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/inventories"},{"line_number":17,"context_line":"    - \u0026cn1_alloc $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/allocations"},{"line_number":18,"context_line":"    - \u0026cn1_usages $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/usages"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_55eb86db","line":15,"range":{"start_line":15,"start_character":63,"end_line":15,"end_character":124},"updated":"2018-10-02 12:24:41.000000000","message":"so this is weird (cool, but weird). how does the YAML anchor know when to interpolate the variable into the anchor value? I mean, since clearly $HISTORY[\u0027list hypervisors\u0027] will be empty if this anchor was evaluated in parse order, right?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93369649633c9b5d83d06068ec9629f772adc6d3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# Experimenting with using YAML anchors to avoid repeating long expansions"},{"line_number":13,"context_line":"# within the tests."},{"line_number":14,"context_line":"vars:"},{"line_number":15,"context_line":"    - \u0026cn1_rp $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]"},{"line_number":16,"context_line":"    - \u0026cn1_inv $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/inventories"},{"line_number":17,"context_line":"    - \u0026cn1_alloc $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/allocations"},{"line_number":18,"context_line":"    - \u0026cn1_usages $ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]/usages"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_357b6af4","line":15,"range":{"start_line":15,"start_character":63,"end_line":15,"end_character":124},"in_reply_to":"3f79a3b5_55eb86db","updated":"2018-10-02 12:39:46.000000000","message":"In YAML \u0027$ENVIRON[\u0027PLACEMENT_SERVICE\u0027]/resource_providers/$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]\u0027 is never expanded. That\u0027s only done with gabbi after it has read the YAML.\n\nSo the value of the cn1_rp anchor is the literal string beginning $ENVIRON...\n\nWhen the yaml is process cn1_rp is expanded to that string.\n\nThen in gabbi when the tests are run the string is interpolated. By that time, the referenceced bit of history has happened.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      response_json_paths:"},{"line_number":39,"context_line":"          $.inventories.VCPU.allocation_ratio: 16"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - \u0026cn1_zero"},{"line_number":42,"context_line":"      name: confirm empty allocation"},{"line_number":43,"context_line":"      GET: *cn1_alloc"},{"line_number":44,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_75e6c215","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"updated":"2018-10-02 12:24:41.000000000","message":"heh, cool. :) /me wonders how this ends up printing out in the test results...","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b9f775751705b9659437803e00c26de7767a28c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      response_json_paths:"},{"line_number":39,"context_line":"          $.inventories.VCPU.allocation_ratio: 16"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - \u0026cn1_zero"},{"line_number":42,"context_line":"      name: confirm empty allocation"},{"line_number":43,"context_line":"      GET: *cn1_alloc"},{"line_number":44,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_c06356dc","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f79a3b5_35f28a70","updated":"2018-10-02 12:51:44.000000000","message":"ah, wicked. :)","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93369649633c9b5d83d06068ec9629f772adc6d3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      response_json_paths:"},{"line_number":39,"context_line":"          $.inventories.VCPU.allocation_ratio: 16"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - \u0026cn1_zero"},{"line_number":42,"context_line":"      name: confirm empty allocation"},{"line_number":43,"context_line":"      GET: *cn1_alloc"},{"line_number":44,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_35f28a70","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f79a3b5_75e6c215","updated":"2018-10-02 12:39:46.000000000","message":"This is establishing the cn1_zero anchor which labels the entire node from lines 42-45. This test runs, but the node is always anchored for later reuse.\n\nThen, below at line 142 we inherit (and slightly override) from this anchor to check for 0 allocations again.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      response_json_paths:"},{"line_number":39,"context_line":"          $.inventories.VCPU.allocation_ratio: 16"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - \u0026cn1_zero"},{"line_number":42,"context_line":"      name: confirm empty allocation"},{"line_number":43,"context_line":"      GET: *cn1_alloc"},{"line_number":44,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_f308a780","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f79a3b5_c06356dc","updated":"2018-10-02 15:32:29.000000000","message":"The override is changing the name, and adding the polling, right?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e52d63d98f6165e3f77933789bf9311ade2d70b6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      response_json_paths:"},{"line_number":39,"context_line":"          $.inventories.VCPU.allocation_ratio: 16"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - \u0026cn1_zero"},{"line_number":42,"context_line":"      name: confirm empty allocation"},{"line_number":43,"context_line":"      GET: *cn1_alloc"},{"line_number":44,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_76f80549","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f79a3b5_f308a780","updated":"2018-10-02 16:19:41.000000000","message":"yes. the name has to change (within a suite test names must be unique)","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    - name: watch allocations"},{"line_number":63,"context_line":"      GET: *s1_alloc"},{"line_number":64,"context_line":"      poll:"},{"line_number":65,"context_line":"          count: 4"},{"line_number":66,"context_line":"          delay: 1"},{"line_number":67,"context_line":"      response_json_paths:"},{"line_number":68,"context_line":"          $.allocations.[\"$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]\"].resources:"},{"line_number":69,"context_line":"              VCPU: 1"},{"line_number":70,"context_line":"              MEMORY_MB: 64"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_1397633b","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":26},"updated":"2018-10-02 15:32:29.000000000","message":"does this mean \"poll on 1s intervals until response_json_paths looks like this, to a maximum of 4x\"? And if we reach 4x and response_json_paths still doesn\u0027t look like this, the test case fails?\n\nIf so, perhaps \"wait for...\" in the test name might make it clearer to the reader. Ditto the next one.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e52d63d98f6165e3f77933789bf9311ade2d70b6","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    - name: watch allocations"},{"line_number":63,"context_line":"      GET: *s1_alloc"},{"line_number":64,"context_line":"      poll:"},{"line_number":65,"context_line":"          count: 4"},{"line_number":66,"context_line":"          delay: 1"},{"line_number":67,"context_line":"      response_json_paths:"},{"line_number":68,"context_line":"          $.allocations.[\"$HISTORY[\u0027list hypervisors\u0027].$RESPONSE[\u0027$.hypervisors[0].id\u0027]\"].resources:"},{"line_number":69,"context_line":"              VCPU: 1"},{"line_number":70,"context_line":"              MEMORY_MB: 64"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_16b6718a","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":26},"in_reply_to":"3f79a3b5_1397633b","updated":"2018-10-02 16:19:41.000000000","message":"Yes, that interpretation is correct.\n\nI agree the name could be more clear. I\u0027ll clean it up. These tests originate in something that\u0027s quite old (years?) and my own personal experimenting where I didn\u0027t have my \"names matter to other people\" head on.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":85,"context_line":"             OS-DCF:diskConfig: AUTO"},{"line_number":86,"context_line":"      status: 202"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    - name: wait for verify resize"},{"line_number":89,"context_line":"      GET: *s1_url"},{"line_number":90,"context_line":"      poll:"},{"line_number":91,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_3305bf7a","line":88,"range":{"start_line":88,"start_character":12,"end_line":88,"end_character":20},"updated":"2018-10-02 15:32:29.000000000","message":"yeah, like this :)","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce483646b16464a5b1496ce930e60b4918a91388","unresolved":false,"context_lines":[{"line_number":139,"context_line":"      DELETE: *s1_url"},{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_73dfb7d6","line":142,"range":{"start_line":142,"start_character":6,"end_line":142,"end_character":38},"updated":"2018-10-02 15:32:29.000000000","message":"It reads funny that this is overriding the `name` field from the interpolated thingy that comes after this line. I guess it\u0027s a dict, so the order of the fields doesn\u0027t actually matter. Would it be syntactically legal to reverse the lines? Would that look like:\n\n - \u003c\u003c: *cn1_zero\n   name: reconfirm empty allocations\n\n?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e52d63d98f6165e3f77933789bf9311ade2d70b6","unresolved":false,"context_lines":[{"line_number":139,"context_line":"      DELETE: *s1_url"},{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_b65e9d42","line":142,"range":{"start_line":142,"start_character":6,"end_line":142,"end_character":38},"in_reply_to":"3f79a3b5_73dfb7d6","updated":"2018-10-02 16:19:41.000000000","message":"Dunno, I\u0027ll try it, but in my head I see \"- name: \" as the separator for tests (thus line 41 is super confusing for me).","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"03904237eafff9b4d9638117aad86649e5a8dbd8","unresolved":false,"context_lines":[{"line_number":139,"context_line":"      DELETE: *s1_url"},{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_c9f37e9e","line":142,"range":{"start_line":142,"start_character":6,"end_line":142,"end_character":38},"in_reply_to":"3f79a3b5_b65e9d42","updated":"2018-10-02 16:48:23.000000000","message":"Right, it was for me too, I had even started typing a comment to the effect of, \"is this even a test? It doesn\u0027t have a `name`... oh, there it is.\" Could the order be reversed on that guy too/instead?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6a4f052d0f5c30a9f441c9c17c926c4ab6cec04b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"      DELETE: *s1_url"},{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_ecc6889c","line":142,"range":{"start_line":142,"start_character":6,"end_line":142,"end_character":38},"in_reply_to":"3f79a3b5_c9f37e9e","updated":"2018-10-02 17:01:42.000000000","message":"No, an anchor has to be at the start of a node. You can do some magic with creating an anchor to a nested node within a node but it gets even more messy.\n\nGiven the amount of discussion this is generating I\u0027m not sure it worth doing these tricks since a big part of the why of gabbi is to have readable tests. The fact that it was used here goes back to my comment elsewhere about this being taken from old personal stuff where I was being intentionally terse and funkity to keep myself entertained. Now that we are outside of that context, probably not worth it.","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"48f8a79106e422098fac5548c9ca6f0705da1a07","unresolved":false,"context_lines":[{"line_number":139,"context_line":"      DELETE: *s1_url"},{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_ec7e8819","line":142,"range":{"start_line":142,"start_character":6,"end_line":142,"end_character":38},"in_reply_to":"3f79a3b5_ecc6889c","updated":"2018-10-02 17:14:07.000000000","message":"I disagree *unless* the \"more readable\" solution costs nearly the same in terms of (de)duplication etc. If you\u0027re feeling really generous, add comments to explain some of the more esoteric syntax. But don\u0027t dumb it down to some mythical least-common-denominator reader.\n\n\u003crant\u003e\nThe above is a personal opinion, mostly formulated during my time working with Perl. I got tired of people telling me I should write my Perl to look like shell, or C, or PHP, because that\u0027s what the reader was most familiar with. I wanted to write Perl that looks like Perl, using the appropriate bit of syntax for the occasion. Yes, that means my reader has to know Perl, rather than relying on scraping by on an understanding of some other language. Tough.\n\nIt can of course go too far. Obfuscation for the sake of cleverness is fun, but not suitable for production code.\n\u003c/rant\u003e","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7b1ea9c7cf29cd3dde60418efe480554c0431572","unresolved":false,"context_lines":[{"line_number":140,"context_line":"      status: 204"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: reconfirm empty allocation"},{"line_number":143,"context_line":"      \u003c\u003c: *cn1_zero"},{"line_number":144,"context_line":"      poll:"},{"line_number":145,"context_line":"          count: 12"},{"line_number":146,"context_line":"          delay: 5"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_55c4e65f","line":143,"range":{"start_line":143,"start_character":6,"end_line":143,"end_character":8},"updated":"2018-10-02 12:24:41.000000000","message":"hmm, what\u0027s this?","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"da4bbd5cf000976c72cf1f4f3803fe27cd11faba","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      DELETE: *s1_url"},{"line_number":144,"context_line":"      status: 204"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    # Inherit from the previous establish cn1_zero YAML node, changing"},{"line_number":147,"context_line":"    # the name and adding polling."},{"line_number":148,"context_line":"    - \u003c\u003c: *cn1_zero"},{"line_number":149,"context_line":"      name: wait until we have empty allocations"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"3f79a3b5_d94ed36c","line":146,"range":{"start_line":146,"start_character":23,"end_line":146,"end_character":41},"updated":"2018-10-03 14:50:26.000000000","message":"previously established?","commit_id":"ec29c3c591afbac3af087d9651777b82a069ab9f"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"deeeb9349cea192b614869c317c0a87ea6ef9d72","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    # The YAML anchor here creates a reference that we can use"},{"line_number":42,"context_line":"    # in test that is mostly a duplicate of this one."},{"line_number":43,"context_line":"    - \u0026cn1_zero"},{"line_number":44,"context_line":"      name: confirm empty allocation"},{"line_number":45,"context_line":"      GET: *cn1_alloc"},{"line_number":46,"context_line":"      response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"3f79a3b5_e95dec47","line":43,"range":{"start_line":43,"start_character":7,"end_line":43,"end_character":15},"updated":"2018-10-04 12:02:32.000000000","message":"nit: Personally I don\u0027t think we should use anchors for such only 3 lines, but since this is a good example how to use this, I\u0027m good. Could you use more understandable alias if possible, something like \"cn1_confirm_empty_allocation\"?","commit_id":"e9222285a6069e3266457ee11b42e63f37862f73"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"deeeb9349cea192b614869c317c0a87ea6ef9d72","unresolved":false,"context_lines":[{"line_number":53,"context_line":"              name: new-server-one"},{"line_number":54,"context_line":"              networks: auto"},{"line_number":55,"context_line":"              imageRef: $ENVIRON[\u0027IMAGE_REF\u0027]"},{"line_number":56,"context_line":"              flavorRef: $ENVIRON[\u0027FLAVOR_REF\u0027]"},{"line_number":57,"context_line":"      status: 202"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    - name: get server"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"3f79a3b5_ff627ad8","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":47},"updated":"2018-10-04 12:02:32.000000000","message":"Okay, the flavors come from [1], right? Since I had to take some steps to reach here, it would be good to put kindful-to-strangers comment here;\n\n---\n# Use a flavor created by devstack-tempest with vcpus:1 ram:64 disk:0\n---\n\n[1] https://github.com/openstack-dev/devstack/blob/6f4b7fc99c4029d25a924bcad968089d89e9d296/lib/tempest#L191-L199","commit_id":"e9222285a6069e3266457ee11b42e63f37862f73"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"79b38ad5320ee90acee3d5e5583ed146cfa82748","unresolved":false,"context_lines":[{"line_number":53,"context_line":"              name: new-server-one"},{"line_number":54,"context_line":"              networks: auto"},{"line_number":55,"context_line":"              imageRef: $ENVIRON[\u0027IMAGE_REF\u0027]"},{"line_number":56,"context_line":"              flavorRef: $ENVIRON[\u0027FLAVOR_REF\u0027]"},{"line_number":57,"context_line":"      status: 202"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    - name: get server"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"3f79a3b5_ffd35ad1","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":47},"in_reply_to":"3f79a3b5_ff627ad8","updated":"2018-10-04 12:13:11.000000000","message":"I made the assumption when using the environ settings that people have some familiarity with https://github.com/cdent/gabbi-tempest which sets those variables. Also, in this case, what the flavor and image are makes no difference just so long we have one.\n\nBut yeah, a comment would be helpful, so I\u0027ll add something.","commit_id":"e9222285a6069e3266457ee11b42e63f37862f73"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"deeeb9349cea192b614869c317c0a87ea6ef9d72","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      POST: *s1_action"},{"line_number":86,"context_line":"      data:"},{"line_number":87,"context_line":"          resize:"},{"line_number":88,"context_line":"             flavorRef: $ENVIRON[\u0027FLAVOR_REF_ALT\u0027]"},{"line_number":89,"context_line":"             OS-DCF:diskConfig: AUTO"},{"line_number":90,"context_line":"      status: 202"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":32,"id":"3f79a3b5_5fd04e53","line":88,"range":{"start_line":88,"start_character":34,"end_line":88,"end_character":48},"updated":"2018-10-04 12:02:32.000000000","message":"ditto","commit_id":"e9222285a6069e3266457ee11b42e63f37862f73"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26025c280ffaa7d33c3aa027544658bc1e2fb588","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"### Clean Up"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: delete server"},{"line_number":143,"context_line":"      DELETE: *s1_url"},{"line_number":144,"context_line":"      status: 204"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":36,"id":"3f79a3b5_6d734b50","line":142,"updated":"2018-11-27 10:28:08.000000000","message":"If something fails above, did we still call this cleanup?\nOr will the whole gabbi test suit run serially and we only care about the first error in each job run?","commit_id":"a0c1e14e3e1b7c9278a7bc8b05fea2783f9b9ef8"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"53ae4898175ebc625c0709b88b581abefea23b8b","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"### Clean Up"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    - name: delete server"},{"line_number":143,"context_line":"      DELETE: *s1_url"},{"line_number":144,"context_line":"      status: 204"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":36,"id":"3f79a3b5_8d526769","line":142,"in_reply_to":"3f79a3b5_6d734b50","updated":"2018-11-27 10:33:08.000000000","message":"Every test in the file runs, in order, even if the prior one fails, so even if the resize fails, we\u0027ll still try to delete the server.\n\nBut, yes, if there\u0027s a failure near the top of the file it will cause additional failures in the following tests, and it is the first failure that matters.\n\nIn that case it _might_ make sense (since the tests are set up to run without parallelism) to exit on first failure and save some time.","commit_id":"a0c1e14e3e1b7c9278a7bc8b05fea2783f9b9ef8"}],"playbooks/tempest-gabbi-link.yaml":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93369649633c9b5d83d06068ec9629f772adc6d3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    - name: acl devstack files"},{"line_number":18,"context_line":"      include_role:"},{"line_number":19,"context_line":"        name: acl-devstack-files"},{"line_number":20,"context_line":"    - name: Link gabbits dir into tempest dir"},{"line_number":21,"context_line":"      file:"},{"line_number":22,"context_line":"        state: link"},{"line_number":23,"context_line":"        src: \"{{ devstack_base_dir|default(\u0027/opt/stack\u0027) }}/placement/gate/gabbits\""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"3f79a3b5_55f86648","line":20,"updated":"2018-10-02 12:39:46.000000000","message":"this is the special task we need","commit_id":"a878de259c2d8ddda4af97baf851838f6b3bbd49"}]}
