- 19 1月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
The storage driver helper functions that deal with parted were put into the disk backend code but are used commonly across.
-
- 18 1月, 2017 12 次提交
-
-
由 Boris Fiuczynski 提交于
fabric_name is one of many fc_host attributes in Linux that is optional and left to the low-level driver to decide if it is implemented. The zfcp device driver does not provide a fabric name for an fcp host. This patch removes the requirement for a fabric name by making it optional. Signed-off-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
-
由 Boris Fiuczynski 提交于
File open errors are prevented by a file exists check before virFileReadAll is called since all callers of the virReadFCHost method handle errors themselves based on the NULL return anyway. Also included is a minor spelling correction in a comment. Signed-off-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1346566 If libvirt_parthelper is erroneously told to append the partition separator 'p' onto the generated output for a disk pool using device mapper that has 'user_friendly_names' set to true, then the error recovery path will fail to find volume resulting in the pool being in an unusable state. So, augment the documentation to provide the better hint that the part_separator='yes' should be set when user_friendly_names are not being used. Additionally, once we're in the error path where the returned name doesn't match the expected partition name try to see if the reason is because the 'p' was erroneosly added. If so alter the about to be removed vol->target.path so that the DiskDeleteVol code can find the partition that was created and remove it.
-
由 John Ferlan 提交于
If the voldef type is VIR_STORAGE_VOL_BLOCK, then as long as the format is known, let's allow the probe to happen - gets a truer value and the same probe/update would be allowed for the same volume defined in a domain.
-
由 John Ferlan 提交于
For volume processing in virStorageBackendUpdateVolTargetInfo to get the capacity commit id 'a760ba3a' added the ability to probe a volume that didn't list a target format. Unfortunately, the code used the virStorageSource (e.g. target->type - virStorageType) rather than virStorageVolDef (e.g. vol->type - virStorageVolType) in order to make the comparison. As it turns out target->type for a volume is not filled in at all for a voldef as the code relies on vol->type. Ironically the result is that only VIR_STORAGE_VOL_BLOCK's would get their capacity updated. This patch will adjust the code to check the "vol->type" field instead as an argument. This way for a voldef, the correct comparison is made. Additionally for a backingStore, the 'type' field is never filled in; however, since we know that the provided path is a location at which the backing store can be accessed on the local filesystem thus just pass VIR_STORAGE_VOL_FILE in order to satisfy the adjusted voltype check. Whether it's a FILE or a BLOCK only matters if we're trying to get more data based on the target->format.
-
由 Peter Krempa 提交于
The tool is used for pool discovery. Since we call an external binary we don't really need to compile out the code that uses it. We can check whether it exists at runtime.
-
由 Peter Krempa 提交于
Similarly to the 'netfs' pool, return an error if the host does not have any volumes.
-
由 Peter Krempa 提交于
In commit 4090e153 we went back from reporting no errors if no storage pools were found on a given host to reporting a bad error. And only in cases when gluster was not installed. Report a less bad error in case there are no volumes. Also report the error when gluster is installed but no volumes were found, since virStorageBackendFindGlusterPoolSources would return success in that case.
-
由 Peter Krempa 提交于
Move all the worker code into the appropriate file. This will also allow testing of cpu hotplug.
-
由 Peter Krempa 提交于
Extract the call to qemuDomainSelectHotplugVcpuEntities outside of qemuDomainSetVcpusLive and decide whether to hotplug or unplug the entities specified by the cpumap using a boolean flag. This will allow to use qemuDomainSetVcpusLive in cases where we prepare the list of vcpus to enable or disable by other means.
-
由 Peter Krempa 提交于
For use in test cases it will be helpful to allow reformatting JSON strings. Add a wrapper on top of the parser and formatter to achieve this.
-
由 Peter Krempa 提交于
In cases where CPU hotplug is supported by qemu force the monitor to reject invalid or broken responses to 'query-cpus'. It's expected that the command returns usable data in such case.
-
- 17 1月, 2017 5 次提交
-
-
由 Erik Skultety 提交于
The problem is in the way how the list item is created prior to appending it to the transaction list - the @path argument is just a shallow copy instead of deep copy of the hostdev device's path. Unfortunately, the hostdev devices from which the @path is extracted, in order to add them into the transaction list, are only temporary and freed before the buildup of the qemu namespace, thus making the @path attribute in the transaction list NULL, causing 'permission denied' or 'double free' or 'unknown cause' errors. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1413773Signed-off-by: NErik Skultety <eskultet@redhat.com>
-
由 Erik Skultety 提交于
The problem is in the way how the list item is created prior to appending it to the transaction list - the @path attribute is just a shallow copy instead of deep copy of the hostdev device's path. Unfortunately, the hostdev devices from which the @path is extracted, in order to add them into the transaction list, are only temporary and freed before the buildup of the qemu namespace, thus making the @path attribute in the transaction list NULL, causing 'permission denied' or 'double free' or 'unknown cause' errors. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1413773Signed-off-by: NErik Skultety <eskultet@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Michal Privoznik 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1413922 While all the code that deals with qemu namespaces correctly detects whether we are running as root (and turn into NO-OP for qemu:///session) the actual unshare() call is not guarded with such check. Therefore any attempt to start a domain under qemu:///session shall fail as unshare() is reserved for root. The fix consists of moving unshare() call (for which we have a wrapper called virProcessSetupPrivateMountNS) into qemuDomainBuildNamespace() where the proper check is performed. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Tested-by: NRichard W.M. Jones <rjones@redhat.com>
-
由 Daniel P. Berrange 提交于
This reverts commit ae16c95f.
-
- 14 1月, 2017 3 次提交
-
-
由 John Ferlan 提交于
For case VIR_STORAGE_BLKID_PROBE_DIFFERENT, clean up the message to avoid using the virsh like --overwrite syntax. Additionally provide a different error message when not writing the label to avoid confusion.
-
由 John Ferlan 提交于
Rather than special casing the VIR_STORAGE_BLKID_PROBE_UNKNOWN after calling virStorageBackendBLKIDFindPart, just allow the switch statement handle setting ret = -2.
-
由 John Ferlan 提交于
If neither BLKID or PARTED is available and we're not writing, then just return 0 which allows the underlying storage pool to generate a failure. If both are unavailable and we're writing, then generate a more generic error message.
-
- 13 1月, 2017 5 次提交
-
-
由 Collin L. Walling 提交于
When running on s390 with a kernel that does not support cpu model checking and with a Qemu new enough to support query-cpu-model-expansion, the gathering of qemu capabilities will fail. Qemu responds to the query-cpu-model-expansion qmp command with an error because the needed kernel ioct does not exist. When this happens a guest cannot even be defined due to missing qemu capabilities data. This patch fixes the problem by silently ignoring generic errors stemming from calls to query-cpu-model-expansion. Reported-by: NFarhan Ali <alifm@linux.vnet.ibm.com> Signed-off-by: NCollin L. Walling <walling@linux.vnet.ibm.com> Signed-off-by: NJason J. Herne <jjherne@linux.vnet.ibm.com>
-
由 Michal Privoznik 提交于
When creating new /dev/* for qemu, we do chown() and copy ACLs to create the exact copy from the original /dev. I though that copying SELinux labels is not necessary as SELinux will chose the sane defaults. Surprisingly, it does not leaving namespace with the following labels: crw-rw-rw-. root root system_u:object_r:tmpfs_t:s0 random crw-------. root root system_u:object_r:tmpfs_t:s0 rtc0 drwxrwxrwt. root root system_u:object_r:tmpfs_t:s0 shm crw-rw-rw-. root root system_u:object_r:tmpfs_t:s0 urandom As a result, domain is unable to start: error: internal error: process exited while connecting to monitor: Error in GnuTLS initialization: Failed to acquire random data. qemu-kvm: cannot initialize crypto: Unable to initialize GNUTLS library: Failed to acquire random data. The solution is to copy the SELinux labels as well. Reported-by: NAndrea Bolognani <abologna@redhat.com> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Peter Krempa 提交于
The check is pointless since LVM is capable to detect it's own members and the check is flawed as it would fail if neither libblkid nor parted is installed. We don't really need to babysit LVM in this way. This reverts commit cb38b6cb.
-
由 Peter Krempa 提交于
The check does not work properly (crashes) with netfs filesystems and also checking that a device is not empty when attempting to mount a filesystem is not very usefull since the mount will fail anyways. As the code would improve only a very minor corner case I don't really see a reason to have this code at all. This code would also fail if libvirt is compiled without support for blkid and without parted. This reverts commit a11fd697.
-
由 Jim Fehlig 提交于
For HVM domains, pae is only set in libxl_domain_build_info when explicitly specified in the hypervisor <features> config. This is fine for i686 machines, but is incorrect behavior for x86_64 machines where pae must always be enabled. See the following discussion for additional details https://www.redhat.com/archives/libvir-list/2017-January/msg00254.html
-
- 12 1月, 2017 9 次提交
-
-
由 Jiri Denemark 提交于
The query-cpu-model-expansion is currently implemented for s390(x) only and all CPU properties it returns are booleans. However, x86 implementation will report more types of properties. Without making the code more tolerant older libvirt would fail to probe newer QEMU versions. Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Jiri Denemark 提交于
The qemuMonitorJSONParseCPUModelProperty function is a callback for virJSONValueObjectForeachKeyValue and is called for each key/value pair, thus it doesn't really make sense to check whether key is NULL. Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Michal Privoznik 提交于
So far the decision whether /dev/* entry is created in the qemu namespace is really simple: does the path starts with "/dev/"? This can be easily fooled by providing path like the following (for any considered device like disk, rng, chardev, ..): /dev/../var/lib/libvirt/images/disk.qcow2 Therefore, before making the decision the path should be canonicalized. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
So far the namespaces were turned on by default unconditionally. For all non-Linux platforms we provided stub functions that just ignored whatever namespaces setting there was in qemu.conf and returned 0 to indicate success. Moreover, we didn't really check if namespaces are available on the host kernel. This is suboptimal as we might have ignored user setting. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This is a simple wrapper over mount(). However, not every system out there is capable of moving a mount point. Therefore, instead of having to deal with this fact in all the places of our code we can have a simple wrapper and deal with this fact at just one place. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This is unnecessary wrapper around virProcessNamespaceAvailable(). Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Other drivers (like qemu) would like to know if the namespaces are available therefore it makes sense to move this function to a shared module. At the same time, this function had some default namespaces that are checked with every call. It is not necessary - let callers pass just those namespaces they are interested in. With the move the function is renamed to virProcessNamespaceAvailable. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Due to a copy-paste error, the debug message reads: Setting up disks It should have been: Setting up inputs. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Cédric Bosdonnat 提交于
List indexes where mixed up in the code looping over the USB input devices.
-
- 11 1月, 2017 5 次提交
-
-
由 Pino Toscano 提交于
When composing the path to the default known_hosts file (for the libssh and libssh2 drivers), do not check whether the configuration directory (determined by virGetUserConfigDirectory()) exists: both the drivers can handle non-existing files, and are able to create them (and their directories) in that case. This adds a small behaviour change: before, the key for an unknown host, and manually accepted, was saved only if the configuration directory existed -- a bit incoherent behaviour though.
-
由 Pino Toscano 提交于
If any of them is specified for the libssh and libssh2 drivers, there is no need to depend on checks based on other paths: in particular, a specified path for known_hosts was ignored if the local config directory could not be determined, and the path for keyfile was ignored if the home could not be determined. Instead, lazily determine and use these two paths only in case they are needed.
-
由 Pino Toscano 提交于
Make sure that virNetLibsshSessionSetHostKeyVerification accepts a NULL value for the path to the known_hosts file: - call ssh_options_set(SSH_OPTIONS_KNOWNHOSTS) anyway, using /dev/null, otherwise libssh will use its default path - do not call ssh_write_knownhost when no known hosts file was set Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1406457
-
由 Laine Stump 提交于
Surprisingly there was a virDomainPCIAddressReleaseAddr() function already, but it was completely unused. Since we don't reserve entire slots at once any more, there is no need to release entire slots either, so we just replace the single call to virDomainPCIAddressReleaseSlot() with a call to virDomainPCIAddressReleaseAddr() and remove the now unused function. The keen observer may be concerned that ...Addr() doesn't call virDomainPCIAddressValidate(), as ...Slot() did. But really the validation was pointless anyway - if the device hadn't been suitable to be connected at that address, it would have failed validation before every being reserved in the first place, so by definition it will pass validation when it is being unplugged. (And anyway, even if something "bad" happened and we managed to have a device incorrectly at the given address, we would still want to be able to free it up for use by a device that *did* validate properly).
-
由 Laine Stump 提交于
This function doesn't actually reserve an entire slot any more, it reserves a single PCI address, so this name is more appropriate.
-