Add the `--tags` flag to `clan machines list`
This now supports the machine tagging system from the inventory.
Multiple tags are the intersection of the tags of a specific machine.
Example two machines with overlapping tags:
```
server: ["intel"]
laptop: ["intel", "graphical"]
```
- `clan machines list --tags intel` will output:
```
server
laptop
```
- `clan machines list --tags intel graphical` will output:
```
laptop
```
- `clan machines list --tags graphical` will output:
```
laptop
```
Query `target-host` for `clan machines install` from the nixos
configuration (deployment.json), if possible.
Remove `TARGET_HOST` option and introduce `--target-host` command
line flag.
This brings the installation subcommand in line with the update
subcommand - improving consistency and usability.
Closes: #2309
Add the `--target-host` flag to `clan machines create`.
This allows setting the `deploy.targetHost` for the newly created
machine via the inventory.
Closes: #2339
Change the log message tense from present to continuous for improved clarity.
The message "Add file" has been changed to "Adding file" to provide a clear
indication that the file addition is an ongoing process, not a
command (for the user).
Fix dynamic completions for `update-hardware-config` and it's flags.
Now `update-hardware-config` correctly suggests machines as well as for
example `--backend` suggests correctly their respective flags.
now that we call it "update" hardware configurration and we are heading
towards facter anyway, we don't need all the force overide logic. Just
allow this to be overwritten by default.
Migrating generated files from the facts subsystem to the vars subsystem is now possible.
HowTo:
1. declare `clan.core.vars.generators.<generator>.migrateFact = my_service` where `my_service` refers to a service from `clan.core.facts.services`
2. run `clan vers generate your_machine` or `clan machines update your_machine`
Vars will only be migrated for a generator if:
1. The facts service specified via `migrateFact` does exist
2. None of the vars to generate exist yet
3. All public var names exist in the public facts store
4. All secret var names exist in the secret fact store
If the migration is deemed possible, the generator script will not be executed. Instead the files from the public or secret facts store are read and stored into the corresponding vars store