diff --git a/oam/install_scripts/columnstore b/oam/install_scripts/columnstore index 315256cd9..27061882d 100644 --- a/oam/install_scripts/columnstore +++ b/oam/install_scripts/columnstore @@ -56,11 +56,11 @@ if [ "x$has_um" = x ]; then has_um=0 fi -user=$USER -sudo=sudo -if [ -z "$user" ]; then - user=root - sudo=" " +user=root +SUDO=" " +if [ $USER != "root" ]; then + user=$USER + SUDO="sudo " fi checkInstallSetup() { @@ -68,7 +68,7 @@ checkInstallSetup() { if [ $InitialInstallFlag != "y" ]; then echo "Please run the postConfigure install script, check the Installation Guide" echo "for additional details" - sudo rm -f /var/lock/subsys/columnstore + $SUDO rm -f /var/lock/subsys/columnstore exit 1 fi } @@ -81,13 +81,13 @@ start() { exit 0 fi - (sudo mkdir -p /var/lock/subsys && touch /var/lock/subsys/columnstore) >/dev/null 2>&1 + ($SUDO mkdir -p /var/lock/subsys && $SUDO chmod 777 /var/lock/subsys && $SUDO touch /var/lock/subsys/columnstore) >/dev/null 2>&1 if [ -x $InstallDir/bin/columnstore.pre-start ]; then $InstallDir/bin/columnstore.pre-start if [ $? -ne 0 ]; then echo "Error running MariaDB Columnstore pre-start script, not starting MariaDB Columnstore" - sudo rm -f /var/lock/subsys/columnstore + $SUDO rm -f /var/lock/subsys/columnstore exit 1 fi fi @@ -97,7 +97,7 @@ start() { if [ $CoreFileFlag = "y" ]; then SUDO= if [ "$user" != "root" ]; then - SUDO="sudo" + SUDO="$SUDO" fi #columnstore core files @@ -108,21 +108,21 @@ start() { RETVAL=0 echo "Starting MariaDB Columnstore Database Platform" - sudo rm -f /tmp/StopColumnstore + $SUDO rm -f /tmp/StopColumnstore exec $InstallDir/bin/run.sh $InstallDir/bin/ProcMon > /dev/null 2>&1 & return $RETVAL } stop() { echo "Shutting down MariaDB Columnstore Database Platform" - sudo touch /tmp/StopColumnstore - sudo pkill ProcMon - sudo pkill ProcMgr + $SUDO touch /tmp/StopColumnstore + $SUDO pkill ProcMon + $SUDO pkill ProcMgr sleep 1 $InstallDir/bin/clearShm RETVAL=$? - sudo rm -f /var/lock/subsys/columnstore - sudo fuser -k 8604/tcp > /dev/null 2>&1 + $SUDO rm -f /var/lock/subsys/columnstore + $SUDO fuser -k 8604/tcp > /dev/null 2>&1 test -f $InstallDir/mysql/mysql-Columnstore || return $RETVAL $InstallDir/mysql/mysql-Columnstore stop > /dev/null 2>&1 if [ -x $InstallDir/bin/columnstore.post-stop ]; then diff --git a/oam/install_scripts/post-install b/oam/install_scripts/post-install index 33a3f6e35..966e40aa6 100755 --- a/oam/install_scripts/post-install +++ b/oam/install_scripts/post-install @@ -7,11 +7,11 @@ prefix=/usr/local installdir=$prefix/mariadb/columnstore rpmmode=install -user=$USER -sudo=sudo -if [ -z "$user" ]; then - user=root - sudo=" " +user=root +SUDO=" " +if [ $USER != "root" ]; then + user=$USER + SUDO="sudo " fi quiet=0 @@ -82,7 +82,7 @@ if [ -f libstdc++.so.6.0.14 ]; then fi # softlink for libperl.sp, used by cplogger -sudo ln -s /usr/lib64/perl5/CORE/libperl.so /usr/lib64/libperl.so >/dev/null 2>&1 +$SUDO ln -s /usr/lib64/perl5/CORE/libperl.so /usr/lib64/libperl.so >/dev/null 2>&1 #setup .bashrc if [ $user = "root" ]; then @@ -121,9 +121,9 @@ fi cd / -test -d /var/log/mariadb || sudo mkdir /var/log/mariadb >/dev/null 2>&1 -test -d /var/log/mariadb/columnstore || sudo mkdir /var/log/mariadb/columnstore >/dev/null 2>&1 -sudo chmod -R 777 /var/log/mariadb +test -d /var/log/mariadb || $SUDO mkdir /var/log/mariadb >/dev/null 2>&1 +test -d /var/log/mariadb/columnstore || $SUDO mkdir /var/log/mariadb/columnstore >/dev/null 2>&1 +$SUDO chmod -R 777 /var/log/mariadb test -d /var/log/mariadb/columnstore/archive || mkdir /var/log/mariadb/columnstore/archive >/dev/null 2>&1 test -d /var/log/mariadb/columnstore/corefiles || mkdir /var/log/mariadb/columnstore/corefiles >/dev/null 2>&1 @@ -161,8 +161,8 @@ mkdir /mnt/tmp > /dev/null 2>&1 mkdir /var/log/mariadb/columnstore/data/archive > /dev/null 2>&1 # install Columnstore Log Rotate File -sudo cp $installdir/bin/columnstoreLogRotate /etc/logrotate.d/columnstore > /dev/null 2>&1 -sudo chmod 644 /etc/logrotate.d/columnstore +$SUDO cp $installdir/bin/columnstoreLogRotate /etc/logrotate.d/columnstore > /dev/null 2>&1 +$SUDO chmod 644 /etc/logrotate.d/columnstore # remove mysql archive log test -d $installdir/mysql/db || mkdir -p $installdir/mysql/db @@ -209,17 +209,17 @@ if [ $user = "root" ]; then chmod 777 -R /dev/shm rm -f /etc/default/columnstore else - sudo chmod 777 /tmp - sudo rm -fr /tmp/* > /dev/null 2>&1 - sudo $installdir/bin/syslogSetup.sh --installdir=$installdir install > /tmp/syslog_install.log 2>&1 - sudo chown $user:$user $installdir/etc/Columnstore.xml - sudo chmod -R 777 /dev/shm - sudo chmod 777 /var/lock/subsys - sudo rm -f /var/lock/subsys/mysql-Columnstore - sudo chmod 777 /etc/fstab + $SUDO chmod 777 /tmp + $SUDO rm -fr /tmp/* > /dev/null 2>&1 + $SUDO $installdir/bin/syslogSetup.sh --installdir=$installdir install > /tmp/syslog_install.log 2>&1 + $SUDO chown $user:$user $installdir/etc/Columnstore.xml + $SUDO chmod -R 777 /dev/shm + $SUDO chmod 777 /var/lock/subsys + $SUDO rm -f /var/lock/subsys/mysql-Columnstore + $SUDO chmod 777 /etc/fstab sed -i -e s@/usr/local/mariadb/columnstore@$installdir@g $installdir/bin/columnstore.def - sudo cp $installdir/bin/columnstore.def /etc/default/columnstore + $SUDO cp $installdir/bin/columnstore.def /etc/default/columnstore sed -i -e s@prefix=/usr/local@prefix=$HOME@g $installdir/bin/* diff --git a/oam/install_scripts/post-mysql-install b/oam/install_scripts/post-mysql-install index 25f8eb0bb..58c469a98 100755 --- a/oam/install_scripts/post-mysql-install +++ b/oam/install_scripts/post-mysql-install @@ -78,12 +78,12 @@ for arg in "$@"; do fi done -#run to make sure library paths are setup -sudo ldconfig - if [ $installdir != "/usr/local/mariadb/columnstore" ]; then + sudo ldconfig export COLUMNSTORE_INSTALL_DIR=$installdir export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COLUMNSTORE_INSTALL_DIR/lib:$COLUMNSTORE_INSTALL_DIR/mysql/lib/mysql +else + ldconfig fi if [ -f $installdir/lib/libcalmysql.so.1.0.0 ]; then diff --git a/oam/install_scripts/pre-uninstall b/oam/install_scripts/pre-uninstall index ee3c72e2b..8254b2f5b 100755 --- a/oam/install_scripts/pre-uninstall +++ b/oam/install_scripts/pre-uninstall @@ -7,12 +7,12 @@ prefix=/usr/local installdir=$prefix/mariadb/columnstore rpmmode=install -user=$USER -sudo=sudo -if [ -z "$user" ]; then - user=root - sudo=" " +SUDO=" " +if [ $USER != "root" ]; then + user=$USER + SUDO="sudo " fi + quiet=0 for arg in "$@"; do @@ -45,17 +45,17 @@ $installdir/myql/columnstore-Mysql stop > /dev/null 2>&1 # uninstall OS scripts updated by postConfigure if test -f /etc/exports.columnstoreSave ; then - $sudo mv -f /etc/exports.columnstoreSave /etc/exports > /dev/null 2>&1 + $SUDO mv -f /etc/exports.columnstoreSave /etc/exports > /dev/null 2>&1 else - $sudo rm -f /etc/exports > /dev/null 2>&1 + $SUDO rm -f /etc/exports > /dev/null 2>&1 fi if test -f /etc/rc.d/rc.local.columnstoreSave ; then - $sudo mv -f /etc/rc.d/rc.local.columnstoreSave /etc/rc.d/rc.local > /dev/null 2>&1 + $SUDO mv -f /etc/rc.d/rc.local.columnstoreSave /etc/rc.d/rc.local > /dev/null 2>&1 fi if test -f /etc/rc.local.columnstoreSave ; then - $sudo mv -f /etc/rc.local.columnstoreSave /etc/rc.local > /dev/null 2>&1 + $SUDO mv -f /etc/rc.local.columnstoreSave /etc/rc.local > /dev/null 2>&1 fi export COLUMNSTORE_INSTALL_DIR=$installdir @@ -63,30 +63,30 @@ export COLUMNSTORE_INSTALL_DIR=$installdir cloud=`$COLUMNSTORE_INSTALL_DIR/bin/getConfig Installation Cloud` if [ $cloud = "amazon-ec2" ] || [ $cloud = "amazon-vpc" ]; then if test -f /etc/fstab ; then - $sudo sed -i '/Columnstore\/data/d' /etc/fstab > /dev/null 2>&1 + $SUDO sed -i '/Columnstore\/data/d' /etc/fstab > /dev/null 2>&1 fi fi #remove log file directories #rm -rf /var/log/mariadb/columnstore > /dev/null 2>&1 #rm -f $installdir/mysql/db/*.err > /dev/null 2>&1 -sudo rm -f /var/log/mariadb/columnstore/activeAlarms > /dev/null 2>&1 -sudo rm -f /var/log/mariadb/columnstore/*.log1 > /dev/null 2>&1 +$SUDO rm -f /var/log/mariadb/columnstore/activeAlarms > /dev/null 2>&1 +$SUDO rm -f /var/log/mariadb/columnstore/*.log1 > /dev/null 2>&1 rm -rf $installdir/mysql/db/columnstore_log_archive > /dev/null 2>&1 -sudo rm -f /etc/default/columnstore +$SUDO rm -f /etc/default/columnstore # remove Mariab Columnstore Log Rotate File abd Transaction Log File -sudo rm -f /etc/logrotate.d/columnstore > /dev/null 2>&1 -sudo rm -f /etc/cron.d/transactionLog > /dev/null 2>&1 +$SUDO rm -f /etc/logrotate.d/columnstore > /dev/null 2>&1 +$SUDO rm -f /etc/cron.d/transactionLog > /dev/null 2>&1 # delete Mariab Columnstore shared memory segments $installdir/bin/clearShm > /dev/null 2>&1 # delete prat files -sudo rm -f /etc/cron.d/ps > /dev/null 2>&1 -sudo rm -f /etc/pscollect > /dev/null 2>&1 -sudo /etc/init.d/crond reload > /dev/null 2>&1 -sudo sudo systemctl reload crond.service > /dev/null 2>&1 +$SUDO rm -f /etc/cron.d/ps > /dev/null 2>&1 +$SUDO rm -f /etc/pscollect > /dev/null 2>&1 +$SUDO /etc/init.d/crond reload > /dev/null 2>&1 +$SUDO $SUDO systemctl reload crond.service > /dev/null 2>&1 # delete tmp files rm -f $installdir/local/*.columnstore @@ -95,7 +95,7 @@ rm -rf /tmp/bucketreuse rm -f /tmp/columnstore.txt rm -f /tmp/dbbuilder.* rm -f /tmp/dbrmfiles -sudo rm -f /var/lock/subsys/columnstore +$SUDO rm -f /var/lock/subsys/columnstore rm -f /tmp/pkgcheck rm -f /tmp/upgrade-status.log.* rm -f /tmp/mount.log @@ -118,7 +118,7 @@ if [ -x $installdir/bin/syslogSetup.sh ]; then if [ $user = "root" ]; then $installdir/bin/syslogSetup.sh uninstall >/dev/null 2>&1 else - sudo $installdir/bin/syslogSetup.sh uninstall >/dev/null 2>&1 + $SUDO $installdir/bin/syslogSetup.sh uninstall >/dev/null 2>&1 fi fi @@ -158,14 +158,14 @@ fi if [ $user = "root" ]; then rm -f $installdir/data*/OAMdbrootCheck > /dev/null 2>&1 else - sudo rm -f $installdir/data*/OAMdbrootCheck > /dev/null 2>&1 + $SUDO rm -f $installdir/data*/OAMdbrootCheck > /dev/null 2>&1 fi #remove library paths if [ $installdir == "/usr/local/mariadb/columnstore" ]; then # remove library config file - sudo rm -f /etc/ld.so.conf.d/columnstore.conf - sudo ldconfig + $SUDO rm -f /etc/ld.so.conf.d/columnstore.conf + $SUDO ldconfig fi #cleanup .bashrc diff --git a/oam/install_scripts/syslogSetup.sh b/oam/install_scripts/syslogSetup.sh index ae606f3d4..5accb84a6 100755 --- a/oam/install_scripts/syslogSetup.sh +++ b/oam/install_scripts/syslogSetup.sh @@ -13,10 +13,10 @@ syslog_conf=nofile rsyslog7=0 user=$USER -sudo=sudo +SUDO=sudo if [ -z "$user" ]; then user=root - sudo=" " + SUDO=" " fi @@ -70,13 +70,13 @@ if [ "$daemon" = "nodaemon" ]; then if [ -f /etc/syslog.conf ]; then daemon="syslog" - sudo /etc/init.d/syslog start > /dev/null 2>&1 + $SUDO /etc/init.d/syslog start > /dev/null 2>&1 elif [ -f /etc/rsyslog.conf ]; then daemon="rsyslog" - sudo /etc/init.d/rsyslog start > /dev/null 2>&1 + $SUDO /etc/init.d/rsyslog start > /dev/null 2>&1 elif [ -f /etc/init.d/syslog-ng ]; then daemon="syslog-ng" - sudo /etc/init.d/syslog-ng start > /dev/null 2>&1 + $SUDO /etc/init.d/syslog-ng start > /dev/null 2>&1 fi fi @@ -100,7 +100,7 @@ if [ "$daemon" = "syslog-ng" ]; then fi elif [ "$daemon" = "rsyslog" ]; then #check if rsyslog version 7 or greater - sudo rsyslogd -v > /tmp/rsyslog.ver + $SUDO rsyslogd -v > /tmp/rsyslog.ver cnt=`grep "rsyslogd 7" /tmp/rsyslog.ver | wc -l` if [ $cnt -gt 0 ]; then rsyslog7=1 @@ -157,28 +157,28 @@ checkSyslog if [ ! -z "$syslog_conf" ] ; then $installdir/bin/setConfig -d Installation SystemLogConfigFile ${syslog_conf} >/dev/null 2>&1 if [ "$syslog_conf" != /etc/rsyslog.d/columnstore.conf ]; then - sudo rm -f ${syslog_conf}.columnstoreSave - sudo cp ${syslog_conf} ${syslog_conf}.columnstoreSave >/dev/null 2>&1 - sudo sed -i '/# MariaDB/,$d' ${syslog_conf}.columnstoreSave > /dev/null 2>&1 + $SUDO rm -f ${syslog_conf}.columnstoreSave + $SUDO cp ${syslog_conf} ${syslog_conf}.columnstoreSave >/dev/null 2>&1 + $SUDO sed -i '/# MariaDB/,$d' ${syslog_conf}.columnstoreSave > /dev/null 2>&1 fi egrep -qs 'MariaDB Columnstore Database Platform Logging' ${syslog_conf} if [ $? -ne 0 ]; then #set the syslog for ColumnStore logging # remove older version incase it was installed by previous build - sudo rm -rf /etc/rsyslog.d/columnstore.conf + $SUDO rm -rf /etc/rsyslog.d/columnstore.conf if [ $rsyslog7 == 1 ]; then - sudo rm -f /etc/rsyslog.d/49-columnstore.conf - sudo cp ${columnstoreSyslogFile7} ${syslog_conf} - sudo chown syslog:adm /var/log/mariadb/columnstore >/dev/null 2>&1 + $SUDO rm -f /etc/rsyslog.d/49-columnstore.conf + $SUDO cp ${columnstoreSyslogFile7} ${syslog_conf} + $SUDO chown syslog:adm /var/log/mariadb/columnstore >/dev/null 2>&1 else - sudo cp ${columnstoreSyslogFile} ${syslog_conf} + $SUDO cp ${columnstoreSyslogFile} ${syslog_conf} fi fi - sudo etc/init.d/rsyslog restart > /dev/null 2>&1 - sudo /etc/init.d/syslog restart > /dev/null 2>&1 - sudo /etc/init.d/syslog-ng restart > /dev/null 2>&1 + $SUDO etc/init.d/rsyslog restart > /dev/null 2>&1 + $SUDO /etc/init.d/syslog restart > /dev/null 2>&1 + $SUDO /etc/init.d/syslog-ng restart > /dev/null 2>&1 systemctl restart rsyslog.service > /dev/null 2>&1 systemctl restart syslog.service > /dev/null 2>&1 @@ -197,24 +197,24 @@ if [ ! -z "$syslog_conf" ] ; then if [ $? -eq 0 ]; then if [ -f ${syslog_conf}.columnstoreSave ] ; then #uninstall the syslog for ColumnStore logging - sudo v -f ${syslog_conf} ${syslog_conf}.ColumnStoreBackup - sudo mv -f ${syslog_conf}.columnstoreSave ${syslog_conf} >/dev/null 2>&1 + $SUDO v -f ${syslog_conf} ${syslog_conf}.ColumnStoreBackup + $SUDO mv -f ${syslog_conf}.columnstoreSave ${syslog_conf} >/dev/null 2>&1 if [ ! -f ${syslog_conf} ] ; then - sudo cp ${syslog_conf}.ColumnStoreBackup ${syslog_conf} + $SUDO cp ${syslog_conf}.ColumnStoreBackup ${syslog_conf} fi fi fi - sudo sed -i '/# MariaDB/,$d' ${syslog_conf} > /dev/null 2>&1 + $SUDO sed -i '/# MariaDB/,$d' ${syslog_conf} > /dev/null 2>&1 else - sudo rm -f "$syslog_conf" + $SUDO rm -f "$syslog_conf" fi else - sudo rm -f "$syslog_conf" + $SUDO rm -f "$syslog_conf" fi - sudo etc/init.d/rsyslog restart > /dev/null 2>&1 - sudo /etc/init.d/syslog restart > /dev/null 2>&1 - sudo /etc/init.d/syslog-ng restart > /dev/null 2>&1 + $SUDO etc/init.d/rsyslog restart > /dev/null 2>&1 + $SUDO /etc/init.d/syslog restart > /dev/null 2>&1 + $SUDO /etc/init.d/syslog-ng restart > /dev/null 2>&1 systemctl restart rsyslog.service > /dev/null 2>&1 systemctl restart syslog.service > /dev/null 2>&1 diff --git a/oam/oamcpp/liboamcpp.cpp b/oam/oamcpp/liboamcpp.cpp index 19ed72529..7ef10b1cb 100644 --- a/oam/oamcpp/liboamcpp.cpp +++ b/oam/oamcpp/liboamcpp.cpp @@ -9271,7 +9271,7 @@ namespace oam catch(...) { processor.shutdown(); - throw std::runtime_error("error"); + throw std::runtime_error("write error"); } @@ -9282,7 +9282,7 @@ namespace oam catch(...) { processor.shutdown(); - throw std::runtime_error("error"); + throw std::runtime_error("read error"); } ByteStream::byte returnRequestType; @@ -9649,6 +9649,8 @@ namespace oam return true; } } + writeLog("checkSystemRunning - system reported down", LOG_TYPE_DEBUG ); + return false; } } //namespace oam diff --git a/oam/oamcpp/liboamcpp.h b/oam/oamcpp/liboamcpp.h index c50c5bd9f..5f4d7f7a7 100644 --- a/oam/oamcpp/liboamcpp.h +++ b/oam/oamcpp/liboamcpp.h @@ -518,7 +518,8 @@ namespace oam ENABLEMYSQLREP, DISABLEMYSQLREP, GLUSTERASSIGN, - GLUSTERUNASSIGN + GLUSTERUNASSIGN, + PROCESSALARM }; /** @brief Process Management - Mgr to Mon request options diff --git a/oamapps/mcsadmin/mcsadmin.cpp b/oamapps/mcsadmin/mcsadmin.cpp index 9f9dec973..e333b8cbd 100644 --- a/oamapps/mcsadmin/mcsadmin.cpp +++ b/oamapps/mcsadmin/mcsadmin.cpp @@ -2339,7 +2339,7 @@ int processCommand(string* arguments) else { cout << endl << "**** shutdownSystem Failure : " << e.what() << endl; - cout << "Retry using FORCEFUL option" << endl << endl; + cout << " Retry running command using FORCEFUL option" << endl << endl; } //hdfs / hadoop config diff --git a/oamapps/postConfigure/postConfigure.cpp b/oamapps/postConfigure/postConfigure.cpp index 41e094a18..3980b05a8 100644 --- a/oamapps/postConfigure/postConfigure.cpp +++ b/oamapps/postConfigure/postConfigure.cpp @@ -209,7 +209,6 @@ int main(int argc, char *argv[]) noPrompting = false; string password; string cmd; - bool disableAmazon = false; // struct sysinfo myinfo; // hidden options @@ -277,7 +276,7 @@ int main(int argc, char *argv[]) cout << " Enter one of the options within [], if available, or" << endl; cout << " Enter a new value" << endl << endl; cout << endl; - cout << "Usage: postConfigure [-h][-c][-u][-p][-mp][-s][-port][-i][-da]" << endl; + cout << "Usage: postConfigure [-h][-c][-u][-p][-mp][-s][-port][-i]" << endl; cout << " -h Help" << endl; cout << " -c Config File to use to extract configuration data, default is Columnstore.xml.rpmsave" << endl; cout << " -u Upgrade, Install using the Config File from -c, default to Columnstore.xml.rpmsave" << endl; @@ -287,7 +286,6 @@ int main(int argc, char *argv[]) cout << " -s Single Threaded Remote Install" << endl; cout << " -port MariaDB Columnstore Port Address" << endl; cout << " -i Non-root Install directory, Only use for non-root installs" << endl; - cout << " -da Disable Amazon functionality, install using Stardard Hostnames and IP Addresses" << endl; exit (0); } else if( string("-s") == argv[i] ) @@ -352,8 +350,6 @@ int main(int argc, char *argv[]) exit (1); } } - else if( string("-da") == argv[i] ) - disableAmazon = true; else if( string("-i") == argv[i] ) { i++; if (i >= argc ) { @@ -365,7 +361,7 @@ int main(int argc, char *argv[]) else { cout << " ERROR: Invalid Argument = " << argv[i] << endl; - cout << " Usage: postConfigure [-h][-c][-u][-p][-mp][-s][-port][-i][-da]" << endl; + cout << " Usage: postConfigure [-h][-c][-u][-p][-mp][-s][-port][-i]" << endl; exit (1); } } @@ -817,35 +813,80 @@ int main(int argc, char *argv[]) bool amazonInstall = false; string amazonSubNet = oam::UnassignedName; string cloud = oam::UnassignedName; - if (!disableAmazon) + system("ec2-version > /tmp/amazon.log 2>&1"); + + ifstream in("/tmp/amazon.log"); + + in.seekg(0, std::ios::end); + int size = in.tellg(); + if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not found")) + // not running on amazon with ec2-api-tools + amazonInstall = false; + else { - system("ec2-version > /tmp/amazon.log 2>&1"); - - ifstream in("/tmp/amazon.log"); - - in.seekg(0, std::ios::end); - int size = in.tellg(); - if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not found")) - // not running on amazon with ec2-api-tools + if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not installed")) amazonInstall = false; else - if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not installed")) - amazonInstall = false; - else - amazonInstall = true; + amazonInstall = true; } + try { + cloud = sysConfig->getConfig(InstallSection, "Cloud"); + } + catch(...) + { + cloud = oam::UnassignedName; + } + + if ( cloud == "disable" ) + amazonInstall = false; + if ( amazonInstall ) { - try { - cloud = sysConfig->getConfig(InstallSection, "Cloud"); - } - catch(...) + if ( cloud == oam::UnassignedName ) { - cloud = oam::UnassignedName; + while(true) { + string enable = "y"; + prompt = "Amazon AMI Tools installed, do you want to have ColumnStore utilize them [y,n] (y) > "; + pcommand = callReadline(prompt.c_str()); + + if (pcommand) { + if (strlen(pcommand) > 0) enable = pcommand; + callFree(pcommand); + + if (enable == "n") { + amazonInstall = false; + + try { + sysConfig->setConfig(InstallSection, "Cloud", "disable"); + } + catch(...) + {}; + + break; + } + } + + if ( enable != "y" ) + { + cout << "Invalid Entry, please enter 'y' for yes or 'n' for no" << endl; + if ( noPrompting ) + exit(1); + } + break; + } } - cout << endl << "Amazon EC2 Install, these files will need to be installed on the local instance:" << endl << endl; + if ( amazonInstall ) + { + try { + AmazonAccessKey = sysConfig->getConfig(InstallSection, "AmazonAccessKey"); + AmazonSecretKey = sysConfig->getConfig(InstallSection, "AmazonSecretKey"); + } + catch(...) + {} + + cout << endl << "Amazon API Tools usage, these files will need to be installed on the local instance:" << endl << endl; cout << " 1. File containing the Amazon Access Key" << endl; cout << " 2. File containing the Amazon Secret Key" << endl << endl; @@ -1003,6 +1044,8 @@ int main(int argc, char *argv[]) {} } + } + if ( pmwithum ) cout << endl << "NOTE: Local Query Feature is enabled" << endl; @@ -2757,14 +2800,19 @@ int main(int argc, char *argv[]) //Write out Updated System Configuration File string EEPackageType; - try { - EEPackageType = sysConfig->getConfig(InstallSection, "EEPackageType"); - } - catch(...) + if ( rootUser ) { - cout << "ERROR: Problem getting EEPackageType from the MariaDB Columnstore System Configuration file" << endl; - exit(1); + try { + EEPackageType = sysConfig->getConfig(InstallSection, "EEPackageType"); + } + catch(...) + { + cout << "ERROR: Problem getting EEPackageType from the MariaDB Columnstore System Configuration file" << endl; + exit(1); + } } + else //nonroot, default to binary + EEPackageType = "binary"; while(true) { prompt = "Enter the Package Type being installed to other servers [rpm,deb,binary] (" + EEPackageType + ") > "; @@ -3086,7 +3134,7 @@ int main(int argc, char *argv[]) remoteModuleIP + " " + password + " " + calpontPackage1 + " " + remoteModuleType + " initial " + binservertype + " " + mysqlPort + " " + remote_installer_debug + " " + installDir + " " + debug_logfile; - + if ( thread_remote_installer ) { thr_data[thread_id].command = cmd; diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index 3f1ea1304..0d7f2c64c 100644 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -2628,7 +2628,44 @@ void processMSG(messageqcpp::IOSocket* cfIos) break; } +/* + case PROCESSALARM: + { + log.writeLog(__LINE__, "MSG RECEIVED: Process Alarm Message"); + ByteStream::byte alarmID; + std::string componentID; + ByteStream::byte state; + std::string ModuleName; + std::string processName; + ByteStream::byte pid; + ByteStream::byte tid; + + msg >> alarmID; + msg >> componentID; + msg >> state; + msg >> ModuleName; + msg >> processName; + msg >> pid; + msg >> tid; + + Alarm calAlarm; + + calAlarm.setAlarmID (alarmID); + calAlarm.setComponentID (componentID); + calAlarm.setState (state); + calAlarm.setSname (ModuleName); + calAlarm.setPname (processName); + calAlarm.setPid (pid); + calAlarm.setTid (tid); + + ALARMManager aManager; + aManager.processAlarmReport(calAlarm); + + break; + } + +*/ default: log.writeLog(__LINE__, "MSG RECEIVED: Invalid type" ); break; @@ -2801,6 +2838,18 @@ void processMSG(messageqcpp::IOSocket* cfIos) processManager.restartProcessType("DDLProc"); processManager.restartProcessType("DMLProc"); sleep(1); + + string DMLmodule = config.OAMParentName(); + if ( config.ServerInstallType() != oam::INSTALL_COMBINE_DM_UM_PM ) { + string PrimaryUMModuleName; + try { + oam.getSystemConfig("PrimaryUMModuleName", PrimaryUMModuleName); + } + catch(...) {} + if ( !PrimaryUMModuleName.empty() ) + DMLmodule = PrimaryUMModuleName; + } + // Wait for DMLProc to be ACTIVE BRM::DBRM dbrm; state = AUTO_OFFLINE; @@ -2810,7 +2859,7 @@ void processMSG(messageqcpp::IOSocket* cfIos) || state == oam::AUTO_INIT || state == oam::ROLLBACK_INIT) { - oam.getProcessStatus("DMLProc", config.OAMParentName(), procstat); + oam.getProcessStatus("DMLProc", DMLmodule, procstat); state = procstat.ProcessOpState; if ( procstat.ProcessOpState == oam::ACTIVE) break; diff --git a/procmon/main.cpp b/procmon/main.cpp index b6ec2799f..aa210ef85 100644 --- a/procmon/main.cpp +++ b/procmon/main.cpp @@ -138,7 +138,9 @@ int main(int argc, char **argv) if ( cloud == "amazon-ec2" ) { if(!aMonitor.amazonIPCheck()) { - string cmd = startup::StartUp::installDir() + "/bin/infinidb stop > /dev/null 2>&1"; + log.writeLog(__LINE__, "ERROR: amazonIPCheck failed, exiting", LOG_TYPE_CRITICAL); + sleep(2); + string cmd = startup::StartUp::installDir() + "/bin/columnstore stop > /dev/null 2>&1"; system(cmd.c_str()); exit(1); } @@ -377,7 +379,7 @@ int main(int argc, char **argv) if ( config.OAMParentName() == oam::UnassignedName ) { cerr << endl << "OAMParentModuleName == oam::UnassignedName, exiting " << endl; log.writeLog(__LINE__, "OAMParentModuleName == oam::UnassignedName, exiting", LOG_TYPE_CRITICAL); - exit (-1); + exit (1); } //check if module is in a DISABLED state @@ -562,8 +564,8 @@ int main(int argc, char **argv) } catch(...) { - log.writeLog(__LINE__, "Problem getting the ParentOAMModuleName key from the Calpont System Configuration file", LOG_TYPE_ERROR); - exit(-1); + log.writeLog(__LINE__, "Problem getting the ParentOAMModuleName key from the Columnstore System Configuration file", LOG_TYPE_CRITICAL); + exit(1); } } @@ -1673,7 +1675,7 @@ static void statusControlThread() fProcStatMapreg.swap(region); fShmProcessStatus = static_cast(fProcStatMapreg.get_address()); if (fShmProcessStatus == 0) { - log.writeLog(__LINE__, "*****ProcessStatusTable shmat failed.", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "*****ProcessStatusTable shmat failed.", LOG_TYPE_CRITICAL); exit(1); } @@ -1735,7 +1737,7 @@ static void statusControlThread() fSysStatMapreg.swap(region2); fShmSystemStatus = static_cast(fSysStatMapreg.get_address()); if (fShmSystemStatus == 0) { - log.writeLog(__LINE__, "*****SystemStatusTable shmat failed.", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "*****SystemStatusTable shmat failed.", LOG_TYPE_CRITICAL); exit(1); } @@ -1839,7 +1841,7 @@ static void statusControlThread() fShmNICStatus = static_cast(fNICStatMapreg.get_address()); if (fShmNICStatus == 0) { - log.writeLog(__LINE__, "*****NICStatusTable shmat failed.", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "*****NICStatusTable shmat failed.", LOG_TYPE_CRITICAL); exit(1); } @@ -1925,7 +1927,7 @@ static void statusControlThread() fShmExtDeviceStatus = static_cast(fExtStatMapreg.get_address()); if (fShmExtDeviceStatus == 0) { - log.writeLog(__LINE__, "*****ExtDeviceStatusTable shmat failed.", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "*****ExtDeviceStatusTable shmat failed.", LOG_TYPE_CRITICAL); exit(1); } @@ -2003,7 +2005,7 @@ static void statusControlThread() fShmDbrootStatus = static_cast(fdDbrootStatMapreg.get_address()); if (fShmDbrootStatus == 0) { - log.writeLog(__LINE__, "*****DbrootStatusTable shmat failed.", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "*****DbrootStatusTable shmat failed.", LOG_TYPE_CRITICAL); exit(1); } diff --git a/procmon/processmonitor.cpp b/procmon/processmonitor.cpp index 4251b073c..f11598a0d 100644 --- a/procmon/processmonitor.cpp +++ b/procmon/processmonitor.cpp @@ -2597,7 +2597,7 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName, //Update Process Status: Mark Process INIT state updateProcessInfo(processName, FAILED, newProcessID); - exit(oam::API_FAILURE); + return (oam::API_FAILURE); } return newProcessID; @@ -2812,6 +2812,11 @@ void sendProcessThread(sendProcessInfo_t* t) try { oam.setProcessStatus(processName, config.moduleName(), state, PID); } + catch (exception& ex) + { + string error = ex.what(); + log.writeLog(__LINE__, "EXCEPTION ERROR on setProcessStatus: " + error, LOG_TYPE_ERROR); + } catch(...) { log.writeLog(__LINE__, "EXCEPTION ERROR on setProcessStatus: Caught unknown exception!", LOG_TYPE_ERROR );