"type":"object",
"properties":{
"type":{"type":"string","enum":["filesystem","snapshot",' .
- '"volume"]},
+ '"volume","clone"]},
"path":{"type":"string"},
"name":{"type":"string"},
- "size":{"type":"string"}
+ "size":{"type":"string"},
+ "clonename":{"type":"string"}
}
}');
switch ($params['type']) {
+ case "clone":
+ $tmp = new OMVModuleZFSSnapshot($params['path']);
+ $tmp->clonesnap($params['clonename']);
+ break;
case "filesystem":
$name = $params['path'] . "/" . $params['name'];
$tmp = new OMVModuleZFSDataset($name);
"type":"object",
"properties":{
"type":{"type":"string","enum":["Filesystem","Snapshot",' .
- '"Volume","Clone","Pool"]},
+ '"Volume","Pool"]},
"name":{"type":"string"}
}
}');
$tmp = new OMVModuleZFSDataset($name);
$tmp->destroy();
break;
- case "Clone":
- $tmp = new OMVModuleZFSDataset($name);
- $tmp->destroy();
- break;
case "Snapshot":
$tmp = new OMVModuleZFSSnapshot($name);
$tmp->destroy();
$name = $params['name'];
switch ($params['type']) {
case "Filesystem":
- case "Clone":
$tmp = new OMVModuleZFSDataset($name);
break;
case "Snapshot":
"type":"object",
"properties":{
"type":{"type":"string","enum":["Filesystem","Snapshot",' .
- '"Volume","Clone","Pool"]},
+ '"Volume","Pool"]},
"name":{"type":"string"},
"properties":{"type":"array","items":{
"type":"object",
global $xmlConfig;
switch ($params['type']) {
case "Filesystem":
- case "Clone":
$tmp = new OMVModuleZFSDataset($params['name']);
break;
case "Snapshot":
"type":"object",
"properties":{
"type":{"type":"string","enum":["Filesystem","Snapshot",' .
- '"Volume","Clone","Pool"]},
+ '"Volume","Pool"]},
"name":{"type":"string"},
"property":{"type":"string"}
}
$this->updateBgProcStatus($bgStatusFilename, "outputfilename", $bgOutputFilename);
switch ($params['type']) {
case "Filesystem":
- case "Clone":
$tmp = new OMVModuleZFSDataset($params['name']);
break;
case "Snapshot":
"type":"object",
"properties":{
"name":{"type":"string"},
- "type":{"type":"string","enum":["Filesystem","Clone"]},
+ "type":{"type":"string","enum":["Filesystem"]},
"sharename":{'.$GLOBALS['OMV_JSONSCHEMA_SHARENAME'].'},
"comment":{"type":"string"},
"mode":{"type":"string","enum":["700","750","755",'.
case "Filesystem":
$tmp = new OMVModuleZFSDataset($params['name']);
break;
- case "Clone":
- $tmp = new OMVModuleZFSDataset($params['name']);
- break;
default:
throw new OMVModuleZFSException("Illegal type provided: " . $params['type']);
break;
$cmd = "zfs get all {$params['name']}";
break;
case "Pool":
- $output .= "Pool details (zpool get all):\n\r\n\r";
+ $output .= "Pool status (zpool status):\n\r\n\r";
+ $cmd = "zpool status {$params['name']}";
+ OMVModuleZFSUtil::exec($cmd,$out,$res);
+ $output .= implode("\n\r", $out);
+ unset($out);
+ $output .= "\n\r\n\rPool details (zpool get all):\n\r\n\r";
$cmd = "zpool get all {$params['name']}";
+ OMVModuleZFSUtil::exec($cmd,$out,$res);
+ $output .= implode("\n\r", $out);
+ unset($out);
+ $output .= "\n\r\n\rPool filesystem details (zfs get all):\n\r\n\r";
+ $cmd = "zfs get all {$params['name']}";
break;
default:
throw new OMVModuleZFSException("Incorrect type provided");
"vdevtype":{"type":"string","enum":["basic","mirror",' .
'"raidz1","raidz2","raidz3"]},
"name":{"type":"string"},
- "devices":{"type":"string"}
+ "devices":{"type":"string"},
+ "force":{"type":"boolean"}
}
}');
$pool = new OMVModuleZFSZpool($params['name']);
throw new OMVModuleZFSException("Incorrect pool type specified");
break;
}
+ if ($params['force']) {
+ $opts .= "-f ";
+ }
//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/")) {
$disks = $tmp_disks;
}
$vdev[] = new OMVModuleZFSVdev($params['name'], $pooltype, $disks);
- $pool->addVdev($vdev);
+ $pool->addVdev($vdev, $opts);
//Ugly fix to solve the problem of blkid not displaying info on newly created pools
$pool->export();
$pool->import($pool->getName());