- 21 2月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
Add APIs that allow to dynamically register driver backends so that the list of available drivers does not need to be known during compile time. This will allow us to modularize the storage driver on runtime.
-
- 19 2月, 2017 3 次提交
-
-
由 John Ferlan 提交于
Create a virscsihost.c and place the functions there. That removes the last #ifdef __linux__ from virutil.c. Take the opporunity to also change the function names and in one case the parameters slightly
-
由 John Ferlan 提交于
Use the new virNodeDeviceGetParentName instead. Modify the callers to build the node device scsi_host# name string in order to call the new function so that proper lookup occurs.
-
由 John Ferlan 提交于
Rather than have them mixed in with the virutil apis, create a separate virvhba.c module and move the vHBA related calls into there. Soon there will be more added. Also modify the names of the functions and some arguments to be more indicative of what is really happening. Adjust the callers respectively. While I was changing fchosttest, rather than the non-descriptive names test1...test6, rename them to match what the test is doing.
-
- 11 2月, 2017 2 次提交
-
-
由 Erik Skultety 提交于
Right now, we use simple string comparison both on the source paths (mount's output vs pool's source) and the target (mount's mnt_dir vs pool's target). The problem are symlinks and mount indeed returns symlinks in its output, e.g. /dev/mappper/lvm_symlink. The same goes for the pool's source/target, so in order to successfully compare these two replace plain string comparison with virFileComparePaths which will resolve all symlinks and canonicalize the paths prior to comparison. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1417203Signed-off-by: NErik Skultety <eskultet@redhat.com>
-
由 Erik Skultety 提交于
When FS pool's source is already mounted on the target location instead of just simply marking the pool as active, thus starting it we fail with an error stating that the source is indeed already mounted on the target. Signed-off-by: NErik Skultety <eskultet@redhat.com>
-
- 27 1月, 2017 2 次提交
-
-
由 Olga Krishtal 提交于
Needed storage_util.h - missed while merging '5f07c3c0' with commit id '479a2f16'. Signed-off-by: NOlga Krishtal <okrishtal@virtuozzo.com>
-
由 John Ferlan 提交于
Commit id '5f07c3c0' broke the freebsd build in the libvirt CI test environment because the UMOUNT was not defined unless WITH_STORAGE_FS is defined. So remove the virStorageBackendUmountLocal from storage_util.c,h and restore the code back in the storage_backend_fs.c and _vstorage.c modules.
-
- 26 1月, 2017 5 次提交
-
-
由 Olga Krishtal 提交于
Added create/define/etc pool operations for vstorage backend. Used the common/local pool API's from storage_util for operations that are not specific to vstorage. In particular Refresh and Delete Pool operations as well as all the Volume operations. Signed-off-by: NOlga Krishtal <okrishtal@virtuozzo.com>
-
由 Olga Krishtal 提交于
Added general definitions for vstorage pool backend including the build options to add --with-storage-vstorage checking. In order to use vstorage as a backend for a storage pool vstorage tools (vstorage and vstorage-mount) need to be installed. Signed-off-by: NOlga Krishtal <okrishtal@virtuozzo.com>
-
由 John Ferlan 提交于
Move all the volume functions to storage_util to create local/common helpers using the same naming syntax as the existing upload, download, and wipe virStorageBackend*Local API's. In the process of doing so, found more API's that can now become local to storage_util. In order to distinguish between local/external - I changed the names of the now local only ones from "virStorageBackend..." to just "storageBackend..." Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Move some pool functions to storage_util to create local/common helpers using the same naming syntax as the existing upload, download, and wipe virStorageBackend*Local API's. In the process of doing so, found a few API's that can now become local to storage_util. In order to distinguish between local/external - I changed the names of the now local only ones from "virStorageBackend..." to just "storageBackend..." Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Just moving code around with minor adjustment to have the Stop code combine with the Unmount code since all the Stop code did was call the Unmount code.
-
- 19 1月, 2017 7 次提交
-
-
由 Daniel P. Berrange 提交于
Previous commit tried to change configure logic such that the GLUSTER_CLI parameter would always be set: commit 9e97c8c0 Author: Peter Krempa <pkrempa@redhat.com> Date: Mon Jan 9 15:56:12 2017 +0100 storage: gluster: Remove build-time dependency on the 'gluster' cli tool This missed the fact that the AC_PATH_PROG call was itself inside an 'if' conditional that would not be called in with_storage_gluster was false. As a result, GLUSTER_CLI was still conditionally defined. Just kill the GLUSTER_CLI parameter and AC_PATH_PROG call entirely and pass a bare "gluster" string to virFindFileInPath instead. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Peter Krempa 提交于
Separate the headers so that functions only required for testing of the sheepdog backend are separated into their own file.
-
由 Peter Krempa 提交于
They are used only in the SCSI backend driver so there's no need to pollute the headers.
-
由 Peter Krempa 提交于
The iSCSI backend driver was using stuff from the SCSI driver without making sure that it's compiled in. Move the common code into the storage_util.c since it does not contain any specific code.
-
由 Peter Krempa 提交于
The file backend code was mistakenly put into #if WITH_STORAGE_FS. This is not necessary since all the backends just access files on disk, and thus the code for WITH_STORAGE_DIR is sufficient to compile everything.
-
由 Peter Krempa 提交于
The file became a garbage dump for all kinds of utility functions over time. Move them to a separate file so that the files can become a clean interface for the storage backends.
-
由 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 6 次提交
-
-
由 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.
-
- 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 2 次提交
-
-
由 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.
-
- 10 1月, 2017 9 次提交
-
-
由 John Ferlan 提交于
Commit id 'a48c674f' caused problems for systems without PARTED installed. So move the PARTED probing code back to storage_backend_disk.c and create a shim within storage_backend.c to call it if WITH_STORAGE_DISK is true; otherwise, just return -1 with the error.
-
由 John Ferlan 提交于
At startup time, rather than blindly trusting the target devices are still properly formatted, let's check to make sure the pool's target devices are all properly formatted before attempting to start the pool. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1373711 Add support and documentation for the [NO_]OVERWRITE flags for the logical backend. Update virsh.pod with a description of the process for usage of the flags and building of the pool's volume group. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Make the remaining code a bit cleaner. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
If the build fails, then we need to ensure that we've run pvremove on any devices which we've run pvcreate on; otherwise, a subsequent build could fail since running pvcreate twice on a device requires special force arguments. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Currently as long as the disk is formatted using a known parted format type, the algorithm is happy to continue. However, that leaves a scenario whereby a disk formatted using "pc98" could be used by a pool that's defined using "dvh" (or vice versa). Alter the check to be match and different and adjust the caller. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Rather than have the Disk code having to use PARTED to determine if there's something on the device, let's use the virStorageBackendDeviceProbe. and only fallback to the PARTED probing if the BLKID code isn't built in. This will also provide a mechanism for the other current caller (File System Backend) to utilize a PARTED parsing algorithm in the event that BLKID isn't built in to at least see if *something* exists on the disk before blindly trying to use. The PARTED error checking will not find file system types, but if there is a partition table set on the device, it will at least cause a failure. Move virStorageBackendDiskValidLabel and virStorageBackendDiskFindLabel to storage_backend and rename/rework the code to fit the new model. Update the virsh.pod description to provide a more generic description of the process since we could now use either blkid or parted to find data on the target device. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Prior to starting up, let's be sure the target volume device is formatted as we expect; otherwise, inhibit the start. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
It's possible that the API could be called from a startup path in order to check whether the label on the device matches what our format is. In order to handle that condition, add a 'writelabel' boolean to the API in order to indicate whether a write or just read is about to happen. This alters two "error" conditions that would care about knowing. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-