Completed zones, domains and dashboard migration to React
Continuing from our previous iteration, this 2 weeks, we wrapped up the sprint work for our react migration work. This includes cleaning up and refactoring our code to the right convention and aligning the UI components. As far as the progress goes, our dashboard, DNS, and Availability Zones pages are now fully in react.
Machine cloning
In this 2 weeks iteration, we focused on exposing the cloning API to the UI, where we want to allow MAAS users to clone network and storage configurations from 1 source machine to multiple destination machines. We did a few exploration of interaction design work to figure out how this could fit with the current workflow. Here is our first prototype if you want to try it out.
The overall flow starts at selecting destination machines. When a user selects multiple machines, they have an option to clone a source machine into the selected destination machines.
In this workflow, we assume that our users would already know which source machine they want to clone from and that cloning will work with a homogeneous hardware environment.
You can either clone the storage or network configuration from the source machine to the destination machine, or both! Since our assumption is that you would already have an idea of which source machine you want to clone from, the search functionality allows you to search by hostname or system id.
To be able to successfully clone machines, the source and destination machines need to be in one of the following states: failed testing, allocated, or ready. In addition, the user needs to have admin permission on all machines that the cloning will be performed on.
Once the source machine is selected from the drop down list, you will see a brief summary of the source machine, including the network and storage information.
Once the cloning process is complete, we will report the number of successful machines and error machines, allowing you to either select other machines to clone or inform why the cloning process failed.
One of the more common mistakes is to clone machines with different disk sizes. In our current API, if the destination machine has a smaller disk size than the source machine, cloning will not be successful. The same mental model goes for block devices as well. Other errors that can occur includes, selecting machines with unmatched boot methods and unmatched networking interfaces.
Showing IP addresses in the UI network card
We received a bug report that the IP address should be surfaced to the network summary card, because it is one of the most important pieces of information regarding the Network tab of a machine in MAAS. However, we were not showing that information in the network card in the Summary section.
Although it looked like the IP address was way more relevant than the MAC address, MAC address and DHCP were very important in an enterprise level MAAS and cannot be eliminated from the Network card and we cannot disregard that, especially, for debugging purposes.
With that in mind, we initially looked for a way to switch between both of them, MAC addresses and IP addresses, since space matters in this kind of card.
The final decision, nonetheless, was to show both. In addition, we took this opportunity to enrich the table and include more information from the Network tab, like subnet and VLAN.