X-Git-Url: http://git.datanom.net/omvzfs.git/blobdiff_plain/42856e8b3cb0b621218f11d7828a51d03d77ae33..c6117b32379445101780af97836973ba9151cac7:/gui/rpc/zfs.inc diff --git a/gui/rpc/zfs.inc b/gui/rpc/zfs.inc index f0b64f6..16b5a13 100644 --- a/gui/rpc/zfs.inc +++ b/gui/rpc/zfs.inc @@ -11,6 +11,7 @@ require_once("zfs/Dataset.php"); require_once("zfs/Snapshot.php"); require_once("zfs/Zvol.php"); require_once("zfs/Zpool.php"); +require_once("zfs/NotifyListener.php"); class OMVRpcServiceZFS extends OMVRpcServiceAbstract { public function getName() { @@ -53,9 +54,21 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract { throw new OMVModuleZFSException("Incorrect pool type specified"); break; } + //Check for user supplied options + $opts = ""; + if ($params['force']) { + $opts .= "-f "; + } + if (strlen($params['mountpoint']) > 0) { + $opts .= "-m " . $params['mountpoint'] . " "; + } + $disks = preg_split("/[,;]/", $params['devices']); $vdev = new OMVModuleZFSVdev($params['name'], $pooltype, $disks); - $pool = new OMVModuleZFSZpool($vdev); + $pool = new OMVModuleZFSZpool($vdev, $opts); + //Ugly fix to solve the problem of blkid not displaying info on newly created pools + $pool->export(); + $pool->import($pool->getName()); } public function getObjectTree($params, $context) { @@ -80,23 +93,19 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract { public function addObject($params, $context) { $this->validateMethodContext($context, array("role" => OMV_ROLE_ADMINISTRATOR)); switch ($params['type']) { - case "Filesystem": + case "filesystem": $name = $params['path'] . "/" . $params['name']; $tmp = new OMVModuleZFSDataset($name); break; - case "Snapshot": + case "snapshot": $name = $params['path'] . "@" . $params['name']; $tmp = new OMVModuleZFSSnapshot($name); break; - case "Volume": + case "volume": $name = $params['path'] . "/" . $params['name']; $tmp = new OMVModuleZFSZvol($name); $tmp->create($params['size']); break; - case "Pool": - $name = $params['path'] . "/" . $params['name']; - $tmp = new OMVModuleZFSZpool($name); - break; default: throw new OMVModuleZFSException("Illegal type provided: " . $params['type']); break;