Last week we had a 3 day code sprint for the QA program in NYC: https://wiki.openstack.org/wiki/QA/CodeSprintKiloNYC HP hosted the event at the office in Chelsea. Overall it was a very productive week were we accomplished a great deal. The goal of the sprint was to make a good push on a list of priority items which had seemed to be a bit stagnant and get some code landed to try and push forward on them. It was also a valuable opportunity for a bunch of us to get together and get to know the people we work with daily basis a bit better. Something which is often hard to do over IRC, gerrit, or the ML.
On the Wed. we started the sprint by briefly outlining what every person in attendance wanted to accomplish. This gave us a frame of reference for how we’d structure the work for the week. It turned out that most people had similar goals in mind and the majority of the work items for the week were already on the etherpad. We then broke off into smaller groups and started working on different things.
On the devstack side the biggest item for the sprint was to sort out what was needed in order to make neutron the default networking stack. We devised the direction we should be taking in order to both accomplish that default switch and improve the fit of neutron setup in devstack. After some failed previous attempts at making neutron the default we realized that the existing neutron code in devstack would have to be completely re-factored. This resulted in the previous neutron code in devstack being moved to a neutron-legacy file (which I thought should have been called quantum) and starting a new lib/neutron file to re-implement things to fit in better with the rest of devstack. Additionally, progress was made on direction of using venvs in devstack. Dean has a good write up of all the devstack changes that came out of the code sprint:
For tempest we stared by resolving a longstanding bug around running tempest with multiple networks available to the tenant. Luckily, there was a patch in progress to resolve this from a number of different authors. We decided to take it over during the sprint to have a quick turnaround and prioritize landing it. This was also the first step in rationalizing and improving how tempest uses networks. Which led right into the next step for, enabling the test accounts/accounts.yaml credential provider mechanism to use a network specified in the yaml file. (which is the second half of this spec) The patches which outlined this implementation were were pushed to gerrit. While we weren’t able to land them during the sprint it puts us in a good place to close out this BP during the next couple of weeks.
We also used the week to uncover and help fix some bugs in tempest when using it outside of devstack. Chris Hoge, who’s primary focus is on the defcore and OpenStack interoperability, was able to attend for the week and provided some feedback and experience from his attempts to use tempest outside of devstack which led to several bugs being found and squashed. We managed to get the majority of the tests needed for defcore working by then end of the sprint. (with just a couple that needed to be skipped for the time being) Getting this direct feedback has been something I’ve been pushing for this cycle and it was gratifying to actually be able to sit down and debug issues with this important use case.
Additionally there was an effort around some tempest-lib improvements, driven by Igawa Masayuki, specifically to close some gaps in documentation and unit testing. This is something that’s important to ensure the library is usable long-term, but often doesn’t get the most attention because it can be somewhat tedious. At the end of the week we ended up landed a number of patches to expand our unit testing and improve the docstrings for several modules in the public tempest-lib API.
There was also an effort to consolidate and improve the Tempest CLI. There is an open spec for that effort here. (it still has to be respun based on the discussions in the sprint) David Patterson made good progress on the implementation of the new CLI for tempest which we will eventually become the one recommended method for invoking/running tempest. Hopefully a first draft branch for this effort will be up on gerrit soon so we can have enough time to iterate and land it before the Kilo release in a few weeks. (although more than likely it’ll be an early feature for Liberty)
The Rest of the Sprint
As is typical with these types of events we aren’t locking ourselves in a conference room for 24 hours each day we used the week as a good chance to interact and get to know the people we work with daily a little better. For example on Thursday evening the majority of us went to All’Onda for dinner where a good friend of mine from high school is a chef. The meal turned out to be in my opinion the best of the week. (of which there were many very good ones)
Also, on Wed. afternoon right after lunch we all took a walk on the High Line which was a good opportunity to get out of the conference room and get some fresh air. (especially since it rained on and off for the rest of the week) We also used the outdoor time to start the discussion around a plugin interface for grenade and modular testing interfaces as we move into the big tent and have many projects be more self service when it comes to leveraging QA tooling. We didn’t really reach a real conclusion on this topic and we will definitely have to pick this discussion back up at the Liberty summit in Vancouver. But, it was good to start thinking about this.
On the last day of the code sprint we again continued were we left off from the previous day. By this point we all knew what we needed to be working on and what was realistically accomplish-able in the time remaining. So soon after lunch on Friday, before the first of us had to head back home, we had a sprint retrospective to get feedback from everyone in the room on how the sprint went and if we accomplished the goals we outlined on Wed. This served as a useful conclusion to just sum up what had been done, and what was left to do after we all had returned home.
In the end we pushed out over 30 patches the majority of which landed. We also managed to fix several major bug, (and introduced a few new ones) closed a couple blueprints and large work items, and finalized a direction on most of the other outstanding efforts. This puts us in a good spot to land these other items before the release. (or soon after)
Full notes from the week’s efforts can be found here: