IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
Instead we provide a meta class that can be used to customize the
subclass creation. It's similar to '__init_subclass__' (see
https://www.python.org/dev/peps/pep-0487/).
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
...since it meets the common naming scheme for VirtCLIParsers.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Add a classmethod for registering the parser to each
VirtCLIParser. This allows us to register only those parsers that were
actually needed. Before this patch, each parser was registered when
the module 'virtinst.cli' was loaded. Now the parser will only be
registered if the corresponding CLI option is added,
e.g. 'add_gfx_option(...)' or the register method is called
explicitly.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Make sure that a parser class can only be registered once.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
...since it's used at least at three places.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Let's create a new method that defaults to libosinfo's recommended
resources (when they're available) for memory and vcpus.
It'll help us to avoid erroring out whenever virt-install is called
without specifying the memory amount, as the recommended amount of
memory would come from libosinfo.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
VSOCK sockets allow communication between virtual machines and the host they are
running on.
This patch adds vsock device support along with clitest for the new properties.
Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
With this patchset, the sub options completion is available. ex:
$ virt-install --disk <TAB><TAB>
...
bus= cache= format= path= serial= size=
...
$ virt-install --disk path=test.qcow2,cache=none,<TAB><TAB>
...
bus= format= serial= size=
...
$ virt-install --disk bu<TAB><TAB>
Then the sub option 'bus' will be auto completed with a '='
$ virt-install --disk bus=
Signed-off-by: Lin Ma <lma@suse.com>
The patch adds the generic completer and validator, Further patches use
them as completer/validator. The completer won't add already specified
options to the list.
Signed-off-by: Lin Ma <lma@suse.com>
As some enterprise distros adopted the "unknown" approach in osinfo-db,
and those usually support different versions at the same time, there may
be different "unknown" entries (like rhel-unknown, rhel-8-unknown,
rhel-7-unknown, and so on) for the very same distro.
This situation can easily happen when some ISO matches, for exmaple,
"rhel-unknown" and then the latest one selected would be
"rhel-8-unknown".
In order to avoid this situation from happening, let's just ignore the
"unknown" entries when calling latest_regex().
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Due to OpenSUSE's decision of versioning their OS as 11.x, 12.x, 42.x,
15.x, we have to add a specific check in latest_regex() in order to make
sure we skip the 42.x series in the sorted list of OSes when returning
the OS name to the user.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Currently osinfo-db has "unknown" entries for fedora, opensuse and
asianux. Considering this list may grow even more at some point, let's
just make the check more generic and use it for all of them instead of
keeping it for fedora only.
Changes have also been done in urldetect and tests_url, as those also
used latest_fedora_version().
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Arguments to logging needs to be individual args, otherwise it
fails with "not enough arguments for format string"
Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
E501: line too long (82 > 79 characters)
E305: expected 2 blank lines after end of function or class
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
the proper kernel/initrd pair for booting from an http server is found in install/netboot/... on a mounted ubuntu iso.
this last worked in v1.4.2
Discussion: https://github.com/virt-manager/virt-manager/pull/34
(crobinso: add the fetcher.is_iso handling and add a comment)
Simplifies the code and gives us actual command line coverage,
but requires a small hack to work correctly for modern
centos/fedora test cases, inst.repo from --location takes
precedence over our kickstart URL
There's been various discussions about changing the x86 default
from 'pc' to 'q35' over the years, but it's unlikely to happen
at the qemu or libvirt level for compatibility reasons. So
let's start using it for new enough OS that support it.
This makes it easier for people to change install media afterwards
if they want:
https://bugzilla.redhat.com/show_bug.cgi?id=1508377
But also this makes it more clear that if users want to use virtio-win,
they need to add an additional CDROM and not try to reuse the install
CDROM device
Now we have only one Installer class, and callers don't need to
worry about choosing a particular class type depending on their
needs, just pass cdrom vs. location to the installer init and
we figure out everything behind the scenes.
Besides simplifying the callers this makes the control flow a
lot easier to follow whether looking at InstallerTreeMedia or
Installer classes
When creating a new VM and selecting a volume from a network-based
storage pool such as rbd, the volume is not recognized as network-based
and is treated as a volume from a directory storage pool.
This patch adds a method to check if the volume's path points to a
network-based volume, then uses the method to avoid actions like
setting unix file permissions on the volume, which doesn't make
sense for a network-based volume.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
(crobinso: rebase, tweak lookup logic)
This just conceptually makes more sense to keep it all in
one file, and DeviceDisk is the API for the rest of the code
to deal with any host storage state
virt-install -n blah -r 1024 --vcpu=1 --disk=/root/vm/blah.qcow2,size=10\
--network=bridge:br-public --pxe --boot=network,rebootTimeout=3
By default, in case of (first) pxe boot failure the VM will simply
stop trying.
By adding the above, VM will re-try pxe boot. ( useful when DHCP not
replys on first attempt.
Libvirt support it and VM XML will look as follow : ( 'bios rebootTimeout'
will be created under OS section. )
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.5.0'>hvm</type>
<boot dev='network'/>
<bios rebootTimeout='3'/>
</os>
(crobinso: fix it, add test case)
This switch says: if we detect a rhel host, use special version
checks that match rhel backports. This pattern sucks. The way
forward is to have libvirt advertise the bits that are supported,
through domcapabilities. Then virt-manager/virtinst can react
as appropriate.
This was needed at one point to make our logging not throw
exceptions when passed non-ascii text, like logging translated
errors. pretty sure python 3 and probably python2.7 fixed all
those issues, so lets drop it
At some point in the future it could be a good idea to drop the _aliases
mapping altogether; it will be hard to do so, in case the users are not
informed that they are using a deprecated ID.
(crobinso: Tweak format and message)
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Allow to set some memory backing options, ex:
--memorybacking access_mode=shared,source_type=anonymous
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This is just a big nasty commit.
Turn the OS inspection page into an always available page that
shows the libosinfo name from the domain metadata XML. Use oslist.py
and have it absorb more of the common behavior needed by create.py
and details.py. Add UI tests for it all
libvirt will use rtl8139, but the qemu default changed a while
ago to e1000, and libvirt has diverged. e1000 is more modern and
considered the better default here, so use it
Don't rely on libvirt's default. This makes any XML changes more
explicit, and can help other parts of the code that may depend on
a machine type being encoded
Rather than forcing API users to go through the capabilities APIs.
This lets us simplify things in virt-install quite a bit, and is
needed for smarter machine type defaults
I know openstack uses tcp consoles but for end users I've never
really heard about it. RHEL compiles out udp as well. I'm fine telling
users to go to the cli and use virt-xml for this use case.
Use this opportunity to drop a lot of code that only simplified the
case when there are tons of char options we need to consider
This changes all the callers to invoke start_install directly on the
Installer object. We still stash the installer instance inside the
guest object in create.py, just for simplicity
Really it makes more conceptual sense that the Installer class
should handle start_install and friends, but that's difficult
because the layering is all mixed up.
Start to untangle it by moving all those routines to the Installer
class and adding wrapper APIs to Guest to maintain compat for now.
Separate the install from postinstall config case more clearly,
so the installer is only ever altering bits for the install-time
case, and Guest handles actually writing postinstall bits
It was always very hard to follow the logic chain with default_*
settings, having it explicit in set_defaults() function calls is
much easier to follow and more flexible for the future
And move all the Guest logic there.
We need to add an xmlbuilder helper _prop_is_unset to be able to
determine if a bool property is unset, in our quest to remove
default_* xmlbuilder bits
We shouldn't concern ourselves with whether the OS supports qemu_ga
out of the box, just set up the channel regardless, as long as
virtio-serial is supported.
This adds the channel for some aarch64 cases which didn't have OS
specified, but that's desired IMO
- Remove anything for less than qemu 0.12 or libvirt 0.10, basically
rhel6 vintage stuff
- Open code some simple checks
- Remove some that are only used for unnecessary error reporting
This case will still work, but be a bit slower, which is fine. Nowadays
-M virt is much better for virt usage and nearly everyone is using that,
so save us the complication. This was really only useful when
bootstrapping arm virt support
Let libvirt/libxl fill it in. This was required for rhel5 xen at
least, but we don't support that anymore and modern libvirt seems
to do the right thing and fill it in for us.