index a0be45fcb94ca72a14e3e44a48577ef82a2d910b..e98f721e431ccb79c58dc616c9e22bde87661b0f 100644 (file)
var $ignore_account = TRUE;
/* Attributes for this Object */
var $ignore_account = TRUE;
/* Attributes for this Object */
- var $attributes = array("cn","description","FAIpackage","FAIdebianRelease","FAIdebianSection","FAIdebianMirror");
+ var $attributes = array("cn","description","FAIpackage","FAIdebianRelease","FAIdebianSection", "FAIinstallMethod");
/* ObjectClasses for this Object*/
var $objectclasses = array("top","FAIclass","FAIpackageList","FAIrepository");
/* ObjectClasses for this Object*/
var $objectclasses = array("top","FAIclass","FAIpackageList","FAIrepository");
var $FAIdebianRelease = ""; // The selected release
var $FAIdebianSection = ""; // selected section
var $FAIdebianRelease = ""; // The selected release
var $FAIdebianSection = ""; // selected section
- var $FAIdebianMirror = ""; // selected mirror
+ var $FAIinstallMethod = "aptitude"; // hard coded
var $mirror = ""; // selected mirror
var $servers = array(); // All available servers
var $mirror = ""; // selected mirror
var $servers = array(); // All available servers
$ldap = $this->config->get_ldap_link();
foreach($this->usedPackages as $name){
$ldap = $this->config->get_ldap_link();
foreach($this->usedPackages as $name){
- $ldap->search("(&(objectClass=FAIdebconfInfo)(FAIpackage=".$name."))");
+ $ldap->search("(&(objectClass=FAIdebconfInfo)(FAIpackage=".$name."))",array("FAIvariable","FAIvariableType","FAIvariableContent","FAIpackage","FAIdebianSection",""));
while($attr = $ldap->fetch()){
$tmp =array();
$tmp['Name'] = $attr['FAIvariable'][0];
$tmp['Type'] = $attr['FAIvariableType'][0];
while($attr = $ldap->fetch()){
$tmp =array();
$tmp['Name'] = $attr['FAIvariable'][0];
$tmp['Type'] = $attr['FAIvariableType'][0];
- if(!in_array($attr['FAIvariableType'],array("multiselect"))){
- $tmp['Value'] = $attr['FAIvariableContent'][0];
- }else{
- $content = array();
- unset($attr['FAIvariableContent']['count']);
- foreach($attr['FAIvariableContent'] as $attr){
- $tmp['Value'][] = $attr;
+ if (isset($attr['FAIvariableContent'][0])){
+ if(!in_array($attr['FAIvariableType'],array("multiselect"))){
+ $tmp['Value'] = $attr['FAIvariableContent'][0];
+ }else{
+ $content = array();
+ unset($attr['FAIvariableContent']['count']);
+ foreach($attr['FAIvariableContent'] as $attr){
+ $tmp['Value'][] = $attr;
+ }
}
}
+ $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
}
}
- $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
}
}
}
}
}
$this->confDir = CONFIG_DIR."/fai/";
$this->FAIpackage = array();
}
$this->confDir = CONFIG_DIR."/fai/";
$this->FAIpackage = array();
-
- /* Extract mirror location */
- $this->mirror= preg_replace("!^[^/]+//([^/]+).*$!", '$1', $this->FAIdebianMirror);
}
function execute()
}
function execute()
$smarty= get_smarty();
$display= "";
$smarty= get_smarty();
$display= "";
- $this->genMirror();
-
/* Check if we exist already - no need to ask for revisions, etc. then */
if ($this->dn != "new"){
$this->newDialogShown= true;
/* Check if we exist already - no need to ask for revisions, etc. then */
if ($this->dn != "new"){
$this->newDialogShown= true;
$this->is_dialog =true;
}
$this->is_dialog =true;
}
- /* alert possible missconfigurations */
- if((count($this->releases)==0)||(count($this->servers)==0)||(count($this->sections)==0)){
- print_red(_("There is no useable package list defined."));
- }
-
/* Assign posible changes, for mirror combinations */
$this->dialog->save_object();
/* Assign posible changes, for mirror combinations */
$this->dialog->save_object();
- $this->dialog->releases = $this->releases;
- $this->dialog->servers = $this->servers;
- $this->dialog->sections = $this->sections;
- $this->dialog->mirrors = $this->mirrors;
/* Assign Repository settings*/
if(isset($_POST['SaveObjectNew'])){
/* Assign Repository settings*/
if(isset($_POST['SaveObjectNew'])){
- $this->FAIdebianRelease = $this->dialog->FAIdebianRelease;
- $this->FAIdebianSection = $this->dialog->FAIdebianSection;
- $this->FAIdebianMirror = $this->dialog->FAIdebianMirror;
+ $obj = $this->dialog->save();
+
+ $this->FAIdebianSection = $obj['FAIdebianSection'];
+ $this->FAIdebianRelease = $obj['FAIdebianRelease'];
+
unset($this->dialog);
$this->dialog = false;
$this->is_dialog=false;
unset($this->dialog);
$this->dialog = false;
$this->is_dialog=false;
$smarty->assign($attrs,$this->$attrs);
}
$smarty->assign($attrs,$this->$attrs);
}
- /* Set mirror if changed */
- if((isset($_POST['FAIdebianMirrorS']))&&(!empty($_POST['FAIdebianMirrorS']))){
- $this->FAIdebianMirror = $_POST['FAIdebianMirrorS'];
- }
-
- /* check servers matching release and section settings */
- $availableServer = array();
- foreach($this->mirrors as $mir){
- if($mir['release'] == $this->FAIdebianRelease){
- $pass = true;
- foreach($this->FAIdebianSection as $sec){
- if($sec != $mir['section']){
- $pass = false;
- }
- if($pass){
- $availableServer[$mir['mirror']]=$mir['mirror'];
- }
- }
- }
- }
-
/* Generate package list */
$this->list=$this->genPkgs();
/* Generate package list */
$this->list=$this->genPkgs();
/* Delte selected package */
if(isset($_POST['Delpkg'])){
/* Delte selected package */
if(isset($_POST['Delpkg'])){
- unset($this->usedPackages[$_POST['usedPackages']]);
+ foreach($_POST['usedPackages'] as $del){
+ if(isset($this->usedPackages[$del])){
+ unset($this->usedPackages[$del]);
+ }
+ }
}
/* Abort package selection dialog */
}
/* Abort package selection dialog */
/* Configuration dialog open*/
if((isset($_POST['Conpkg']))&&(isset($_POST['usedPackages']))&&(!empty($_POST['usedPackages']))){
/* Configuration dialog open*/
if((isset($_POST['Conpkg']))&&(isset($_POST['usedPackages']))&&(!empty($_POST['usedPackages']))){
- $path = "/etc/gosa/fai/".preg_replace("#^[^/]+//([^/]+).*$#","\\1",$this->FAIdebianMirror)."/".$this->FAIdebianRelease."/".$sec;
+ $path = "/etc/gosa/fai/".$this->FAIdebianRelease."/debconf.d";
$pkg_config = array();
$pkg_config = array();
- if(isset($this->ConfiguredPackages[$_POST['usedPackages']])){
- $pkg_config = $this->ConfiguredPackages[$_POST['usedPackages']];
+ $pkg = $_POST['usedPackages'][0];
+
+ if(isset($this->ConfiguredPackages[$pkg])){
+ $pkg_config = $this->ConfiguredPackages[$pkg];
}
}
- $this->dialog = new faiPackageConfiguration($this->config, $this->dn,$_POST['usedPackages'], $path, $pkg_config);
+ $this->dialog = new faiPackageConfiguration($this->config, $this->dn,$pkg, $path, $pkg_config);
$this->is_dialog =true;
}
$this->is_dialog =true;
}
}
$smarty->assign("OptionsACL","");
}
$smarty->assign("OptionsACL","");
- if(empty($this->FAIdebianMirror)){
- $smarty->assign("OptionsACL"," disabled ");
- }
- $smarty->assign("mirrors" ,$availableServer);
- $smarty->assign("mirror" ,$this->FAIdebianMirror);
$smarty->assign("releases",$this->releases);
$smarty->assign("release" ,$this->FAIdebianRelease);
$smarty->assign("sections",$this->sections);
$smarty->assign("releases",$this->releases);
$smarty->assign("release" ,$this->FAIdebianRelease);
$smarty->assign("sections",$this->sections);
return($display);
}
return($display);
}
- function genMirror(){
- $confDir = $this->confDir;
- if(!is_readable($confDir)){
- print_red(sprintf(_("Can't read configuration folder '%s'."),$confDir));
- }else{
-
- /* Try to catch all available mirrors
- Possibly check if each server is reachable
- */
-
- $this->servers= array();
- $this->releases=array();
- $this->sections=array();
- $this->mirrors= array();
- $fd = opendir($confDir);
- while($mirror = readdir($fd)){
- if((is_dir($confDir.$mirror."/"))&&(($mirror != "." )&&($mirror!=".."))){
-
- $mirrorDir = $confDir.$mirror."/";
-
- $fe = opendir($mirrorDir);
- while($release = readdir($fe)){
- if((is_dir($mirrorDir.$release))&&(($release != "." )&&($release!=".."))){
-
- $releaseDir = $mirrorDir.$release."/";
-
- $ff = opendir($releaseDir);
- while($section = readdir($ff)){
- if((is_file($releaseDir.$section))&&(($section != "." )&&($section!="..")&&(!preg_match("/.*\.in$/",$section)))){
-
- $this->servers[$mirror]=$mirror;
- $this->releases[$release]=$release;
- $this->sections[$section]=$section;
-
- $arr=array();
- $arr['mirror'] = $mirror;
- $arr['release']= $release;
- $arr['section']= $section;
-
- $this->mirrors[] = $arr ;
- }
- }
- fclose($ff);
- }
- }
- fclose($fe);
- }
- }
- fclose($fd);
- }
-
-
- }
-
/* Delete me, and all my subtrees
*/
function remove_from_parent()
/* Delete me, and all my subtrees
*/
function remove_from_parent()
$message[]=_("Please select a least one Package.");
}
$message[]=_("Please select a least one Package.");
}
- if((empty($this->FAIdebianRelease))||(empty($this->FAIdebianSection))||(empty($this->FAIdebianMirror))){
+ if((empty($this->FAIdebianRelease))||(empty($this->FAIdebianSection))){
$message[]=_("Please choose a valid combination for your repository setup.");
}
$message[]=_("Please choose a valid combination for your repository setup.");
}
$a_ret=array();
if(is_array($this->usedPackages)) {
foreach($this->usedPackages as $usedName){
$a_ret=array();
if(is_array($this->usedPackages)) {
foreach($this->usedPackages as $usedName){
+
+ $config = 0;
+
+ foreach($this->ConfiguredPackages as $name => $value){
+ if($name == $usedName){
+ $config ++;
+ }
+ }
+
+ $c_str ="";
+ if($config){
+ $c_str = " - "._("package is configured");
+ }
+
if(isset($this->list[$usedName][1])){
if(isset($this->list[$usedName][1])){
- $a_ret[$usedName] = $usedName." [".$this->list[$usedName][1]."]";
+ $a_ret[$usedName] = $usedName." [".$this->list[$usedName][1]."]".$c_str;
}else{
}else{
- $a_ret[$usedName] = $usedName;
+ $a_ret[$usedName] = $usedName.$c_str;
}
}
}
}
}
}
$this->buffer=array();
$a_ret = array();
foreach($this->FAIdebianSection as $sec){
$this->buffer=array();
$a_ret = array();
foreach($this->FAIdebianSection as $sec){
- $strID= "/etc/gosa/fai/".preg_replace("#^[^/]+//([^/]+).*$#","\\1",$this->FAIdebianMirror)."/".$this->FAIdebianRelease."/".$sec;
+ $strID= "/etc/gosa/fai/".$this->FAIdebianRelease."/".$sec;
if(!is_file($strID)){
print_red(sprintf(_("Package file '%s' does not exist."),$strID));
if(!is_file($strID)){
print_red(sprintf(_("Package file '%s' does not exist."),$strID));
- $this->FAIdebianMirror="";
unset($this->buffer);
return(array());
}
unset($this->buffer);
return(array());
}
$this->attrs['FAIdebianSection'][] = $sec;
}
$this->attrs['FAIdebianSection'][] = $sec;
}
+ $this->attrs["FAIinstallMethod"]= "aptitude";
+
$ldap->cat($this->dn);
if($ldap->count()!=0){
/* Write FAIscript to ldap*/
$ldap->cat($this->dn);
if($ldap->count()!=0){
/* Write FAIscript to ldap*/