Adapt CephFS driver to do not try to escape export ip

Changes CephFS driver to do not try to escape export ip in case it
is a hostname. The CephFS driver might use the hostname as an
export ip in case no ``cephfs_ganesha_server_ip`` is configured.
If that happens, we should not be allowing ip validations to occur
uppon a hostname, because it differs from an IPv4 or IPv6 and that
isn't necessarily an issue.

Change-Id: I1bd57eec3474768596cfab1bf2f8eb6123cc95a8
This commit is contained in:
silvacarloss 2021-10-13 19:32:43 -03:00 committed by Carlos Eduardo
parent 34d2094843
commit 43ebc12fb5
2 changed files with 17 additions and 2 deletions

View File

@ -987,9 +987,16 @@ class NFSProtocolHelper(ganesha.GaneshaNASHelper2):
def get_export_locations(self, share, subvolume_path):
export_locations = []
for export_ip in self.export_ips:
# Try to escape the export ip. If it fails, means that the
# `cephfs_ganesha_server_ip` wasn't possibly set and the used
# address is the hostname
try:
server_address = driver_helpers.escaped_address(export_ip)
except ValueError:
server_address = export_ip
export_path = "{server_address}:{mount_path}".format(
server_address=driver_helpers.escaped_address(export_ip),
mount_path=subvolume_path)
server_address=server_address, mount_path=subvolume_path)
LOG.info("Calculated export path for share %(id)s: %(epath)s",
{"id": share['id'], "epath": export_path})

View File

@ -0,0 +1,8 @@
---
fixes:
- |
When ``cephfs_ganesha_server_ip`` is not set, the current hostname is used
as a default for such config option. The driver was treating this value
as an IP address and trying to perform validations on it. The CEPH NFS
driver will no longer treat hostnames as ip addresses and try to validate
them as such.