X-Git-Url: http://git.datanom.net/omvzfs.git/blobdiff_plain/f6d97ba0aef0419618ef5e36b73b971b55627360..43a6a77c7d796aa64c1c98aa0eb3dbdb5552bac7:/src/Zvol.php?ds=sidebyside diff --git a/src/Zvol.php b/src/Zvol.php index c6fd20d..9be6f5e 100644 --- a/src/Zvol.php +++ b/src/Zvol.php @@ -135,6 +135,20 @@ class OMVModuleZFSZvol { } } + /** + * Get single Datset property from commandline and update object property attribute + * + * @param string $property Name of the property to update + * @return void + * @access private + */ + private function updateProperty($property) { + $cmd = "zfs get -H " . $property . " " . $this->name; + $this->exec($cmd,$out,$res); + $tmpary = preg_split('/\t+/', $out[0]); + $this->properties["$tmpary[1]"] = array("value" => $tmpary[2], "source" => $tmpary[3]); + } + /** * Create a Zvol on commandline. Optionally provide a number of properties to set. * @@ -146,7 +160,7 @@ class OMVModuleZFSZvol { */ public function create($size, array $properties = null, $sparse = null) { $cmd = "zfs create -p "; - if (isset($sparse) && $sparse == true) { + if ((isset($sparse)) && ($sparse == true)) { $cmd .= "-s "; } $cmd .= "-V " . $size . " " . $this->name . " 2>&1"; @@ -167,6 +181,33 @@ class OMVModuleZFSZvol { $this->exec($cmd,$out,$res); } + /** + * Renames a Zvol + * + * @param string $newname New name of the Dataset + * @return void + * @access public + */ + public function rename($newname) { + $cmd = "zfs rename -p " . $this->name . " " . $newname . " 2>&1"; + $this->exec($cmd,$out,$res); + $this->name = $newname; + } + + /** + * Clears a previously set proporty and specifies that it should be + * inherited from it's parent. + * + * @param string $property Name of the property to inherit. + * @return void + * @access public + */ + public function inherit($property) { + $cmd = "zfs inherit " . $property . " " . $this->name . " 2>&1"; + $this->exec($cmd,$out,$res); + $this->updateProperty($property); + } + /** * Helper function to execute a command and throw an exception on error * (requires stderr redirected to stdout for proper exception message).