]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/nfs: allow 'nfs export apply' to take a list of exports
authorSage Weil <sage@newdream.net>
Mon, 28 Jun 2021 19:51:05 +0000 (15:51 -0400)
committerSebastian Wagner <sewagner@redhat.com>
Thu, 9 Sep 2021 14:17:54 +0000 (16:17 +0200)
Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 1d5f63ecc5e047eac548f85b819d3ea3f5b2215c)

src/pybind/mgr/nfs/export.py

index 497756895ca24b4fee2329c3e0773d3e53db6e16..fe55755119510105769b875367b58ea38a608ef9 100644 (file)
@@ -392,9 +392,24 @@ class ExportMgr:
         try:
             if not export_config:
                 raise NFSInvalidOperation("Empty Config!!")
-            new_export = json.loads(export_config)
+            j = json.loads(export_config)
             # check export type
-            return self._apply_export(cluster_id, new_export)
+            if isinstance(j, list):
+                ret, out, err = (0, '', '')
+                for export in j:
+                    try:
+                        r, o, e = self._apply_export(cluster_id, export)
+                    except Exception as e:
+                        r, o, e = exception_handler(e, f'Failed to apply export: {e}')
+                        if r:
+                            ret = r
+                    if o:
+                        out += o + '\n'
+                    if e:
+                        err += e + '\n'
+                return ret, out, err
+            else:
+                return self._apply_export(cluster_id, j)
         except NotImplementedError:
             return 0, " Manual Restart of NFS PODS required for successful update of exports", ""
         except Exception as e: