Chris Lalancette
a904a56c36
Older distributions (i.e. RHEL-5) don't have udevadm at all, but they do
...
have udevsettle. So change our tests to prefer udevadm if it exists, but
to fall back to udevsettle if it does not.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-12-02 12:41:29 +00:00
Chris Lalancette
a9567e09ef
Instead of relying solely on polling for /dev devices to appear in libvirt, we
...
really should be synchronizing against udev. This is generally done by a call
to udevsettle, which is exactly what this patch implements for the storage
backends that are likely to create new /dev nodes. I believe I've read that
even after udevsettle, you are not guaranteed that devices are all the way
created, so we still need the polling in the rest of the sources, but this
should give us a much better chance of things existing as we expect.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-11-28 07:50:20 +00:00
Chris Lalancette
d20d6b1bb0
Currently libvirt can race with udev
...
creation of /dev/disk/by-{id,path}, so if we fail to open the directory, retry
up to 5 seconds. This is only likely to happen on hosts that are:
1) diskless (so /dev/disk/by-{id,path} doesn't exist already), and
2) slow, and/or heavily loaded (meaning that udev can take some time to create
the /dev nodes).
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-11-28 07:42:21 +00:00
Daniel P. Berrange
c08a47b853
Refactor storage backends to avoid dependancy from config parser to implementation
2008-11-17 11:19:33 +00:00
Daniel P. Berrange
48f32d8033
Revert previous storage patch which broke test driver
2008-11-12 16:28:27 +00:00
Daniel P. Berrange
8a8826600c
Re-arrange storage backend registration
2008-11-11 15:52:16 +00:00
Daniel P. Berrange
d714b2afae
Move internal error APIs into virterror_internal.h & drop leading __ prefix
2008-11-04 22:30:33 +00:00
Chris Lalancette
17a9e03cd1
Give iSCSI and disk storage backend drivers the
...
ability to resolve any kind of volume path to the pool target volume
path. For instance, if the pool was defined with a
<target><path>/dev/disk/by-id</path></target> section, and one of the
volumes is /dev/disk/by-id/scsi-S_beaf11, then you would be able to
call virStorageVolLookupByPath("/dev/sdc"), and get the correct volume
back.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-11-03 11:37:11 +00:00
Jim Meyering
487d57b341
avoid compiler warning when all storage backends are disabled
...
* src/storage_backend.c (backends): Add a NULL terminator.
(virStorageBackendForType): Use NULL terminator rather than
warning-provoking (possibly 0) array size.
2008-10-28 17:48:06 +00:00
Jim Meyering
05589b72c4
use ARRAY_CARDINALITY more
...
* tests/nodeinfotest.c: Include "util.h".
* src/xen_internal.c: Likewise.
* src/qemu_conf.c (qemudCapsInit): Use ARRAY_CARDINALITY.
* src/storage_backend.c (virStorageBackendForType): Likewise.
* src/storage_backend_fs.c (virStorageBackendProbeFile): Likewise.
* src/xen_internal.c (xenHypervisorMakeCapabilitiesInternal): Likewise.
* src/xend_internal.c (xenDaemonParseSxpr): Likewise.
* tests/nodeinfotest.c (mymain): Likewise.
* tests/qparamtest.c (DO_TEST): Likewise.
2008-10-28 17:43:24 +00:00
Chris Lalancette
eeff3cdcbc
Add support for detecting the partition table type when scanning
...
iSCSI volumes. This is implemented in the
virStorageBackendUpdateVolInfoFD function, so all future callers will
automatically benefit. This is a somewhat large patch because the
conversion of the virStorageBackendPartTableTypeToString necessitated
a change to the formatToString and formatFromString function pointers,
which caused fallout in other places in the storage stuff. The good
news is that most of these callers are now converted over to the
VIR_ENUM_IMPL, which means a lot of redundant code is now gone.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-10-16 15:06:03 +00:00
Daniel P. Berrange
542039fab0
Fully support mingw builds
2008-09-05 12:03:45 +00:00
Daniel P. Berrange
da1963381b
Fix QEMU domain creation by allowing virExec to preserve certain FDs
2008-08-27 11:42:52 +00:00
Daniel P. Berrange
1b4bb7d4ab
Allow non-blocking/daemon mode to be specified via virExec flags
2008-08-20 09:24:14 +00:00
Daniel P. Berrange
b3728d7d72
Fix const-correctness of virRUn and virExec
2008-08-08 15:43:38 +00:00
Jim Meyering
3ff5480d7b
remove unnecessary "V = NULL;" stmts after VIR_FREE(V)
...
* src/domain_conf.c (virDomainChrDefParseXML)
(virDomainNetDefParseXML): Likewise.
* src/iptables.c (iptRuleFree): Likewise.
* src/storage_backend.c (virStorageBackendRunProgRegex): Likewise.
* src/test.c (testOpenFromFile): Likewise.
* src/xmlrpc.c (xmlRpcCallRaw): Likewise.
2008-07-19 07:42:34 +00:00
Daniel P. Berrange
313f1a7c0d
Fix const-ness of virStorageBackendRunProgRegex()
2008-06-24 14:30:25 +00:00
Chris Lalancette
a75a612ad5
This patch changes things around so that virStorageBackendRunProgRegex() does
...
*not* virStorageReportError() if the fork()/exec() process it spawned returned a
!= 0 exit code. Rather, it returns the exitcode in this case, and it is up to
the higher level to determine whether this is a fatal error or not. The use
case for this change is in the iSCSI stuff; older versions of iscsiadm tools
would return a failure when getting the session number, despite the command
succeeding.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-06-17 12:45:24 +00:00
Daniel P. Berrange
d789ef5a88
Switch over remaining driver code to use memory alloc apis
2008-06-06 11:09:57 +00:00
Richard W.M. Jones
1d8d4f86b6
Standardize use of header files, making internal.h primary.
...
* qemud/internal.h, qemud/qemud.h: Rename this file so it
doesn't conflict with src/internal.h.
* HACKING: Document how header files should be used.
* qemud/Makefile.am: Add src/ directory to includes.
* qemud/event.c, qemud/mdns.c, qemud/qemud.c, qemud/remote.c,
qemud/remote_protocol.c, qemud/remote_protocol.h,
qemud/remote_protocol.x, src/buf.c, src/libvirt.c,
src/nodeinfo.c, src/qemu_conf.c, src/qemu_driver.c,
src/stats_linux.c, src/storage_backend.c, src/storage_backend_fs.c,
src/storage_backend_iscsi.c, src/storage_backend_logical.c,
src/storage_conf.c, src/storage_driver.c, src/util.c,
src/util.h, src/virsh.c, src/virterror.c, src/xend_internal.c,
src/xml.c, tests/reconnect.c, tests/xmlrpctest.c,
tests/qparamtest.c: Standardize use of header files.
* docs/*, po/*: Rebuild docs.
2008-05-23 08:24:41 +00:00
Jim Meyering
dc42a9d2de
remove Vim and Emacs variable settings from C source files
...
Done with these commands:
git grep -l Local.variab|xargs \
perl -0x3b -pi -e 's,\n+/\*\n \* vim:(.|\n)*,\n,'
git grep -l Local.variab|xargs \
perl -0x3b -pi -e 's,\n+/\*\n \* Local variables:\n(.|\n)*,\n,'
2008-04-10 16:53:29 +00:00
Jim Meyering
513bd04ce1
Mark many more strings for translation.
...
* Makefile.maint (err_func_re): Add to the list and make it readable.
* po/POTFILES.in: Add src/util.c and src/xm_internal.c, and sort.
* src/storage_backend.c: Fix comment.
* src/util.c (virFileLinkPointsTo): Mark a string.
* qemud/remote.c (remoteDispatchClientRequest): Mark strings.
(remoteDispatchOpen, CHECK_CONN, remoteDispatchGetType): Likewise.
(remoteDispatchDomainGetSchedulerType): Likewise.
(remoteDispatchDomainGetSchedulerParameters): Likewise.
(remoteDispatchDomainSetSchedulerParameters): Likewise.
(remoteDispatchDomainBlockStats): Likewise.
(remoteDispatchDomainInterfaceStats): Likewise.
(remoteDispatchDomainAttachDevice, remoteDispatchDomainCreate):
(remoteDispatchDomainDestroy, remoteDispatchDomainDetachDevice):
(remoteDispatchDomainDumpXml, remoteDispatchDomainGetAutostart):
(remoteDispatchDomainGetInfo, remoteDispatchDomainGetMaxMemory):
(remoteDispatchDomainGetMaxVcpus, remoteDispatchDomainGetOsType):
(remoteDispatchDomainGetVcpus): Likewise.
(remoteDispatchDomainMigratePerform): Likewise.
(remoteDispatchListDefinedDomains, remoteDispatchDomainPinVcpu):
(remoteDispatchDomainReboot, remoteDispatchDomainResume):
(remoteDispatchDomainSave, remoteDispatchDomainCoreDump):
(remoteDispatchDomainSetAutostart): Likewise.
(remoteDispatchDomainSetMaxMemory, remoteDispatchDomainSetMemory):
(remoteDispatchDomainSetVcpus, remoteDispatchDomainShutdown):
(remoteDispatchDomainSuspend, remoteDispatchDomainUndefine):
(remoteDispatchListDefinedNetworks, remoteDispatchListDomains):
(remoteDispatchListNetworks, remoteDispatchNetworkCreate):
(remoteDispatchNetworkDestroy, remoteDispatchNetworkDumpXml):
(remoteDispatchNetworkGetAutostart, remoteDispatchNetworkGetBridgeName):
(remoteDispatchNetworkSetAutostart, remoteDispatchNetworkUndefine):
(addrToString, remoteDispatchAuthSaslInit, remoteDispatchAuthSaslStart):
(remoteDispatchAuthSaslStep, remoteDispatchListDefinedStoragePools):
(remoteDispatchListStoragePools, remoteDispatchStoragePoolCreate):
(remoteDispatchStoragePoolBuild, remoteDispatchStoragePoolDestroy):
(remoteDispatchStoragePoolDelete, remoteDispatchStoragePoolRefresh):
(remoteDispatchStoragePoolGetInfo, remoteDispatchStoragePoolDumpXml):
(remoteDispatchStoragePoolGetAutostart): Likewise.
(remoteDispatchStoragePoolSetAutostart):
(remoteDispatchStoragePoolListVolumes):
(remoteDispatchStoragePoolNumOfVolumes):
(remoteDispatchStoragePoolUndefine, remoteDispatchStorageVolCreateXml):
(remoteDispatchStorageVolDelete, remoteDispatchStorageVolGetInfo):
(remoteDispatchStorageVolDumpXml, remoteDispatchStorageVolGetPath):
(remoteDispatchStorageVolLookupByName): Likewise.
* src/qemu_driver.c (qemudOpenMonitor, qemudStartVMDaemon):
(dhcpStartDhcpDaemon, qemudStartNetworkDaemon):
(qemudDomainSuspend, qemudDomainResume, qemudDomainShutdown):
(qemudDomainGetOSType, qemudDomainSetMaxMemory):
(qemudDomainSetMemory, qemudDomainGetInfo, qemudDomainSave):
(qemudDomainRestore, qemudDomainDumpXML, qemudDomainStart):
(qemudDomainUndefine, qemudDomainChangeCDROM):
(qemudDomainAttachDevice, qemudDomainGetAutostart):
(qemudDomainSetAutostart, qemudDomainInterfaceStats):
(qemudNetworkLookupByUUID, qemudNetworkLookupByName):
(qemudNetworkUndefine, qemudNetworkStart, qemudNetworkDestroy):
(qemudNetworkDumpXML, qemudNetworkGetAutostart):
(qemudNetworkSetAutostart): Likewise.
* src/virsh.c (cmdVcpupin, cmdAttachDevice, cmdDetachDevice): Likewise.
* src/xm_internal.c (xenXMConfigCacheRefresh, xenXMDomainPinVcpu): Likewise.
2008-03-27 13:43:01 +00:00
Jim Meyering
a34bcb7829
Treat ENOTSUP like ENODATA, after failed fgetfilecon.
...
* src/storage_backend.c (virStorageBackendUpdateVolInfoFD): Treat a
failed fgetfilecon with errno == ENOTSUP the same as for ENODATA.
2008-03-17 16:57:21 +00:00
Daniel P. Berrange
d8b363c35f
Cope with missing selinux attribute
2008-03-17 15:09:38 +00:00
Richard W.M. Jones
b4882504ea
Fix typos (Atsushi SAKAI).
2008-02-27 10:37:19 +00:00
Jim Meyering
b1b23f76be
avoid format string warnings
...
Avoid warnings like this:
file:nnn:format not a string literal and no format arguments
* qemud/qemud.c: Insert a "%s" format argument.
* qemud/remote.c: Likewise.
* src/iptables.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/storage_backend.c: Likewise.
* src/storage_backend_fs.c: Likewise.
* src/storage_backend_iscsi.c Likewise.
* src/storage_backend_logical.c: Likewise.
* src/storage_conf.c: Likewise.
* src/storage_driver.c: Likewise.
2008-02-22 16:26:13 +00:00
Daniel P. Berrange
b7db975135
Added disk partition storage pool backend
2008-02-20 15:52:17 +00:00
Daniel P. Berrange
8ec1fcd925
Added iSCSI storage pool backend
2008-02-20 15:49:25 +00:00
Daniel P. Berrange
ac736602fd
Added logical volume storage pool driver
2008-02-20 15:45:33 +00:00
Daniel P. Berrange
e39438e869
Added directory/filesystem/netfs based storage pool backend
2008-02-20 15:42:30 +00:00
Daniel P. Berrange
4a4e272f9d
Added storage backend helper APIs
2008-02-20 15:38:29 +00:00
Daniel P. Berrange
20878720c0
Added main internal storage driver impl
2008-02-20 15:34:52 +00:00