- 10 3月, 2014 1 次提交
-
-
由 Eric Blake 提交于
$ touch /var/lib/libvirt/images/'a<b>c' $ virsh pool-refresh default $ virsh vol-dumpxml 'a<b>c' default | head -n2 <volume> <name>a<b>c</name> Oops. That's not valid XML. And when we fix the XML generation, it fails RelaxNG validation. I'm also tired of seeing <key>(null)</key> in the example output for volume xml; while we used NULLSTR() to avoid a NULL deref rather than relying on glibc's printf extension behavior, it's even better if we avoid the issue in the first place. But this requires being careful that we don't invalidate any storage backends that were relying on key being unassigned during virStoragVolCreateXML[From]. I would have split this into two patches (one for escaping, one for avoiding <key>(null)</key>), but since they both end up touching a lot of the same test files, I ended up merging it into one. Note that this patch allows pretty much any volume name that can appear in a directory (excluding . and .. because those are special), but does nothing to change the current (unenforced) RelaxNG claim that pool names will consist only of letters, numbers, _, -, and +. Tightening the C code to match RelaxNG patterns and/or relaxing the grammar to match the C code for pool names is a task for another day (but remember, we DID recently tighten C code for domain names to exclude a leading '.'). * src/conf/storage_conf.c (virStoragePoolSourceFormat) (virStoragePoolDefFormat, virStorageVolTargetDefFormat) (virStorageVolDefFormat): Escape user-controlled strings. (virStorageVolDefParseXML): Parse key, for use in unit tests. * src/storage/storage_driver.c (storageVolCreateXML) (storageVolCreateXMLFrom): Ensure parsed key doesn't confuse volume creation. * docs/schemas/basictypes.rng (volName): Relax definition. * tests/storagepoolxml2xmltest.c (mymain): Test it. * tests/storagevolxml2xmltest.c (mymain): Likewise. * tests/storagepoolxml2xmlin/pool-dir-naming.xml: New file. * tests/storagepoolxml2xmlout/pool-dir-naming.xml: Likewise. * tests/storagevolxml2xmlin/vol-file-naming.xml: Likewise. * tests/storagevolxml2xmlout/vol-file-naming.xml: Likewise. * tests/storagevolxml2xmlout/vol-*.xml: Fix fallout. Signed-off-by: NEric Blake <eblake@redhat.com> (cherry picked from commit 6cc4d6a3)
-
- 30 10月, 2013 1 次提交
-
-
由 Daniel P. Berrange 提交于
Most of the usage of getuid()/getgid() is in cases where we are considering what privileges we have. As such the code should be using the effective IDs, not real IDs. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 9b0af092)
-
- 15 10月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
Introduced by 1fa7946f. https://bugzilla.redhat.com/show_bug.cgi?id=1019023 (cherry picked from commit 15fac93b)
-
- 16 9月, 2013 1 次提交
-
-
由 Peter Krempa 提交于
Semantics of the libvirt helper are more clear. This change also allows to clean up some pieces of code.
-
- 06 9月, 2013 1 次提交
-
-
由 Jim Fehlig 提交于
POSIX states that the preg parameter to regcomp() is undefined on failure, so no need to call regfree() in these cases. http://pubs.opengroup.org/onlinepubs/009695399/functions/regcomp.html See also a discussion on the libvirt dev list https://www.redhat.com/archives/libvir-list/2013-September/msg00262.html
-
- 05 9月, 2013 1 次提交
-
-
由 Daniel P. Berrange 提交于
The VIR_FREE() macro will cast away any const-ness. This masked a number of places where we passed a 'const char *' string to VIR_FREE. Fortunately in all of these cases, the variable was not in fact const data, but a heap allocated string. Fix all the variable declarations to reflect this. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 27 8月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
qemu-img is going to switch the default for QCOW2 to QCOW2v3 (compat=1.1) Extend the probing for qemu-img command line options to check if -o compat is supported. If the volume definition specifies the qcow2 format but no compat level and -o compat is supported, specify -o compat=0.10 to create a QCOW2v2 image. https://bugzilla.redhat.com/show_bug.cgi?id=997977
-
- 21 8月, 2013 3 次提交
-
-
由 Osier Yang 提交于
Introduced by commit e0139e30. virStorageVolDefFree free'ed the pointers that are still used by the added volume object, this changes it back to VIR_FREE.
-
由 Osier Yang 提交于
Introduced by commit e0139e30: 1777 /* Updating pool metadata */ (40) Event var_deref_op: Dereferencing null pointer "newvol". Also see events: [assign_zero] 1778 pool->def->allocation += newvol->allocation; 1779 pool->def->available -= newvol->allocation;
-
由 John Ferlan 提交于
Each of the modules handled reporting error messages from the secret fetching slightly differently with respect to the error. Provide a similar message for each error case and provide as much data as possible.
-
- 19 8月, 2013 1 次提交
-
-
由 Osier Yang 提交于
One has to refresh the pool to get the correct pool info after adding/removing/resizing a volume, this updates the pool metadata (allocation, available) after those operation are done.
-
- 26 7月, 2013 1 次提交
-
-
由 John Ferlan 提交于
Adjust these drivers to handle their Autostart functionality after each of the drivers has gone through their Initialization functions
-
- 24 7月, 2013 1 次提交
-
-
由 John Ferlan 提交于
Add a privileged field to storageDriverState Use the privileged value in order to generate a connection which could be passed to the various storage backend drivers. In particular, the iSCSI driver will need a connect in order to perform pool authentication using the 'chap' secrets and the RBD driver utilizes the connection during pool refresh for pools using 'ceph' secrets. For now that connection will be to be to qemu driver until a mechanism is devised to get a connection to just the secret driver without qemu.
-
- 23 7月, 2013 3 次提交
-
-
由 John Ferlan 提交于
Update virStorageBackendRBDOpenRADOSConn() to use the internal API to the secret driver in order to get the secret value instead of the external virSecretGetValue() path. Without the flag VIR_SECRET_GET_VALUE_INTERNAL_CALL there is no way to get the value of private secret. This also requires ensuring there is a connection which wasn't true for for the refreshPool() path calls from storageDriverAutostart() prior to adding support for the connection to a qemu driver. It seems calls to virSecretLookupByUUIDString() and virSecretLookupByUsage() from the refreshPool() path would have failed with no way to find the secret - that is theoretically speaking since the 'conn' was NULL the failure would have been "failed to find the secret".
-
由 John Ferlan 提交于
Although the XML for CHAP authentication with plain "password" was introduced long ago, the function was never implemented. This patch replaces the login/password mechanism by following the 'ceph' (or RBD) model of using a 'username' with a 'secret' which has the authentication information. This patch performs the authentication during startPool() processing of pools with an authType of VIR_STORAGE_POOL_AUTH_CHAP specified for iSCSI pools. There are two types of CHAP configurations supported for iSCSI authentication: * Initiator Authentication Forward, one-way; The initiator is authenticated by the target. * Target Authentication Reverse, Bi-directional, mutual, two-way; The target is authenticated by the initiator; This method also requires Initiator Authentication This only supports the "Initiator Authentication". (I don't have any enterprise iSCSI env for testing, only have a iSCSI target setup with tgtd, which doesn't support "Target Authentication"). "Discovery authentication" is not supported by tgt yet too. So this only setup the session authentication by executing 3 iscsiadm commands, E.g: % iscsiadm -m node --target "iqn.2013-05.test:iscsi.foo" --name \ "node.session.auth.authmethod" -v "CHAP" --op update % iscsiadm -m node --target "iqn.2013-05.test:iscsi.foo" --name \ "node.session.auth.username" -v "Jim" --op update % iscsiadm -m node --target "iqn.2013-05.test:iscsi.foo" --name \ "node.session.auth.password" -v "Jimsecret" --op update
-
由 John Ferlan 提交于
Make sure default iSCSI target is 3260.
-
- 16 7月, 2013 2 次提交
-
-
由 Wido den Hollander 提交于
Not all RBD (Ceph) storage pools have cephx authentication turned on, so "secret" might not be initialized. It could also be that the secret couldn't be located. Only call virSecretFree() if "secret" is initialized earlier. Signed-off-by: NWido den Hollander <wido@widodh.nl>
-
由 Martin Kletzander 提交于
When using logical pools, we had to trust the target->path provided. This parameter, however, can be completely ommited and we can use '/dev/<source.name>' safely and populate it to target.path. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=952973
-
- 12 7月, 2013 1 次提交
-
-
由 John Ferlan 提交于
The switch statement in 'virStorageBackendCreateQemuImgOpts' used the for loop end condition 'VIR_STORAGE_FILE_FEATURE_LAST' as a possible value, but since that cannot happen Coverity spits out a DEADCODE message. Adding the Coverity tag just removes the Coverity message
-
- 11 7月, 2013 2 次提交
-
-
由 Ján Tomko 提交于
Don't reuse the return value of virStorageBackendFileSystemIsMounted. If it's 0, we'd return it even if the mount command failed. Also, don't report another error if it's -1, since one has already been reported. Introduced by 258e06c8. https://bugzilla.redhat.com/show_bug.cgi?id=981251
-
由 Daniel P. Berrange 提交于
Convert the type of loop iterators named 'i', 'j', k', 'ii', 'jj', 'kk', to be 'size_t' instead of 'int' or 'unsigned int', also santizing 'ii', 'jj', 'kk' to use the normal 'i', 'j', 'k' naming Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 10 7月, 2013 1 次提交
-
-
由 Michal Privoznik 提交于
-
- 04 7月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
Introduced by c930410b. https://bugzilla.redhat.com/show_bug.cgi?id=980676
-
- 03 7月, 2013 1 次提交
-
-
由 Daniel P. Berrange 提交于
Ensure that all APIs which list storage objects filter them against the access control system. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 29 6月, 2013 1 次提交
-
-
由 John Ferlan 提交于
Commit id '53d5967c' introduced the following: TEST: storagevolxml2argvtest .............. 14 OK ==25636== 358 (264 direct, 94 indirect) bytes in 1 blocks are definitely lost in loss record 67 of 75 ==25636== at 0x4A06B6F: calloc (vg_replace_malloc.c:593) ==25636== by 0x4C95791: virAlloc (viralloc.c:124) ==25636== by 0x4CA0BB4: virCommandNewArgs (vircommand.c:805) ==25636== by 0x4CA0C88: virCommandNew (vircommand.c:789) ==25636== by 0x408602: virStorageBackendCreateQemuImgCmd (storage_backend.c:849) ==25636== by 0x405427: testCompareXMLToArgvHelper (storagevolxml2argvtest.c:61) ==25636== by 0x4064DF: virtTestRun (testutils.c:158) ==25636== by 0x40516F: mymain (storagevolxml2argvtest.c:195) ==25636== by 0x406B1A: virtTestMain (testutils.c:722) ==25636== by 0x37C1021A04: (below main) (libc-start.c:225) ==25636== PASS: storagevolxml2argvtest
-
- 28 6月, 2013 1 次提交
-
-
由 Dennis Chen 提交于
When creating a virtual FC HBA with virsh/libvirt API, an error message will be returned: "error: Node device not found", also the 'nodedev-dumpxml' shows wrong information of wwpn & wwnn for the new created device. Signed-off-by: xschen@tnsoft.com.cn This reverts f90af691 which switched wwpn & wwwn in the wrong place. https://www.kernel.org/doc/Documentation/scsi/scsi_fc_transport.txt
-
- 24 6月, 2013 2 次提交
-
-
由 Daniel P. Berrange 提交于
Insert calls to the ACL checking APIs in all storage driver entrypoints. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 21 6月, 2013 2 次提交
-
-
由 Ján Tomko 提交于
Add -o compat= and -o lazy_refcounts options for qemu-img.
-
由 Ján Tomko 提交于
Add <features> and <compat> elements to volume target XML. <compat> is a string which for qcow2 represents the QEMU version it should be compatible with. Valid values are 0.10 and 1.1. 1.1 is implicit if the <features> element is present, otherwise qemu-img default is used. 0.10 can be specified to explicitly create older images after the qemu-img default changes. <features> contains optional features, so far <lazy_refcounts/> is available, which enables caching of reference counters, improving performance for snapshots.
-
- 19 6月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
Split out option string generation to make adding new options easier and simplify the code.
-
- 10 6月, 2013 1 次提交
-
-
由 Cole Robinson 提交于
This has been disabled for years
-
- 07 6月, 2013 2 次提交
-
-
由 Michal Privoznik 提交于
There's no sense in using virAsprintf() just to duplicate a string. We should use VIR_STRDUP which is designed just for that.
-
由 Ján Tomko 提交于
iscsiadm now supports specifying hostnames in the portal argument [1] Instead of resolving the hostname to a single IPv4 address, pass the hostname to isciadm, allowing IPv6 targets to work. [1] https://bugzilla.redhat.com/show_bug.cgi?id=624437
-
- 06 6月, 2013 2 次提交
-
-
由 Ján Tomko 提交于
Found with 'git grep "= 1"'.
-
由 Peter Krempa 提交于
Setting of local variables in virStorageBackendCreateQemuImgCmd was unnecessarily cluttered with ternary operators and repeated testing of of conditions. This patch refactors the function to use if statements and improves error reporting in case inputvol is specified but does not contain target path. Previously we would complain about "unknown storage vol type 0" instead of the actual problem.
-
- 05 6月, 2013 4 次提交
-
-
由 Peter Krempa 提交于
Instead of a unknown flag error report that metadata pre-allocation is not supported with the requested volume creation method. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=969982
-
由 Peter Krempa 提交于
Comply with the coding standard and save a few lines.
-
由 Osier Yang 提交于
As the document for "virsh-resize" says: <...> Attempts to shrink the volume will fail unless I<--shrink> is present; </...> This makes sense as it at least prevent the user shrinking the important data of volume without a notice.
-
由 Osier Yang 提交于
The document for "vol-resize" says the new capacity will be sparse unless "--allocate" is specified, however, the "--allocate" flag is never implemented. This implements the "--allocate" flag for fs backend's raw type volume, based on posix_fallocate and the syscall SYS_fallocate.
-