diff options
author | Tarik Gasmi | 2007-07-06 12:29:06 +0200 |
---|---|---|
committer | Tarik Gasmi | 2007-07-06 12:29:06 +0200 |
commit | 493c1dd8260f24f8bfaf9271418529011b0f2a80 (patch) | |
tree | 834619232835c4786d793848a7f99882034d7bd1 /ldap-site-mngmt | |
parent | Adjusted timings a little bit (waiting for scripts like hwautocfg to (diff) | |
download | core-493c1dd8260f24f8bfaf9271418529011b0f2a80.tar.gz core-493c1dd8260f24f8bfaf9271418529011b0f2a80.tar.xz core-493c1dd8260f24f8bfaf9271418529011b0f2a80.zip |
Actualised LDAP SiteManagement Webinterface and Perl-Config-Skripts
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1225 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'ldap-site-mngmt')
37 files changed, 893 insertions, 462 deletions
diff --git a/ldap-site-mngmt/generation-scripts/dhcp_generate.pl b/ldap-site-mngmt/generation-scripts/dhcp_generate.pl new file mode 100644 index 00000000..13969f34 --- /dev/null +++ b/ldap-site-mngmt/generation-scripts/dhcp_generate.pl @@ -0,0 +1,215 @@ +#!/usr/bin/perl + +# Generate ISC DHCP Configuration File +# +# generates an include file "dhcp.master.inc" included in dhcpd.conf +# with: +# - Definitions of User-defined DHCP Options +# - DHCP Service Global Options +# - DHCP Subnet Deklarations and Options +# - DHCP Host Deklarations and Options + + +use strict; +use warnings; +#use diagnostics; + +use Net::LDAP; +use Net::LDAP::LDIF; + +our ( $ldaphost, $basedn, $userdn, $passwd, $dhcpdn, $dhcpdconfpath, $dhcpdconffile ); +my ( $ldap, $mesg ); + +# Read Configuration Variables for LDAP/ +require "dhcpgen.conf.pl"; +#use dhcpgenconfig; + + +# Bind with LDAP Server +$ldap = Net::LDAP->new( $ldaphost ) or die "$@"; +$mesg = $ldap->bind( $userdn, password => $passwd ); +$mesg->code && die $mesg->error; + + +mkdir "$dhcpdconfpath/includes"; +open DATEI, "> $dhcpdconfpath/includes/dhcp.master.inc"; + +my @dhcpdnarray = split /,/,$dhcpdn; +my $aurdn = $dhcpdnarray[2]; +my @auarray = split /=/,$aurdn; +my $au = $auarray[1]; +my $srvrdn = $dhcpdnarray[0]; +my @srvarray = split /=/,$srvrdn; +my $srv = $srvarray[1]; + +# File Header (general Informations) +printf DATEI "##################### DHCP SERVICE CONFIG ############################################ \n#\n"; +printf DATEI "# DHCP Service: \t\t %s \n", $srv; +printf DATEI "# Administrative Unit: \t\t %s \n#\n", $au; +printf DATEI "# [ %s ]\n#\n", $dhcpdn; +printf DATEI "######################################################################################## \n\n\n"; + + +# Ldapsearch on DHCP Service Object +$mesg = $ldap->search(base => $dhcpdn, + scope => 'base', + filter => '(objectclass=dhcpService)'); +#Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); +$mesg->code && die $mesg->error; +my $dhcpservice = $mesg->count or die "DHCP Service Object does not exist in the System"; +my $dhcpsrventry = $mesg->entry(0); + +printf DATEI "######################\n# Option Definitions\n######################\n\n"; +# write Definitions of user/self-defined DHCP Options +if ($dhcpsrventry->exists( 'OptionDefinition' )) { + my @optdefinitions = $dhcpsrventry->get_value( 'OptionDefinition' ); + foreach my $optdef ( @optdefinitions) { + printf DATEI "%s\n", $optdef; + } +} + +printf DATEI "\n\n######################\n# Global Options\n######################\n\n"; +# write DHCP Options in global Scope +dhcpoptions( $dhcpsrventry ); +printf DATEI "\n"; + + + +#################################### +# DHCP SUBNETS + +# ldapsearch on Subnet Objects referencing to DHCP Service Object +$mesg = $ldap->search(base=>$basedn, + scope => 'sub', + filter => '(&(objectclass=dhcpSubnet)(dhcphlpcont:dn:='.$dhcpdn.'))'); +#Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); +$mesg->code && die $mesg->error; +my @subnets = $mesg->sorted('cn'); + +# write Subnet Declarations +printf DATEI "\n\n######################\n# DHCP Subnets\n######################\n\n"; + +foreach my $subnetentry ( @subnets ) { + my $subnetdn = $subnetentry->dn; + my $subnet = $subnetentry->get_value( 'cn' ); + my $netmask = $subnetentry->get_value( 'dhcpoptnetmask' ); + printf DATEI "subnet %s netmask %s {\n", $subnet, $netmask; + # write DHCP Options in Subnet Scope + dhcpoptions($subnetentry); + # Range + if ($subnetentry->exists( 'dhcpRange' )) { + my @range = split /_/,$subnetentry->get_value( 'dhcpRange' ); + printf DATEI " range %s %s;\n", $range[0], $range[1]; + } + + printf DATEI "}\n\n"; +} + + +#################################### +# DHCP HOSTS + +# ldapsearch on DHCP Host Objects referencing to DHCP Service Object +$mesg = $ldap->search(base=>$basedn, + scope => 'sub', + filter => '(&(objectclass=dhcpHost)(dhcphlpcont:dn:='.$dhcpdn.'))'); + #Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); + $mesg->code && die $mesg->error; +my @hosts = $mesg->sorted('dn'); + +# write Host Declarations +printf DATEI "\n\n######################\n# DHCP Hosts\n######################\n"; + +# grouping Hosts by Administrative Units (AU) +my $hostau = ""; +foreach my $hostentry ( @hosts ) { + + # für jede AU eigener Abschnitt (oder abzweigung in eigene includedatei ...) + my $hostdn = $hostentry->dn(); + my @dnarray = split /,/,$hostdn; + my @auarray = split /=/,$dnarray[2]; + my $hostauactual = $auarray[1]; + if ( $hostau ne $hostauactual) { + # hier neues handle und pfad falls eigene includedatei ... + printf DATEI "\n################################################\n# AU: %s \n", $hostauactual; + $hostau = $hostauactual; + } + # DHCP Options in Host Scope + dhcphost($hostentry); +} + +close DATEI; + +# LDAP unbind +$mesg = $ldap->unbind; + +exit (0); + + +################################################################################################### +# Subroutines +############### + +# write DHCP Options, Parameter: DHCP Object LDAP Entry +sub dhcpoptions { + my $entry = shift; + my @atts = $entry->attributes; + + # DHCP Optionen mit 'option' vorne dran + my @options1 = grep /dhcpopt/, @atts; + #printf "options: @options1\n"; + foreach my $option ( @options1 ){ + if ( $option ne "dhcpoptNetmask" ){ + my $value = $entry->get_value( $option ); + $option =~ s/dhcpopt//; + if ( $option eq "Domain-name"){ + printf DATEI " option %s \"%s\";\n", lc($option), $value; + }else{ + printf DATEI " option %s %s;\n", lc($option), $value; + } + } + } + # DHCP Optionen + my @options2 = grep /dhcpOpt/, @atts; + #printf "Options: @options2\n"; + foreach my $option ( @options2 ){ + if ( $option ne "dhcpOptFixed-address" ){ + my $value = $entry->get_value( $option ); + $option =~ s/dhcpOpt//; + if ( $option eq "Filename"){ + printf DATEI " %s \"%s\";\n", lc($option), $value; + }else{ + printf DATEI " %s %s;\n", lc($option), $value; + } + } + } +} + + +# write DHCP Host specific Options, Parameter: DHCP Object LDAP Entry +sub dhcphost { + my $entry = shift; + my @atts = $entry->attributes; + + printf DATEI "\nhost %s {\n", lc $entry->get_value( 'hostname' ); + # Host specific DHCP Options + if ($entry->exists( 'hwaddress' )) { + printf DATEI " hardware ethernet %s;\n", $entry->get_value( 'hwaddress' ); + } + if ($entry->exists( 'dhcpoptfixed-address' )) { + if ( $entry->get_value('dhcpoptfixed-address') eq "ip" ){ + my @ip = split /_/, $entry->get_value( 'ipaddress' ); + printf DATEI " fixed-address %s;\n", lc $ip[0]; + } + if ( $entry->get_value('dhcpoptfixed-address') eq "hostname" ){ + printf DATEI " fixed-address %s.%s;\n", lc $entry->get_value( 'hostname' ), lc $entry->get_value( 'domainname' ); + } + } + my @hwoptions = grep /Hw-/, @atts; + foreach my $hwoption ( @hwoptions ){ + printf DATEI " option %s \"%s\";\n", lc($hwoption), $entry->get_value($hwoption); + } + # remaining DHCP Options + dhcpoptions ($entry); + printf DATEI "}\n"; +}
\ No newline at end of file diff --git a/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl b/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl new file mode 100644 index 00000000..0df08379 --- /dev/null +++ b/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl @@ -0,0 +1,11 @@ +# Beispiel einer Konfiguration der dhcp_generator.pl +# Zentraler DHCP Dienst DHCP_UniFR des Rechenzentrums +# verantwortlicher Administrator ist admin01 + +$ldaphost = "ldap://foo.ruf.uni-freiburg.de"; # aus config.php +$basedn = "ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; +$userdn = "uid=admin01,ou=people,dc=uni-freiburg,dc=de"; # aus Session +$passwd = "dipman02"; # aus Session +$dhcpdn = "cn=DHCP_RZ01,cn=dhcp,ou=Rechenzentrum,ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; +$dhcpdconfpath = "/home/lsm/new_dhcpconfigs"; +#$dhcpdconffile = "dhcpd.conf.new"; diff --git a/ldap-site-mngmt/webinterface/computers/computers_menu.php b/ldap-site-mngmt/webinterface/computers/computers_menu.php index 977c8492..564f9b28 100644 --- a/ldap-site-mngmt/webinterface/computers/computers_menu.php +++ b/ldap-site-mngmt/webinterface/computers/computers_menu.php @@ -140,14 +140,14 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { } } $htmlcode= " - <tr height='4'> + <tr height='3'> <td></td><td></td><td></td><td></td> </tr> <tr> <td width='8%'> </td> <td width='8%' align='right'>".$zwisch2."</td> - <td width='5%' align='left' style='border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:3;background-color:{FARBE_S}'> </td>
- <td width='69%' align='left' style='border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:3;padding-left:15px;background-color:{FARBE_S}'> + <td width='5%' align='left' style='border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:2;background-color:{FARBE_S}'> </td>
+ <td width='69%' align='left' style='border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:2;padding-left:15px;background-color:{FARBE_S}'> <a href='".$item2['link']."' style='text-decoration:none'><b class='standard_schrift'>".$item2['text']."</b></a></td> <td width='10%'> </td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt index a9d18707..2f381850 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt @@ -35,9 +35,6 @@ </table></td> </tr> - <tr> - <td height='20'></td> - </tr> <input type='hidden' name='olddhcp' value='{OLDDHCP}'> diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php index 2a78f109..96bbb715 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php +++ b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php @@ -9,6 +9,7 @@ $olddhcp = $_POST['olddhcp']; $hostip = $_POST['hostip']; $fixedaddress = $_POST['fixadd']; $oldfixedaddress = $_POST['oldfixadd']; +$oldrbs = $_POST['oldrbs']; $hostDN = $_POST['hostdn']; $sbmnr = $_POST['sbmnr']; @@ -72,6 +73,9 @@ if ($dhcp != "none" && $dhcp != $olddhcp){ if ( $oldfixedaddress != "" ){ $entrydhcp ['dhcpoptfixed-address'] = array(); } + #if ( $oldrbs != "" ){ + # $entrydhcp ['hlprbservice'] = array(); + #} echo "DHCP delete "; echo "<br>"; if ($result = ldap_mod_del($ds,$hostDN,$entrydhcp)){ $mesg = "Rechner erfolgreich aus DHCP gelöscht<br><br>"; diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt index 87ed24a6..51065a56 100644 --- a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt @@ -9,17 +9,17 @@ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> <td width='24%' class='tab_h'><b>Rechnername</b></td> - <td width='19%' class='tab_h'><b>MAC Adresse</b></td> <td width='19%' class='tab_h'><b>IP Adresse</b></td> + <td width='19%' class='tab_h'><b>MAC Adresse</b></td> <td width='19%' class='tab_h'><b>DHCP</b></td> <td width='19%' class='tab_h'><b>RBS</b></td> </tr> <!-- BEGIN DYNAMIC BLOCK: Rechner --> <tr valign='top' height='45'> - <td class='tab_d'>{HOSTNAME} </td> - <td class='tab_d'>{HWADDRESS} </td> + <td class='tab_d'><b>{HOSTNAME}</b> </td> <td class='tab_d'>{IPADDRESS} </td> + <td class='tab_d'>{HWADDRESS} </td> <td class='tab_d'>{DHCPCONT} </td> <td class='tab_d'>{RBSCONT} </td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/menuentry_add.php b/ldap-site-mngmt/webinterface/computers/menuentry_add.php index dd10e7c2..4f02d2a6 100644 --- a/ldap-site-mngmt/webinterface/computers/menuentry_add.php +++ b/ldap-site-mngmt/webinterface/computers/menuentry_add.php @@ -27,7 +27,7 @@ $pxetype = $pxearray[2]; $seconds = 2; $get_mecn = str_replace ( " ", "_", $mecn ); -$url = "pxe.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +$url = "pxe_bootmenue.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; echo " <html> @@ -68,7 +68,7 @@ if ($typ == "newme" && $typ != "local" && $typ != "text" && $typ != "leer" && $t if (add_me($meDN,$mecn,$gbmDN,$menpos,$meatts,$pxeDN)){ $mesg .= "<br>Neuen Menü Eintrag erfolgreich angelegt<br>"; - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;; } else{ $mesg .= "<br>Fehler beim anlegen des Menü Eintrags!<br>"; @@ -134,7 +134,7 @@ elseif ($typ == "local" && $typ != "newme" && $typ != "text" && $typ != "leer" & }else{ $mesg .= "Fehler beim eintragen der Localboot Zeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } @@ -191,7 +191,7 @@ elseif ($typ == "text" && $typ != "newme" && $typ != "local" && $typ != "leer" & }else{ $mesg .= "Fehler beim eintragen der Textzeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } } @@ -247,7 +247,7 @@ elseif ($typ == "leer" && $typ != "newme" && $typ != "local" && $typ != "text" & }else{ $mesg .= "Fehler beim eintragen der Leerzeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } diff --git a/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt index 9ccaa5ff..40baf438 100644 --- a/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt +++ b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt @@ -1,6 +1,6 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td height='20'><h4>Zurück zu <a href='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}' class='headerlink'>{PXECN}</a></h4></td> + <td height='20'><h4>Zurück zu <a href='pxe_bootmenue.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}' class='headerlink'>{PXECN}</a></h4></td> </tr> <tr> <td height='20'> </td> diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt index 305baf9f..ac6261b6 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt @@ -53,8 +53,8 @@ <input type='hidden' name='name' value='{ANZEIGENAME}'> <input type='hidden' name='pxedn' value='{PXEDN}'> <input type='hidden' name='delurl' value='menuentry_delete.php'> - <input type='hidden' name='successurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'> - <input type='hidden' name='backurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'> + <input type='hidden' name='successurl' value='pxe_bootmenue.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'> + <input type='hidden' name='backurl' value='pxe_bootmenue.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'> <input type='Submit' name='apply' value='löschen' class='small_loginform_button'> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php index c6b62011..3bd34305 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php @@ -131,7 +131,7 @@ $template->assign(array("MENDN" => "", "BGCDEF" => "", "POSITION" => "")); foreach ($menuentries as $me){ - $anzeige = ""; + $anzeige = ""; $medef = ""; $mepwd = ""; $mehide = ""; if ($me['label'] != "" && $me['menulabel'] == ""){$anzeige .= $me['label'];} if ($me['menulabel'] != ""){$anzeige .= $me['menulabel'];} if ($me['menudefault'] == 1){$medef = "<b>D</b>"; $bgcdef = "background-color:#EEDD82;";} diff --git a/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php b/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php index 2e73db85..8296762a 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php @@ -78,10 +78,10 @@ foreach ($wopldeftranges as $tr){ #print_r($allx); echo "<br>"; $daycode = array("MO" => "A", "DI" => "B", "MI" => "C", "DO" => "D", "FR" => "E", "SA" => "F", "SO" => "G"); -$allxcolors = array("#BEBEBE","A0A0A0","#696969","#EEDFCC","#D8BFD8","#505050"); -$dayxcolors = array("#483D8B","#7B68EE","#191970","#8470FF","#708090","#6A5ACD"); -$timexcolors = array("#CDC673","#A2CD5A","#BDB76B","#8B864E","#6B8E23","#CDBE70"); -$daytimecolors = array("880000","#CD6839","#CC3300","#CC6600","#993300","#8B4C39"); +$daytimexcolors = array("#BEBEBE","A0A0A0","#696969","#EEDFCC","#D8BFD8","#505050"); +$allxcolors = array("#483D8B","#7B68EE","#191970","#8470FF","#708090","#6A5ACD"); +$dayxcolors = array("#CDC673","#A2CD5A","#BDB76B","#8B864E","#6B8E23","#CDBE70"); +$timecolors = array("880000","#CD6839","#CC3300","#CC6600","#993300","#8B4C39"); if (count($allx) != 0){ @@ -242,7 +242,7 @@ if (count($daytime) != 0){ } -$template->assign(array("PXEDESC" => "")); +$template->assign(array("PXEPLANDESC" => "")); #print_r($legend); if (count($legend) != 0){ $template->define_dynamic("Legende", "Webseite"); @@ -252,7 +252,7 @@ if (count($legend) != 0){ $template->assign(array("TR1" => $item[0][0], "TR2" => $item[0][1], "TR3" => $item[0][2], - "PXEDESC" => $item[0][3], + "PXEPLANDESC" => $item[0][3], "COLOR" => $color)); $template->parse("LEGENDE_LIST", ".Legende"); } diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.dwt b/ldap-site-mngmt/webinterface/computers/rbshost.dwt index 6fd774cd..59baf810 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.dwt +++ b/ldap-site-mngmt/webinterface/computers/rbshost.dwt @@ -13,6 +13,9 @@ <tr> <td colspan='5'><h3>RBS/PXE Setup - Rechner <code class='font_object'> {HOSTNAME} </code> </h3></td> </tr> + <tr> + <td colspan='4' class='tab_d_ohne'>{NODHCP} </td> + </tr> <tr><td colspan='5'> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> @@ -370,7 +373,7 @@ <!-- BEGIN DYNAMIC BLOCK: Legende --> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>{PXEDESC} </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>{PXEPLANDESC} </td> <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> <td style='border-color: black; border-style: solid; border-width: 1 1 1 1;background-color:{COLOR};'> </td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.php b/ldap-site-mngmt/webinterface/computers/rbshost.php index 83c2056d..438009ed 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.php +++ b/ldap-site-mngmt/webinterface/computers/rbshost.php @@ -43,75 +43,75 @@ $rbs_dhcpopt = ""; $host_dhcpopt = ""; $dhcp_selectbox = ""; +$rbs = ""; +$nodhcptext = ""; -# Falls nicht DHCP Dienst dann kein RBS Setup +# Falls nicht DHCP Dienst dann Erklärung ... if ($dhcphlpcont == ""){ - $rbs = "<td class='tab_d_ohne' colspan='2'> - Sie müssen den Rechner zuerst in einem DHCP Dienst anmelden, bevor Sie ihn - einem Remote Boot Dienst zuordnen können <br>(DHCP Optionen!!).<br></td> - </tr> - <input type='hidden' name='rbs' value='".$rbsDN."'>"; -}else{ - - ########################################################### - # RBS Setup # Nur wenn angezeigt wenn Host in DHCP - $rbs_selectbox = ""; - $rbs_dhcpopt = ""; - $altrbs = alternative_rbservices($rbsDN); - - - $rbs_selectbox .= "<td class='tab_d'> - <select name='rbs' size='4' class='medium_form_selectbox'> - <option selected value='none'>----------</option>"; - if (count($altrbs) != 0){ - foreach ($altrbs as $item){ - $rbs_selectbox .= " - <option value='".$item['dn']."'>".$item['cn']." ".$item['au']."</option>"; - } - } - $rbs_selectbox .= "<option value=''>Kein RBS</option> - </select></td>"; + $nodhcptext .= "Der Rechner ist in keinem DHCP Dienst eingetragen. Dies ist jedoch Voraussetzung, + um einen Remote Boot Dienst nutzen zu können.<br> + D.h. die hier verwalteten RBS-relevanten DHCP Optionen werden bzw. sind für den Client zentral gespeichert, + werden jedoch in keine DHCP Dienst Konfiguration ünernommen. + "; +} +# <input type='hidden' name='rbs' value='".$rbsDN."'> +########################################################### +# RBS Setup +$rbs_selectbox = ""; +$rbs_dhcpopt = ""; +$altrbs = alternative_rbservices($rbsDN); - # RBS Daten - if ($rbsDN == ""){ - - $rbs = "<td class='tab_d_ohne'><b>Remote Boot Dienst: </b> </td> - <td class='tab_d_ohne'> - Rechner ist in keinem Remote Boot Dienst angemeldet<br></td></tr> - <tr valign='top'><td class='tab_d'> - RBS auswählen: <br></td>".$rbs_selectbox; - }else{ - - $rbs = ""; - $rbsdata = get_node_data($rbsDN,array("tftpserverip")); - #print_r($rbsdata); echo "<br>"; - $exp2 = explode(',',$host['hlprbservice']); - $exprbs = explode('=',$exp2[0]); $rbserv = $exprbs[1]; - $exprbsau = explode('=',$exp2[2]); $rbsau = $exprbsau[1]; - $rbs .= "<tr valign='top'> - <td class='tab_d_ohne'><b>Remote Boot Dienst: </b> </td> - <td class='tab_d_ohne'> - Remote Boot Service <b>".$rbserv."</b> / AU <b>".$rbsau."</b></td> - </tr> - <tr> - <td class='tab_d_ohne'>DHCP Option <b>next-server</b> (TFTP Boot Server IP):</td> - <td class='tab_d_ohne'><b>".$host['dhcpoptnext-server']."</b> </td> - </tr> - <tr> - <td class='tab_d'>DHCP Option <b>filename</b> (initiale remote Bootdatei):</td> - <td class='tab_d'><b>".$host['dhcpoptfilename']."</b> </td> - </tr> - <tr valign='top'><td class='tab_d'> - RBS Einbindung ändern: <br></td>".$rbs_selectbox." - </tr>"; - - $rbs_dhcpopt = " - "; + + $rbs_selectbox .= "<td class='tab_d'> + <select name='rbs' size='4' class='medium_form_selectbox'> + <option selected value='none'>----------</option>"; +if (count($altrbs) != 0){ + foreach ($altrbs as $item){ + $rbs_selectbox .= " + <option value='".$item['dn']."'>".$item['cn']." ".$item['au']."</option>"; } +} +$rbs_selectbox .= "<option value=''>Kein RBS</option> + </select></td>"; +# RBS Daten +if ($rbsDN == ""){ + + $rbs .= "<td class='tab_d_ohne'><b>Remote Boot Dienst: </b> </td> + <td class='tab_d_ohne'> + Rechner ist in keinem Remote Boot Dienst angemeldet<br></td></tr> + <tr valign='top'><td class='tab_d'> + RBS auswählen: <br></td>".$rbs_selectbox; +}else{ + + $rbsdata = get_node_data($rbsDN,array("tftpserverip")); + #print_r($rbsdata); echo "<br>"; + $exp2 = explode(',',$host['hlprbservice']); + $exprbs = explode('=',$exp2[0]); $rbserv = $exprbs[1]; + $exprbsau = explode('=',$exp2[2]); $rbsau = $exprbsau[1]; + $rbs .= "<tr valign='top'> + <td class='tab_d_ohne'><b>Remote Boot Dienst: </b> </td> + <td class='tab_d_ohne'> + Remote Boot Service <b>".$rbserv."</b> / AU <b>".$rbsau."</b></td> + </tr> + <tr> + <td class='tab_d_ohne'>DHCP Option <b>next-server</b> (TFTP Boot Server IP):</td> + <td class='tab_d_ohne'><b>".$host['dhcpoptnext-server']."</b> </td> + </tr> + <tr> + <td class='tab_d'>DHCP Option <b>filename</b> (initiale remote Bootdatei):</td> + <td class='tab_d'><b>".$host['dhcpoptfilename']."</b> </td> + </tr> + <tr valign='top'><td class='tab_d'> + RBS Einbindung ändern: <br></td>".$rbs_selectbox." + </tr>"; + + $rbs_dhcpopt = ""; } + + $template->assign(array("HOSTDN" => $hostDN, "HOSTNAME" => $host['hostname'], "DOMAINNAME" => $host['domainname'], @@ -120,6 +120,7 @@ $template->assign(array("HOSTDN" => $hostDN, "DESCRIPTION" => $host['description'], "OLDDHCP" => $objectDN, "OLDFIXADD" => $host['dhcpoptfixed-address'], + "NODHCP" => $nodhcptext, "OLDRBS" => $rbsDN, "RBS" => $rbs, "HOSTLINK" => "<a href='host.php?dn=".$hostDN."&sbmnr=".$sbmnr."' class='headerlink'>", @@ -162,7 +163,7 @@ if (count($hostpxeconfigs) != 0){ } $template->assign(array("PXEDN" => $hostpxeconfigs[$i]['dn'], "PXECN" => $pxelink, - "PXEDESC" => $hostpxeconfigs['description'], + #"PXEDESC" => $hostpxeconfigs['description'], "PXETR" => $trange, )); $template->parse("RECHNERPXES_LIST", ".Rechnerpxes"); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php index 423c53c8..f9a6fae6 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php @@ -9,7 +9,7 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { $hauptmenu = array(array("link" => "no_dhcp.php", "text" => "Übersicht", "zugriff" => "alle")); - $submenu = array(array(array())); + $submenu = array(array()); }else{ # DHCP Services (momentan nur für einen DHCP konzipiert) $dhcpservice_array = get_dhcpservices($auDN,array("dn","cn")); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt index 2bfd0631..eb8e99b6 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt @@ -50,13 +50,15 @@ <input type='hidden' name='olddhcpoffer' value='{DHCPOFFERNOWDN}'> </td> </tr> - <!-- <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>PRIMARY DN:</b></td> + <tr height='50'> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Failover Peer Name</b><br clear="all"><br> + Falls für Ihren Dienst ein Failoverpeer deklariert ist, tragen Sie seinen Namen hier ein. + (Damit werden für dynamische IP Ranges entsprechende Pool Deklarationen, mit Failover Peer generiert)</td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[primary]' value='{PRIMARY}' size='50' class='medium_form_field'> - <input type='hidden' name='oldattribs[primary]' value='{PRIMARY}'> + <input type='Text' name='attribs[dhcpfailoverpeer]' value='{FAILOVERPEER}' size='50' class='medium_form_field'> + <input type='hidden' name='oldattribs[dhcpfailoverpeer]' value='{FAILOVERPEER}'> </td> - </tr> --> + </tr> </table></td> </tr> @@ -74,87 +76,90 @@ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr valign='top'> - <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Option</b></td> - <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert(e)</b></td> - </tr> - - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Server Identifier:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptserver-identifier]' value='{SRVIDENT}' size='40' class='medium_form_field'> - <input type='hidden' name='oldattribs[dhcpoptserver-identifier]' value='{SRVIDENT}'> - </td> + <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Option</b></td> + <td width='70%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert(e)</b></td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Default Lease Time:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}' size='40' class='medium_form_field'> + + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Default Lease Time:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Max Lease Time:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptmax-lease-time]' value='{MAXLEASE}' size='40' class='medium_form_field'> + <input type='Text' name='attribs[dhcpoptmax-lease-time]' value='{MAXLEASE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptmax-lease-time]' value='{MAXLEASE}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Use Host DCL Names:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptuse-host-decl-names]' value='{USEHOSTDCL}' size='40' class='medium_form_field'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Use Host DCL Names:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptuse-host-decl-names]' value='{USEHOSTDCL}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptuse-host-decl-names]' value='{USEHOSTDCL}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>DHCP Max Message Size:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdhcp-max-message-size]' value='{MAXMESSIZE}' size='40' class='medium_form_field'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>DHCP Max Message Size:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdhcp-max-message-size]' value='{MAXMESSIZE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdhcp-max-message-size]' value='{MAXMESSIZE}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>DDNS Update Style:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptddns-update-style]' value='{DDNSUPDATE}' size='40' class='medium_form_field'> + <input type='Text' name='attribs[dhcpoptddns-update-style]' value='{DDNSUPDATE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptddns-update-style]' value='{DDNSUPDATE}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Domain Name:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdomain-name]' value='{DOMAINNAME}' size='40' class='medium_form_field'> - <input type='hidden' name='oldattribs[dhcpoptdomain-name]' value='{DOMAINNAME}'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Domain Name:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdomain-name]' value='{DOMAINNAME}' size='60' class='medium_form_field'> + <input type='hidden' name='oldattribs[dhcpoptdomain-name]' value='{DOMAINNAME}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Domain Name Servers:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}' size='40' class='medium_form_field'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Domain Name Servers:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}' size='60' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>NTP Servers:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='attribs[dhcpoptntp-servers]' value='{NTPSERVERS}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptntp-servers]' value='{NTPSERVERS}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Allow:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Allow:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> <input type='Text' name='attribs[dhcpoptallow]' value='{ALLOW}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptallow]' value='{ALLOW}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Deny:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='attribs[dhcpoptdeny]' value='{DENY}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdeny]' value='{DENY}'> </td> </tr> + <tr> + <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Self-definierte Optionen:</b></td> + </tr> + {OPTDEF} + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Option hinzufügen:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='adddhcpoptdefinition' value='' size='40' class='medium_form_field'> + </td> + </tr> <input type='hidden' name='dhcpdn' value='{DHCPDN}'> <input type='hidden' name='mnr' value='{MNR}'> diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php index 59d77bbe..144ae183 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php @@ -30,6 +30,7 @@ $template->assign(array("DHCPDN" => "", "SECONDARY" => "", "DESCRIPTION" => "", "STATEMENTS" => "", + "FAILOVERPEER" => "", "ALLOW" => "", "DENY" => "", "IGNORE" => "", @@ -40,18 +41,22 @@ $template->assign(array("DHCPDN" => "", "DOMAINNAME" => "", "DOMAINNAMESERVERS" => "", "MAXMESSIZE" => "", - "SRVIDENT" => "", "NTPSERVERS" => "", "OPTGENERIC" => "", + "OPTDEF" => "", + "OPTDEFINITION" => "", "DHCPOFFERNOWDN" => "", - "DHCPOFFERNOW" => "")); + "DHCPOFFERNOW" => "", + "SUBNET" => "keine Subnetze zugewiesen", + "NETMASK" => "", + "SUBNETAU" => "")); # DHCP Service Daten $dhcpsv_array = get_dhcpservices($auDN,array("dn","cn")); $dhcpserviceDN = $dhcpsv_array[0]['dn']; -$attributes = array("dn","cn","dhcpprimarydn","dhcpsecondarydn","description","dhcpofferdn","dhcpstatements","dhcpoptallow", - "dhcpoptddns-update-style","dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptfilename", - "dhcpoptignore","dhcpoptmax-lease-time","dhcpoptnext-server","dhcpoptserver-identifier", +$attributes = array("dn","cn","dhcpprimarydn","dhcpsecondarydn","description","dhcpofferdn","dhcpstatements","dhcpfailoverpeer", + "dhcpoptallow","dhcpoptddns-update-style","dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptfilename", + "dhcpoptignore","dhcpoptmax-lease-time","dhcpoptnext-server","optiondefinition", "dhcpoptuse-host-decl-names","dhcpoptbroadcast-address","dhcpoptdhcp-max-message-size", "dhcpoptdomain-name","dhcpoptdomain-name-servers","dhcpoptgeneric","dhcpoptntp-servers", "dhcpoptroot-path","dhcpoptrouters"); @@ -81,6 +86,22 @@ $expcn = explode('_',$dhcpsv_data['cn']); $name = array_slice($expcn,1); $dhcpcn = implode('_',$name); +$optdef = ""; +if (count($dhcpsv_data['optiondefinition']) == 1){ + $dhcpsv_data['optiondefinition'] = array($dhcpsv_data['optiondefinition']); +} +if (count($dhcpsv_data['optiondefinition']) > 0){ + foreach ($dhcpsv_data['optiondefinition'] as $optdefinition){ + $optdef .= " + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='dhcpoptdefinition[]' value='".$optdefinition."' size='40' class='medium_form_field'> + <input type='hidden' name='olddhcpoptdefinition[]' value='".$optdefinition."'> + </td> + </tr>"; + } +} $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "CN" => $dhcpcn, @@ -88,6 +109,7 @@ $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "SECONDARY" => $dhcpsv_data['dhcpsecondarydn'], "DESCRIPTION" => $dhcpsv_data['description'], "STATEMENTS" => $dhcpsv_data['dhcpstatements'], + "FAILOVERPEER" => $dhcpsv_data['dhcpfailoverpeer'], "ALLOW" => $dhcpsv_data['dhcpoptallow'], "DENY" => $dhcpsv_data['dhcpoptdeny'], "IGNORE" => $dhcpsv_data['dhcpoptignore'], @@ -100,11 +122,10 @@ $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "DOMAINNAMESERVERS" => $dhcpsv_data['dhcpoptdomain-name-servers'], "NEXTSERVER" => $dhcpsv_data['dhcpoptnext-server'], "FILENAME" => $dhcpsv_data['dhcpoptfilename'], - "SRVIDENT" => $dhcpsv_data['dhcpoptserver-identifier'], "NTPSERVERS" => $dhcpsv_data['dhcpoptntp-servers'], - "OPTGENERIC" => $dhcpsv_data['dhcpoptgeneric'], "DHCPOFFERNOWDN" => $dhcpsv_data['dhcpofferdn'], "DHCPOFFERNOW" => $dhcpoffernow, + "OPTDEF" => $optdef, "MNR" => $mnr, "SBMNR" => $sbmnr)); @@ -115,6 +136,7 @@ foreach ($dhcpoffers as $offer){ $template->parse("DHCPOFFERS_LIST", ".Dhcpoffers"); } + # Subnetze und Hosts des Dienstes $dhcpobjects = get_service_subnets($dhcpserviceDN, array("dn","cn","dhcpoptnetmask")); #print_r($dhcpobjects); @@ -150,7 +172,7 @@ foreach ($dhcpobjects as $subnet){ ################################################ # DHCP Generator Skript Config -$template->assign(array("DHCPGENLDAP" => "ldap://".LDAP_HOST, +$template->assign(array("DHCPGENLDAP" => LDAP_HOST, "DHCPGENBASE" => "ou=RIPM,".$suffix, "DHCPGENUDN" => $userDN, "DHCPGENPW" => $userPassword, diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php b/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php index 5096d355..55e51cd9 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php @@ -5,6 +5,9 @@ $cn = "DHCP_".$_POST['cn']; $oldcn = "DHCP_".$_POST['oldcn']; $dhcpoffer = $_POST['dhcpoffer']; $olddhcpoffer = $_POST['olddhcpoffer']; +$dhcpoptdefinition = $_POST['dhcpoptdefinition']; +$olddhcpoptdefinition = $_POST['olddhcpoptdefinition']; +$adddhcpoptdefinition = $_POST['adddhcpoptdefinition']; $dhcpDN = $_POST['dhcpdn']; @@ -123,6 +126,23 @@ if ( $dhcpoffer != "none" ){ } ##################################### +# Selbstdefinierte Optionen + +if ( $adddhcpoptdefinition != "" ){ + echo "Selbst-definierte DHCP Option hinzufügen.<br>"; + $entryadd['optiondefinition'] = $adddhcpoptdefinition; + if(ldap_mod_add($ds,$dhcpDN,$entryadd)){ + $mesg = "Selbst-definierte DHCP Option erfolgreich eingetragen<br><br>"; + }else{ + $mesg = "Fehler beim eintragen Selbst-definierte DHCP Option<br><br>"; + } +} + +#todo: array_vergleich -> Änderung -> ldap_modify +#print_r($dhcpoptdefinition);echo "<br>"; +#print_r($olddhcpoptdefinition);echo "<br>"; + +##################################### # Restliche Attribute $entryadd = array(); @@ -148,14 +168,8 @@ foreach (array_keys($atts) as $key){ } } -#print_r($entryadd); echo "<br>"; -#print_r($entrymod); echo "<br>"; -#print_r($entrydel); echo "<br>"; - if (count($entryadd) != 0 ){ - #print_r($entryadd); echo "<br>"; - #echo "neu anlegen<br>"; foreach (array_keys($entryadd) as $key){ $addatts .= "<b>".$key."</b>,"; } @@ -167,8 +181,6 @@ if (count($entryadd) != 0 ){ } if (count($entrymod) != 0 ){ - #print_r($entrymod); echo "<br>"; - #echo "ändern<br>"; foreach (array_keys($entrymod) as $key){ $modatts .= "<b>".$key."</b>,"; } @@ -180,8 +192,6 @@ if (count($entrymod) != 0 ){ } if (count($entrydel) != 0 ){ - #print_r($entrydel); echo "<br>"; - #echo "löschen<br>"; foreach (array_keys($entrydel) as $key){ $delatts .= "<b>".$key."</b>,"; } diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt index 394b63fc..d35b3d30 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt @@ -57,8 +57,27 @@ <input type='hidden' name='oldattribs[description]' value='{DESCRIPTION}'> </td> </tr> + </table></td> + </tr> + + <tr> + <td height='40'></td> + </tr> + <tr> + <td colspan='2'><h4>Subnet Ranges / Pools:</h4></td> + </tr> + <tr> + <td height='10'></td> + </tr> + <tr><td> + <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> + + <tr valign='top'> + <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>IP Range</b></td> + <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Pool Declaration Options</b></td> + </tr> + <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>IP Range:</b><br>(Zur dynamischen Vergabe)</td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='range1' value='{RANGE1}' size='15' maxlength='15' class='medium_form_field'> - @@ -66,9 +85,9 @@ <input type='hidden' name='oldrange1' value='{RANGE1}'> <input type='hidden' name='oldrange2' value='{RANGE2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> </tr> - - </table></td> + </table></td> </tr> <tr> @@ -84,78 +103,71 @@ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr valign='top'> - <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Option</b></td> - <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert(e)</b></td> + <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Option</b></td> + <td width='70%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert(e)</b></td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Default Lease Time:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}' size='40' class='medium_form_field'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Default Lease Time:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Max Lease Time:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptmax-lease-time]' value='{MAXLEASE}' size='40' class='medium_form_field'> + <input type='Text' name='attribs[dhcpoptmax-lease-time]' value='{MAXLEASE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptmax-lease-time]' value='{MAXLEASE}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>DDNS Update Style:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptddns-update-style]' value='{DDNSUPDATE}' size='40' class='medium_form_field'> - <input type='hidden' name='oldattribs[dhcpoptddns-update-style]' value='{DDNSUPDATE}'> - </td> - </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Domain Name:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdomain-name]' value='{DOMAINNAME}' size='40' class='medium_form_field'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Domain Name:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptdomain-name]' value='{DOMAINNAME}' size='60' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdomain-name]' value='{DOMAINNAME}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Domain Name Servers:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}' size='40' class='medium_form_field'> + <input type='Text' name='attribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}' size='60' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptdomain-name-servers]' value='{DOMAINNAMESERVERS}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Routers:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Routers:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> <input type='Text' name='attribs[dhcpoptrouters]' value='{ROUTERS}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptrouters]' value='{ROUTERS}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Broadcast Address:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Broadcast Address:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> <input type='Text' name='attribs[dhcpoptbroadcast-address]' value='{BROADCAST}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptbroadcast-address]' value='{BROADCAST}'> </td> </tr> - <tr height='50'> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>NTP Servers:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='attribs[dhcpoptntp-servers]' value='{NTPSERVERS}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptntp-servers]' value='{NTPSERVERS}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Next Server:</b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptnext-server]' value='{NEXTSERVER}' size='40' class='medium_form_field'> - <input type='hidden' name='oldattribs[dhcpoptnext-server]' value='{NEXTSERVER}'> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Allow:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <input type='Text' name='attribs[dhcpoptallow]' value='{ALLOW}' size='40' class='medium_form_field'> + <input type='hidden' name='oldattribs[dhcpoptallow]' value='{ALLOW}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Filename:</b></td> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Deny:</b></td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[dhcpoptfilename]' value='{FILENAME}' size='40' class='medium_form_field'> - <input type='hidden' name='oldattribs[dhcpoptfilename]' value='{FILENAME}'> + <input type='Text' name='attribs[dhcpoptdeny]' value='{DENY}' size='40' class='medium_form_field'> + <input type='hidden' name='oldattribs[dhcpoptdeny]' value='{DENY}'> </td> </tr> diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.dwt b/ldap-site-mngmt/webinterface/rbs/gbm.dwt index b2f77800..2c96ceaa 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm.dwt +++ b/ldap-site-mngmt/webinterface/rbs/gbm.dwt @@ -1,4 +1,12 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> + + <tr> + <td height='20'><h4><a href='gbm_overview.php?rbsdn={RBSDN}&mnr={MNR}&sbmnr={SBMNR}' class='headerlink'><< Zurück zur GBM Übersicht</a></h4></td> + </tr> + <tr> + <td height='20'> </td> + </tr> + <tr> <td colspan='2'><h3>Generisches Boot Image <code class='font_object'> {GBMCN} </code> </h3></td> </tr> @@ -25,9 +33,11 @@ </table></td> </tr> + <tr> <td height='40'></td> </tr> + <tr> <td colspan='2'><h4>KERNEL und APPEND Parameter:</h4></td> </tr> @@ -38,42 +48,66 @@ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server Pfad</b></td> - <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> + <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> + <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> + <td width='45%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b> </b></td> </tr> <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>KERNEL Image: </td> - <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <font size='+1'>{TFTP}::{TFTPPATH}</font></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>KERNEL</td> <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[kernel]' value='{KERNEL}' size='45' class='medium_form_field'> + <font size='+1'>{TFTPIP}::{TFTPROOT}/{TFTPKERNEL}</font> + <input type='Text' name='attribs[kernel]' value='{KERNEL}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[kernel]' value='{KERNEL}'> </td> </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>APPEND</td> + <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + </td> + </tr> <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Initialram FS <br>(APPEND initrd=..): </b></td> - <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <font size='+1'>{TFTP}::{TFTPPATH}</font></td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[initrd]' value='{INITRD}' size='45' class='medium_form_field'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Initialram FS: </b></td> + <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <font size='+1'>initrd={TFTPIP}::{TFTPROOT}/{TFTPKERNEL}</font> + <input type='Text' name='attribs[initrd]' value='{INITRD}' size='40' class='medium_form_field'> <input type='hidden' name='oldattribs[initrd]' value='{INITRD}'> </td> </tr> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Root Filesystem <br>(APPEND rootfs=..): </b></td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - {SELECTOPTIONS} + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Root Filesystem: </b></td> + <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <font size='+1'>rootfs={ROOTFS}</font> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[rootfspath]' value='{ROOTFS}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[rootfspath]' value='{ROOTFS}'> + </tr> + <tr valign='top'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> <b>Ändern:</b><br> + {FSURISELECT} + </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + bei NFS eventuell um spezifischen Pfad erweitern:<br> + <input type='Text' name='rootfssuffix' value='' size='35' class='medium_form_field'> + </td> + </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Debug-Level: </b> </td> + <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <font size='+1'>debug=</font> + <input type='Text' name='attribs[debug]' value='{DEBUG}' size='2' class='medium_form_field'> + <input type='hidden' name='oldattribs[debug]' value='{DEBUG}'> + </td> + </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Misc APPEND: </b><br>(wird hinten angefügt) </td> + <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='attribs[appendmisc]' value='{MISC}' size='80' class='medium_form_field'> + <input type='hidden' name='oldattribs[appendmisc]' value='{MISC}'> </td> </tr> <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>IPAPPEND: </b> </td> - <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='attribs[ipappend]' value='{IPAPPEND}' size='2' class='medium_form_field'> <input type='hidden' name='oldattribs[ipappend]' value='{IPAPPEND}'> @@ -92,6 +126,32 @@ </form></td> </tr> + <tr> + <td height='50'></td> + </tr> + <tr> + <td colspan='2'><h3>Daraus ergibt sich folgender generischer Bootmenüeintrag</h3></td> + </tr> + <tr> + <td colspan='2'>Diesen können Nutzer des Dienstes für ihre PXE-Configs verwenden und zu eigenen Menüeinträgen erweitern.</td> + </tr> + <tr> + <td> + <table cellpadding='20' cellspacing='0' border='0' align='left' width='80%' style='border-color: black; border-style: solid; border-width: 2 2 2 2;'> + + <tr> + <td class='tab_d_ohne'> + LABEL ..... <br> + MENU LABEL ...... <br> + KERNEL {TFTPIP}::/{TFTPKERNEL}{KERNEL} <br> + APPEND initrd={TFTPIP}::/{TFTPKERNEL}{INITRD} rootfs={ROOTFS} debug={DEBUG} {MISC}<br> + IPAPPEND {IPAPPEND} + </td> + </tr> + + + </table></td> + </tr> <tr> <td height='40'></td> diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.php b/ldap-site-mngmt/webinterface/rbs/gbm.php index 0efe7922..f0cfbb25 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm.php +++ b/ldap-site-mngmt/webinterface/rbs/gbm.php @@ -27,16 +27,28 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); $gbmDN = $_GET['dn']; +$template->assign(array("TFTPROOT" => "", + "TFTPKERNEL" => "", + "TFTPPXE" => "", + "TFTPCLIENTCONF" => "", + "NFS" => "", + "NFSPATH" => "", + "NBD" => "")); + # rbservice und pxe daten (voerst nur ein rbs) $rbs_array = get_rbservices($auDN,array("dn","cn")); $rbsDN = $rbs_array[0]['dn']; # RBS Daten -$rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip")); +$rbs_data = get_node_data($rbsDN, array("cn","tftpserverip","tftproot","tftpkernelpath","tftpclientconfpath", + "tftppxepath","nfsserverip","exportpath","nbdserverip","fileserveruri")); $template->assign(array("RBSCN" => $rbs_data['cn'], + "TFTPIP" => $rbs_data['tftpserverip'], + "TFTPROOT" => $rbs_data['tftproot'], + "TFTPKERNEL" => $rbs_data['tftpkernelpath'], + "TFTPPXE" => $rbs_data['tftppxepath'], + "TFTPCLIENTCONF" => $rbs_data['tftpclientconfpath'], "NFS" => $rbs_data['nfsserverip'], "NFSPATH" => $rbs_data['exportpath'], - "TFTP" => $rbs_data['tftpserverip'], - "TFTPPATH" => $rbs_data['tftppath'], "NBD" => $rbs_data['nbdserverip'])); @@ -47,12 +59,25 @@ $template->assign(array("GBMDN" => $gbmDN, "INITRD" => "", "FSTYPE" => "", "ROOTFS" => "", + "DEBUG" => "", + "MISC" => "", "IPAPPEND" => "")); # GBM Daten -$attributes = array("dn","cn","label","kernel","initrd","rootfstype","rootfspath","ipappend"); +$attributes = array("dn","cn","label","kernel","initrd","rootfs","rootfstype","rootfspath","debug","appendmisc","ipappend"); $gbm = get_node_data($gbmDN, $attributes); +$selectboxmax = count($rbs_data['fileserveruri']) + 1; +$fsuriselectbox = "<select name='rootfs' size='".$selectboxmax."' class='rootfs_form_selectbox'> + <option value='none'>---------------------------------</option>"; +if ( $rbs_data['fileserveruri'] != "" ){ + foreach ($rbs_data['fileserveruri'] as $fsuri){ + $fsuriselectbox .= "<option value='".$fsuri."'>".$fsuri."</option>"; + } +} +$fsuriselectbox .= "</select> + <input type='hidden' name='oldrootfs' value='".$gbm['rootfs']."'>"; + if ($gbm['rootfstype'] == 'nfs'){ $options = "<select name='rootfstype' size='4' class='rootfs_form_selectbox'> <option value='nfs' selected><b>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</b></option> @@ -96,8 +121,11 @@ $template->assign(array("GBMCN" => $gbm['cn'], "LABEL" => $gbm['label'], "KERNEL" => $gbm['kernel'], "INITRD" => $gbm['initrd'], + "FSURISELECT" => $fsuriselectbox, "SELECTOPTIONS" => $options, - "ROOTFS" => $gbm['rootfspath'], + "ROOTFS" => $gbm['rootfs'], + "DEBUG" => $gbm['debug'], + "MISC" => $gbm['appendmisc'], "IPAPPEND" => $gbm['ipappend'], "RBSDN" => $rbsDN, "MNR" => $mnr, diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_change.php b/ldap-site-mngmt/webinterface/rbs/gbm_change.php index 86067acd..ff01865d 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm_change.php +++ b/ldap-site-mngmt/webinterface/rbs/gbm_change.php @@ -9,8 +9,11 @@ $rbsDN = $_POST['rbsdn']; $mnr = $_POST['mnr']; $sbmnr = $_POST['sbmnr']; -$rootfstype = $_POST['rootfstype']; -$oldrootfstype = $_POST['oldrootfstype']; +$rootfs = $_POST['rootfs']; +#$oldrootfs = $_POST['oldrootfs']; +$rootfspath = $_POST['rootfspath']; +$rootfssuffix = $_POST['rootfssuffix']; +#$oldrootfstype = $_POST['oldrootfstype']; $attribs = $_POST['attribs']; if (count($attribs) != 0){ @@ -92,42 +95,65 @@ if ( $oldgbmcn != "" && $gbmcn == "" ){ } ################################### -# RootFS Type - -if ( $oldrootfstype == $rootfstype ){ - # $mesg = "keine Aenderung<br>"; -} - -if ( $oldrootfstype == "" && $rootfstype != "" ){ - $entryadd ['rootfstype'] = $rootfstype; - if(ldap_mod_add($ds,$gbmDN,$entryadd)){ - $mesg = "Attribute <b>RootfsType</b> erfolgreich eingetragen<br><br>"; - }else{ - $mesg = "Fehler beim eintragen der Attribute <b>RootfsType</b><br><br>"; - } -} - - -if ( $oldrootfstype != "" && $rootfstype != "" && $oldrootfstype != $rootfstype ){ - echo "Root FS Type ändern<br>"; - $entrymod ['rootfstype'] = $rootfstype; - if(ldap_mod_replace($ds,$gbmDN,$entrymod)){ - $mesg = "Attribute <b>RootfsType</b> erfolgreich geaendert<br><br>"; - }else{ - $mesg = "Fehler beim aendern der Attribute <b>RootfsType</b><br><br>"; - } +# RootFS +if ( $rootfs != "" ){ + if ( $rootfs == "none" ){ + echo "Root FS löschen!<br>"; + $entrydel ['rootfs'] = array(); + if(ldap_mod_del($ds,$gbmDN,$entrydel)){ + $mesg = "Attribut <b>RootFS</b> erfolgreich gelöscht<br><br>"; + }else{ + $mesg = "Fehler beim löschen des Attributs <b>RootFS</b><br><br>"; + } + + }else{ + echo "Root FS ändern!<br>"; + $entrymod ['rootfs'] = $rootfs.$rootfssuffix; + if(ldap_mod_replace($ds,$gbmDN,$entrymod)){ + $mesg = "Attribut <b>RootFS</b> erfolgreich geändert<br><br>"; + }else{ + $mesg = "Fehler beim ändern des Attributs <b>RootFS</b><br><br>"; + } + } } +################################### +# RootFS Type -if ( $oldrootfstype != "" && $rootfstype == "" ){ - echo "Root FS Type löschen!<br>"; - $entrydel ['rootfstype'] = array(); - if(ldap_mod_del($ds,$gbmDN,$entrydel)){ - $mesg = "Attribute <b>RootfsType</b> erfolgreich geloescht<br><br>"; - }else{ - $mesg = "Fehler beim loeschen der Attribute <b>RootfsType</b><br><br>"; - } -} +#if ( $oldrootfstype == $rootfstype ){ +# # $mesg = "keine Aenderung<br>"; +#} + +#if ( $oldrootfstype == "" && $rootfstype != "" ){ +# $entryadd ['rootfstype'] = $rootfstype; +# if(ldap_mod_add($ds,$gbmDN,$entryadd)){ +# $mesg = "Attribute <b>RootfsType</b> erfolgreich eingetragen<br><br>"; +# }else{ +# $mesg = "Fehler beim eintragen der Attribute <b>RootfsType</b><br><br>"; +# } +#} + + +#if ( $oldrootfstype != "" && $rootfstype != "" && $oldrootfstype != $rootfstype ){ +# echo "Root FS Type ändern<br>"; +# $entrymod ['rootfstype'] = $rootfstype; +# if(ldap_mod_replace($ds,$gbmDN,$entrymod)){ +# $mesg = "Attribute <b>RootfsType</b> erfolgreich geaendert<br><br>"; +# }else{ +# $mesg = "Fehler beim aendern der Attribute <b>RootfsType</b><br><br>"; +# } +#} + + +#if ( $oldrootfstype != "" && $rootfstype == "" ){ +# echo "Root FS Type löschen!<br>"; +# $entrydel ['rootfstype'] = array(); +# if(ldap_mod_del($ds,$gbmDN,$entrydel)){ +# $mesg = "Attribute <b>RootfsType</b> erfolgreich geloescht<br><br>"; +# }else{ +# $mesg = "Fehler beim loeschen der Attribute <b>RootfsType</b><br><br>"; +# } +#} ################################### diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_overview.php b/ldap-site-mngmt/webinterface/rbs/gbm_overview.php index 1158a396..bb0ebb83 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm_overview.php +++ b/ldap-site-mngmt/webinterface/rbs/gbm_overview.php @@ -6,7 +6,7 @@ include('../standard_header.inc.php'); $titel = "Remote Boot Service Management"; # 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc. $mainnr = 4; -$mnr = 2; +$mnr = -1; $sbmnr = -1; $mcnr = -1; # 3. Dateiname und evtl. Pfad des Templates für die Webseite @@ -18,33 +18,41 @@ include('rbs_header.inc.php'); ################################################################################### +$mnr = $_GET['mnr']; +$sbmnr = $_GET['sbmnr']; + # Menuleisten erstellen createMainMenu($rollen, $mainnr); createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; + $template->assign(array("GBMDN" => "", "GBMCN" => "Noch keine Generischen Boot Menüs angelegt", "KERNEL" => "", "FS" => "")); -# rbservice und pxe daten (voerst nur ein rbs) -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; - # Generic Bootmenüs $generic_bms = get_menuentries($rbsDN,array("dn","cn","label","kernel","nfsroot","nbdroot")); $template->define_dynamic("Genericbm", "Webseite"); $template->define_dynamic("Offers", "Webseite"); + foreach ($generic_bms as $gbm){ if ($gbm['nfsroot'] != ""){$fs = "NFS";} if ($gbm['nbdroot'] != ""){$fs = "NBD";} + + $gbmname = "<a href='gbm.php?dn=".$gbm['dn']."&mnr=".$mnr."&sbmnr=".$sbmnr."' class='headerlink'>".$gbm['cn']."</a>"; + $template->assign(array("GBMDN" => $gbm['dn'], - "GBMCN" => $gbm['cn'], + "GBMCN" => $gbmname, "KERNEL" => $gbm['kernel'], - "FS" => $fs)); + "FS" => $fs, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "RBSDN" => $rbsDN)); $template->parse("GENERICBM_LIST", ".Genericbm"); } diff --git a/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt b/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt index b84cf66d..d5d21dc2 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt +++ b/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt @@ -1,6 +1,6 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='2'><h3>Generisches Boot Image <code class='font_object'> {GBMCN} </code> </h3></td> + <td colspan='2'><h3>Neues generisches Boot Image für Dienst <code class='font_object'> {RBSCN} </code> anlegen </h3></td> </tr> <tr> <td height='20'></td> diff --git a/ldap-site-mngmt/webinterface/rbs/new_gbm.php b/ldap-site-mngmt/webinterface/rbs/new_gbm.php index 4ece741c..3300ffb0 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_gbm.php +++ b/ldap-site-mngmt/webinterface/rbs/new_gbm.php @@ -25,11 +25,9 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### -$gbmcn = str_replace ( "_", " ", $_GET['gbmcn']); +$rbsDN = $_GET['rbsdn']; -# rbservice und pxe daten (voerst nur ein rbs) -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; +$gbmcn = str_replace ( "_", " ", $_GET['gbmcn']); # RBS Daten $rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip")); diff --git a/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt index c97324b5..3418d674 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt +++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt @@ -1,6 +1,6 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='2'><h3>Neues DEFAULT PXE Boot Menü anlegen:</h3></td> + <td colspan='2'><h3>Neue PXE Config (DEFAULT) für Dienst <code class='font_object'> {RBSCN} </code> anlegen:</h3></td> </tr> <tr> <td height='10'> </td> @@ -19,20 +19,6 @@ </td> </tr> <tr valign='top'> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Remote Boot Dienst <br> - auswählen: </b> </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <select name='rbs' size='5' class='medium_form_selectbox'> - <option selected value='none'>----------</option> - - <!-- BEGIN DYNAMIC BLOCK: Altrbs --> - <option value='{ALTRBSDN}'>{ALTRBSCN} {ALTRBSAU}</option> - <!-- END DYNAMIC BLOCK: Altrbs --> - - </select> - </td> - </tr> - <tr valign='top'> <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Gültigkeitsdauer <br>(Time Range): </b> </td> <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='pxeday' value='{PXEDAY}' size='5' maxlength='5' class='medium_form_field'> @@ -144,6 +130,7 @@ </tr> <input type='hidden' name='oldpxecn' value='{PXECN}'> + <input type='hidden' name='rbsdn' value='{RBSDN}'> <input type='hidden' name='mnr' value='{MNR}'> <input type='hidden' name='sbmnr' value='{SBMNR}'> <input type='hidden' name='mcnr' value='{MCNR}'> diff --git a/ldap-site-mngmt/webinterface/rbs/new_pxe.php b/ldap-site-mngmt/webinterface/rbs/new_pxe.php index 9a6afba0..338f5d48 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_pxe.php +++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.php @@ -28,6 +28,9 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; +$rbsdnexp = ldap_explode_dn($rbsDN, 1); + $pxecn = str_replace ( "_", " ", $_GET['pxecn']); $pxeday = str_replace ( "_", " ", $_GET['pxeday']); $pxebeg = str_replace ( "_", " ", $_GET['pxebeg']); @@ -39,7 +42,8 @@ $template->assign(array("PXECN" => $pxecn, "PXEEND" => $pxeend, "LDAPURI" => "", "FILEURI" => "", - "RBS" => "", + "RBSDN" => $rbsDN, + "RBSCN" => $rbsdnexp[0], "RBSAU" => "", "NFS" => "", "NFSROOT" => "", @@ -65,28 +69,6 @@ $template->assign(array("PXECN" => $pxecn, "MNR" => $mnr, "SBMNR" => $sbmnr)); -############################################# -# RB Dienste holen -$rbsoffers = get_rbsoffers($auDN); - -$template->assign(array("ALTRBSDN" => "", - "ALTRBSCN" => "", - "ALTRBSAU" => "")); - -if (count($rbsoffers) != 0){ -$template->define_dynamic("Altrbs", "Webseite"); - foreach ($rbsoffers as $item){ - $rbsdnexp = ldap_explode_dn($item,1); - $rbsoffcn = $rbsdnexp[0]; - $rbsoffau = $rbsdnexp[2]; - #$auexp = explode(',',$item['auDN']); - #$altrbsau = explode('=',$auexp[0]); - $template->assign(array("ALTRBSDN" => $item, - "ALTRBSCN" => $rbsoffcn, - "ALTRBSAU" => " [ Abt.: ".$rbsoffau." ]")); - $template->parse("ALTRBS_LIST", ".Altrbs"); - } -} ################################################################################### diff --git a/ldap-site-mngmt/webinterface/rbs/new_rbservice.php b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php index 020e3254..2882ebda 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_rbservice.php +++ b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php @@ -24,15 +24,7 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### -# nochmal zur Sicherheit: falls doch RBS angelegt -$rbs_array = get_rbservices($auDN,array("dn","cn")); -if (count($rbs_array) != 0){ - $url = "rbservice.php?mnr=1"; - $seconds = 1; - $mesg .= "<br>Sie werden automatisch auf die nächste Seite geleitet. <br> - Falls nicht, klicken Sie hier <a href=".$url." style='publink'>hier</a>"; - redirect($seconds, $url, $mesg, $addSessionId = TRUE); -} +# nochmal zur Sicherheit: falls doch RBS angelegt $rbscn = str_replace ( "_", " ", $_GET['rbscn']); $template->assign(array("RBSCN" => $rbscn, diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.dwt b/ldap-site-mngmt/webinterface/rbs/pxe.dwt index 4b881338..ae1c112a 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe.dwt +++ b/ldap-site-mngmt/webinterface/rbs/pxe.dwt @@ -1,4 +1,12 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> + + <tr> + <td height='20'><h4><a href='pxeconfig_default.php?rbsdn={RBSDN}&mnr={MNR}&sbmnr={SBMNR}' class='headerlink'><< Zurück zur PXE Übersicht</a></h4></td> + </tr> + <tr> + <td height='20'> </td> + </tr> + <tr> <td colspan='2'><h3>PXE Boot Menü <code class='font_object'> {PXECN} </code> </h3></td> </tr> diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.php b/ldap-site-mngmt/webinterface/rbs/pxe.php index f9671d22..11f25875 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe.php +++ b/ldap-site-mngmt/webinterface/rbs/pxe.php @@ -29,6 +29,7 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### $pxeDN = $_GET['dn']; +#$rbsDN = $_GET['rbsdn']; $attributes = array("dn","cn","rbservicedn","filename","timerange","allowoptions","console","default", "display","font","implicit","kbdmap","menumasterpasswd","menutitle", @@ -90,6 +91,7 @@ $maxpos = count($menuentries)+1; $template->assign(array("PXEDN" => $pxeDN, "PXECN" => $pxecn, "TIMERANGE" => $pxe['timerange'], + "RBSDN" => $rbsDN, "RBS" => $rbsdata['cn'], "RBSAU" => $rbsau, "NFS" => $rbsdata['nfsserverip'], diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_add.php b/ldap-site-mngmt/webinterface/rbs/pxe_add.php index 4b314ab1..793cb34f 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe_add.php +++ b/ldap-site-mngmt/webinterface/rbs/pxe_add.php @@ -2,7 +2,7 @@ include('../standard_header.inc.php'); $pxecn = $_POST['pxecn']; $pxecn = htmlentities($pxecn); -$rbsDN = $_POST['rbs']; +$rbsDN = $_POST['rbsdn']; #print_r($rbsDN); $pxeday = $_POST['pxeday']; $pxeday = htmlentities($pxeday); $pxebeg = $_POST['pxebeg']; $pxebeg = htmlentities($pxebeg); diff --git a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php index f9a2b7db..243c647b 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php +++ b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php @@ -6,7 +6,7 @@ include('../standard_header.inc.php'); $titel = "Remote Boot Service Management"; # 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc. $mainnr = 4; -$mnr = 3; +$mnr = -1; $sbmnr = -1; $mcnr = -1; # 3. Dateiname und evtl. Pfad des Templates für die Webseite @@ -19,6 +19,7 @@ include('rbs_header.inc.php'); ################################################################################### $mnr = $_GET['mnr']; +$sbmnr = $_GET['sbmnr']; # Menuleisten erstellen createMainMenu($rollen, $mainnr); @@ -26,15 +27,14 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; + $template->assign(array("PXEDN" => "", "PXECN" => "Noch kein Default PXE Boot Menü angelegt", "TRANGES" => "", "RBS" => "", "CN" => "")); -# rbservice und pxe daten (voerst nur ein rbs) -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; $pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange","rbservicedn")); # print_r($pxe_array); @@ -52,17 +52,22 @@ for ($i=0; $i<count($pxe_array); $i++){ $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59 / "; } }else{ - $exptime = array_merge(explode('_',$pxe_array[$i]['timerange']), $pxe_array[$i]['cn']); + $exptime = array_merge(explode('_',$pxe_array[$i]['timerange']), array($pxe_array[$i]['cn'])); $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht if ($exptime[0] == "X"){$exptime[0]="täglich";} # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";} $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59"; } + $pxename = "<a href='pxe.php?dn=".$pxe_array[$i]['dn']."&mnr=".$mnr."&sbmnr=".$sbmnr."' class='headerlink'>".$pxe_array[$i]['cn']."</a>"; + + $template->assign(array("PXEDN" => $pxe_array[$i]['dn'], - "PXECN" => $pxe_array[$i]['cn'], + "PXECN" => $pxename, "TRANGES" => $trange, - "RBS" => $pxe_array[$i]['rbservicedn'], + "RBS" => $rbsDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, "AUDN" => $auDN)); $template->parse("PXECONF_LIST", ".Pxeconf"); } diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_menu.php b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php index 76a786c2..814282cf 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbs_menu.php +++ b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php @@ -6,66 +6,45 @@ function createRBSMenu($rollen, $mnr, $auDN, $sbmnr) { # rbservices (momentan nur für einen RBS konzipiert) $rbs_array = get_rbservices($auDN,array("dn","cn")); - if (count($rbs_array) == 0){ - $rbslink = "new_rbservice.php?mnr=1"; - $gbmlink = "no_rbservice.php?mnr=2"; - $pxelink = "no_rbservice.php?mnr=3"; - } - else { - $rbslink = "rbservice.php?mnr=1"; - $gbmlink = "gbm_overview.php?mnr=2"; - $pxelink = "pxeconfig_default.php?mnr=3"; - } - $rbsDN = $rbs_array[0]['dn']; - - # Struktur der Registerkartenleiste + + # Struktur der Registerkartenleiste $hauptmenu = array(array("link" => "rbs.php?mnr=0", "text" => "Übersicht", - "zugriff" => "alle"), - array("link" => $rbslink, - "text" => "Remote Boot Service", - "zugriff" => array("MainAdmin","HostAdmin")), - array("link" => $gbmlink, - "text" => "Generische Bootmenüs", - "zugriff" => array("MainAdmin","HostAdmin")), - array("link" => $pxelink, - "text" => "Default PXE", - "zugriff" => array("MainAdmin","HostAdmin"))); - #print_r($hauptmenu); - - # Generische Bootmenüs - $gbm = array(); - if (count($rbs_array) != 0){ - $generic_bms = get_menuentries($rbsDN, array("dn","cn")); - for ($g=0;$g<count($generic_bms);$g++){ - $gbm[] = array("link" => "gbm.php?dn=".$generic_bms[$g]['dn']."&mnr=2&sbmnr=".$g, - "text" => $generic_bms[$g]['cn'], - "zugriff" => array("MainAdmin","HostAdmin")); - } - $gbm [] = array("link" => "new_gbm.php?mnr=2&sbmnr=".$g, - "text" => "Neues Generisches BM", - "zugriff" => array("MainAdmin","HostAdmin")); - } - - # default pxe-configs - $pxe = array(); - if (count($rbs_array) != 0){ - $pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange")); - for($n=0;$n<count($pxe_array);$n++){ - $pxe [] = array("link" => "pxe.php?dn=".$pxe_array[$n]['dn']."&mnr=3&sbmnr=".$n, - "text" => $pxe_array[$n]['cn'], + "zugriff" => "alle")); + $submenu = array(array()); + + $n = 1; + if (count($rbs_array) != 0){ + for ($i=0;$i<count($rbs_array);$i++){ + + $hauptmenu [] = array("link" => "rbservice.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n, + "text" => $rbs_array[$i]['cn'], "zugriff" => array("MainAdmin","HostAdmin")); - } - $pxe [] = array("link" => "new_pxe.php?mnr=3&sbmnr=".$n, - "text" => "Neues Default PXE", - "zugriff" => array("MainAdmin","HostAdmin")); + $submenu [] = array( + array("link" => "gbm_overview.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=0", + "text" => "Generische Bootmenüs", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "pxeconfig_default.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=1", + "text" => "Default PXE Configs", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_gbm.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=2", + "text" => "Neues GBM anlegen", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_pxe.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=3", + "text" => "Neue PXE Config anlegen", + "zugriff" => array("MainAdmin","HostAdmin")), + ); + $n++; + } } - $submenu = array(array(), - array(), - $gbm, - $pxe); - - #$rollen = array_keys($roles); + $hauptmenu [] = array("link" => "new_rbservice.php?&mnr=".$n, + "text" => "Neuen RBS anlegen", + "zugriff" => array("MainAdmin","HostAdmin")); + + $submenu [] = array(); + #print_r($hauptmenu); echo "<br><br>"; + #print_r($submenu); + # Zusammenstellen der Menuleiste $template->define_dynamic("Hauptmenu", "Menu"); diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.dwt b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt index 93e70898..601372cd 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice.dwt +++ b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt @@ -11,25 +11,25 @@ <form action='rbservice_change.php' method='post'> <tr> - <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> - <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> + <td width='40%' class='tab_h'><b>Attribut</b></td> + <td width='60%' class='tab_h'><b>Wert</b></td> </tr> <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger RBS Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d'><b>Eindeutiger RBS Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) </td> + <td class='tab_d'> <font size='+2'><b>RBS_</b></font><input type='Text' name='rbscn' value='{RBSCN}' size='40' class='medium_form_field'> <input type='hidden' name='oldrbscn' value='{RBSCN}'> </td> </tr> - <tr height='50'> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Dienst kann momentan genutzt werden von:</b><br></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Abteilung<b> {RBSOFFERNOW}</b> (und allen Unterabteilungen) + <tr> + <td class='tab_d_ohne'><b>Dienst kann momentan genutzt werden von:</b><br></td> + <td class='tab_d_ohne'>Abteilung<b> {RBSOFFERNOW}</b> (und allen Unterabteilungen) </td> </tr> <tr height='50' valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Ändern:</b><br>(Wählen Sie eine andere Abteilung)</td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d'><b>Ändern:</b><br>(Wählen Sie eine andere Abteilung)</td> + <td class='tab_d'> <select name='rbsoffer' size='5' class='medium_form_selectbox'> <option selected value='none'>----------</option> @@ -37,7 +37,7 @@ <option value='{RBSOFFER}'>{RBSOFFEROU}</option> <!-- END DYNAMIC BLOCK: Rbsoffers --> - <option value='off'>------ ABSCHALTEN ------</option> + <option value='off'>------ NIEMAND ------</option> </select> <input type='hidden' name='oldrbsoffer' value='{RBSOFFERNOWDN}'> @@ -50,104 +50,104 @@ <td height='40'></td> </tr> <tr> - <td colspan='2'><h4>Boot Server System:</h4></td> - </tr> - <tr> - <td height='10'></td> + <td colspan='2'><h4>TFTP Boot Server:</h4></td> </tr> <tr><td> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr valign='top'> - <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server</b></td> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>IP Adresse<br>(Rechner ändern)</b></td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server Pfade</b></td> + <td width='15%' class='tab_h'> </td> + <td width='30%' class='tab_h'> </td> + <td colspan='2' class='tab_h'> </td> </tr> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>TFTP Server: </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td class='tab_d_ohne'><b>TFTP Server: </td> + <td class='tab_d_ohne'> <input type='Text' name='tftpserverip' value='{TFTPIP}' size='15' class='medium_form_field'> <input type='hidden' name='oldtftpserverip' value='{TFTPIP}'></td> - <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Init Boot File</td> - <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='initbootfile' value='{INITBOOTFILE}' size='25' class='medium_form_field'> - <input type='hidden' name='oldinitbootfile' value='{INITBOOTFILE}'></td> + <td width='15%' class='tab_d_ohne'>TFTP Root</td> + <td width='35%' class='tab_d_ohne'> + <input type='Text' name='attribs[tftproot]' value='{TFTPROOT}' size='20' class='medium_form_field'> + <input type='hidden' name='oldattribs[tftproot]' value='{TFTPROOT}'></td> </tr> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><font size='+1'>{TFTP}</font></td> - <td rowspan='3' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d_ohne'><font size='+1'>{TFTP}</font></td> + <td rowspan='2' class='tab_d_ohne'> <select name='tftpserver' size='4' class='small_form_selectbox'> <option selected value='none'>----------------------------</option> <!-- BEGIN DYNAMIC BLOCK: TftpHosts --> <option value='{HDN}'>{HN}</option> <!-- END DYNAMIC BLOCK: TftpHosts --> </select></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>PXE Path</td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='attribs[tftppxepath]' value='{TFTPPXE}' size='25' class='medium_form_field'> + <td class='tab_d_ohne'>PXE Path</td> + <td class='tab_d_ohne'>{TFTPROOT}/ + <input type='Text' name='attribs[tftppxepath]' value='{TFTPPXE}' size='20' class='medium_form_field'> <input type='hidden' name='oldattribs[tftppxepath]' value='{TFTPPXE}'></td> </tr> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Kernel Path</td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='attribs[tftpkernelpath]' value='{TFTPKERNEL}' size='25' class='medium_form_field'> + <td class='tab_d_ohne'> </td> + <td class='tab_d_ohne'>Kernel Path</td> + <td class='tab_d_ohne'>{TFTPROOT}/ + <input type='Text' name='attribs[tftpkernelpath]' value='{TFTPKERNEL}' size='20' class='medium_form_field'> <input type='hidden' name='oldattribs[tftpkernelpath]' value='{TFTPKERNEL}'></td> </tr> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Clientconf Path</td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}' size='25' class='medium_form_field'> + <td class='tab_d'>Initial Boot File</td> + <td class='tab_d'> + <input type='Text' name='initbootfile' value='{INITBOOTFILE}' size='25' class='medium_form_field'> + <input type='hidden' name='oldinitbootfile' value='{INITBOOTFILE}'></td> + <td class='tab_d'>Clientconf Path</td> + <td class='tab_d'>{TFTPROOT}/ + <input type='Text' name='attribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}' size='20' class='medium_form_field'> <input type='hidden' name='oldattribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}'></td> <input type='hidden' name='oldtftpserverdn' value='{TFTPDN}'> </tr> + </table></td> + </tr> + <tr> + <td height='40'></td> + </tr> + <tr> + <td colspan='2'><h4>File Server URIs:</h4> + Diese sind in Generischen Boot Images als RootFS verwendbar.</td> + </tr> + <tr><td> + <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>NFS Server: </b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='nfsserverip' value='{NFSIP}' size='15' class='medium_form_field'> - <input type='hidden' name='oldnfsserverip' value='{NFSIP}'></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Export Path</td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='attribs[exportpath]' value='{NFSPATH}' size='25' class='medium_form_field'> - <input type='hidden' name='oldattribs[exportpath]' value='{NFSPATH}'></td> - </tr> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><font size='+1'>{NFS}</font> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <select name='nfsserver' size='4' class='small_form_selectbox'> - <option selected value='none'>----------------------------</option> - <!-- BEGIN DYNAMIC BLOCK: NfsHosts --> - <option value='{HDN}'>{HN}</option> - <!-- END DYNAMIC BLOCK: NfsHosts --> - </select> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <input type='hidden' name='oldnfsserverdn' value='{NFSDN}'> + <tr valign='top'> + <td width='20%' class='tab_h'> </td> + <td width='15%' class='tab_h'> </td> + <td width='25%' class='tab_h'> </td> + <td width='40%' class='tab_h'> </td> </tr> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>NBD Server: </b></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - <input type='Text' name='nbdserverip' value='{NBDIP}' size='15' class='medium_form_field'> - <input type='hidden' name='oldnbdserverip' value='{NBDIP}'></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <tr valign='top'> + <td class='tab_d'><b>Vorhandene URIs zu Root-Filesystemen: </b><br>(Zum Löschen einer URI Häkchen setzen)</td> + <td colspan='2' class='tab_d'> + <!-- BEGIN DYNAMIC BLOCK: Fsuris --> + <input type='checkbox' name='delfsuri[]' value='{FSURI}' size='10' class='medium_form_field'> <b>{FSURI}</b><br> + <!-- END DYNAMIC BLOCK: Fsuris --> + <td class='tab_d'> </td> </tr> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><font size='+1'>{NBD}</font> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <select name='nbdserver' size='4' class='small_form_selectbox'> - <option selected value='none'>----------------------------</option> - <!-- BEGIN DYNAMIC BLOCK: NbdHosts --> - <option value='{HDN}'>{HN}</option> - <!-- END DYNAMIC BLOCK: NbdHosts --> - </select></td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <input type='hidden' name='oldnbdserverdn' value='{NBDDN}'> + <tr valign='top'> + <td class='tab_d_ohne'><b>Neue URI anlegen</b></td> + <td class='tab_d_ohne'>Filesystemtyp</td> + <td class='tab_d_ohne'>Fileserver IP</td> + <td class='tab_d_ohne'>NFS Export-Root bzw. (D)NBD <:Port[/Filesystem]></td> + </tr> + <tr valign='top'> + <td class='tab_d'> </td> + <td class='tab_d'> + <select name='addfsuri[]' size='5' class='tiny_form_selectbox'> + <option selected value='nfs'>nfs://</option> + <option value='nbd'>nbd://</option> + <option value='dnbd'>dnbd://</option> + <option value='dnbd2'>dnbd2://</option> + <option value='afs'>afs://</option> + </select> </td> + <td class='tab_d'><input type='Text' name='addfsuri[]' value='' size='15' class='medium_form_field'></td> + <td class='tab_d'><input type='Text' name='addfsuri[]' value='' size='25' class='medium_form_field'></td> </tr> <input type='hidden' name='rbsdn' value='{RBSDN}'> @@ -176,7 +176,7 @@ <table cellpadding='20' cellspacing='0' border='0' align='left' width='80%' style='border-color: black; border-style: solid; border-width: 2 2 2 2;'> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td class='tab_d_ohne'> $ldaphost= "{PXEGENLDAP}"; <br> $basedn= "{PXEGENBASE}"; <br> $userdn= "{PXEGENUDN}"; <br> @@ -205,7 +205,7 @@ <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td class='tab_d_ohne'> Der Remote Boot Dienst wird komplett gelöscht, <br> d.h. inklusive aller angelegten Generischen PXE Bootmenüs und Default PXEs. </tr> diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.php b/ldap-site-mngmt/webinterface/rbs/rbservice.php index 896acbf8..f3c5db7e 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice.php +++ b/ldap-site-mngmt/webinterface/rbs/rbservice.php @@ -24,14 +24,18 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; + $template->assign(array("RBSDN" => "", "CN" => "", "TFTP" => "", "TFTPIP" => "", + "TFTPROOT" => "", "INITBOOTFILE" => "", "TFTPKERNEL" => "", "TFTPPXE" => "", "TFTPCLIENTCONF" => "", + "FSURI" => "", "NFS" => "", "NFSIP" => "", "NFSPATH" => "", @@ -44,10 +48,8 @@ $template->assign(array("RBSDN" => "", "IP" => "")); # RBS Daten -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; -$attributes = array("dn","cn","rbsofferdn","tftpserverip","tftpkernelpath","tftpclientconfpath","tftppxepath", - "nfsserverip","exportpath","nbdserverip","initbootfile"); +$attributes = array("dn","cn","rbsofferdn","tftpserverip","tftproot","tftpkernelpath","tftpclientconfpath", + "tftppxepath","nfsserverip","exportpath","nbdserverip","initbootfile","fileserveruri"); $rbs_data = get_node_data($rbsDN, $attributes); # RBS Anbieten @@ -82,6 +84,7 @@ $template->assign(array("RBSDN" => $rbs_data['dn'], "TFTP" => $tftpserver['hostname'], "TFTPDN" => $tftpserver['dn'], "TFTPIP" => $rbs_data['tftpserverip'], + "TFTPROOT" => $rbs_data['tftproot'], "INITBOOTFILE" => $rbs_data['initbootfile'], "TFTPKERNEL" => $rbs_data['tftpkernelpath'], "TFTPPXE" => $rbs_data['tftppxepath'], @@ -98,6 +101,7 @@ $template->assign(array("RBSDN" => $rbs_data['dn'], "MNR" => $mnr, "SBMNR" => $sbmnr)); +# RBS Offers $template->define_dynamic("Rbsoffers", "Webseite"); foreach ($rbsoffers as $offer){ $template->assign(array("RBSOFFER" => $offer['dn'], @@ -105,6 +109,19 @@ foreach ($rbsoffers as $offer){ $template->parse("RBSOFFERS_LIST", ".Rbsoffers"); } + +# Fileserver URIs +$template->define_dynamic("Fsuris", "Webseite"); +if ( count($rbs_data['fileserveruri']) > 1 ){ + foreach ($rbs_data['fileserveruri'] as $fsuri){ + $template->assign(array("FSURI" => $fsuri)); + $template->parse("FSURIS_LIST", ".Fsuris"); + } +}else{ + $template->assign(array("FSURI" => $rbs_data['fileserveruri'])); + $template->parse("FSURIS_LIST", ".Fsuris"); +} + ### Rechner $hostorgroup = $exp[0]; $hosts_array = get_hosts($auDN,array("dn","hostname","ipaddress")); diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_add.php b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php index 54494999..8c47a076 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice_add.php +++ b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php @@ -1,5 +1,6 @@ <?php include('../standard_header.inc.php'); +$syntax = new Syntaxcheck; $rbscn = $_POST['rbscn']; $rbscn = htmlentities($rbscn); diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_change.php b/ldap-site-mngmt/webinterface/rbs/rbservice_change.php index a9bc065f..5f82ac26 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice_change.php +++ b/ldap-site-mngmt/webinterface/rbs/rbservice_change.php @@ -1,5 +1,6 @@ <?php include('../standard_header.inc.php'); +$syntax = new Syntaxcheck; $rbscn = "RBS_".$_POST['rbscn']; $oldrbscn = "RBS_".$_POST['oldrbscn']; @@ -20,6 +21,13 @@ $oldtftpserverdn = $_POST['oldtftpserverdn']; $oldnfsserverdn = $_POST['oldnfsserverdn']; $oldnbdserverdn = $_POST['oldnbdserverdn']; +$delfsuri = $_POST['delfsuri']; +$addfsuri = $_POST['addfsuri']; + +$fstype = $_POST['fstype']; +$fsip = $_POST['fsip']; +$fspath = $_POST['fspath']; + $initbootfile = $_POST['initbootfile']; $oldinitbootfile = $_POST['oldinitbootfile']; @@ -48,9 +56,6 @@ if (count($oldattribs) != 0){ } #print_r($oldatts); echo "<br><br>"; - -$seconds = 2; -$url = "rbservice.php?&mnr=1"; echo " <html> @@ -130,7 +135,6 @@ if ( $rbsoffer != "none" && $rbsoffer != $oldrbsoffer ){ ##################################### # Server ändern über IP Feld -$syntax = new Syntaxcheck; if ( $tftpserverip != "" && $tftpserverip != $oldtftpserverip ){ @@ -160,6 +164,45 @@ if ( $tftpserverip != "" && $tftpserverip != $oldtftpserverip ){ } } +####################################### +# Fileserver URI anlegen + +if ( $addfsuri[1] != "" ){ + # tests: ipsyntax, und spezifische URI-Syntax-Checks... + if( $syntax->check_ip_syntax($addfsuri[1]) ){ + + $newfsuri = $addfsuri[0]."://".$addfsuri[1].$addfsuri[2]; + echo "FS URI <b>".$newfsuri."</b> anlegen<br>"; + + $entryfsadd ['fileserveruri'] = $newfsuri; + if(ldap_mod_add($ds,$rbsDN,$entryfsadd)){ + $mesg = "FS URI erfolgreich eingetragen<br><br>"; + }else{ + $mesg = "Fehler beim eintragen der FS URI<br><br>"; + } + } + else{echo "Falsche IP Syntax<br><br>";} +} + +##################################### +# Fileserver URIs löschen +if ( count($delfsuri) != 0 ){ + echo "Fileserver URI löschen<br>"; + + $i = 0; + foreach ($delfsuri as $fsuri){ + $entry['fileserveruri'][$i] = $fsuri; + $i++; + } + #print_r($entry); echo "<br><br>"; + + if ($result = ldap_mod_del($ds,$rbsDN,$entry)){ + $mesg = "Zu löschende Fileserver URIs erfolgreich gelöscht<br><br>"; + }else{ + $mesg = "Fehler beim löschen der Fileserver URIs<br><br>"; + } +} + if ( $nfsserverip != "" && $nfsserverip != $oldnfsserverip ){ if ($syntax->check_ip_syntax($nfsserverip)){ @@ -299,6 +342,9 @@ if ( $initbootfile != "" && $initbootfile != $oldinitbootfile ){ $mesg = "Fehler beim ändern des Initial Boot Files!<br><br>"; } } + + + ##################################### # Restliche Attribute @@ -371,6 +417,8 @@ if (count($entrydel) != 0 ){ } +$url = "rbservice.php?rbsdn=".$rbsDN."&mnr=".$mnr; +$seconds = 2; $mesg .= "<br>Sie werden automatisch auf die vorherige Seite zurückgeleitet. <br> diff --git a/ldap-site-mngmt/webinterface/styles.css b/ldap-site-mngmt/webinterface/styles.css index f644f497..e53676af 100644 --- a/ldap-site-mngmt/webinterface/styles.css +++ b/ldap-site-mngmt/webinterface/styles.css @@ -169,7 +169,17 @@ h4 { border-style: solid; border-width: 1px 1px; border-color: #000000; - width: 200; + width: 250; + padding-left: 5px; + margin: 5px; +} +.tiny_form_selectbox { + font-family: Arial; + font-size: 10pt; + border-style: solid; + border-width: 1px 1px; + border-color: #000000; + width: 80; padding-left: 10px; margin: 5px; } |