Commit Graph

6450 Commits

Author SHA1 Message Date
Cole Robinson
12440b00c1 osdict: return _OsResources to callers
Use the class helper routines to save some tedious dict management
2019-05-12 17:25:47 -04:00
Cole Robinson
e76e350a8d osdict: Add _OsResources helper class
It's just an implementation detail for now, but we will use it to
simplify callers interactions with resources data
2019-05-12 17:25:47 -04:00
Cole Robinson
efa8c6f2c0 osdict: Don't limit qemu TCG to vcpus=1
Modern qemu has multithread TCG support for all the arches we
support, so don't limit things
2019-05-12 17:25:47 -04:00
Cole Robinson
4238e3f7d7 osdict: Fix get_recommended_resources minimum logic
If an OS has a <minimum> resources section, and a <recommended>
resources section, but there's a field in the former that isn't in
the latter, currently we throw out the former field entirely. This
is the case for n-cpus for a few OS. Instead we should be using
the <minimum> ncpus value. This changes the default <vcpu> value
for a quite a few test cases.
2019-05-12 17:25:47 -04:00
Cole Robinson
9199c2d157 osdict: Remove "cpus" resources tracking
It's for CPU speed but we don't use it anywhere
2019-05-12 17:25:47 -04:00
Cole Robinson
135b97637e guest: Rename memory properties to match XML values
Right now we have:

* memory -> ./currentMemory
* maxmem -> ./memory
* hotplugmaxmem -> ./maxMemory

Which is just a mess to know what we might be really setting behind
the scenes. Rename the properties to match the XML element name, and
adjust all users to the new names. cli options aren't changed though
2019-05-12 17:25:47 -04:00
Cole Robinson
97d92794bc cli: Make parser aliases a per-class dictionary
Rather than associate them per virt argument. It's less of a clean
fit this way, but I think it will make it less likely that aliases
are cargo culted around and added unnecessarily
2019-05-12 17:25:47 -04:00
Cole Robinson
80947bd0c5 cli: --memdev: Use cli names with '.', not underscore
And add back compat aliases so we don't break the command line
2019-05-12 17:25:47 -04:00
Cole Robinson
5f4b781580 cli: Tweak introspection sorting a bit
- Put clearxml at the very top, because it's a bit special and I
  don't like it mixed in with the interesting settings
- Put address.X at the top, after clearxml, because there's a lot of
  settings and I'd like to keep them away from the users' visual field
2019-05-12 17:22:13 -04:00
Cole Robinson
a274cc97cd tests: clitest: Add explicit coverage for virt-xml unsetting
For example, '--edit --disk path=' can be used to unset a disk path.
Internally we map empty string to None
2019-05-12 17:22:13 -04:00
Cole Robinson
76d5113941 xmlbuilder: Make is_* handling more future proof
If libvirt changes XML handling in the future, we shouldn't restrict
what we return to the user with the is_yesno/is_onoff convertors
2019-05-12 17:22:13 -04:00
Cole Robinson
d8ed9a3678 cli: Fix --serial=help quadruple output
_init_class was being called multiple times
2019-05-12 17:22:13 -04:00
Cole Robinson
4142b73c71 cli: Fix introspection for non-virt options
Like --location and --check
2019-05-12 17:22:13 -04:00
Cole Robinson
2a30a5f0bf cli: make parse() guest argument optional
Because the non-guest parsers don't need it.
2019-05-12 17:22:13 -04:00
Cole Robinson
a7c620549a cli: Consistently name parsers as ParserX 2019-05-12 17:22:13 -04:00
Cole Robinson
c97d6bfd41 cli: Drop parse is_novalue
This isn't a pattern we should propagate. Open code the one instance
that depends on it
2019-05-12 17:22:13 -04:00
Cole Robinson
d1e1ee2770 cli: Drop parse is_list
The only place we were using it is for some funky --cpu back compat,
which we can open code easily enough
2019-05-12 17:22:13 -04:00
Cole Robinson
0575d60744 cli: Make propname mandatory again
Turns out propname is used for virt-xml device matching, even if we
have a cb, so it's useful to specify if the cliname truly maps to
a single propname. Add a programming error exception to try and
explain this situation so it doesn't slip in by accident.
2019-05-12 17:22:13 -04:00
Cole Robinson
b0a629ca72 cli: Make more usage of set_prop_path
It's more future proof
2019-05-12 17:22:13 -04:00
Cole Robinson
cc1d34edaf cli: Drop exec() and eval() usage
We have helpers that do manually do what we were using it for. Gives
a nice speedup too
2019-05-12 17:22:13 -04:00
Cole Robinson
4ecc4930dd cli: Rename __init_class__ to _init_class
Seems like a bad idea to define our own double underscore function,
incase a future python version wants to use that name.

Tweak some minor InitClass details while we are in the area
2019-05-10 14:02:44 -04:00
Cole Robinson
3bd7c7c55b cli: Clarify guest_propname and list_propname
There's conflicting 'propname' naming now, so rename some usage
to match
2019-05-10 14:02:44 -04:00
Cole Robinson
764bf1ad29 xmlapi: rename and move get_prop/set_prop to util
Change to set_prop_path and get_prop_path to make it a bit more
clear, and move out of xmlapi since it's not xml specific
2019-05-10 14:02:44 -04:00
Cole Robinson
0d90bbd5d5 cli: Drop support_cb
This is some extra validation to catch some char opt combos that
libvirt doesn't explicitly reject. It's not really interesting and
dropping it simplifies the cli parsing
2019-05-10 14:02:44 -04:00
Cole Robinson
e0d05cc79f cli: Rename attrname to propname
propname always refers to a virtinst object property/XMLProperty,
change the name to match
2019-05-10 14:02:44 -04:00
Cole Robinson
766dcc4e67 cli: Drop the dict() handling for parsedata
Require passing in a Class. Let's not complicate the cli machinery
any more than it has to be
2019-05-10 14:02:44 -04:00
Cole Robinson
7ec4c48268 cli: Swap add_arg cliname and attrname argument order
Every add_arg call needs a cliname (the option name on the command
line), but not all calls need an attrname (the propery/method name
of the virtinst API object) because they rely on a callback for
less simple functionality.

So swap the ordering so that cliname is the first argument. Drop
redundant attrname=None arguments and validate that either attrname
or cb=X is passed.
2019-05-10 11:36:23 -04:00
Cole Robinson
274d686252 host: Ellipsize long net/pool object names
https://bugzilla.redhat.com/show_bug.cgi?id=1698088#c5

Reported-by: Martin Kolman <mkolman@redhat.com>
2019-04-18 15:31:14 -04:00
Pino Toscano
23b87295fc details: avoid extra check when showing application names
The current code already prefers the "display name" over the "name" of
each application; hence, use "name" only if the "display name" is not
available.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-18 13:44:34 -04:00
Pino Toscano
4f79c22bf4 inspection: switch to g.inspect_list_applications2
Use the non-deprecated g.inspect_list_applications2() call to list the
installed applications.  It is available since libguestfs >= 1.20, which
is lower than the current requirement (i.e. 1.22).

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-18 13:44:34 -04:00
Pino Toscano
83f1544d32 inspection: create and use a separate vmmInspectionApplication
Instead of passing around the raw results of
g.inspect_list_applications(), create an helper vmmInspectionApplication
object with the data of an inspected application that we use.  This is
done for different reasons:
- when using the data, it is easier to use member variables instead of
  looking up values in a dictionary
- we keep only the data needed, slightly lowering the memory/objects
  used for the inspected applications
- it will be easier to switch from g.inspect_list_applications() to
  g.inspect_list_applications2() without changing code outside the
  inspection code

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-18 13:44:34 -04:00
Pino Toscano
a9277d22b5 spec: suggest python3-libguestfs
virt-manager can optionally use libguestfs for inspecting the guests, so
at least add it as suggestion.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Pino Toscano
b8b8aa5774 Document the optional libguestfs usage.
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Pino Toscano
6a5b06b8ed inspection: save the package format
Save the package format of a guest as part of its inspection data, so
later on it can be used to tweak other results (like the version of
installed packages).

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Pino Toscano
ceed47558c inspection: fix check of mounted filesystems
The old code basically always set filesystems_mounted to True, even when
no filesystems were mounted successfully, unless
g.inspect_get_mountpoints() failed (very unlikely).

Instead, set it when at least one filesystem is mounted; considering
that the first filesystem to be mounted is usually /, then failing to
mount it will usually prevent the mounting of the others.  In any case,
we can try to extract data even when only / is mounted, which can work
depending on the mount points of the guest.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Pino Toscano
ac2949bab3 inspection: simplify mount points sort/mount
Rely on the Python 3 sorting facilities to sort the mount points using
a key based on the length of the mount point, doing the same effect as
the old compare function.

As side change required by this, enable python_return_dict on the
GuestFS handle, so we get proper hashes instead of lists.  This requires
libguestfs 1.22, which is 6 years old by now (and other virt-manager
requires are way more recent than that).

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Pino Toscano
cf9f4a73f4 inspection: remove extra try/catch block
This block only catches failures in g.inspect_get_mountpoints(), as the
g.mount_ro() calls are already within own try/catch blocks.  Considering
that:
- g.inspect_get_mountpoints() is a simple API to query one of the
  results of the inspection, it is very unlikely that it fails
- the whole _inspect_vm function (that contains the inspection code) is
  already run within an own try/catch block, so even a failure in
  g.inspect_get_mountpoints() will not crash virt-manager
then just remove this extra try/catch block.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-04-17 19:11:12 -04:00
Cole Robinson
96beae9ba3 tests: Don't use bogus net model names
Libvirt is rejecting them now
2019-04-17 10:07:35 -04:00
Cole Robinson
3980f79ab8 guest: Fix pylint 'unneeded-not' 2019-04-14 20:49:52 -04:00
Cole Robinson
03fe68dedd addhardware: separate device building and explicit validation
Have two clear paths. This will be useful when we add direct XML
editing UI
2019-04-14 20:48:36 -04:00
Cole Robinson
550e8f243c Fix pylint 'Unnecessary pass statement' 2019-04-14 20:22:56 -04:00
Cole Robinson
cda9525a87 netlist: separate device building and explicit validation
Have two clear paths. This will be useful when we add direct XML
editing UI
2019-04-14 20:22:02 -04:00
Cole Robinson
11ffe2e569 addstorage: separate device building and explicit validation
Have two clear paths. This will be useful when we add direct XML
editing UI
2019-04-14 20:22:02 -04:00
Cole Robinson
eb870e4658 addstorage: Drop prompting to start default pool
Just let virtinst try and start it for us, and fail if it's the
startup fails. Prompting about this doesn't really buy us anything
2019-04-14 20:22:02 -04:00
Cole Robinson
1cc2a0ae8b storage: Add ensure_pool_is_running
We pretty much require a referenced storage pool to be running if
it's intended to be used as a virt-install or virt-manager requested
disk. So add a helper to start a pool if needed and optionally refresh
it
2019-04-14 20:22:02 -04:00
Cole Robinson
202ac53831 addhardware: Drop self._dev
Return the generated virtinst device up through the call chain.
Makes the flow a lot more sensible, and will be needed for separating
device building from extra UI validation/prompting
2019-04-14 20:22:02 -04:00
Cole Robinson
5a90b669ff addhardware: Use vmmHost style error page paradigm
Rather than making the error page one of the hardware pages which is
the wrong layering approach
2019-04-14 18:24:35 -04:00
Cole Robinson
c3ea2d3119 host: Don't try to confirm changes on window close
It's a bit of a pain to get right, so only do it on net/pool list
change
2019-04-14 18:24:04 -04:00
Cole Robinson
f7ba2f2f99 error: Add helper confirm_unapplied_changes
For the common dialog we use to confirm changes
2019-04-14 18:24:04 -04:00
Cole Robinson
f246895a66 storagelist: Modernize code style
* Have clear UI callbacks
* Group functions
* Simplify active_edits
* Remove no longer needed _reset_pool_state
* Clean up selection callbacks
2019-04-14 18:24:04 -04:00