]> git.datanom.net - omvzfs.git/blobdiff - gui/rpc/zfs.inc
Made it possible to force create Vdevs.
[omvzfs.git] / gui / rpc / zfs.inc
index 75b5c2336bc36dec8d93eb639bc0a0a9b2cbb125..fda53b0209dcf00f43f6d0e09f35dddce28b35dd 100644 (file)
@@ -533,33 +533,37 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
                $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/")) {
@@ -570,7 +574,7 @@ class OMVRpcServiceZFS extends OMVRpcServiceAbstract {
                        $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());
This page took 0.032466 seconds and 5 git commands to generate.