add workaround to setup DB2 to come up after reboot on Linux. Check to see if writable directory when running -o option on AIX

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9228 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
lissav 2011-04-05 18:03:45 +00:00
parent 6de4ddda88
commit d0909749b5

View File

@ -1274,6 +1274,52 @@ sub db2reboot
xCAT::MsgUtils->message("W", " $cmd failed.");
}
# if on Linux redhat6 , we need to setup /etc/init.d
# this is a workaround until DB2 no longer uses /etc/inittab on Linux
if ($::osname eq 'Linux') {
# check to see DB2 has not already implemented a script in /etc/inittab
$cmd = " fgrep db2fmcd /etc/init.d/*";
xCAT::Utils->runcmd($cmd, -1);
if ($::RUNCMD_RC == 0) {
my $message = "DB2 /etc/init.d reboot file already setup";
xCAT::MsgUtils->message("I", "$message");
} else {
$cmd = "cp /opt/xcat/share/xcat/tools/db2xcat /etc/init.d/db2xcat";
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("E", " $cmd failed. DB2 will not automatically restart on reboot.");
} else { # added the script to start db2fmcd
$cmd = "chkconfig --add db2xcat";
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("E", " $cmd failed. DB2 will not automatically restart on reboot.");
}
}
}
# add setup required for DB2 reboot
$cmd = " fgrep \"kernel.shmmax = 268435456\" /etc/sysctl.conf";
xCAT::Utils->runcmd($cmd, -1); # entry not there
if ($::RUNCMD_RC != 0) {
$cmd = "echo \"#xcat setup\" >> /etc/sysctl.conf ";
xCAT::Utils->runcmd($cmd,0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("I", " $cmd failed.");
}
$cmd = "echo \"kernel.shmmax = 268435456\" >> /etc/sysctl.conf ";
xCAT::Utils->runcmd($cmd,0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("I", " $cmd failed. DB2 will not automatically restart on reboot.");
}
}
} # end Linux
}
@ -1348,6 +1394,14 @@ sub setupODBC
{
if (!(-e "$::databaseloc/sqllib/lib/libdb2.so"))
{
$cmd = "touch db2sql.test"; # see if this is a writable directory
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $message = "You are not in a writable directory. To run this command change to a directory in which db2sqlsetup can create files.";
xCAT::MsgUtils->message("E", " $cmd failed. $message");
exit(1);
}
$cmd = "ar -x $::databaseloc/sqllib/lib/libdb2.a";
@rpmoutput = xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)