"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;
$this->validateMethodParams($params, '{
"type":"object",
"properties":{
- "pool_type":{"type":"string","enum":["Basic","Mirror",' .
- '"Raidz1","Raidz2","Raidz3"]},
+ "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']);
- switch ($params['pool_type']) {
- case "Basic":
+ switch ($params['vdevtype']) {
+ case "basic":
$pooltype = OMVModuleZFSVdevType::OMVMODULEZFSPLAIN;
break;
- case "Mirror":
+ case "mirror":
$pooltype = OMVModuleZFSVdevType::OMVMODULEZFSMIRROR;
break;
- case "Raidz1":
+ case "raidz1":
$pooltype = OMVModuleZFSVdevType::OMVMODULEZFSRAIDZ1;
break;
- case "Raidz2":
+ case "raidz2":
$pooltype = OMVModuleZFSVdevType::OMVMODULEZFSRAIDZ2;
break;
- case "Raidz3":
+ case "raidz3":
$pooltype = OMVModuleZFSVdevType::OMVMODULEZFSRAIDZ3;
break;
default:
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());