- Pass in write_fd into async commands so output calls refresh
- Hack the threadpool to a single task so we trivially block on the long
install and don't invoke our post install until the other is complete
- lots of debugging for command outputs.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
This contains views/controllers/models for setting RAID,
assigning Ceph storage, and iSCSI.
They are all in their initial implementation stage and
does require more work on the backend to make these
items usable.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
Move config writeout to a non-coroutine method.
Add realname collection (needed for userinfo)
Add debugging to help find issue with async commands
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Break out curtin configuration data into multiple configuration files
This sets up our initial install (network +storage) and our secondary
run (postinstall user config).
- encrypt the users password and never log the original value
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Update network model to generate a network configuration for each
active network device. Note, some of the examples won't quite work
since we now want updated probert data which includes new information
about the source of any discovered ip.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Adjust the size of the column with iface name, cap the max size
- Find and remove any set of 'Unknown' displays of info
- Replace the 'Checking' status with the current state of the connection
For now, it will always be definitive since we check for connections
upon boot.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Probert now collects more information on ips, bonds and bridges
Use this information to display Network view closer to spec.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Adds ability to view disk information via hdparm
if run as root, otherwise, will print error to
the ui (ie. permission denied.)
As a result updated the run_command routine
to be a little more robust.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
Curtin uses sgdisk to create partitions. To avoid sgdisk
fixing alignment issues we ensure that all partitions are
1M aligned.
GPT partitions also require space at the end, reserve the
same number of sectors (1K, 2048 512b sectors) at the
start and end of the disk.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Fix max size partition edge case
- Ensure if nothing is entered we select the max size
- Adjust offset and size calculations for actions
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
A number of changes to the toplevel make file and dir structure.
- deb-src and deb-release fail because debian was a symlink. This is not allowed
so instead we git clone and then move the debian dir to the toplevel.
- Fix the clean target to only run rules/debian if the debian dir exists.
- Drop probert as a submodule and instead clone it as needed, controlling the
version through a Makefile variable.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
We now pass a common dictionary with attributes needed
throughout our controllers. The common dictionary now
contains:
- eventloop
- ui widgets
- signal handler
- prober options
- cli arguments
In addition we've extended the progress indicator to
include a progressbar.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
There was a mismatch between what human size units we accepted
and what we matched for in the view validator. Fix that by
ensuring all places use the HUMAN_BYTES variable, including building
the multiplier from the listed HUMAN_BYTES.
Also drop the use of mixed case for the units, now all size units
must be capital (B, K, M, G, T, P) etc.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
During an input error the text field will be set
with the error of the validation performed.
When a user places the cursor anywhere on that error
and begins typing it will zero out the error and let
you type without having to do any previous deleting,
backspacing, etc.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
Allow user to specify a probert machine configuration file to be
used during the installer. If presented with the config file
no probing of the host will occur.
In the case that disks don't have a size in the data collected then
they'll be marked as USED.
Add a few example machines and update the README on how to specify.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Using parted required root privileges since it opened the underlying device.
Instead create our own Disk model and use sysfs interface for extracting
size information.
This also clears the way for providing device data via probert input. This
means we can feed subiquity a probert dump and have it present that to
the installer UI even if we're running on a different system.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Ensure we don't explode on input for partition size
- Don't append error messages to input fields as it
can DOS the input boxes.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Provide streaming updates to the UI during non blocking
commands. For the progress controller specifically this
is the output from curtin_wrap and subsequent curtin
execs.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>