diff --git a/gosa-plugins/fai/admin/fai/class_faiPartitionTable.inc b/gosa-plugins/fai/admin/fai/class_faiPartitionTable.inc
index 83d24b2bbc2b9d14a500318f4d0d17875bbf0f87..9534a765e1afef84ca18981a5b89c3b45e717139 100644 (file)
var $objectclasses = array("top","FAIclass","FAIpartitionTable");
var $subAttributes = array("cn","description");
- var $subPartAttributes = array("cn","FAIpartitionNr","FAIpartitionSize","FAImountPoint","FAIfsType","FAIpartitionType","FAImountOptions","FAIfsOptions","FAIpartitionFlags","description");
+ var $subPartAttributes = array("cn","FAIpartitionNr","FAIpartitionSize","FAImountPoint","FAIfsType","FAIpartitionType","FAImountOptions","FAIfsOptions","FAIpartitionFlags","description","FAIfsCreateOptions","FAIfsTuneOptions","FAIfsOptions","FAIpartitionFlags","FAIlvmDevice");
var $sub64coded = array();
var $subBinary = array();
* This code adds a new HDD to the disks
* A new Dialog will be opened
*/
- if(isset($_POST['AddDisk']) && !preg_match("/freeze/i",$this->FAIstate)){
+ if((isset($_POST['AddDisk']) || isset($_POST['AddRaid']) || isset($_POST['AddVolgroup'])) &&
+ !preg_match("/freeze/i",$this->FAIstate)){
$usedDiskNames =array();
foreach($this->disks as $key=>$disk){
$usedDiskNames[]= $key;
}
if ($this->FAIpartitionMethod == "setup-storage") {
- $this->dialog = new faiDiskEntry($this->config,$this->dn,$usedDiskNames);
+ if(isset($_POST['AddDisk'])) $type = "disk";
+ if(isset($_POST['AddRaid'])) $type = "raid";
+ if(isset($_POST['AddAddVolgroup'])) $type = "lvm";
+ $this->dialog = new faiDiskEntry($this->config,$this->dn,$this, array(),$type);
} else {
- $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$usedDiskNames);
+ $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$this);
}
+
$this->dialog->set_acl_base($this->acl_base_for_current_object($this->dn));
$this->dialog->set_acl_category("fai");
$this->dialog->FAIstate = $this->FAIstate;
+
+
$this->is_dialog = true;
}
$dn = "new";
}
- if ($this->FAIpartitionMethod == "setup-storage") {
- $this->dialog = new faiDiskEntry($this->config,$this->dn,$usedDiskNames,$this->disks[$Udisk]);
- } else {
- $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$usedDiskNames,$this->disks[$Udisk]);
+ if(isset($this->disks[$Udisk]['FAIdiskType'])){
+ switch($this->disks[$Udisk]['FAIdiskType']){
+ case 'raid':
+ case 'lvm':
+ case 'disk':
+ $this->dialog = new faiDiskEntry(
+ $this->config,$this->dn,$this,$this->disks[$Udisk],
+ $this->disks[$Udisk]['FAIdiskType']);
+ break;
+ case 'old':
+ $this->dialog = new faiPartitionTableEntry(
+ $this->config,$this->dn,$usedDiskNames,$this->disks[$Udisk]);
+ break;
+ }
+ }else{
+ $this->dialog = new faiPartitionTableEntry(
+ $this->config,$this->dn,$usedDiskNames,$this->disks[$Udisk]);
+ }
+ if($this->dialog){
+ $this->dialog->set_acl_base($this->acl_base_for_current_object($dn));
+ $this->dialog->set_acl_category("fai");
+ $this->dialog->FAIstate = $this->FAIstate;
+ $this->is_dialog = true;
}
- $this->dialog->set_acl_base($this->acl_base_for_current_object($dn));
- $this->dialog->set_acl_category("fai");
- $this->dialog->FAIstate = $this->FAIstate;
-
- $this->is_dialog = true;
}
}
$this->$attrs = $_POST[$attrs];
}
}
+ if(isset($_POST['faiPartitionTable'])){
+ if(!count($this->disks)){
+ if(isset($_POST['mode'])){
+ $this->FAIpartitionMethod = "setup-storage";
+ }else{
+ $this->FAIpartitionMethod = "";
+ }
+ }
+ }
}
foreach($order as $cn=>$disk){
$disk_dn = "cn=".$disk['cn'].",".$this->dn;
$disk_attrs['cn'] = $disk['cn'];
- $disk_attrs['description'] = $disk['description'];
+ $disk_attrs['description'] = $disk['description'];
+
+ if(isset($disk['FAIdiskType'])){
+ $disk_attrs['FAIdiskType'] = $disk['FAIdiskType'];
+ }
+ if(isset($disk['FAIdiskOption'])){
+ $disk_attrs['FAIdiskOption'] = $disk['FAIdiskOption'];
+ }
+ if(isset($disk['FAIlvmDevice'])){
+ $disk_attrs['FAIlvmDevice'] = $disk['FAIlvmDevice'];
+ }
if(empty($disk_attrs['description']) && $disk['status'] == "edited"){
$disk_attrs['description'] = array();
}
if($disk['status']!="delete")
+
/* Add all partitions */
foreach($disk['partitions'] as $key => $partition){
$partition_attrs = array();