Signed-off-by: Niclas Berglind <nb@kjam.se>
$opts .= "-m " . $params['mountpoint'] . " ";
}
$opts .= "-m " . $params['mountpoint'] . " ";
}
+ //Use /dev/disk/by-path as deafult when creating new pools as suggested in ZoL FAQ.
$disks = preg_split("/[,;]/", $params['devices']);
$disks = preg_split("/[,;]/", $params['devices']);
+ if (file_exists("/dev/disk/by-path/")) {
+ $tmp_disks = array();
+ foreach ($disks as $disk) {
+ $tmp_disks[] = OMVModuleZFSUtil::getDiskPath($disk);
+ }
+ $disks = $tmp_disks;
+ }
+
$vdev = new OMVModuleZFSVdev($params['name'], $pooltype, $disks);
$pool = new OMVModuleZFSZpool($vdev, $opts);
//Ugly fix to solve the problem of blkid not displaying info on newly created pools
$vdev = new OMVModuleZFSVdev($params['name'], $pooltype, $disks);
$pool = new OMVModuleZFSZpool($vdev, $opts);
//Ugly fix to solve the problem of blkid not displaying info on newly created pools
*/
class OMVModuleZFSUtil {
*/
class OMVModuleZFSUtil {
+ /**
+ * Get /dev/disk/by-path from /dev/sdX
+ *
+ * @return string Disk identifier
+ */
+ public static function getDiskPath($disk) {
+ preg_match("/^.*\/([A-Za-z0-9]+)$/", $disk, $identifier);
+ $cmd = "ls -la /dev/disk/by-path | grep '$identifier[1]$'";
+ OMVModuleZFSUtil::exec($cmd, $out, $res);
+ if (is_array($out)) {
+ $cols = preg_split('/[\s]+/', $out[0]);
+ return($cols[count($cols)-3]);
+ }
+ }
+
+
/**
* Get poolname from name of dataset/volume etc.
*
/**
* Get poolname from name of dataset/volume etc.
*