]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/nfs: validate virtual_ip parameter 46794/head
authorRedouane Kachach <rkachach@redhat.com>
Mon, 23 May 2022 10:14:07 +0000 (12:14 +0200)
committerAdam King <adking@redhat.com>
Wed, 22 Jun 2022 00:15:07 +0000 (20:15 -0400)
Fixes: https://tracker.ceph.com/issues/54581
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 75aafdaf367cd3624cb33ac5a99a73a27a9e3f52)

src/pybind/mgr/nfs/cluster.py

index 1d80544113243a58b6a721c9c7fbec764eda14b1..61bc477727baa5ba2d5e80c4697d512e7c4f4e23 100644 (file)
@@ -1,3 +1,4 @@
+import ipaddress
 import logging
 import json
 import re
@@ -103,7 +104,13 @@ class NFSCluster:
             ingress: Optional[bool] = None,
             port: Optional[int] = None,
     ) -> Tuple[int, str, str]:
+
         try:
+            if virtual_ip:
+                # validate virtual_ip value: ip_address throws a ValueError
+                # exception in case it's not a valid ipv4 or ipv6 address
+                ip = virtual_ip.split('/')[0]
+                ipaddress.ip_address(ip)
             if virtual_ip and not ingress:
                 raise NFSInvalidOperation('virtual_ip can only be provided with ingress enabled')
             if not virtual_ip and ingress: