Last week was SUSE's Hackweek 12.
Hackweeks are special weeks at SUSE where all of SUSE Engineering get to work on whatever they'd like, to try cool things and learn new stuff.
This Hackweek was my first at SUSE's Nuremberg office, and it was quite an experience. The whole place had a 'buzz' about it all week. Every day the company sponsored Lunch or Breakfast, which got everyone together and triggered many interesting conversations. Some times we were serenaded by the 'SUSE Band' who were working on their musical abilities and technology for hackweek.
I had lots of conversations about the upcoming openSUSE conference, some of SUSE's planned projects around openSUSE, and of course openQA, which was a big part of lots of peoples Hackweek.
Bernhard Wiedemann worked on adding subtitles to openQA's video recordings so users can see what openQA is doing when it produces the recorded screen output.
Max Lin worked on a chrome extension to provide live status monitoring of an openQA instance and its workers.
Bernhard, Stephan Kulow, and Klaus Kämpf looked at getting openQA to test bare metal hardware.
While openQA already has support for IPMI for bare metal testing of servers, pushing the already established limits is exactly the spirit of Hackweek :)
Bernhard started experimenting with the idea of using ARM development boards to emulate a keyboard and relay openQAs keyboard commands. Next Hackweek he hopes to have a HDMI grabber so it will be able to see the video output also.
Klaus and Coolo were successful in getting openQA to control hardware with Intel vPro/AMT (as found in Thinkpads and other common laptop/desktop hardware). This demonstration video shows it working on my very own X220 Thinkpad.
And Xudong Zhang from Beijing and myself worked on testing openQA by using openQA
Testing openQA on openQA, are you crazy?
Actually, only a little crazy.
We made life easy for ourselves by creating two disk images (one for SLES 12 and another for openSUSE 13.2) to represent the same production environments we have for http://openqa.opensuse.org and the internal SUSE openQA instance.
These images were created following the regular openQA Documentation and setup to test a 'known good' Distribution with a static set of tests (openSUSE 13.2 with the tests and needles from our GitHub project)
We then configured openQA to treat this disk image as a different 'distribution', and we wrote new tests for testing openQA (See the source code HERE)
A little bit of 'needling' later (Capturing the reference screenshots and defining the areas of interest to openQA, which can be found HERE) we had a working test run which was able to test openQA running on openSUSE 13.2
and also for testing openQA on SLES 12
These tests successfully test all the core functionality of openQA, including Upgrading from the official OBS repository, Confirming the Worker is running, Scheduling an openQA job from the shell, Confirming a Job is running from the shell, and checking the functionality of each of the UI Screens by loading up Firefox and clicking on all of the links just like a user would.
With this development, we now have a way of confirming that new builds of openQA are safe for deployment in production, which should help us be a little more fearless and rapid updating the openQA versions in use for testing openSUSE and SUSE Linux Enterprise, even when during heavy testing periods.
Expect to see these tests running on the public http://openqa.opensuse.org soon.. I just need to figure out an elegant way of triggering them automatically as soon as OBS has new RPMs for testing.
Thanks to all who made this Hackweek awesome!