Do not split the error messages and the error details, but rather use a
single string with proper placeholders. This avoids string puzzles.
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
This reworks the existing code to never have storage_backend = None,
instead carrying around a stub class, and resolving the actual
storage info when necessary. This makes the logic easier to follow.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Init a shared log instance in virtinst/logger.py, and use that
throughout the code base, so we aren't calling directly into
'logging'. This helps protect our logging output from being
cluttered with other library output, as happens with some
'requests' usage
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
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
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>
We cannot use os.statvfs() if the clone disk is a block device because
it gets stats about filesystem which in this case is "devtmpfs" mounted
as "/dev".
As a workaround we can seek to the end of the block device to get
the actual size.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1450908
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
If we convert to long the disk size, it may end up "0". The size is
in GiB so it can be "0.1".
Introduced by commit <fab55c128ff3f092039bb950ecfd337568d2a9a8>.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Both StorageCreator and StorageBackend should use the same logic
to detect the disk type. Now if the target is block device we will
detect it correctly.
The check for block type doesn't make sense because that code is
executed only for local cloning without Libvirt help which is the
only way how we can clone some block disks.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1420187
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
For gluster volumes, which have unique URLs for volume paths, this
makes selecting network volumes via the storagebrowser UI work.
Sheepdog and RBD volumes don't work yet