https://bugzilla.redhat.com/show_bug.cgi?id=1171984
As a followon to a recent series to conslidate the various network
source host checks into a single API, this series of patches takes the
next steps.
First off existing code assumed the provided "<host name='%s'>"
string
resolved to a valid IP Address; however, that's not necessarily the case.
So rather than assume the path is valid during the various networked
pool startup, open, mount, etc API's check to make sure the host name
can be resolved. More than like the processing was going to fail anyway,
so failing a bit sooner and with a message indicating the problem might
help someone resolve it.
Second now that we hope the running pools are using a resolved name,
check the new/incoming definitions to make sure that their host name
strings do not duplicate an existing/running pool. The existing check
only compares the strings for equality, but with networks a name could
be an IP Address by number (IPv4 or IPv6) or a name that would need to
be resolved. If that name resolves to the same IP Address already running,
then we fail the attempted new pool definition.
John Ferlan (7):
virutil: Introduce virIsValidHostname
iscsi: Check for validity of pool source hostname
netfs: Check for validity of pool source hostname
gluster: Check for validity of pool source hostname
sheepdog: Check for validity of pool source hostname
util: Introduce virIsSameHostnameInfo
storage: Check for duplicate host for incoming pool def
src/conf/storage_conf.c | 11 ++-
src/libvirt_private.syms | 2 +
src/storage/storage_backend_fs.c | 2 +
src/storage/storage_backend_gluster.c | 3 +
src/storage/storage_backend_iscsi.c | 7 ++
src/storage/storage_backend_sheepdog.c | 36 +++++---
src/util/virutil.c | 155 +++++++++++++++++++++++++++++++++
src/util/virutil.h | 3 +
8 files changed, 205 insertions(+), 14 deletions(-)
--
2.1.0