Last week a bunch of us met up in Karlsruhe in Germany to work on virtual machines support in Cockpit. We had some specialists there who helped us get up to speed with VMs. Tons of pull requests opened, designs put together. Some of the changes are already merged and released in Cockpit 144.

Marek helped all of us understand how Redux stores and models data. The oVirt folks are using Redux a lot in front end code and want to be able to share code. Marius managed to reconcile Redux with our dialog and promise code.

Creating virtual machines is hard. There’s a surprising amount of strange little details and corner cases. Andreas, Garrett, Pavel, Dominik and Michal were involved in long discussions about how to make this work. And Dominik opened a pull request.

Create dialog

Create dialog details

Stef and Marek worked on sharing code between the oVirt javascript code based on Cockpit and the more general virtual machines code in Cockpit. Since most of the code is shared, we decided we didn’t want to create any further API here that we had to keep stable, but rather build and develop the two in tandem. In the future some of the specific UI widgets will be factored out into reusable stable javascript NPM components.

Martin refactored Cockpit’s access to libvirt to be more efficient and scalable with the number of VMs. It currently uses virsh.

At the same time Lars and Pavel started a DBus based wrapper for libvirt. This wrapper should be maintained near other libvirt bindings, such as libvirt-python.

Marius added functionality to Delete virtual machines from the Cockpit UI.

Stef wrote code to boot real virtual machines during CI testing. We’re using the same Cirros Linux that oVirt and Openstack use during testing.

And there were more pull requests and discussions, but I’m running out of space.