How would I make the following script for use in a web page, rather than the console script that it is?
=== start ===
## Creation Date: 02-25-02
## Mike Singleton
use XML:
arser;
print "Enter Servername or IP Address:";
SERVER: chomp($server=<STDIN>);
print "Enter User Name:";
USER: $user=<STDIN>;
chomp($user);
PASSWORD: print "Enter Password:";
$password=<STDIN>;
chomp($password);
while ($input ne "x"
{
MENU:
print "\n\nRILOE Menu for $server - Username - $user\n\n";
print <<EOF;
1 - Get All Users
2 - Get Firmware Info
3 - Get Host Power Status
4 - Get User Info
5 - Get Virtual Floppy Status
6 - Get Virtual Power Button Cable Status
7 - Add User
8 - Remove User
9 - RESET Server
e - Exit
Enter Selection:
EOF
$input=<STDIN>;
$inputfile="input.file";
$logfile="riloe.log";
$xmlout="riloe.xml";
open(LF, ">>$logfile"
|| die "Can't open $logfile($!)\n";
open(XML, ">$xmlout"
|| die "Can't open $xmlout($!)\n";
## Write Header for input file
open(INPUT, ">$inputfile"
|| die "Can't open $inputfile($!)\n";
print INPUT "<RIBCL VERSION=\"1.2\">\n";
print INPUT "<LOGIN USER_LOGIN=\"$user\" PASSWORD=\"$password\">\n";
##
if ($input==1) { ## All Users
print INPUT "<USER_INFO MODE=\"read\">\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==2) { ## Firmware Info
print INPUT "<RIB_INFO MODE = \"read\">\n";
print INPUT "<GET_FW_VERSION/>\n";
print INPUT "</RIB_INFO>\n";
}elsif ($input==3) { ## Host Power Status
print INPUT "<SERVER_INFO MODE = \"read\">\n";
print INPUT "<GET_HOST_POWER_STATUS/>\n";
print INPUT "</SERVER_INFO>\n";
}elsif ($input==4) { ## User Info
print "Enter User name:";
chomp($user_login=<STDIN>);
print INPUT "<USER_INFO MODE=\"read\">\n";
print INPUT "<GET_USER USER_LOGIN=\"$user_login\" />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==5) { ## VF Status
print INPUT "<RIB_INFO MODE=\"read\">\n";
print INPUT "<GET_VF_STATUS/>\n";
print INPUT "</RIB_INFO>\n";
}elsif ($input==6) { ## VPB Cable Status
print INPUT "<SERVER_INFO MODE = \"read\">\n";
print INPUT "<GET_VPB_CABLE_STATUS/>\n";
print INPUT "</SERVER_INFO>\n";
}elsif ($input==7) { ## Add User
print "Enter User Display Name:";
chomp($user_name=<STDIN>);
print "Enter Login:";
chomp($user_login=<STDIN>);
#----------------------------------------------------------------------------------------------------------------------------------------#
# Strong Password Enforcement code
PASSWORD
rint "Enter Password:";
chomp($user_pw=<STDIN>);
$pwlength=length($user_pw);
if ($pwlength <9) {
print "Invalid Password - Must be at least 8 characters in length\n";
goto PASSWORD;
}
if ($user_pw =~ /.{1,}\d+[~!@#\$%^&*()_+=`~]/) {
#print "Valid\n";
} elsif ($user_pw =~ /[~!@#\$%^&*()_+=`~]+.{1,}\d/) { ## Comment this item... and also check for length between 8 and 48 characters
#print "Valid\n";
## Also check max allowed password length...
} else {
print "$user_pw is not a valid Password - Must include characters,numbers and special characters\n";
goto PASSWORD;
}
#----------------------------------------------------------------------------------------------------------------------------------------#
print "*Enter SNMP Address:";
chomp($snmp_addr=<STDIN>);
print "*Enter SUPERVISOR_PRIV(Y/N):";
chomp($SUPERVISOR_PRIV=<STDIN>);
print "*Enter Client Range . value1
xxx.xxx.xxx.xxx)";
chomp($client_range1=<STDIN>);
print "*Enter Client Range . value2
xxx.xxx.xxx.xxx)";
chomp($client_range2=<STDIN>);
print INPUT "<USER_INFO MODE=\"write\">\n";
print INPUT "<ADD_USER USER_NAME=\"$user_name\" USER_LOGIN=\"$user_login\" PASSWORD=
\"$user_pw\">\n";
if ($snmp_addr ne ""
{print INPUT "<SNMP_ADDRESS value =\"$snmp_addr\"/>\n";}
if ($SUPERVISOR_PRIV ne ""
{print INPUT "<SUPERVISOR_PRIV value =\"$SUPERVISOR_PRIV\"/>\n";}
print INPUT "<LOGIN_PRIV value =\"Y\"/>\n";
print INPUT "<REMOTE_CONS_PRIV value =\"Y\"/>\n";
print INPUT "<RESET_SERVER_PRIV value =\"N\"/>\n";
print INPUT "<OS_TRAPS value =\"Y\"/>\n";
print INPUT "<RIB_TRAPS value =\"N\"/>\n";
if ($client_range1 ne ""
{print INPUT "<CLIENT_RANGE value =\"$client_range1 - $client_range2\"/>\n";}
print INPUT "</ADD_USER>\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==8) { ## Remove User
print "Enter User Name to Remove:";
chomp($user_login=<STDIN>);
print INPUT "<USER_INFO MODE=\"write\">\n";
print INPUT "<DELETE_USER USER_LOGIN=\"$user_login\"/>\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==9) { ## RESET SERVER
print "Are you sure you want to reset $server?(Y/N)";
$reboot=<STDIN>;
if ($reboot=="Y"
{
print INPUT "<SERVER_INFO MODE = \"write\">\n";
print INPUT "<RESET_SERVER/>\n";
print INPUT "</SERVER_INFO>\n";
} else {
print "NOT RESETTING $server\n";
goto MENU;
}
}elsif ($input =~ /e/) { ## Exit
print "Goodbye...\n";
exit;
} else {
print "Invalid Entry";
goto MENU;
}
## Write Footer for INPUT file
print INPUT "</LOGIN>\n";
print INPUT "</RIBCL>\n";
close(INPUT);
## RUN XML INTERPRETER ON INPUT FILE
print "Processing input...\n";
if ($input<10) {$output=`cpqlocfg -s $server -l $logfile -f $inputfile`;}
#exit;
print $output;
#$_=get($output=xml);
#while (m/<article id="/) { #Find start of new field
print XML $output;
close(XML);
goto MENU;
}
=== end ====
=== start ===
## Creation Date: 02-25-02
## Mike Singleton
use XML:
print "Enter Servername or IP Address:";
SERVER: chomp($server=<STDIN>);
print "Enter User Name:";
USER: $user=<STDIN>;
chomp($user);
PASSWORD: print "Enter Password:";
$password=<STDIN>;
chomp($password);
while ($input ne "x"
MENU:
print "\n\nRILOE Menu for $server - Username - $user\n\n";
print <<EOF;
1 - Get All Users
2 - Get Firmware Info
3 - Get Host Power Status
4 - Get User Info
5 - Get Virtual Floppy Status
6 - Get Virtual Power Button Cable Status
7 - Add User
8 - Remove User
9 - RESET Server
e - Exit
Enter Selection:
EOF
$input=<STDIN>;
$inputfile="input.file";
$logfile="riloe.log";
$xmlout="riloe.xml";
open(LF, ">>$logfile"
open(XML, ">$xmlout"
## Write Header for input file
open(INPUT, ">$inputfile"
print INPUT "<RIBCL VERSION=\"1.2\">\n";
print INPUT "<LOGIN USER_LOGIN=\"$user\" PASSWORD=\"$password\">\n";
##
if ($input==1) { ## All Users
print INPUT "<USER_INFO MODE=\"read\">\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==2) { ## Firmware Info
print INPUT "<RIB_INFO MODE = \"read\">\n";
print INPUT "<GET_FW_VERSION/>\n";
print INPUT "</RIB_INFO>\n";
}elsif ($input==3) { ## Host Power Status
print INPUT "<SERVER_INFO MODE = \"read\">\n";
print INPUT "<GET_HOST_POWER_STATUS/>\n";
print INPUT "</SERVER_INFO>\n";
}elsif ($input==4) { ## User Info
print "Enter User name:";
chomp($user_login=<STDIN>);
print INPUT "<USER_INFO MODE=\"read\">\n";
print INPUT "<GET_USER USER_LOGIN=\"$user_login\" />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==5) { ## VF Status
print INPUT "<RIB_INFO MODE=\"read\">\n";
print INPUT "<GET_VF_STATUS/>\n";
print INPUT "</RIB_INFO>\n";
}elsif ($input==6) { ## VPB Cable Status
print INPUT "<SERVER_INFO MODE = \"read\">\n";
print INPUT "<GET_VPB_CABLE_STATUS/>\n";
print INPUT "</SERVER_INFO>\n";
}elsif ($input==7) { ## Add User
print "Enter User Display Name:";
chomp($user_name=<STDIN>);
print "Enter Login:";
chomp($user_login=<STDIN>);
#----------------------------------------------------------------------------------------------------------------------------------------#
# Strong Password Enforcement code
PASSWORD
chomp($user_pw=<STDIN>);
$pwlength=length($user_pw);
if ($pwlength <9) {
print "Invalid Password - Must be at least 8 characters in length\n";
goto PASSWORD;
}
if ($user_pw =~ /.{1,}\d+[~!@#\$%^&*()_+=`~]/) {
#print "Valid\n";
} elsif ($user_pw =~ /[~!@#\$%^&*()_+=`~]+.{1,}\d/) { ## Comment this item... and also check for length between 8 and 48 characters
#print "Valid\n";
## Also check max allowed password length...
} else {
print "$user_pw is not a valid Password - Must include characters,numbers and special characters\n";
goto PASSWORD;
}
#----------------------------------------------------------------------------------------------------------------------------------------#
print "*Enter SNMP Address:";
chomp($snmp_addr=<STDIN>);
print "*Enter SUPERVISOR_PRIV(Y/N):";
chomp($SUPERVISOR_PRIV=<STDIN>);
print "*Enter Client Range . value1
chomp($client_range1=<STDIN>);
print "*Enter Client Range . value2
chomp($client_range2=<STDIN>);
print INPUT "<USER_INFO MODE=\"write\">\n";
print INPUT "<ADD_USER USER_NAME=\"$user_name\" USER_LOGIN=\"$user_login\" PASSWORD=
\"$user_pw\">\n";
if ($snmp_addr ne ""
if ($SUPERVISOR_PRIV ne ""
print INPUT "<LOGIN_PRIV value =\"Y\"/>\n";
print INPUT "<REMOTE_CONS_PRIV value =\"Y\"/>\n";
print INPUT "<RESET_SERVER_PRIV value =\"N\"/>\n";
print INPUT "<OS_TRAPS value =\"Y\"/>\n";
print INPUT "<RIB_TRAPS value =\"N\"/>\n";
if ($client_range1 ne ""
print INPUT "</ADD_USER>\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==8) { ## Remove User
print "Enter User Name to Remove:";
chomp($user_login=<STDIN>);
print INPUT "<USER_INFO MODE=\"write\">\n";
print INPUT "<DELETE_USER USER_LOGIN=\"$user_login\"/>\n";
print INPUT "<GET_ALL_USERS />\n";
print INPUT "</USER_INFO>\n";
}elsif ($input==9) { ## RESET SERVER
print "Are you sure you want to reset $server?(Y/N)";
$reboot=<STDIN>;
if ($reboot=="Y"
print INPUT "<SERVER_INFO MODE = \"write\">\n";
print INPUT "<RESET_SERVER/>\n";
print INPUT "</SERVER_INFO>\n";
} else {
print "NOT RESETTING $server\n";
goto MENU;
}
}elsif ($input =~ /e/) { ## Exit
print "Goodbye...\n";
exit;
} else {
print "Invalid Entry";
goto MENU;
}
## Write Footer for INPUT file
print INPUT "</LOGIN>\n";
print INPUT "</RIBCL>\n";
close(INPUT);
## RUN XML INTERPRETER ON INPUT FILE
print "Processing input...\n";
if ($input<10) {$output=`cpqlocfg -s $server -l $logfile -f $inputfile`;}
#exit;
print $output;
#$_=get($output=xml);
#while (m/<article id="/) { #Find start of new field
print XML $output;
close(XML);
goto MENU;
}
=== end ====