diff --git a/gosa-plugins/fai/admin/fai/class_faiPartitionTable.inc b/gosa-plugins/fai/admin/fai/class_faiPartitionTable.inc
index de7f3cdc677b95965feefe80d7491b0fee03e13c..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();
// Transform disk type into image later...
if (!isset($obj['FAIdiskType'])){
- $objects['type'] = "old";
+ $objects['FAIdiskType'] = "old";
} else {
- $objects['type'] = $obj['FAIdiskType'];
+ $objects['FAIdiskType'] = $obj['FAIdiskType'];
}
+ $objects['FAIdiskOption'] = $obj['FAIdiskOption'];
// Transform potential lvm information
if (isset($obj['FAIlvmDevice'])){
- $objects['vg'] = $obj['FAIlvmDevice'];
+ $objects['FAIlvmDevice'] = $obj['FAIlvmDevice'];
}
$objects['dn'] = $obj['dn'];
* 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;
}
- $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$usedDiskNames);
+ if ($this->FAIpartitionMethod == "setup-storage") {
+ 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,$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;
}
}
// Used by volgroup?
- if (isset($this->disks[$name]["vg"])){
- foreach ($this->disks[$name]["vg"] as $vg_element) {
+ if (isset($this->disks[$name]["FAIlvmDevice"])){
+ foreach ($this->disks[$name]["FAIlvmDevice"] as $vg_element) {
if (preg_match("/^${device}\.?[0-9]+$/", $vg_element)){
$ignore = true;
break 2;
$dn = "new";
}
- $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$usedDiskNames,$this->disks[$Udisk]);
- $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;
+ 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;
+ }
}
}
$edit_link = "<a href='?plug=".$_GET['plug']."&act=edit&id=".$key."'>".$key."</a>";
$types= array("old" => "plugins/fai/images/fai_partitionTable.png", "disk" => "plugins/fai/images/fai_partitionTable.png",
"raid" => "plugins/fai/images/raid.png", "lvm" => "plugins/ogroups/images/list_ogroup.png");
- $type = isset($disk['type'])?$types[$disk['type']]:$types['old'];
+ $type = isset($disk['FAIdiskType'])?$types[$disk['FAIdiskType']]:$types['old'];
$divlist->AddEntry(array(
array("string"=> "<img border='0' src='".$type."'>", "attach"=>"style='width:16px'"),
array("string"=> $edit_link, "attach"=>"style='width:100px'"),
$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();