Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.6 Changes #326

Merged
merged 12 commits into from
Oct 14, 2024
Merged

0.6 Changes #326

merged 12 commits into from
Oct 14, 2024

Conversation

JacobCallahan
Copy link
Member

This release is primarily focused on UX changes, with some minor fixes/tweaks thrown in.
The three PRs included in these changes are:
#322
#324
#325

JacobCallahan and others added 12 commits September 27, 2024 10:49
Previosuly it was impossible to set command-level timeouts when using
Hussh as the backend. In fact, due to the way the Host objects acquired
their Hussh connections, timeouts were always left to the default.
Now, with Hussh 0.1.7, we can pass a command-specific timeout.
The initial change of this was to introduce the broker config cli.
However, to do this, a number of supporting and related changes needed
to be made.

The first of these is the new ConfigManager class that manages reading
from and writing to the config file.
Since so much logic was implemented for this, it made more sense to roll
in the import/init functionality, that was originally in the settings
module, into the new class.

This also gave me the opportunity to separate the test config from the
example config. This removal, and other changes in this were supported
by ConfigManager's migration functionality.

To simplify the nested chunk notation, I moved provider instances out
from a list to just being a nested dictionary. This actually simplified
the instance logic quite a bit.

Related to config simlification was the separation of the host settings
to a new ssh chunk of the config. This is because not all users use the
host functionality Broker provides. A likely change with this release is
going to be removing a default ssh backend from Broker's requirements.

While I was at it, I also switched the CLI over to rich-click as part of
a larger effort to improve the CLI experience.
Due to timing, I couldn't cleanly include this in the previous commit,
but here it is.
Now Broker actions, including checkins will reference this new setting
when determining how many threads it should use.
With this change, users can now specify a `--from` argument with a valid
path or url to a valid broker settings file.
This will still try to fallback on the current behavior of using a local
repo or the main SatelliteQE/broker repo as the source.
Broker has expanded a while ago with the types of hosts it can support,
it's time we updated our terminology to match.
A number of changes were needed both functionally and stylistically to
get this where we want it, but it's pretty good now. I don't know if I
like the "Validation passed!" message, since it will likely print every
time, but it can stay for now.
PyYaml is a good library, but had the unfortunate side-effect of
stripping comments from yaml files on read/write. Switching to ruamel
now let's us retain the comments, and arguably improves usage in some
ways.
There may be some issues with awxkit objects due to the way the
representers are added, but I can't say for certain that is the case
yet.
With the changes we've been making in 0.6 toward a better, more
customizable and visually appealing, user experience. It's time that we
revisited the inventory command.
The --curated view introduced in 0.5.x has now become the default
inventory view. The original default view is now present in its new form
and home with the --list flag.
The --details flag largely retains the functionality it did before.
However, it involves much less processing than before.

One important piece added in this is the ability to customize the
inventory fields on a per-user basis. The details on this customization
are documented in detail in the supporting code.
It will also be important to document this in the wiki upon release.
In case people want to have a more plain output.
I had forgot the include logic to not run some migrations if the changes
have already taken place. This skip is just the "naive" approach instead
of doing a complete validation that the previous fields have migrated.
Co-authored-by: Tasos Papaioannou <[email protected]>
In cases, like we currently have, where the container host is podman<5.0
and local podman/podman-py is >=5.0 we run into a TypeError. To solve
this, we resort to manually getting the status.
@JacobCallahan JacobCallahan added enhancement New feature or request 0.6 Things aligned to the 0.6 release labels Oct 14, 2024
@JacobCallahan JacobCallahan merged commit b8f46f1 into master Oct 14, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.6 Things aligned to the 0.6 release enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant