summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pxe_wizard/Pxe.pm150
1 files changed, 150 insertions, 0 deletions
diff --git a/pxe_wizard/Pxe.pm b/pxe_wizard/Pxe.pm
new file mode 100644
index 00000000..e2ac5506
--- /dev/null
+++ b/pxe_wizard/Pxe.pm
@@ -0,0 +1,150 @@
+#!/usr/bin/perl -w
+
+# Drakwizard
+
+# Copyright (C) 2003 Mandrakesoft
+#
+# Author: Florent Villard <warly@mandrakesoft.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+package MDK::Wizard::Pxe;
+use lib qw(/usr/lib/libDrakX);
+use strict;
+
+use common;
+use services;
+use MDK::Wizard::Wizcommon;
+
+my $wiz = new MDK::Wizard::Wizcommon;
+
+my $intel_path = 'PXEClient';
+my $com_path = 'X86PC';
+my $ia64_path = 'IA64PC';
+my $TFTPDIR = "/var/lib/tftpboot";
+my $full64 = $TFTPDIR . '/' . $ia64_path . '/linux';
+my $img_path64 = "$full64/images";
+my $temp_dir = '/tmp';
+my $INSTALLDIR = "/var/install/pxe";
+
+my $o = {
+ name => N("PXE Wizard"),
+ var => {
+ INTELPATH => $intel_path,
+ COMPATH => $com_path,
+ IA64PATH => $ia64_path,
+ FULLINTEL => $TFTPDIR . '/' . $intel_path,
+ FULLCOM => $TFTPDIR . '/' . $com_path . '/linux',
+ FULL64 => $full64,
+ IMGPATH64 => $img_path64,
+ NET64 => "$img_path64/net",
+ KA64 => "$img_path64/ka",
+ TEMPDIR => $temp_dir,
+ PXEDEFAULT => 'pxelinux.cfg/default',
+ PXEDEFAULT64 => 'linux.1',
+ PXEMENU => "$temp_dir/default.pxe",
+ PXEMESSAGE => "$temp_dir/message.pxe",
+ FREEDOSIMAGE => $INSTALLDIR . '/images/freedos.img',
+ KAIMAGE => $INSTALLDIR . '/images/ka.img',
+ NETIMAGE => "$temp_dir/network.img",
+ SYSLINUXPATH => '/usr/lib/syslinux/',
+ PXEHELP => "$temp_dir/help.txt.pxe",
+ ELILO => '/boot/efi/elilo.efi',
+ CONF => '/etc/pxe.conf',
+ },
+ needed_rpm => [ 'pxe', 'tftp-server' ],
+ };
+
+my %level = (
+ 1 => N("PXE - Set PXE server"),
+ 2 => N("add - Add image in PXE"),
+ 3 => N("remove - remove image in PXE"),
+ 4 => N("Modify - Modify image in PXE"),
+ );
+
+
+
+$o->{pages} = {
+ welcome => {
+ name => N("PXE wizard") . "\n\n" . N("Set a PXE server.") . "\n\n" . N("This wizard will help you configuring the PXE server. This configuration will provide a pxe services, and ability to add/remove/modify boot images."),
+ no_back => 1,
+ pre => sub {
+ $o->{var}{wiz_level} ||= 1;
+ },
+ post => sub {
+ if ($o->{var}{wiz_level} == 2) {
+ return 'addimg' }
+ elsif ($o->{var}{wiz_level} == 3) {
+ return 'removeimg' }
+ elsif ($o->{var}{wiz_level} == 4) {
+ return 'modifyimg' }
+ },
+ data => [
+ { label => N("Wich operation:"), val => \$o->{var}{wiz_level}, list => [ keys %level ], format => sub { $level{$_[0]} } },
+ ],
+ no_back => 1,
+ next => 'pxeserver',
+ },
+ addimg => {
+ },
+ removeimg => {
+ },
+ modifyimg => {
+ },
+ pxeserver => {
+ },
+ endserver => {
+ name => N('Congratulations'),
+ data => [ { label => N('The wizard successfully configured Your PXE server.') } ],
+ no_back => 1,
+ end => 1,
+ next => 0
+ },
+ error_dir => {
+ name => N('Error Should be a directory'),
+ next => '',
+ },
+ endadd => {
+ name => N('Congratulations'),
+ data => [ { label => N('The wizard successfully add a PXE image.') } ],
+ no_back => 1,
+ end => 1,
+ next => 0
+ },
+ endremove => {
+ name => N('Congratulations'),
+ data => [ { label => N('The wizard successfully remove a PXE image.') } ],
+ no_back => 1,
+ end => 1,
+ next => 0
+ },
+ endmodify => {
+ name => N('Congratulations'),
+ data => [ { label => N('The wizard successfully modify image(s).') } ],
+ no_back => 1,
+ end => 1,
+ next => 0
+ },
+ };
+
+
+sub new {
+ my ($class, $conf) = @_;
+ bless {
+ o => $o,
+ }, $class;
+}
+
+1;