Commit Graph

1281 Commits

Author SHA1 Message Date
Cole Robinson 39a7cbbad7 domain.numatune: Drop cpuset validation
This type of validation should really be done at the libvirt level,
particularly for a non-mandatory feature like cpuset. Otherwise
it's just more code for us to test which will rarely be hit by users
2018-06-05 14:27:29 -04:00
Cole Robinson 4370fd7c6c domain.numatune: Remove MEMORY_MODES
It doesn't have any user
2018-06-05 14:27:29 -04:00
Cole Robinson 192da16f6b domain.numatune: Remove cpuset_str_to_tuple
Left over from when we had vcpu pinning in the UI, not used anymore
2018-06-05 14:27:29 -04:00
Pavel Hrdina 5b2774b27a numatune: fix validate_cpuset regexp
Character '-' needs to be escaped in a set of characters.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1566818

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2018-05-22 19:05:43 +02:00
Cole Robinson 65b33a1377 urldetect: Fix some pylint 2018-05-16 19:31:50 -04:00
Charles Arnold 3fd538ba0f Make SuseDistro a base class for other Suse classes
Remove the PRETTY_NAME for SuseDistro so it isn't included in the allstores.

Add appropriate identifiers to the other Suse classes so that they
are included in allstores.

If cache.treeinfo_family_regex fails to find the family but there is
a .treeinfo file, self.cache.suse_content is set to -1 when a failed
attempt is made to find a content file. Check for -1 in the __init__
function so we will pull the kernel from the location in .treeinfo file.

Signed-off-by: Charles Arnold <carnold@suse.com>
2018-05-16 19:25:32 -04:00
Charles Arnold 26b8bb0f0b Use wildcard to detect 'openSUSE Leap'.
Old versions of the string from the content file end with just "openSUSE".
openSUSE 42.x has a string of "openSUSE Leap ". Cleanup extra whitespace
for old versions of openSUSE.

Signed-off-by: Charles Arnold <carnold@suse.com>
2018-05-16 19:25:32 -04:00
Charles Arnold e6fd723c46 Use split_version method to get version and update
The while loop that follows is similar to rhel code but because the osinfo-db
short id for sles doesn't contain a '.0' for first time releases (eg, sles11,
sles12) we check sle with no update and don't add a '.0' to the string.

Signed-off-by: Charles Arnold <carnold@suse.com>
2018-05-16 19:25:32 -04:00
Charles Arnold ab7209cb6c Create shared function _split_version from _split_rhel_version
This new function will be used for for rhel and sles detection.

Signed-off-by: Charles Arnold <carnold@suse.com>
2018-05-16 19:25:32 -04:00
Cole Robinson ffab20782f connection: Handle more openauth cred types
Like ECHOPROMPT which is needed for libssh hosts file management.
Sync the two implementations a bit
2018-05-03 06:16:28 -04:00
Daniel P. Berrangé d52d9885c8 Redesign OS distro selection UI to be faster to use
The current OS distro selection UI is fairly cumbersome to use. First
you need to decide on a variant, then decide a distro and then look for
the version you want. The list is filtered by default so only a subset
of OS are displayed. So for less common distros you'll then need to
start again and tell it to show all OS to try to find the one you want.

The core problem is that we have an incredibly large list and want to
make it easy for the user to find a specific entry. The modern UI
paradigm for this problem is to provide interactive search with
live updated results. The current UI does provide an interactive search
facility on the OS version results, but you still have to first select a
variant to be able to use the search which is unhelpful.

This patch attempts to better apply the search UI design to the OS selection
problem. We get rid of the notion of variants, distros and version, and
provide a single text entry box in which the user can type a few letters
of the OS name. As they type, a popover displays the matching results
filtered on OS name. By default end of life OS will be hidden, so in
general there will only be a small handful of results left after just
typing a few characters. This makes it very quick to find and select the
desired OS, without needing to provide a mutli-step navigation hierarchy.

https://bugzilla.redhat.com/show_bug.cgi?id=1464306

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

(crobinso: fix some pylint)
2018-05-01 11:31:39 -04:00
Daniel P. Berrangé b1460ba065 Chagne most URIs to use https:// instead of http://
All URLs were checked to see if they supported https://, those which did
were converted.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-30 13:35:39 -04:00
Cole Robinson 056305d29b addhardware: Make combo init/populating more consistent
* Use the _build_combo helper more
* Un-static methods that don't need it
* Use pretty labels more
2018-04-25 08:04:50 -04:00
Cole Robinson fd2fe1249d graphics: Default to unset keymap
qemu and all related hypervisors (xen, vz) haven't needed this in
the common case for a very long time, so make keymap=None the default
2018-04-24 14:11:30 -04:00
Cole Robinson a33ac92040 cli: Fix --boot smbios_mode=sysinfo (bz 1570549)
Not sure how this was expected to work, just make it do the simple
thing and set the value in the XML. Add a test case for it
2018-04-24 12:32:18 -04:00
Mark Hamzy dadc978275 urlfetcher: Add support for FTP authentication
If --location is an ftp url with a username and password
then virt-install fails to install with an error:
ERROR Error validating install location: Opening URL u failed: 530 Login
incorrect..
2018-04-24 12:14:00 -04:00
Cole Robinson d81a9a0bc0 urldetect: suse tumbleweed now has .treeinfo file 2018-04-24 11:56:02 -04:00
Cole Robinson f00601fade urldetect: don't overwrite self.arch with suse content arch
They are different, so label it as tree_arch
2018-04-24 11:34:57 -04:00
Cole Robinson 3b74d3036a urldetect: Split out treeinfo logic from GenericTreeInfo
SUSE distros will be growing treeinfo support soon and trying to handle
this logic through class inheritance is difficult, so separate the
logic into its own function
2018-04-24 11:34:57 -04:00
Cole Robinson a9c5890d72 urldetect: Drop a bunch of RH version integer handling
It's not really required
2018-04-24 11:34:57 -04:00
Cole Robinson 568841835d urldetect: Standardize _detect_version naming
This is the hook that subclasses use to save a detect os_variant value
2018-04-24 11:34:53 -04:00
Cole Robinson dc3e157471 urldetect: Clean up opensuse variant detection
Make the logic easier to follow
2018-04-24 11:33:12 -04:00
Cole Robinson cba909d593 urldetect: Drop unused uses_treeinfo 2018-04-24 11:33:12 -04:00
Eduardo Kienetz ef8398268b Fix URI parsing when username contains @ sign
On a domain-joined host the URI wasn't getting properly parsed due to the username containing an @ sign.

Before:
DEBUG (sshtunnels:263) ['ssh', 'ssh', '-l', 'eduardok', 'ad.mydomain.com@kvmhost1', 'sh -c', '\'nc -q 2>&1 | grep "requires an argument" >/dev/null;if [ $? -eq 0 ] ; then   CMD="nc -q 0 127.0.0.1 5900";else   CMD="nc 127.0.0.1 5900";fi;eval "$CMD";\'']

After:
DEBUG (sshtunnels:263) ['ssh', 'ssh', '-l', 'eduardok@ad.mydomain.com', 'kvmhost1', 'sh -c', '\'nc -q 2>&1 | grep "requires an argument" >/dev/null;if [ $? -eq 0 ] ; then   CMD="nc -q 0 127.0.0.1 5900";else   CMD="nc 127.0.0.1 5900";fi;eval "$CMD";\'']
2018-04-17 15:14:44 -04:00
Daniel P. Berrangé 48e32b429d Fix copyright header to specify GPLv2 or later, not GPLv2 only.
The copyright headers in every file were chjanged in this previous commit

  commit b6dcee8eb7
  Author: Cole Robinson <crobinso@redhat.com>
  Date:   Tue Mar 20 15:00:02 2018 -0400

    Use consistent and minimal license header for every file

Where before this they said "

  "either version 2 of the License, or (at your option) any later version."

Now they just say

  "GNU GPLv2"

This fixes it to say "GNU GPLv2 or later" again.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-04 16:51:37 -04:00
Charles Arnold 0f2e0a49f9 virtinst: Trivial spelling fix
Trivial spelling fix.

Signed-off-by: Charles Arnold <carnold@suse.com>
2018-04-04 16:49:23 -04:00
Cole Robinson 96645fe3ed urldetect: Remove some unused SUSE bits
Charles confirmed for me that SUMMARY and arch fallback handling
doesn't have any still relevant uses, so we can drop them
2018-04-04 16:46:29 -04:00
Cole Robinson 45c7a0657f urlfetcher: Simplify urllib import 2018-04-03 11:38:37 -04:00
Cole Robinson 12996dd458 domcapabilities: Document class layout a bit
It's a bit weird due to the repetitive nature of domainCapabilities
XML layout
2018-04-03 11:07:18 -04:00
Charles Arnold fd6a815440 virtinst: compare host and domain cpu models
Lookup the domain capabilities CPU model and compare with
the host capabilities CPU model and if they are not equal
set the guest's CPU model to None.

(crobinso: compare against 'custom' list not 'host-model', move
 to separate function)
2018-04-03 10:57:49 -04:00
Charles Arnold d15b78ab0d virtinst: read CPU model from domain capabilities
Add functionality to acquire the CPU model from the
libvirt domain capabilities. This is used to compare
with the host CPU model.

(crobinso: add test coverage, rework domcaps layout a bit)
2018-04-03 10:57:15 -04:00
Cole Robinson 76c40d6f97 urldetect: Track SUSE regexs in their Distro classes 2018-04-02 18:46:24 -04:00
Cole Robinson 467425fad1 urldetect: Move SUSE content file handling into its own class
Try to untangle the interdependencies and not recalculate everything
for every suse distro
2018-04-02 18:33:07 -04:00
Cole Robinson fb1b26c081 urldetect: Drop RedHatDistro baseclass
Just fold the minimal logic into GenericTreeinfo, since only
RH distros use treeinfo so it's basically the same thing
2018-04-02 17:18:17 -04:00
Cole Robinson eafdaf8b48 tests: test_urls: Add urldetect kernel arg validation 2018-04-02 17:15:05 -04:00
Cole Robinson fb9b82e02d urldetect: Clean up Fedora version checking a bit 2018-04-02 16:47:21 -04:00
Cole Robinson ad13c57dc5 urlfetch: Formalize the failed hostname check
This heuristic is only valid for http connections, everything
else will fail way earlier in the process
2018-03-29 19:45:33 -04:00
Cole Robinson 70820790ec urlfetcher: Use persistent HTTP session
This shaves 20 seconds off the URL test suite, so probably helps
regular users too :)
2018-03-29 19:45:33 -04:00
Cole Robinson 5055d7bd19 urlfetcher: Clean up RHEL version parsing/handling
Drop SLDistro entirely because it adds nothing, just make it an
alias of Centos. Drop some old RHEL version logic. Tweak test cases
2018-03-29 19:45:33 -04:00
Cole Robinson 9dccd5d52d urlfetch: Add caching layer
Add an external caching layer that handles tracking all data we
need as part of distro URL detection that is also needed during
distro __init__. This way we can make is_valid() static and quick,
and move all the variant hackery cleary into __init__ routines.
This makes the code logic much easier to follow
2018-03-29 19:45:33 -04:00
Cole Robinson b9e72b8609 urldetect: Move treeinfo media checking into Treeinfo class
Rather than in the base Distro class. Simplifies things a bit
2018-03-29 16:23:57 -04:00
Cole Robinson 7dacc8502e urldetect: Move distro checking out of isValidStore
We have a big mix of Distro state checking across __init__,
extrnal treeinfo/content scraping, and isValidStore(). This removes
the latter category
2018-03-29 16:23:57 -04:00
Cole Robinson 54066e1315 urldetect: Drop ubuntu _is_tree_iso
It's not wired up to anything which looks like it got dropped in
an older refactoring. I can't find from the mailing list what
media case this was required for, and my local test suite doesn't
need it, so it might not even be required anymore.
2018-03-29 16:23:57 -04:00
Cole Robinson 1f8b712508 urldetect: Remove the _xen_kernel_paths distinction
Just have one kernel path list, and if type=="xen" and we think
xen might have its own kernel path, prepend that to the list of
pairs to check.

Nowadays xen kernel == hvm kernel for new distros, so we shouldn't
force having a specific xen whitelist
2018-03-29 16:23:57 -04:00
Cole Robinson fddb1de0f4 urldetect: s/name/PRETTY_NAME/g
And use class name in logging instead of the pretty name
2018-03-29 16:23:57 -04:00
Cole Robinson 5aedc0aff7 urldetect: Drop GenericDistro, non-treeinfo redhat bits
non-treeinfo redhat only applies to pre RHEL5.4 and very old
Fedora. It's not worth it anymore to slow down all URL lookups
and maintain code complexity to handle such long out of date
distros.

GenericDistro doesn't actually apply to any public trees that I
can find, except for some with TreeInfo. So turn it into
GenericTreeinfoDistro. If random URL trees want to work with
virt-install, add a treeinfo file
2018-03-29 16:23:57 -04:00
Cole Robinson a8522032eb virtinst: Split out urldetect.py from urlfetcher.py
urldetect.py has all the distro metadata and parsing logic,
urlfetcher.py has the http/ftp/iso/etc. fetching logic
2018-03-28 18:46:07 -04:00
Cole Robinson 6e2e18ccf8 urlfetcher: Split up SUSE content parsing a bit
Add comments for what each parsed line actually looks like
2018-03-28 17:58:11 -04:00
Cole Robinson 01b665a6c3 urlfetcher: Throw error if iso _grabber file doesn't exist
isoinfo won't error here at least for me on Fedora 28, so
use hasFile to confirm
2018-03-28 14:02:23 -04:00
Cole Robinson eee1caa946 domain: Drop most device list wrappers
There's lots of hacks stuffed into the domain device lists. Formalize
some of it, move some of the specific stuff to details.py, and drop
a lot of the needless API wrappers
2018-03-21 16:10:45 -04:00