]> git.datanom.net - omvzfs.git/blobdiff - gui/rpc/zfs.inc
Fix to clean up OMV shared folders when deleting shared datasets.
[omvzfs.git] / gui / rpc / zfs.inc
index beaefa49e3e6b21921ca3bbbdd7f9ddd4d581d33..75c22ebcc26358969e4012b4f5419f3612c5a88c 100644 (file)
@@ -63,7 +63,16 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
                        $opts .= "-m " . $params['mountpoint'] . " ";
                }
 
+               //Use /dev/disk/by-path as deafult when creating new pools as suggested in ZoL FAQ.
                $disks = preg_split("/[,;]/", $params['devices']);
+               if (file_exists("/dev/disk/by-path/")) {
+                       $tmp_disks = array();
+                       foreach ($disks as $disk) {
+                               $tmp_disks[] = OMVModuleZFSUtil::getDiskPath($disk);
+                       }
+                       $disks = $tmp_disks;
+               }
+
                $vdev = new OMVModuleZFSVdev($params['name'], $pooltype, $disks);
                $pool = new OMVModuleZFSZpool($vdev, $opts);
                //Ugly fix to solve the problem of blkid not displaying info on newly created pools
@@ -116,6 +125,11 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
                $this->validateMethodContext($context, array("role" => OMV_ROLE_ADMINISTRATOR));
                switch ($params['type']) {
                case "Filesystem":
+                       $name = $params['name'];
+                       OMVModuleZFSUtil::deleteShares($name);
+                       $tmp = new OMVModuleZFSDataset($name);
+                       $tmp->destroy();
+                       break;
                case "Clone":
                        $name = $params['name'];
                        $tmp = new OMVModuleZFSDataset($name);
@@ -263,7 +277,7 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
                $pooluuid = OMVModuleZFSUtil::getUUIDbyName($poolname);
 
                //Get the mntent object and fetch it's uuid.
-               $xpath = "//system/fstab/mntent[fsname=" . $pooluuid . "]";
+               $xpath = "//system/fstab/mntent[fsname='" . $pooluuid . "']";
                $mountpoint = $xmlConfig->get($xpath);
                $mntentref = $mountpoint['uuid'];
 
@@ -283,8 +297,7 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
 
                $uuid = OMVUtil::uuid();
                $pathName = $tmp->getMountPoint();
-               $subdirs = preg_split('/\//',$pathName);
-               $reldirpath = $subdirs[count($subdirs)-1];
+               $reldirpath = OMVModuleZFSUtil::getReldirpath($pathName);
                $object = array(
                        "uuid" => $uuid,
                        "name" => $params['sharename'],
This page took 0.030606 seconds and 5 git commands to generate.