From 681cfd34ebd89bdbdf2ac4807c93dce969ce8de6 Mon Sep 17 00:00:00 2001 From: David Hill Date: Mon, 24 Sep 2018 11:50:56 -0500 Subject: [PATCH] MCOL-520 --- exemgr/main.cpp | 4 +- oam/cloud/IDBCloudGetIP.sh | 44 -- oam/cloud/IDBInstanceCmds.sh | 574 ------------------ oam/cloud/IDBVolumeCmds.sh | 337 ---------- oam/cloud/MCSInstanceCmds.sh | 30 +- oam/cloud/MCSVolumeCmds.sh | 39 +- oam/etc/Columnstore.xml | 1 + oam/etc/ConsoleCmds.xml | 3 +- .../disable-rep-columnstore.sh | 30 +- oam/install_scripts/master-rep-columnstore.sh | 46 +- oam/install_scripts/post-install | 6 +- oam/install_scripts/post-mysql-install | 8 +- oam/install_scripts/pre-uninstall | 9 +- oam/install_scripts/slave-rep-columnstore.sh | 48 +- oam/oamcpp/liboamcpp.cpp | 127 ++-- oamapps/mcsadmin/mcsadmin.cpp | 9 +- procmgr/main.cpp | 5 + procmgr/processmanager.cpp | 32 +- procmon/main.cpp | 7 +- procmon/processmonitor.cpp | 178 +++--- 20 files changed, 292 insertions(+), 1245 deletions(-) delete mode 100644 oam/cloud/IDBCloudGetIP.sh delete mode 100644 oam/cloud/IDBInstanceCmds.sh delete mode 100644 oam/cloud/IDBVolumeCmds.sh diff --git a/exemgr/main.cpp b/exemgr/main.cpp index 8742188a0..05fdc600f 100644 --- a/exemgr/main.cpp +++ b/exemgr/main.cpp @@ -100,6 +100,8 @@ using namespace querytele; #include "threadpool.h" #include "crashtrace.h" +#include "installdir.h" + namespace { @@ -1320,7 +1322,7 @@ void setupSignalHandlers() void setupCwd(ResourceManager* rm) { - string workdir = rm->getScWorkingDir(); + string workdir = startup::StartUp::tmpDir(); (void)chdir(workdir.c_str()); if (access(".", W_OK) != 0) diff --git a/oam/cloud/IDBCloudGetIP.sh b/oam/cloud/IDBCloudGetIP.sh deleted file mode 100644 index bca6d41f0..000000000 --- a/oam/cloud/IDBCloudGetIP.sh +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/sh -# IDBCloudGetIP.sh -# Get IP Address from a Cloud environment -# -# 1. Amazon EC2 - -prefix=/usr/local - -#get instance name from called -instanceName="$1" - -ec2=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_HOME` - -if [ $ec2 == "unassigned" ]; then - echo "stopped" - exit 1 -fi - -java=`$prefix/mariadb/columnstore/bin/getConfig Installation JAVA_HOME` -path=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_PATH` - -export PATH=$path -export EC2_HOME=$ec2 -export JAVA_HOME=$java - -# get x509 Certification and Private Key -x509Cert=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonX509Certificate` -x509PriKey=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonX509PrivateKey` - -#get instance info -ec2-describe-instances -C $x509Cert -K $x509PriKey $instanceName > /tmp/instanceInfo 2> /dev/null - -#check if running -cat /tmp/instanceInfo | grep running > /tmp/instanceStatus -if [ `cat /tmp/instanceStatus | wc -c` -eq 0 ]; then - echo "stopped" - exit 1 -fi - -#get priviate IP Address -IpAddr=`cat /tmp/instanceInfo | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $15}'` - -echo $IpAddr -exit 0 diff --git a/oam/cloud/IDBInstanceCmds.sh b/oam/cloud/IDBInstanceCmds.sh deleted file mode 100644 index 1d7351594..000000000 --- a/oam/cloud/IDBInstanceCmds.sh +++ /dev/null @@ -1,574 +0,0 @@ -#! /bin/sh -# IDBInstanceCmds.sh -# get-local-instance-ID, get-zone, getPrivateIP from a Cloud environment -# -# 1. Amazon EC2 - -prefix=/usr/local - -#check command -if [ "$1" = "" ]; then - echo "Enter Command Name: {launchInstance|getInstance|getZone|getPrivateIP|getKey|getAMI|getType|terminateInstance|startInstance|assignElasticIP|deassignElasticIP|getProfile|stopInstance|getGroup|getSubnet} -}" - exit 1 -fi - -if [ "$1" = "getPrivateIP" ]; then - if [ "$2" = "" ]; then - echo "Enter Instance Name" - exit 1 - fi - instanceName="$2" -fi - -if [ "$1" = "launchInstance" ]; then - if [ "$2" = "" ]; then - IPaddress="unassigned" - else - IPaddress="$2" - fi - if [ "$3" = "" ]; then - instanceType="unassigned" - else - instanceType="$3" - fi - if [ "$4" = "" ]; then - group="unassigned" - else - group="$4" - fi -fi - -if [ "$1" = "terminateInstance" ]; then - if [ "$2" = "" ]; then - echo "Enter Instance Name" - exit 1 - fi - instanceName="$2" -fi - -if [ "$1" = "stopInstance" ]; then - if [ "$2" = "" ]; then - echo "Enter Instance Name" - exit 1 - fi - instanceName="$2" -fi - -if [ "$1" = "startInstance" ]; then - if [ "$2" = "" ]; then - echo "Enter Instance Name" - exit 1 - fi - instanceName="$2" -fi - -if [ "$1" = "assignElasticIP" ]; then - if [ "$2" = "" ]; then - echo "Enter Instance Name" - exit 1 - else - instanceName="$2" - fi - if [ "$3" = "" ]; then - echo "Enter Elastic IP Address" - exit 1 - else - IPAddress="$3" - fi -fi - -if [ "$1" = "deassignElasticIP" ]; then - if [ "$2" = "" ]; then - echo "Enter Elastic IP Address" - exit 1 - else - IPAddress="$2" - fi -fi - - -test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - -ec2=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_HOME` - -if [ $ec2 == "unassigned" ]; then - if [ "$1" = "getPrivateIP" ]; then - echo "stopped" - exit 1 - else - echo "unknown" - exit 1 - fi -fi - -java=`$prefix/mariadb/columnstore/bin/getConfig Installation JAVA_HOME` -path=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_PATH` - -export PATH=$path -export EC2_HOME=$ec2 -export JAVA_HOME=$java - -# get Keys and region -AmazonAccessKeyFile=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonAccessKey` -if [ $AmazonAccessKeyFile == "unassigned" ]; then - echo "FAILED: missing Config Setting AmazonAccessKey : $AmazonAccessKeyfile" - exit 1 -fi - -AmazonSecretKeyFile=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonSecretKey` -if [ $AmazonSecretKeyFile == "unassigned" ]; then - echo "FAILED: missing Config Setting AmazonSecretKeyFile : $AmazonSecretKeyFile" - exit 1 -fi - -AmazonAccessKey=`cat $AmazonAccessKeyFile` -AmazonSecretKey=`cat $AmazonSecretKeyFile` - -Region=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonRegion` -subnet=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonSubNetID` - -if test ! -f $AmazonAccessKeyfile ; then - echo "FAILED: missing AmazonAccessKeyfile : $AmazonAccessKeyfile" - exit 1 -fi - -if test ! -f $AmazonSecretKeyfile ; then - echo "FAILED: missing AmazonSecretKeyfile : $AmazonSecretKeyfile" - exit 1 -fi - -#default instance to null -instance="" - -describeInstanceFile="/tmp/describeInstance.txt" -touch $describeInstanceFile - -describeInstance() { - ec2-describe-instances -O $AmazonAccessKey -W $AmazonSecretKey --region $Region > $describeInstanceFile 2>&1 -} - -#call at start up -describeInstance - -getInstance() { - if [ "$instance" != "" ]; then - echo $instance - return - fi - - # first get local IP Address - localIP=`ifconfig eth0 | grep "inet addr:" | awk '{print substr($2,6,20)}'` - - #get local Instance ID - instance=`cat $describeInstanceFile | grep -m 1 -w $localIP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - if [ "$instance" == "" ]; then - describeInstance - fi - instance=`cat $describeInstanceFile | grep -m 1 -w $localIP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - - echo $instance - return -} - -getInstancePrivate() { - if [ "$instance" != "" ]; then - echo $instance - return - fi - - # first get local IP Address - localIP=`ifconfig eth0 | grep "inet addr:" | awk '{print substr($2,6,20)}'` - - #get local Instance ID - instance=`cat $describeInstanceFile | grep -m 1 -w $localIP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - if [ "$instance" == "" ]; then - describeInstance - fi - instance=`cat $describeInstanceFile | grep -m 1 -w $localIP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - - return -} - - -getZone() { - #get from Columnstore.xml if it's there, if not, get from instance then store - zone=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonZone` - - if [ "$zone" = "unassigned" ] || [ "$zone" = "" ]; then - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get zone - if [ "$subnet" == "unassigned" ]; then - zone=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $11}'` - if [ "$zone" == "" ]; then - describeInstance - fi - zone=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $11}'` - - else - zone=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $11}'` - if [ "$zone" == "" ]; then - describeInstance - fi - zone=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $11}'` - fi - $prefix/mariadb/columnstore/bin/setConfig Installation AmazonZone $zone - fi - - echo $zone - return -} - -getPrivateIP() { - #get instance info - grep -B1 -A4 -m 1 $instanceName $describeInstanceFile > /tmp/instanceInfo_$instanceName 2>&1 - if [ `cat /tmp/instanceInfo_$instanceName | wc -c` -eq 0 ]; then - describeInstance - fi - grep -B1 -A4 -m 1 $instanceName $describeInstanceFile > /tmp/instanceInfo_$instanceName 2>&1 - - #check if running or terminated - cat /tmp/instanceInfo_$instanceName | grep running > /tmp/instanceStatus_$instanceName - if [ `cat /tmp/instanceStatus_$instanceName | wc -c` -eq 0 ]; then - # not running - cat /tmp/instanceInfo_$instanceName | grep pending > /tmp/instanceStatus_$instanceName - if [ `cat /tmp/instanceStatus_$instanceName | wc -c` -ne 0 ]; then - describeInstance - echo "stopped" - exit 1 - else - cat /tmp/instanceInfo_$instanceName | grep terminated > /tmp/instanceStatus_$instanceName - if [ `cat /tmp/instanceStatus_$instanceName | wc -c` -ne 0 ]; then - echo "terminated" - exit 1 - else - cat /tmp/instanceInfo_$instanceName | grep shutting-down > /tmp/instanceStatus_$instanceName - if [ `cat /tmp/instanceStatus_$instanceName | wc -c` -ne 0 ]; then - echo "terminated" - exit 1 - else - echo "stopped" - exit 1 - fi - fi - fi - fi - - #running, get priviate IP Address - if [ "$subnet" == "unassigned" ]; then - IpAddr=`head -n 2 /tmp/instanceInfo_$instanceName | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $15}'` - else - IpAddr=`head -n 2 /tmp/instanceInfo_$instanceName | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $14}'` - fi - - echo $IpAddr - exit 0 -} - -getType() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get Type - if [ "$subnet" == "unassigned" ]; then - instanceType=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $9}'` - if [ "$instanceType" == "" ]; then - describeInstance - fi - instanceType=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $9}'` - - else - instanceType=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $9}'` - if [ "$instanceType" == "" ]; then - describeInstance - fi - instanceType=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $9}'` - - fi - - echo $instanceType - return -} - -getKey() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get Key - if [ "$subnet" == "unassigned" ]; then - key=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $7}'` - if [ "$key" == "" ]; then - describeInstance - fi - key=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $7}'` - - else - key=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $7}'` - if [ "$key" == "" ]; then - describeInstance - fi - key=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $7}'` - - fi - - echo $key - return -} - -getAMI() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get AMI - ami=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $3}'` - if [ "$ami" == "" ]; then - describeInstance - fi - ami=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $3}'` - - echo $ami - return -} - -getGroup() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get group - if [ "$subnet" == "unassigned" ]; then - group=`grep -B1 -A4 -m 1 $instance $describeInstanceFile | grep -m 1 RESERVATION | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $4}'` - if [ "$group" == "" ]; then - describeInstance - fi - group=`grep -B1 -A4 -m 1 $instance $describeInstanceFile | grep -m 1 RESERVATION | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $4}'` - if [ "$group" == "" ]; then - group=`grep -B1 -A4 -m 1 $instance $describeInstanceFile | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $22}'` - fi - else - group=`grep -B1 -A6 -m 1 $instance $describeInstanceFile | grep -m 1 GROUP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - if [ "$group" == "" ]; then - describeInstance - fi - group=`grep -B1 -A6 -m 1 $instance $describeInstanceFile | grep -m 1 GROUP | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - if [ "$group" == "" ]; then - group=`grep -B1 -A4 -m 1 $instance $describeInstanceFile | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $21}'` - fi - fi - - echo $group - return -} - -getProfile() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get Type - if [ "$subnet" == "unassigned" ]; then - instanceProfile=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $23}'` - if [ "$instanceProfile" == "" ]; then - describeInstance - fi - instanceProfile=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $23}'` - - else - instanceProfile=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $22}'` - if [ "$instanceProfile" == "" ]; then - describeInstance - fi - instanceProfile=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $22}'` - - fi - - echo $instanceProfile - return -} - -launchInstance() { - #get publickey - getKey >/dev/null 2>&1 - if [ "$group" = "unassigned" ]; then - #get group - getGroup >/dev/null 2>&1 - fi - #get AMI - getAMI >/dev/null 2>&1 - #get Zone - getZone >/dev/null 2>&1 - if [ "$instanceType" = "unassigned" ]; then - #get type - getType >/dev/null 2>&1 - fi - #get AMI Profile - getProfile >/dev/null 2>&1 - - if [ "$subnet" == "unassigned" ]; then - #NOT VPC - if [ "$instanceProfile" = "" ] || [ "$instanceProfile" = "default" ]; then - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone --region $Region $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone -p $instanceProfile --region $Region $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - else # VPC - if [ "$instanceProfile" = "" ] || [ "$instanceProfile" = "default" ]; then - if [ "$group" != "default" ]; then - if [ "$IPaddress" = "autoassign" ]; then - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone --region $Region -s $subnet $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone --region $Region -s $subnet --private-ip-address $IPaddress $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - else - if [ "$IPaddress" = "autoassign" ]; then - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -t $instanceType -z $zone --region $Region -s $subnet $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - newInstance=`ec2-run-instances --O $AmazonAccessKey -W $AmazonSecretKey -k $key -t $instanceType -z $zone --region $Region -s $subnet --private-ip-address $IPaddress $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - fi - else - if [ "$group" != "default" ]; then - if [ "$IPaddress" = "autoassign" ]; then - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone -p $instanceProfile --region $Region -s $subnet $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -g $group -t $instanceType -z $zone -p $instanceProfile --region $Region -s $subnet --private-ip-address $IPaddress $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - else - if [ "$IPaddress" = "autoassign" ]; then - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -t $instanceType -z $zone -p $instanceProfile --region $Region -s $subnet $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - newInstance=`ec2-run-instances -O $AmazonAccessKey -W $AmazonSecretKey -k $key -t $instanceType -z $zone -p $instanceProfile --region $Region -s $subnet --private-ip-address $IPaddress $ami | grep -m 1 INSTANCE | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - fi - fi - fi - echo $newInstance - return -} - -terminateInstance() { - #terminate Instance - ec2-terminate-instances -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $instanceName > /tmp/termInstanceInfo_$instanceName 2>&1 - return -} - -stopInstance() { - #terminate Instance - ec2-stop-instances -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $instanceName > /tmp/stopInstanceInfo_$instanceName 2>&1 - return -} - -startInstance() { - #terminate Instance - ec2-start-instances -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $instanceName > /tmp/startInstanceInfo_$instanceName 2>&1 - - cat /tmp/startInstanceInfo_$instanceName | grep INSTANCE > /tmp/startInstanceStatus_$instanceName - if [ `cat /tmp/startInstanceStatus_$instanceName | wc -c` -eq 0 ]; then - echo "Failed, check /tmp/startInstanceInfo_$instanceName" - exit 1 - fi - echo "Success" - exit 0 -} - -assignElasticIP() { - #terminate Instance - - if [ "$subnet" == "unassigned" ]; then - ec2-associate-address -O $AmazonAccessKey -W $AmazonSecretKey -i $instanceName $IPAddress > /tmp/assignElasticIPInfo_$IPAddress 2>&1 - else - EIP=`ec2-describe-addresses -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $IPAddress | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $4}'` - ec2-associate-address -O $AmazonAccessKey -W $AmazonSecretKey --region $Region -i $instanceName -a $EIP > /tmp/assignElasticIPInfo_$IPAddress 2>&1 - fi - - cat /tmp/assignElasticIPInfo_$IPAddress | grep ADDRESS > /tmp/assignElasticIPStatus_$IPAddress - if [ `cat /tmp/assignElasticIPStatus_$IPAddress | wc -c` -eq 0 ]; then - echo "Failed, check /tmp/assignElasticIPInfo_$IPAddress" - exit 1 - fi - - echo "Success" - exit 0 -} - -deassignElasticIP() { - #terminate Instance - ec2-disassociate-address -O $AmazonAccessKey -W $AmazonSecretKey $IPAddress > /tmp/deassignElasticIPInfo_$IPAddress 2>&1 - - cat /tmp/deassignElasticIPInfo_$IPAddress | grep ADDRESS > /tmp/deassignElasticIPStatus_$IPAddress - if [ `cat /tmp/deassignElasticIPStatus_$IPAddress | wc -c` -eq 0 ]; then - echo "Failed, check /tmp/deassignElasticIPStatus_$IPAddress" - exit 1 - fi - - echo "Success" - exit 0 -} - -getSubnet() { - #get local Instance ID - getInstancePrivate >/dev/null 2>&1 - #get Subnet - subnet=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $16}'` - if [ "$subnet" == "" ]; then - describeInstance - fi - subnet=`cat $describeInstanceFile | grep -m 1 $instance | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $16}'` - - if [[ $subnet == *"subnet"* ]] - then - echo $subnet - else - echo "failed" - fi - - return -} - - -case "$1" in - getInstance) - getInstance - ;; - getZone) - getZone - ;; - getPrivateIP) - getPrivateIP - ;; - getKey) - getKey - ;; - getAMI) - getAMI - ;; - getType) - getType - ;; - launchInstance) - launchInstance - ;; - terminateInstance) - terminateInstance - ;; - stopInstance) - stopInstance - ;; - startInstance) - startInstance - ;; - assignElasticIP) - assignElasticIP - ;; - deassignElasticIP) - deassignElasticIP - ;; - getProfile) - getProfile - ;; - getGroup) - getGroup - ;; - getSubnet) - getSubnet - ;; - *) - echo $"Usage: $0 {launchInstance|getInstance|getZone|getPrivateIP|getType|getKey|getAMI|terminateInstance|startInstance|assignElasticIP|deassignElasticIP|getProfile|stopInstance|getGroup|getSubnet}" - exit 1 -esac - -exit $? diff --git a/oam/cloud/IDBVolumeCmds.sh b/oam/cloud/IDBVolumeCmds.sh deleted file mode 100644 index 3d64007b1..000000000 --- a/oam/cloud/IDBVolumeCmds.sh +++ /dev/null @@ -1,337 +0,0 @@ -#! /bin/sh -# IDBVolumeCmds.sh -# describe, detach and attach Volume Storage from a Cloud environment -# -# 1. Amazon EC2 - -prefix=/usr/local - -#check command -if [ "$1" = "" ]; then - echo "Enter Command Name: {create|describe|detach|attach|delete|createTag}" - exit 1 -fi - -if [ "$1" = "create" ]; then - if [ "$2" = "" ]; then - echo "Enter size of the volume, in GiB (1-1024)" - exit 1 - fi - volumeSize="$2" - - #get module-type - if [ "$3" = "" ]; then - echo "Enter Module Type" - exit 1 - fi - moduleType="$3" -fi - -if [ "$1" = "describe" ]; then - if [ "$2" = "" ]; then - echo "Enter Volume Name" - exit 1 - fi - volumeName="$2" -fi - -if [ "$1" = "detach" ]; then - if [ "$2" = "" ]; then - echo "Enter Volume Name" - exit 1 - fi - volumeName="$2" -fi - -if [ "$1" = "attach" ]; then - if [ "$2" = "" ]; then - echo "Enter Volume Name" - exit 1 - fi - volumeName="$2" - - #get instance-name and device-name - if [ "$3" = "" ]; then - echo "Enter Instance Name" - exit 1 - fi - instanceName="$3" - - if [ "$4" = "" ]; then - echo "Enter Device Name" - exit 1 - fi - deviceName="$4" -fi - -if [ "$1" = "delete" ]; then - if [ "$2" = "" ]; then - echo "Enter Volume Name" - exit 1 - fi - volumeName="$2" -fi - -if [ "$1" = "createTag" ]; then - if [ "$2" = "" ]; then - echo "Enter Resource Name" - exit 1 - fi - resourceName="$2" - - if [ "$3" = "" ]; then - echo "Enter Tag Name" - exit 1 - fi - tagName="$3" - - if [ "$4" = "" ]; then - echo "Enter Tag Value" - exit 1 - fi - tagValue="$4" -fi - - -test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - -ec2=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_HOME` - -if [ $ec2 == "unassigned" ]; then - STATUS="unknown" - RETVAL=1 -fi - -java=`$prefix/mariadb/columnstore/bin/getConfig Installation JAVA_HOME` -path=`$prefix/mariadb/columnstore/bin/getConfig Installation EC2_PATH` - -export PATH=$path -export EC2_HOME=$ec2 -export JAVA_HOME=$java - -# get Keys and region -AmazonAccessKeyFile=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonAccessKey` -if [ $AmazonAccessKeyFile == "unassigned" ]; then - echo "FAILED: missing Config Setting AmazonAccessKey : $AmazonAccessKeyfile" - exit 1 -fi - -AmazonSecretKeyFile=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonSecretKey` -if [ $AmazonSecretKeyFile == "unassigned" ]; then - echo "FAILED: missing Config Setting AmazonSecretKeyFile : $AmazonSecretKeyFile" - exit 1 -fi - -AmazonAccessKey=`cat $AmazonAccessKeyFile` -AmazonSecretKey=`cat $AmazonSecretKeyFile` - -if test ! -f $AmazonAccessKeyfile ; then - echo "FAILED: missing AmazonAccessKeyfile : $AmazonAccessKeyfile" - exit 1 -fi - -if test ! -f $AmazonSecretKeyfile ; then - echo "FAILED: missing AmazonSecretKeyfile : $AmazonSecretKeyfile" - exit 1 -fi - -Region=`$prefix/mariadb/columnstore/bin/getConfig Installation AmazonRegion` - - -checkInfostatus() { - #check if attached - cat /tmp/volumeInfo_$volumeName | grep attached > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="attached" - RETVAL=0 - return - fi - #check if available - cat /tmp/volumeInfo_$volumeName | grep available > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="available" - RETVAL=0 - return - fi - #check if detaching - cat /tmp/volumeInfo_$volumeName | grep detaching > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="detaching" - RETVAL=0 - return - fi - #check if attaching - cat /tmp/volumeInfo_$volumeName | grep attaching > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="attaching" - RETVAL=0 - return - fi - #check if doesn't exist - cat /tmp/volumeInfo_$volumeName | grep "does not exist" > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="does-not-exist" - RETVAL=1 - return - fi - #check if reports already attached from attach command - cat /tmp/volumeInfo_$volumeName | grep "already attached" > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then - STATUS="already-attached" - RETVAL=1 - return - fi - #any other, unknown error - STATUS="unknown" - RETVAL=1 - return -} - -createvolume() { - # get zone - zone=`$prefix/mariadb/columnstore/bin/IDBInstanceCmds.sh getZone` - - if [ $moduleType == "um" ]; then - # get type - volumeType=`$prefix/mariadb/columnstore/bin/getConfig Installation UMVolumeType` - if [ $volumeType == "io1" ]; then - # get IOPS - volumeIOPS=`$prefix/mariadb/columnstore/bin/getConfig Installation UMVolumeIOPS` - fi - else # pm - # get type - volumeType=`$prefix/mariadb/columnstore/bin/getConfig Installation PMVolumeType` - if [ $volumeType == "io1" ]; then - # get IOPS - volumeIOPS=`$prefix/mariadb/columnstore/bin/getConfig Installation PMVolumeIOPS` - fi - fi - - #create volume - if [ $volumeType == "io1" ]; then - volume=`ec2-create-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region -z $zone -s $volumeSize -t $volumeType -iops $volumeIOPS | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - else - volume=`ec2-create-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region -z $zone -s $volumeSize -t $volumeType | awk '{gsub(/^[ \t]+|[ \t]+$/,"");print $2}'` - fi - - echo $volume - return -} - -describevolume() { - #describe volume - ec2-describe-volumes -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $volumeName > /tmp/volumeInfo_$volumeName 2>&1 - - checkInfostatus - echo $STATUS - return -} - -detachvolume() { - #detach volume - ec2-detach-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $volumeName > /tmp/volumeInfo_$volumeName 2>&1 - - checkInfostatus - if [ $STATUS == "detaching" ]; then - retries=1 - while [ $retries -ne 60 ]; do - #retry until it's attached - ec2-detach-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $volumeName > /tmp/volumeInfo_$volumeName 2>&1 - - checkInfostatus - if [ $STATUS == "available" ]; then - echo "available" - exit 0 - fi - ((retries++)) - sleep 1 - done - test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - cplogger -w 100 "detachvolume failed: $STATUS" - echo "failed" - exit 1 - fi - - if [ $STATUS == "available" ]; then - echo "available" - exit 0 - fi - - test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - cplogger -w 100 "detachvolume failed status: $STATUS" - echo $STATUS - exit 1 -} - -attachvolume() { - - #detach volume - ec2-attach-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $volumeName -i $instanceName -d $deviceName > /tmp/volumeInfo_$volumeName 2>&1 - - checkInfostatus - if [ $STATUS == "attaching" -o $STATUS == "already-attached" ]; then - retries=1 - while [ $retries -ne 60 ]; do - #check status until it's attached - describevolume - if [ $STATUS == "attached" ]; then - echo "attached" - exit 0 - fi - ((retries++)) - sleep 1 - done - test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - cplogger -w 100 "attachvolume failed: $STATUS" - echo "failed" - exit 1 - fi - - if [ $STATUS == "attached" ]; then - echo "attached" - exit 0 - fi - - test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - cplogger -w 100 "attachvolume failed: $STATUS" - echo $STATUS - exit 1 -} - -deletevolume() { - #delete volume - ec2-delete-volume -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $volumeName > /tmp/deletevolume_$volumeName 2>&1 - return -} - -createTag() { - #create tag - ec2-create-tags -O $AmazonAccessKey -W $AmazonSecretKey --region $Region $resourceName --tag $tagName=$tagValue > /tmp/createTag_$volumeName 2>&1 - return -} - -case "$1" in - create) - createvolume - ;; - describe) - describevolume - ;; - detach) - detachvolume - ;; - attach) - attachvolume - ;; - delete) - deletevolume - ;; - createTag) - createTag - ;; - *) - echo $"Usage: $0 {create|describe|detach|attach|delete|}" - exit 1 -esac - -exit $? diff --git a/oam/cloud/MCSInstanceCmds.sh b/oam/cloud/MCSInstanceCmds.sh index 32e674f90..4691f5d11 100755 --- a/oam/cloud/MCSInstanceCmds.sh +++ b/oam/cloud/MCSInstanceCmds.sh @@ -10,6 +10,8 @@ fi export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR +#get temp directory +tmpDir=`$COLUMNSTORE_INSTALL_DIR/bin/getConfig SystemConfig SystemTempFileDir` #check command if [ "$1" = "" ]; then @@ -310,7 +312,7 @@ terminateInstance() { getRegion >/dev/null 2>&1 #terminate Instance - $AWSCLI terminate-instances --instance-ids $instanceName --region $Region > /tmp/termInstanceInfo_$instanceName 2>&1 + $AWSCLI terminate-instances --instance-ids $instanceName --region $Region > ${tmpdir}/termInstanceInfo_$instanceName 2>&1 return } @@ -319,7 +321,7 @@ stopInstance() { getRegion >/dev/null 2>&1 #terminate Instance - $AWSCLI stop-instances --instance-ids $instanceName --region $Region > /tmp/stopInstanceInfo_$instanceName 2>&1 + $AWSCLI stop-instances --instance-ids $instanceName --region $Region > ${tmpdir}/stopInstanceInfo_$instanceName 2>&1 return } @@ -328,11 +330,11 @@ startInstance() { getRegion >/dev/null 2>&1 #terminate Instance - $AWSCLI start-instances --instance-ids $instanceName --region $Region > /tmp/startInstanceInfo_$instanceName 2>&1 + $AWSCLI start-instances --instance-ids $instanceName --region $Region > ${tmpdir}/startInstanceInfo_$instanceName 2>&1 - cat /tmp/startInstanceInfo_$instanceName | grep InstanceId > /tmp/startInstanceStatus_$instanceName - if [ `cat /tmp/startInstanceStatus_$instanceName | wc -c` -eq 0 ]; then - echo "Failed, check /tmp/startInstanceInfo_$instanceName" + cat ${tmpdir}/startInstanceInfo_$instanceName | grep InstanceId > ${tmpdir}/startInstanceStatus_$instanceName + if [ `cat ${tmpdir}/startInstanceStatus_$instanceName | wc -c` -eq 0 ]; then + echo "Failed, check ${tmpdir}/startInstanceInfo_$instanceName" exit 1 fi echo "Success" @@ -345,11 +347,11 @@ assignElasticIP() { EIP=`$AWSCLI describe-addresses --region $Region --public-ips $IPAddress --query 'Addresses[*].AllocationId' --output text` - $AWSCLI associate-address --region $Region --instance-id $instanceName --allocation-id $EIP > /tmp/assignElasticIPInfo_$IPAddress 2>&1 + $AWSCLI associate-address --region $Region --instance-id $instanceName --allocation-id $EIP > ${tmpdir}/assignElasticIPInfo_$IPAddress 2>&1 - cat /tmp/assignElasticIPInfo_$IPAddress | grep error > /tmp/assignElasticIPStatus_$IPAddress - if [ `cat /tmp/assignElasticIPStatus_$IPAddress | wc -c` -ne 0 ]; then - echo "Failed, check /tmp/assignElasticIPInfo_$IPAddress" + cat ${tmpdir}/assignElasticIPInfo_$IPAddress | grep error > ${tmpdir}/assignElasticIPStatus_$IPAddress + if [ `cat ${tmpdir}/assignElasticIPStatus_$IPAddress | wc -c` -ne 0 ]; then + echo "Failed, check ${tmpdir}/assignElasticIPInfo_$IPAddress" exit 1 fi @@ -363,10 +365,10 @@ deassignElasticIP() { EIP=`$AWSCLI describe-addresses --region $Region --public-ips $IPAddress --query 'Addresses[*].AssociationId' --output text` - $AWSCLI disassociate-address --region $Region --association-id $EIP > /tmp/deassignElasticIPInfo_$IPAddress 2>&1 - cat /tmp/deassignElasticIPInfo_$IPAddress | grep error > /tmp/deassignElasticIPStatus_$IPAddress - if [ `cat /tmp/deassignElasticIPStatus_$IPAddress | wc -c` -ne 0 ]; then - echo "Failed, check /tmp/deassignElasticIPStatus_$IPAddress" + $AWSCLI disassociate-address --region $Region --association-id $EIP > ${tmpdir}/deassignElasticIPInfo_$IPAddress 2>&1 + cat ${tmpdir}/deassignElasticIPInfo_$IPAddress | grep error > ${tmpdir}/deassignElasticIPStatus_$IPAddress + if [ `cat ${tmpdir}/deassignElasticIPStatus_$IPAddress | wc -c` -ne 0 ]; then + echo "Failed, check ${tmpdir}/deassignElasticIPStatus_$IPAddress" exit 1 fi diff --git a/oam/cloud/MCSVolumeCmds.sh b/oam/cloud/MCSVolumeCmds.sh index c7a231261..6228c93e9 100755 --- a/oam/cloud/MCSVolumeCmds.sh +++ b/oam/cloud/MCSVolumeCmds.sh @@ -10,6 +10,9 @@ fi export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR +#get temp directory +tmpDir=`$COLUMNSTORE_INSTALL_DIR/bin/getConfig SystemConfig SystemTempFileDir` + #check command if [ "$1" = "" ]; then echo "Enter Command Name: {create|describe|detach|attach|delete|createTag}" @@ -108,43 +111,43 @@ Region=`$COLUMNSTORE_INSTALL_DIR/bin/MCSInstanceCmds.sh getRegion` checkInfostatus() { #check if attached - cat /tmp/volumeInfo_$volumeName | grep attached > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}/volumeInfo_$volumeName | grep attached > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="attached" RETVAL=0 return fi #check if available - cat /tmp/volumeInfo_$volumeName | grep available > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}/volumeInfo_$volumeName | grep available > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="available" RETVAL=0 return fi #check if detaching - cat /tmp/volumeInfo_$volumeName | grep detaching > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}/volumeInfo_$volumeName | grep detaching > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="detaching" RETVAL=0 return fi #check if attaching - cat /tmp/volumeInfo_$volumeName | grep attaching > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}volumeInfo_$volumeName | grep attaching > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="attaching" RETVAL=0 return fi #check if doesn't exist - cat /tmp/volumeInfo_$volumeName | grep "does not exist" > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}/volumeInfo_$volumeName | grep "does not exist" > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="does-not-exist" RETVAL=1 return fi #check if reports already attached from attach command - cat /tmp/volumeInfo_$volumeName | grep "already attached" > /tmp/volumeStatus_$volumeName - if [ `cat /tmp/volumeStatus_$volumeName | wc -c` -ne 0 ]; then + cat ${tmpdir}/volumeInfo_$volumeName | grep "already attached" > ${tmpdir}/volumeStatus_$volumeName + if [ `cat ${tmpdir}/volumeStatus_$volumeName | wc -c` -ne 0 ]; then STATUS="already-attached" RETVAL=1 return @@ -188,7 +191,7 @@ createvolume() { describevolume() { #describe volume - $AWSCLI describe-volumes --volume-ids $volumeName --region $Region > /tmp/volumeInfo_$volumeName 2>&1 + $AWSCLI describe-volumes --volume-ids $volumeName --region $Region > ${tmpdir}/volumeInfo_$volumeName 2>&1 checkInfostatus echo $STATUS @@ -197,14 +200,14 @@ describevolume() { detachvolume() { #detach volume - $AWSCLI detach-volume --volume-id $volumeName --region $Region > /tmp/volumeInfo_$volumeName 2>&1 + $AWSCLI detach-volume --volume-id $volumeName --region $Region > ${tmpdir}/volumeInfo_$volumeName 2>&1 checkInfostatus if [ $STATUS == "detaching" ]; then retries=1 while [ $retries -ne 10 ]; do #retry until it's attached - $AWSCLI detach-volume --volume-id $volumeName --region $Region > /tmp/volumeInfo_$volumeName 2>&1 + $AWSCLI detach-volume --volume-id $volumeName --region $Region > ${tmpdir}/volumeInfo_$volumeName 2>&1 checkInfostatus if [ $STATUS == "available" ]; then @@ -234,7 +237,7 @@ detachvolume() { attachvolume() { #detach volume - $AWSCLI attach-volume --volume-id $volumeName --instance-id $instanceName --device $deviceName --region $Region > /tmp/volumeInfo_$volumeName 2>&1 + $AWSCLI attach-volume --volume-id $volumeName --instance-id $instanceName --device $deviceName --region $Region > ${tmpdir}/volumeInfo_$volumeName 2>&1 checkInfostatus if [ $STATUS == "attaching" -o $STATUS == "already-attached" ]; then @@ -268,13 +271,13 @@ attachvolume() { deletevolume() { #delete volume - $AWSCLI delete-volume --volume-id $volumeName --region $Region > /tmp/deletevolume_$volumeName 2>&1 + $AWSCLI delete-volume --volume-id $volumeName --region $Region > ${tmpdir}/deletevolume_$volumeName 2>&1 return } createTag() { #create tag - $AWSCLI create-tags --resources $resourceName --tags Key=$tagName,Value=$tagValue --region $Region > /tmp/createTag_$volumeName 2>&1 + $AWSCLI create-tags --resources $resourceName --tags Key=$tagName,Value=$tagValue --region $Region > ${tmpdir}/createTag_$volumeName 2>&1 return } diff --git a/oam/etc/Columnstore.xml b/oam/etc/Columnstore.xml index 3f1811a25..364b46c08 100644 --- a/oam/etc/Columnstore.xml +++ b/oam/etc/Columnstore.xml @@ -269,6 +269,7 @@ --> /rdwrscratch /columnstore_tmp_files + /tmp/columnstore_tmp_files dm diff --git a/oam/etc/ConsoleCmds.xml b/oam/etc/ConsoleCmds.xml index 4bf12d36b..56a6e678f 100644 --- a/oam/etc/ConsoleCmds.xml +++ b/oam/etc/ConsoleCmds.xml @@ -260,7 +260,8 @@ Optional: Module-name and Parameter-name will display the Module Name Configuration parameter - AVAILABLE + getSystemDirectories + Get System Installation and Temporary Logging Directories AVAILABLE diff --git a/oam/install_scripts/disable-rep-columnstore.sh b/oam/install_scripts/disable-rep-columnstore.sh index 1c730da4c..c93f59f90 100644 --- a/oam/install_scripts/disable-rep-columnstore.sh +++ b/oam/install_scripts/disable-rep-columnstore.sh @@ -8,13 +8,13 @@ # check log for error checkForError() { - grep ERROR /tmp/disable-rep-status.log > /tmp/error.check - if [ `cat /tmp/error.check | wc -c` -ne 0 ]; then - echo "ERROR: check log file: /tmp/disable-rep-status.log" - rm -f /tmp/error.check + grep ERROR ${tmpdir}/disable-rep-status.log > ${tmpdir}/error.check + if [ `cat ${tmpdir}/error.check | wc -c` -ne 0 ]; then + echo "ERROR: check log file:${tmpdir}/disable-rep-status.log" + rm -f ${tmpdir}/error.check exit 1 fi - rm -f /tmp/error.check + rm -f ${tmpdir}/error.check } prefix=/usr/local @@ -30,42 +30,44 @@ for arg in "$@"; do elif [ `expr -- "$arg" : '--installdir='` -eq 13 ]; then installdir="`echo $arg | awk -F= '{print $2}'`" prefix=`dirname $installdir` + elif [ $(expr -- "$arg" : '--tmpdir=') -eq 9 ]; then + tmpdir="$(echo $arg | awk -F= '{print $2}')" fi done test -f $installdir/post/functions && . $installdir/post/functions ->/tmp/disable-rep-status.log +>${tmpdir}/disable-rep-status.log # # Run stop slave command # -echo "Run stop slave command" >>/tmp/disable-rep-status.log -cat >/tmp/idb_disable-rep.sql <>${tmpdir}/disable-rep-status.log +cat >${tmpdir}/idb_disable-rep.sql <>/tmp/disable-rep-status.log +cat ${tmpdir}/idb_disable-rep.sql >>${tmpdir}/disable-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root $pwprompt \ - calpontsys >/tmp/disable-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_disable-rep.sql >>${tmpdir}/disable-rep-status.log 2>&1 checkForError # # Run reset slave command # -echo "Run reset slave command" >>/tmp/disable-rep-status.log -cat >/tmp/idb_disable-rep.sql <>${tmpdir}/disable-rep-status.log +cat >${tmpdir}/idb_disable-rep.sql <>/tmp/disable-rep-status.log +cat ${tmpdir}/idb_disable-rep.sql >>${tmpdir}/disable-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root $pwprompt \ - calpontsys >/tmp/disable-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_disable-rep.sql >>${tmpdir}/disable-rep-status.log 2>&1 checkForError diff --git a/oam/install_scripts/master-rep-columnstore.sh b/oam/install_scripts/master-rep-columnstore.sh index 5d27ee278..313199d62 100644 --- a/oam/install_scripts/master-rep-columnstore.sh +++ b/oam/install_scripts/master-rep-columnstore.sh @@ -8,13 +8,13 @@ # check log for error checkForError() { - grep ERROR /tmp/master-rep-status-$hostipaddr.log > /tmp/error.check - if [ `cat /tmp/error.check | wc -c` -ne 0 ]; then - echo "ERROR: check log file: /tmp/master-rep-status-$hostipaddr.log" - rm -f /tmp/error.check + grep ERROR ${tmpdir}/master-rep-status-$hostipaddr.log > ${tmpdir}/error.check + if [ `cat ${tmpdir}/error.check | wc -c` -ne 0 ]; then + echo "ERROR: check log file: ${tmpdir}/master-rep-status-$hostipaddr.log" + rm -f ${tmpdir}/error.check exit 1 fi - rm -f /tmp/error.check + rm -f ${tmpdir}/error.check } prefix=/usr/local @@ -29,6 +29,8 @@ for arg in "$@"; do prefix=`dirname $installdir` elif [ `expr -- "$arg" : '--hostIP='` -eq 9 ]; then hostipaddr="`echo $arg | awk -F= '{print $2}'`" + elif [ $(expr -- "$arg" : '--tmpdir=') -eq 9 ]; then + tmpdir="$(echo $arg | awk -F= '{print $2}')" fi done @@ -37,69 +39,69 @@ test -f $installdir/post/functions && . $installdir/post/functions repUser="idbrep" password="Calpont1" ->/tmp/master-rep-status-$hostipaddr.log +>${tmpdir}/master-rep-status-$hostipaddr.log # # Create Replication User # -echo "Create Replication User $repUser for node $hostipaddr" >>/tmp/master-rep-status-$hostipaddr.log -cat >/tmp/idb_master-rep.sql <>${tmpdir}/master-rep-status-$hostipaddr.log +cat >${tmpdir}/idb_master-rep.sql <>/tmp/master-rep-status-$hostipaddr.log +cat ${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/master-rep-status-$hostipaddr.log 2>&1 + calpontsys <${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log 2>&1 checkForError # # Grant table access for created user # -echo "Grant table access for $repUser for node $hostipaddr" >>/tmp/master-rep-status-$hostipaddr.log -cat >/tmp/idb_master-rep.sql <>${tmpdir}/master-rep-status-$hostipaddr.log +cat >${tmpdir}/idb_master-rep.sql <>/tmp/master-rep-status-$hostipaddr.log +cat ${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/master-rep-status-$hostipaddr.log 2>&1 + calpontsys <${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log 2>&1 checkForError # # Run SHOW MASTER STATUS # -echo "Run SHOW MASTER STATUS to node log" >>/tmp/master-rep-status-$hostipaddr.log -cat >/tmp/idb_master-rep.sql <>${tmpdir}/master-rep-status-$hostipaddr.log +cat >${tmpdir}/idb_master-rep.sql <>/tmp/master-rep-status-$hostipaddr.log +cat ${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/master-rep-status-$hostipaddr.log 2>&1 + calpontsys <${tmpdir}/idb_master-rep.sql >>${tmpdir}/master-rep-status-$hostipaddr.log 2>&1 checkForError -echo "Run SHOW MASTER STATUS to master status log /tmp/show-master-status.log" >>/tmp/master-rep-status-$hostipaddr.log -cat >/tmp/idb_master-rep.sql <>${tmpdir}/master-rep-status-$hostipaddr.log +cat >${tmpdir}/idb_master-rep.sql </tmp/show-master-status.log +cat ${tmpdir}/idb_master-rep.sql >${tmpdir}/show-master-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/show-master-status.log + calpontsys <${tmpdir}/idb_master-rep.sql >>${tmpdir}/show-master-status.log #alls good, 'OK' for success diff --git a/oam/install_scripts/post-install b/oam/install_scripts/post-install index 9b2b939a8..57c5427e6 100755 --- a/oam/install_scripts/post-install +++ b/oam/install_scripts/post-install @@ -167,16 +167,20 @@ mkdir -p $installdir/data/bulk/rollback >/dev/null 2>&1 mkdir -p $installdir/data/bulk/tmpjob >/dev/null 2>&1 rm -f $installdir/data/bulk/tmpjob/* >/dev/null 2>&1 -#get temp directory +#get temp base directory tmpDir="/tmp" if [ $user != "root" ]; then tmpDir=$HOME"./tmp" mkdir $tmpDir >/dev/null 2>&1 fi +#get columnstore temp file directory name TempFileDir=`$installdir/bin/getConfig SystemConfig TempFileDir` tmpDir=$tmpDir+$TempFileDir +#set base columnstore temp file directory +$installdir/bin/setConfig -d SystemConfig SystemTempFileDir $tmpDir + #create columnstore temp file directory mkdir -p $tmpDir >/dev/null 2>&1 diff --git a/oam/install_scripts/post-mysql-install b/oam/install_scripts/post-mysql-install index 215f7d695..d02088fff 100755 --- a/oam/install_scripts/post-mysql-install +++ b/oam/install_scripts/post-mysql-install @@ -7,16 +7,16 @@ # check log for error checkForError() { # check for password error - grep "ERROR 1045" ${tmpdir}/mysql_install.log > /tmp/error.check - if [ `cat /tmp/error.check | wc -c` -ne 0 ]; then + grep "ERROR 1045" ${tmpdir}/mysql_install.log > ${tmpdir}/error.check + if [ `cat ${tmpdir}/error.check | wc -c` -ne 0 ]; then echo "MySQL Password file missing or incorrect, check .my.cnf file" - rm -f /tmp/error.check + rm -f ${tmpdir}/error.check $installdir/mysql/mysql-Columnstore stop sleep 2 exit 2; fi - rm -f /tmp/error.check + rm -f ${tmpdir}/error.check #--------------------------------------------------------------------------- # See if engine columnstore exist diff --git a/oam/install_scripts/pre-uninstall b/oam/install_scripts/pre-uninstall index 52571aacf..572f70420 100755 --- a/oam/install_scripts/pre-uninstall +++ b/oam/install_scripts/pre-uninstall @@ -73,14 +73,7 @@ rm -rf $installdir/mysql/db/columnstore_log_archive > /dev/null 2>&1\ $installdir/bin/clearShm > /dev/null 2>&1 #get temp directory -tmpDir="/tmp" -if [ $user != "root" ]; then - tmpDir=$HOME"./tmp" - mkdir $tmpDir >/dev/null 2>&1 -fi - -TempFileDir=`$installdir/bin/getConfig SystemConfig TempFileDir` -tmpDir=$tmpDir+$TempFileDir +tmpDir=`$installdir/bin/getConfig SystemConfig SystemTempFileDir` # delete tmp files rm -rf $tmpDir diff --git a/oam/install_scripts/slave-rep-columnstore.sh b/oam/install_scripts/slave-rep-columnstore.sh index ae8914237..8468d903e 100644 --- a/oam/install_scripts/slave-rep-columnstore.sh +++ b/oam/install_scripts/slave-rep-columnstore.sh @@ -8,13 +8,13 @@ # check log for error checkForError() { - grep ERROR /tmp/slave-rep-status.log > /tmp/error.check - if [ `cat /tmp/error.check | wc -c` -ne 0 ]; then - echo "ERROR: check log file: /tmp/slave-rep-status.log" - rm -f /tmp/error.check + grep ERROR ${tmpdir}/slave-rep-status.log > ${tmpdir}/error.check + if [ `cat ${tmpdir}/error.check | wc -c` -ne 0 ]; then + echo "ERROR: check log file: ${tmpdir}/slave-rep-status.log" + rm -f ${tmpdir}/error.check exit 1 fi - rm -f /tmp/error.check + rm -f ${tmpdir}/error.check } prefix=/usr/local @@ -35,6 +35,10 @@ for arg in "$@"; do masterlogpos="`echo $arg | awk -F= '{print $2}'`" elif [ `expr -- "$arg" : '--port='` -eq 7 ]; then port="`echo $arg | awk -F= '{print $2}'`" + elif [ $(expr -- "$arg" : '--tmpdir=') -eq 9 ]; then + tmpdir="$(echo $arg | awk -F= '{print $2}')" + fi + fi done @@ -43,29 +47,29 @@ test -f $installdir/post/functions && . $installdir/post/functions repUser="idbrep" password="Calpont1" ->/tmp/slave-rep-status.log +>${tmpdir}/slave-rep-status.log # # Run stop slave command # -echo "Run stop slave command" >>/tmp/slave-rep-status.log -cat >/tmp/idb_slave-rep.sql <>${tmpdir}slave-rep-status.log +cat >${tmpdir}/idb_slave-rep.sql <>/tmp/slave-rep-status.log +cat ${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/slave-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log 2>&1 checkForError # # Run Change Master Command # -echo "Run Change Master Command" >>/tmp/slave-rep-status.log -cat >/tmp/idb_slave-rep.sql <>${tmpdir}/slave-rep-status.log +cat >${tmpdir}/idb_slave-rep.sql <>/tmp/slave-rep-status.log +cat ${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/slave-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log 2>&1 checkForError # # Run start slave command # -echo "Run start slave command" >>/tmp/slave-rep-status.log -cat >/tmp/idb_slave-rep.sql <>${tmpdir}/slave-rep-status.log +cat >${tmpdir}/idb_slave-rep.sql <>/tmp/slave-rep-status.log +cat ${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/slave-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log 2>&1 checkForError # # Run SHOW SLAVE STATUS # -echo "Run SHOW SLAVE STATUS to node log" >>/tmp/slave-rep-status.log -cat >/tmp/idb_slave-rep.sql <>${tmpdir}/slave-rep-status.log +cat >${tmpdir}/idb_slave-rep.sql <>/tmp/slave-rep-status.log +cat ${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root \ - calpontsys >/tmp/slave-rep-status.log 2>&1 + calpontsys <${tmpdir}/idb_slave-rep.sql >>${tmpdir}/slave-rep-status.log 2>&1 checkForError diff --git a/oam/oamcpp/liboamcpp.cpp b/oam/oamcpp/liboamcpp.cpp index 47469ac5b..a0bd6103e 100644 --- a/oam/oamcpp/liboamcpp.cpp +++ b/oam/oamcpp/liboamcpp.cpp @@ -81,6 +81,8 @@ using namespace oam; using namespace logging; using namespace BRM; +string tmpdir; + namespace oam { // flag to tell us ctrl-c was hit @@ -159,6 +161,8 @@ Oam::Oam() if ( USER != "root") userDir = "home/" + USER; + + tmpdir = startup::StartUp::tmpDir(); } @@ -3570,19 +3574,19 @@ void Oam::getLogFile(const std::string moduleName, const std::string loglevel, c logFile = path + logFile; - string tempLogFile = "/tmp/logs"; + string tempLogFile = tmpdir +"/logs"; //make 1 log file made up of archive and current *.log - (void)system("touch /tmp/logs"); + (void)system(tempLogFile.c_str()); string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpdir; - string cmd = "ls " + path + logdir + "/archive | grep '" + logFileName + "' > /tmp/logfiles"; + string cmd = "ls " + path + logdir + "/archive | grep '" + logFileName + "' > " + tmpdir + "/logfiles"; (void)system(cmd.c_str()); - string fileName = "/tmp/logfiles"; + string fileName = tmpdir + "/logfiles"; ifstream oldFile (fileName.c_str()); @@ -3594,7 +3598,7 @@ void Oam::getLogFile(const std::string moduleName, const std::string loglevel, c while (oldFile.getline(line, 400)) { buf = line; - cmd = "cat " + path + logdir + "/archive/" + buf + " >> /tmp/logs"; + cmd = "cat " + path + logdir + "/archive/" + buf + " >> " + tempLogFile; (void)system(cmd.c_str()); } @@ -3602,7 +3606,7 @@ void Oam::getLogFile(const std::string moduleName, const std::string loglevel, c unlink (fileName.c_str()); } - cmd = "cat " + logFile + " >> /tmp/logs"; + cmd = "cat " + logFile + " >> " + tempLogFile; (void)system(cmd.c_str()); //validate and get mm / dd from incoming date @@ -3720,7 +3724,7 @@ void Oam::getLogFile(const std::string moduleName, const std::string loglevel, c unlink (tempLogFile.c_str()); } - fileName = "/tmp/logsByDate"; + fileName = tmpdir + "/logsByDate"; ofstream newFile (fileName.c_str()); //create new file @@ -6747,7 +6751,7 @@ void Oam::addDbroot(const int dbrootNumber, DBRootConfigList& dbrootlist, string int user; user = getuid(); - cmd = "mkfs.ext2 -F " + amazonDeviceName + " > /tmp/format.log 2>&1"; + cmd = "mkfs.ext2 -F " + amazonDeviceName + " > " + tmpdir + "/format.log 2>&1"; writeLog("addDbroot format cmd: " + cmd, LOG_TYPE_DEBUG ); @@ -7801,17 +7805,19 @@ void Oam::actionMysqlCalpont(MYSQLCALPONT_ACTION action) string command; + string pidtmp = tmpdir + "/mysql.pid"; + switch (action) { case MYSQL_START: { - command = "start > /tmp/actionMysqlCalpont.log 2>&1"; + command = "start > " + tmpdir + "/actionMysqlCalpont.log 2>&1"; break; } case MYSQL_STOP: { - command = "stop > /tmp/actionMysqlCalpont.log 2>&1"; + command = "stop > " + tmpdir + "/actionMysqlCalpont.log 2>&1"; //set process status try @@ -7826,25 +7832,25 @@ void Oam::actionMysqlCalpont(MYSQLCALPONT_ACTION action) case MYSQL_RESTART: { - command = "restart > /tmp/actionMysqlCalpont.log 2>&1"; + command = "restart > " + tmpdir + "/actionMysqlCalpont.log 2>&1"; break; } case MYSQL_RELOAD: { - command = "reload > /tmp/actionMysqlCalpont.log 2>&1"; + command = "reload > " + tmpdir + "/actionMysqlCalpont.log 2>&1"; break; } case MYSQL_FORCE_RELOAD: { - command = "force-reload > /tmp/actionMysqlCalpont.log 2>&1"; + command = "force-reload > " + tmpdir + "/actionMysqlCalpont.log 2>&1"; break; } case MYSQL_STATUS: { - command = "status > /tmp/mysql.status"; + command = "status > " + tmpdir + "/mysql.status"; break; } @@ -7862,9 +7868,9 @@ void Oam::actionMysqlCalpont(MYSQLCALPONT_ACTION action) if (action == MYSQL_START || action == MYSQL_RESTART) { //get pid - cmd = "cat " + InstallDir + "/mysql/db/*.pid > /tmp/mysql.pid"; + cmd = "cat " + InstallDir + "/mysql/db/*.pid > " + pidtmp; system(cmd.c_str()); - ifstream oldFile ("/tmp/mysql.pid"); + ifstream oldFile (pidtmp); //fail if file size 0 oldFile.seekg(0, std::ios::end); @@ -7915,14 +7921,15 @@ void Oam::actionMysqlCalpont(MYSQLCALPONT_ACTION action) int state = procstat.ProcessOpState; pid_t pidStatus = procstat.ProcessID; - if (checkLogStatus("/tmp/mysql.status", "MySQL running")) + string mysqlStatus = tmpdir + "/mysql.status"; + if (checkLogStatus(mysqlStatus, "MySQL running")) { if ( state != ACTIVE ) { //get pid - cmd = "cat " + InstallDir + "/mysql/db/*.pid > /tmp/mysql.pid"; + cmd = "cat " + InstallDir + "/mysql/db/*.pid > " + pidtmp; system(cmd.c_str()); - ifstream oldFile ("/tmp/mysql.pid"); + ifstream oldFile (pidtmp); char line[400]; string pid; @@ -7947,9 +7954,9 @@ void Oam::actionMysqlCalpont(MYSQLCALPONT_ACTION action) else { //check if pid has changed - cmd = "cat " + InstallDir + "/mysql/db/*.pid > /tmp/mysql.pid"; + cmd = "cat " + InstallDir + "/mysql/db/*.pid > " + pidtmp; system(cmd.c_str()); - ifstream oldFile ("/tmp/mysql.pid"); + ifstream oldFile (pidtmp); char line[400]; string pid; @@ -8224,19 +8231,19 @@ int Oam::validateModule(const std::string name) std::string Oam::getEC2InstanceIpAddress(std::string instanceName) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getPrivateIP " + instanceName + " > /tmp/getCloudIP_" + instanceName; + string tmplog = tmpdir + "/getCloudIP_" + instanceName; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getPrivateIP " + instanceName + " > " + tmplog; system(cmd.c_str()); - if (checkLogStatus("/tmp/getCloudIP_" + instanceName, "stopped") ) + if (checkLogStatus(tmplog, "stopped") ) return "stopped"; - if (checkLogStatus("/tmp/getCloudIP_" + instanceName, "terminated") ) + if (checkLogStatus(tmplog, "terminated") ) return "terminated"; // get IP Address string IPAddr; - string file = "/tmp/getCloudIP_" + instanceName; - ifstream oldFile (file.c_str()); + ifstream oldFile (tmplog.c_str()); char line[400]; while (oldFile.getline(line, 400)) @@ -8263,7 +8270,8 @@ std::string Oam::getEC2InstanceIpAddress(std::string instanceName) std::string Oam::getEC2LocalInstance(std::string name) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getInstance > /tmp/getInstanceInfo_" + name; + string file = tmpdir + "/getInstanceInfo_" + name; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getInstance > " + file; int status = system(cmd.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -8271,7 +8279,6 @@ std::string Oam::getEC2LocalInstance(std::string name) // get Instance Name string instanceName; - string file = "/tmp/getInstanceInfo_" + name; ifstream oldFile (file.c_str()); char line[400]; @@ -8297,7 +8304,8 @@ std::string Oam::getEC2LocalInstance(std::string name) std::string Oam::getEC2LocalInstanceType(std::string name) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getType > /tmp/getInstanceType_" + name; + string file = tmpdir + "/getInstanceType_" + name; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getType > " + file; int status = system(cmd.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -8305,7 +8313,6 @@ std::string Oam::getEC2LocalInstanceType(std::string name) // get Instance Name string instanceType; - string file = "/tmp/getInstanceType_" + name; ifstream oldFile (file.c_str()); char line[400]; @@ -8331,7 +8338,8 @@ std::string Oam::getEC2LocalInstanceType(std::string name) std::string Oam::getEC2LocalInstanceSubnet(std::string name) { // run script to get Instance Subnet - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getSubnet > /tmp/getInstanceSubnet_" + name; + string file = tmpdir + "/getInstanceSubnet_" + name; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh getSubnet > " + file; int status = system(cmd.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -8339,7 +8347,6 @@ std::string Oam::getEC2LocalInstanceSubnet(std::string name) // get Instance Name string instanceSubnet; - string file = "/tmp/getInstanceSubnet_" + name; ifstream oldFile (file.c_str()); char line[400]; @@ -8366,18 +8373,18 @@ std::string Oam::getEC2LocalInstanceSubnet(std::string name) std::string Oam::launchEC2Instance( const std::string name, const std::string IPAddress, const std::string type, const std::string group) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh launchInstance " + IPAddress + " " + type + " " + group + " > /tmp/getInstance_" + name; + string file = tmpdir + "/getInstance_" + name; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh launchInstance " + IPAddress + " " + type + " " + group + " > " + file; int status = system(cmd.c_str()); if (WEXITSTATUS(status) != 0 ) return "failed"; - if (checkLogStatus("/tmp/getInstance", "Required") ) + if (checkLogStatus(file, "Required") ) return "failed"; // get Instance ID string instance; - string file = "/tmp/getInstance_" + name; ifstream oldFile (file.c_str()); char line[400]; @@ -8411,7 +8418,7 @@ std::string Oam::launchEC2Instance( const std::string name, const std::string IP void Oam::terminateEC2Instance(std::string instanceName) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh terminateInstance " + instanceName + " > /tmp/terminateEC2Instance_" + instanceName; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh terminateInstance " + instanceName + " > " + tmpdir + "/terminateEC2Instance_" + instanceName; system(cmd.c_str()); return; @@ -8428,7 +8435,7 @@ void Oam::terminateEC2Instance(std::string instanceName) void Oam::stopEC2Instance(std::string instanceName) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh stopInstance " + instanceName + " > /tmp/stopEC2Instance_" + instanceName; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh stopInstance " + instanceName + " > " + tmpdir + "/stopEC2Instance_" + instanceName; system(cmd.c_str()); return; @@ -8445,7 +8452,7 @@ void Oam::stopEC2Instance(std::string instanceName) bool Oam::startEC2Instance(std::string instanceName) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh startInstance " + instanceName + " > /tmp/startEC2Instance_" + instanceName; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh startInstance " + instanceName + " > " + tmpdir + "/startEC2Instance_" + instanceName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8465,7 +8472,7 @@ bool Oam::startEC2Instance(std::string instanceName) bool Oam::assignElasticIP(std::string instanceName, std::string IpAddress) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh assignElasticIP " + instanceName + " " + IpAddress + " > /tmp/assignElasticIP_" + instanceName; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh assignElasticIP " + instanceName + " " + IpAddress + " > " + tmpdir + "/assignElasticIP_" + instanceName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8485,7 +8492,7 @@ bool Oam::assignElasticIP(std::string instanceName, std::string IpAddress) bool Oam::deassignElasticIP(std::string IpAddress) { // run script to get Instance status and IP Address - string cmd = InstallDir + "/bin/MCSInstanceCmds.sh deassignElasticIP " + IpAddress + " > /tmp/deassignElasticIP_" + IpAddress; + string cmd = InstallDir + "/bin/MCSInstanceCmds.sh deassignElasticIP " + IpAddress + " > " + tmpdir + "/deassignElasticIP_" + IpAddress; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8505,7 +8512,7 @@ bool Oam::deassignElasticIP(std::string IpAddress) std::string Oam::getEC2VolumeStatus(std::string volumeName) { // run script to get Volume Status - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh describe " + volumeName + " > /tmp/getVolumeStatus_" + volumeName; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh describe " + volumeName + " > " + tmpdir + "/getVolumeStatus_" + volumeName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8513,7 +8520,7 @@ std::string Oam::getEC2VolumeStatus(std::string volumeName) // get status string status; - string file = "/tmp/getVolumeStatus_" + volumeName; + string file = tmpdir + "/getVolumeStatus_" + volumeName; ifstream oldFile (file.c_str()); char line[400]; @@ -8539,7 +8546,8 @@ std::string Oam::getEC2VolumeStatus(std::string volumeName) std::string Oam::createEC2Volume(std::string size, std::string name) { // run script to get Volume Status - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh create " + size + " " + name + " > /tmp/createVolumeStatus_" + name; + string file = tmpdir + "/createVolumeStatus_" + name; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh create " + size + " " + name + " > " + file; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8547,7 +8555,6 @@ std::string Oam::createEC2Volume(std::string size, std::string name) // get status string volumeName; - string file = "/tmp/createVolumeStatus_" + name; ifstream oldFile (file.c_str()); char line[400]; @@ -8587,7 +8594,7 @@ bool Oam::attachEC2Volume(std::string volumeName, std::string deviceName, std::s for ( int retry = 0 ; retry < 2 ; retry++ ) { // run script to attach Volume - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh attach " + volumeName + " " + instanceName + " " + deviceName + " > /tmp/attachVolumeStatus_" + volumeName; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh attach " + volumeName + " " + instanceName + " " + deviceName + " > " + tmpdir + "/attachVolumeStatus_" + volumeName; ret = system(cmd.c_str()); if (WEXITSTATUS(ret) == 0 ) @@ -8614,7 +8621,7 @@ bool Oam::attachEC2Volume(std::string volumeName, std::string deviceName, std::s bool Oam::detachEC2Volume(std::string volumeName) { // run script to attach Volume - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh detach " + volumeName + " > /tmp/detachVolumeStatus_" + volumeName; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh detach " + volumeName + " > " + tmpdir + "/detachVolumeStatus_" + volumeName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8634,7 +8641,7 @@ bool Oam::detachEC2Volume(std::string volumeName) bool Oam::deleteEC2Volume(std::string volumeName) { // run script to delete Volume - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh delete " + volumeName + " > /tmp/deleteVolumeStatus_" + volumeName; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh delete " + volumeName + " > " + tmpdir + "/deleteVolumeStatus_" + volumeName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -8654,7 +8661,7 @@ bool Oam::deleteEC2Volume(std::string volumeName) bool Oam::createEC2tag(std::string resourceName, std::string tagName, std::string tagValue) { // run script to create a tag - string cmd = InstallDir + "/bin/MCSVolumeCmds.sh createTag " + resourceName + " " + tagName + " " + tagValue + " > /tmp/createTagStatus_" + resourceName; + string cmd = InstallDir + "/bin/MCSVolumeCmds.sh createTag " + resourceName + " " + tagName + " " + tagValue + " > " + tmpdir + "createTagStatus_" + resourceName; int ret = system(cmd.c_str()); if (WEXITSTATUS(ret) != 0 ) @@ -9009,7 +9016,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string } sleep(5); - command = glustercmd + "peer status " + " >> /tmp/glusterCommands.txt 2>&1"; + command = glustercmd + "peer status " + " >> " + tmpdir + "/glusterCommands.log 2>&1"; status = system(command.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -9042,7 +9049,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string pmnextbrick[pm]++; } - command += "force >> /tmp/glusterCommands.txt 2>&1"; + command += "force >> " + tmpdir + "/glusterCommands.log 2>&1"; cout << "Gluster create and start volume dbroot" << itoa(newDbrootID) << "..."; status = system(command.c_str()); @@ -9054,7 +9061,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string if (user != 0) { - command = "gluster volume set dbroot" + itoa(newDbrootID) + " storage.owner-uid " + itoa(user) + " >> /tmp/glusterCommands.txt 2>&1";; + command = "gluster volume set dbroot" + itoa(newDbrootID) + " storage.owner-uid " + itoa(user) + " >> " + tmpdir + "/glusterCommands.log 2>&1";; status = system(command.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -9063,7 +9070,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string exceptionControl("GLUSTER_ADD", API_FAILURE); } - command = "gluster volume set dbroot" + itoa(newDbrootID) + " storage.owner-gid " + itoa(group) + " >> /tmp/glusterCommands.txt 2>&1";; + command = "gluster volume set dbroot" + itoa(newDbrootID) + " storage.owner-gid " + itoa(group) + " >> " + tmpdir + "/glusterCommands.log 2>&1";; status = system(command.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -9073,7 +9080,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string } } - command = glustercmd + "volume start dbroot" + itoa(newDbrootID) + " >> /tmp/glusterCommands.txt 2>&1"; + command = glustercmd + "volume start dbroot" + itoa(newDbrootID) + " >> " + tmpdir + "/glusterCommands.log 2>&1"; status = system(command.c_str()); if (WEXITSTATUS(status) != 0 ) @@ -9120,7 +9127,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string int status; writeLog("glusterctl: GLUSTER_DELETE: dbroot = " + dbrootID, LOG_TYPE_DEBUG ); - command = glustercmd + "--mode=script volume stop dbroot" + dbrootID + " >> /tmp/glusterCommands.txt 2>&1"; + command = glustercmd + "--mode=script volume stop dbroot" + dbrootID + " >> " + tmpdir + "/glusterCommands.log 2>&1"; status = system(command.c_str()); @@ -9133,7 +9140,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string // give time for transaction to finish after stopping sleep(10); - command = glustercmd + " --mode=script volume delete dbroot" + dbrootID + " >> /tmp/glusterCommands.txt 2>&1"; + command = glustercmd + " --mode=script volume delete dbroot" + dbrootID + " >> " + tmpdir + "/glusterCommands.log 2>&1"; status = system(command.c_str()); @@ -9153,7 +9160,7 @@ int Oam::glusterctl(GLUSTER_COMMANDS command, std::string argument1, std::string string command = ""; int status; - command = glustercmd + "peer probe " + ipAddress + " >> /tmp/glusterCommands.txt 2>&1"; + command = glustercmd + "peer probe " + ipAddress + " >> " + tmpdir + "/glusterCommands.log 2>&1"; cout << "gluster peer probe " + ipAddress << endl; status = system(command.c_str()); @@ -9309,7 +9316,7 @@ int Oam::checkGlusterLog(std::string logFile, std::string& msg) { if (checkLogStatus(logFile, "OK")) { - if ( logFile == "/tmp/gluster_howhas.log" ) + if ( logFile == tmpdir + "/gluster_howhas.log" ) { ifstream File(logFile.c_str()); @@ -9364,7 +9371,7 @@ int Oam::checkGlusterLog(std::string logFile, std::string& msg) writeLog("checkGlusterLog: FAILURE", LOG_TYPE_ERROR); - if ( logFile == "/tmp/gluster_howhas.log" ) + if ( logFile == tmpdir + "/gluster_howhas.log" ) return 2; else exceptionControl("glusterctl", API_FAILURE); @@ -10875,8 +10882,6 @@ int Oam::readHdfsActiveAlarms(AlarmList& alarmList) bool Oam::checkSystemRunning() { - // string cmd = startup::StartUp::installDir() + "/bin/columnstore status > /tmp/status.log"; - // system(cmd.c_str()); struct stat st; string lockFileDir = "/var/subsys/lock"; diff --git a/oamapps/mcsadmin/mcsadmin.cpp b/oamapps/mcsadmin/mcsadmin.cpp index 7cbe161ba..ccd74511e 100644 --- a/oamapps/mcsadmin/mcsadmin.cpp +++ b/oamapps/mcsadmin/mcsadmin.cpp @@ -188,9 +188,6 @@ int main(int argc, char* argv[]) string ccHistoryFile = HOME + "/.cc_history"; - cout << startup::StartUp::installDir() << endl; - cout << startup::StartUp::tmpDir() << endl; - string cf = startup::StartUp::installDir() + "/etc/" + ConsoleCmdsFile; fConfig = Config::makeConfig(cf); @@ -4919,8 +4916,12 @@ int processCommand(string* arguments) } break; - case 39: + case 39: // getSystemDirectories { + cout << "System Installation and Temporary Logging Directories" << endl << endl; + + cout << "System Installation Directory = " << startup::StartUp::installDir() << endl; + cout << "System Temporary Logging Directory = " << startup::StartUp::tmpDir() << endl; } break; diff --git a/procmgr/main.cpp b/procmgr/main.cpp index 60b9f0060..83f41f561 100644 --- a/procmgr/main.cpp +++ b/procmgr/main.cpp @@ -61,6 +61,8 @@ bool HDFS = false; string localHostName; string PMwithUM = "n"; string MySQLRep = "n"; +string tmpLogDir; + // pushing the ACTIVE_ALARMS_FILE to all nodes every 10 seconds. const int ACTIVE_ALARMS_PUSHING_INTERVAL = 10; @@ -256,6 +258,9 @@ int main(int argc, char** argv) freeifaddrs(addrs); log.writeLog(__LINE__, "Main Ethernet Port = " + iface_name, LOG_TYPE_DEBUG); + //get tmp log directory + tmpLogDir = startup::StartUp::tmpDir(); + // //start a thread to ping all system modules // diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index fadb63ea4..76c46d733 100644 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -56,6 +56,7 @@ extern bool HDFS; extern string localHostName; extern string PMwithUM; extern string AmazonPMFailover; +extern string tmpLogDir; typedef map moduleList; extern moduleList moduleInfoList; @@ -2727,7 +2728,7 @@ void processMSG(messageqcpp::IOSocket* cfIos) // Save the BRM. This command presages a system backup. Best to have a current BRM on disk string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string cmd = startup::StartUp::installDir() + "/bin/save_brm > " + logdir + "/save_brm.log1 2>&1"; int rtnCode = system(cmd.c_str()); @@ -5134,17 +5135,17 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str continue; } - string cmd = installDir + "/bin/remote_command.sh " + IPAddr + " " + password + " 'ls' 1 > /tmp/login_test.log"; + string loginTmp = tmpLogDir + "/login_test.log"; + string cmd = installDir + "/bin/remote_command.sh " + IPAddr + " " + password + " 'ls' 1 > " + loginTmp; system(cmd.c_str()); - if (!oam.checkLogStatus("/tmp/login_test.log", "README")) + if (!oam.checkLogStatus(loginTmp, "README")) { //check for RSA KEY ISSUE and fix - if (oam.checkLogStatus("/tmp/login_test.log", "Offending")) + if (oam.checkLogStatus(loginTmp, "Offending")) { log.writeLog(__LINE__, "addModule - login failed, Offending key issue, try fixing: " + moduleName, LOG_TYPE_DEBUG); - string file = "/tmp/login_test.log"; - oam.fixRSAkey(file); + oam.fixRSAkey(loginTmp); } log.writeLog(__LINE__, "addModule - login failed, retry login test: " + moduleName, LOG_TYPE_DEBUG); @@ -5551,7 +5552,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str //set root password if (amazon) { - cmd = startup::StartUp::installDir() + "/bin/remote_command.sh " + remoteModuleIP + " " + password + " '/root/.scripts/updatePassword.sh " + password + "' > /tmp/password_change.log"; + cmd = startup::StartUp::installDir() + "/bin/remote_command.sh " + remoteModuleIP + " " + password + " '/root/.scripts/updatePassword.sh " + password + "' > " + tmpLogDir + "/password_change.log"; log.writeLog(__LINE__, "addModule - cmd: " + cmd, LOG_TYPE_DEBUG); int rtnCode = system(cmd.c_str()); @@ -5572,7 +5573,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str //run remote installer script if ( packageType != "binary" ) { - string logFile = "/tmp/" + remoteModuleName + "_user_installer.log"; + string logFile = tmpLogDir + "/" + remoteModuleName + "_user_installer.log"; log.writeLog(__LINE__, "addModule - user_installer run for " + remoteModuleName, LOG_TYPE_DEBUG); string cmd = installDir + "/bin/package_installer.sh " + remoteModuleName + " " + remoteModuleIP + " " + password + " " + version + " initial " + AmazonInstall + " " + packageType + " --nodeps 1 > " + logFile; @@ -5643,7 +5644,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str else { // do a binary package install - string logFile = "/tmp/" + remoteModuleName + "_binary_installer.log"; + string logFile = tmpLogDir + "/" + remoteModuleName + "_binary_installer.log"; log.writeLog(__LINE__, "addModule - binary_installer run for " + remoteModuleName, LOG_TYPE_DEBUG); string binservertype = oam.itoa(config.ServerInstallType()); @@ -5723,7 +5724,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str { if ( packageType != "binary" ) { - string logFile = "/tmp/" + remoteModuleName + "_package_installer.log"; + string logFile = tmpLogDir + "/" + remoteModuleName + "_package_installer.log"; log.writeLog(__LINE__, "addModule - package_installer run for " + remoteModuleName, LOG_TYPE_DEBUG); string cmd = installDir + "/bin/package_installer.sh " + remoteModuleName + " " + remoteModuleIP + " " + password + " " + version + " initial " + AmazonInstall + " " + packageType + + " --nodeps 1 > " + logFile; log.writeLog(__LINE__, "addModule cmd: " + cmd, LOG_TYPE_DEBUG); @@ -5792,7 +5793,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str else { // do a binary package install - string logFile = "/tmp/" + remoteModuleName + "_binary_installer.log"; + string logFile = tmpLogDir + "/" + remoteModuleName + "_binary_installer.log"; log.writeLog(__LINE__, "addModule - binary_installer run for " + remoteModuleName, LOG_TYPE_DEBUG); string binservertype = oam.itoa(config.ServerInstallType()); @@ -7038,7 +7039,7 @@ void ProcessManager::saveBRM(bool skipSession, bool clearshm) Oam oam; string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; log.writeLog(__LINE__, "Running reset_locks", LOG_TYPE_DEBUG); @@ -11096,7 +11097,8 @@ int ProcessManager::mountDBRoot(std::string dbrootID) //send msg to ProcMon if not local module if ( config.moduleName() == moduleName ) { - string cmd = "export LC_ALL=C;mount " + startup::StartUp::installDir() + "/data" + dbrootID + " > /tmp/mount.txt"; + string tmpMount = tmpLogDir + "/mount.txt"; + string cmd = "export LC_ALL=C;mount " + startup::StartUp::installDir() + "/data" + dbrootID + " > " + tmpMount; system(cmd.c_str()); if ( !rootUser) @@ -11105,14 +11107,14 @@ int ProcessManager::mountDBRoot(std::string dbrootID) system(cmd.c_str()); } - ifstream in("/tmp/mount.txt"); + ifstream in(tmpMount); in.seekg(0, std::ios::end); int size = in.tellg(); if ( size != 0 ) { - if (!oam.checkLogStatus("/tmp/mount.txt", "already")) + if (!oam.checkLogStatus(tmpMount, "already")) { log.writeLog(__LINE__, "mount failed, dbroot: " + dbrootID); return API_FAILURE; diff --git a/procmon/main.cpp b/procmon/main.cpp index 9e27f805d..6047f2dfa 100644 --- a/procmon/main.cpp +++ b/procmon/main.cpp @@ -61,7 +61,7 @@ bool mainResumeFlag; string USER = "root"; string PMwithUM = "n"; bool startProcMon = false; - +string tmpLogDir; //extern std::string gOAMParentModuleName; extern bool gOAMParentModuleFlag; @@ -138,6 +138,9 @@ int main(int argc, char** argv) string systemLang = "C"; setlocale(LC_ALL, systemLang.c_str()); + + //get tmp log directory + tmpLogDir = startup::StartUp::tmpDir(); // create message thread pthread_t MessageThread; @@ -196,7 +199,7 @@ int main(int argc, char** argv) string modType = config.moduleType(); //run the module install script - string cmd = startup::StartUp::installDir() + "/bin/module_installer.sh " + " --installdir=" + startup::StartUp::installDir() + " --module=" + modType + " > /tmp/module_installer.log 2>&1"; + string cmd = startup::StartUp::installDir() + "/bin/module_installer.sh " + " --installdir=" + startup::StartUp::installDir() + " --module=" + modType + " > " + tmpLogDir + "/module_installer.log 2>&1"; log.writeLog(__LINE__, "run module_installer.sh", LOG_TYPE_DEBUG); log.writeLog(__LINE__, cmd, LOG_TYPE_DEBUG); diff --git a/procmon/processmonitor.cpp b/procmon/processmonitor.cpp index 2adf793be..7a636c487 100644 --- a/procmon/processmonitor.cpp +++ b/procmon/processmonitor.cpp @@ -53,6 +53,7 @@ extern string USER; extern bool HDFS; extern string PMwithUM; extern bool startProcMon; +extern string tmpLogDir; //std::string gOAMParentModuleName; bool gOAMParentModuleFlag; @@ -914,7 +915,7 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO { string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string cmd = startup::StartUp::installDir() + "/bin/reset_locks > " + logdir + "/reset_locks.log1 2>&1"; system(cmd.c_str()); @@ -1545,14 +1546,15 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO // install mysqld rpms if being reconfigured as a um if ( reconfigureModuleName.find("um") != string::npos ) { - string cmd = startup::StartUp::installDir() + "/bin/post-mysqld-install >> /tmp/rpminstall"; + string cmd = startup::StartUp::installDir() + "/bin/post-mysqld-install >> " + tmpLogDir + "/rpminstall"; system(cmd.c_str()); - cmd = startup::StartUp::installDir() + "/bin/post-mysql-install >> /tmp/rpminstall"; + cmd = startup::StartUp::installDir() + "/bin/post-mysql-install >> " + tmpLogDir + "/rpminstall"; system(cmd.c_str()); - cmd = startup::StartUp::installDir() + "/mysql/mysql-Columnstore start > /tmp/mysqldstart"; + cmd = startup::StartUp::installDir() + "/mysql/mysql-Columnstore start > " + tmpLogDir + "/mysqldstart"; system(cmd.c_str()); - ifstream file ("/tmp/mysqldstart"); + string tmpFile = tmpLogDir + "/mysqldstart"; + ifstream file (tmpFile); if (!file) { @@ -1752,21 +1754,22 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO { int retry = 1; + string tmpUmount = tmpLogDir + "/umount.log"; for ( ; retry < 5 ; retry++) { - string cmd = "export LC_ALL=C;umount " + startup::StartUp::installDir() + "/data" + dbrootID + " > /tmp/umount.txt 2>&1"; + string cmd = "export LC_ALL=C;umount " + startup::StartUp::installDir() + "/data" + dbrootID + " > " + tmpUmount + " 2>&1"; system(cmd.c_str()); return_status = API_SUCCESS; - if (!oam.checkLogStatus("/tmp/umount.txt", "busy")) + if (!oam.checkLogStatus(tmpUmount, "busy")) break; - cmd = "lsof " + startup::StartUp::installDir() + "/data" + dbrootID + " >> /tmp/umount.txt 2>&1"; - system(cmd.c_str()); - cmd = "fuser -muvf " + startup::StartUp::installDir() + "/data" + dbrootID + " >> /tmp/umount.txt 2>&1"; - system(cmd.c_str()); + cmd = "lsof " + startup::StartUp::installDir() + "/data" + dbrootID + " >> " + tmpUmount + " 2>&1"; + system(cmd.c_str()); + cmd = "fuser -muvf " + startup::StartUp::installDir() + "/data" + dbrootID + " >> " + tmpUmount + " 2>&1"; + system(cmd.c_str()); sleep(2); //Flush the cache @@ -1779,7 +1782,8 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO { log.writeLog(__LINE__, "unmount failed, device busy, DBRoot: " + dbrootID, LOG_TYPE_ERROR); return_status = API_FAILURE; - system("mv -f /tmp/umount.txt /tmp/umount_failed.txt"); + string cmd = "mv -f " + tmpUmount + " " + tmpUmount + "failed"; + system(cmd.c_str()); } } else @@ -1820,7 +1824,8 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO if (DataRedundancyConfig == "n") { - string cmd = "export LC_ALL=C;mount " + startup::StartUp::installDir() + "/data" + dbrootID + " > /tmp/mount.txt 2>&1"; + string tmpMount = tmpLogDir + "/mount.log"; + string cmd = "export LC_ALL=C;mount " + startup::StartUp::installDir() + "/data" + dbrootID + " > " + tmpMount + "2>&1"; system(cmd.c_str()); if ( !rootUser) @@ -1830,18 +1835,19 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO } return_status = API_SUCCESS; - ifstream in("/tmp/mount.txt"); + ifstream in(tmpMount); in.seekg(0, std::ios::end); int size = in.tellg(); if ( size != 0 ) { - if (!oam.checkLogStatus("/tmp/mount.txt", "already")) + if (!oam.checkLogStatus(tmpMount, "already")) { log.writeLog(__LINE__, "mount failed, DBRoot: " + dbrootID, LOG_TYPE_ERROR); return_status = API_FAILURE; - system("mv -f /tmp/mount.txt /tmp/mount_failed.txt"); + string cmd = "mv -f " + tmpMount + " " + tmpMount + "failed"; + system(cmd.c_str()); } } } @@ -2582,7 +2588,7 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName, string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string cmd = startup::StartUp::installDir() + "/bin/reset_locks > " + logdir + "/reset_locks.log1 2>&1"; system(cmd.c_str()); @@ -2654,7 +2660,7 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName, string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string outFileName = logdir + "/" + processName + ".out"; string errFileName = logdir + "/" + processName + ".err"; @@ -3830,7 +3836,7 @@ int ProcessMonitor::buildSystemTables() { string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string cmd = startup::StartUp::installDir() + "/bin/dbbuilder 7 > " + logdir + "/dbbuilder.log &"; system(cmd.c_str()); @@ -4683,7 +4689,7 @@ int ProcessMonitor::runStartupTest() //run startup test script string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string cmd = startup::StartUp::installDir() + "/bin/startupTests.sh > " + logdir + "/startupTests.log1 2>&1"; system(cmd.c_str()); @@ -4752,7 +4758,7 @@ int ProcessMonitor::runHDFSTest() string logdir("/var/log/mariadb/columnstore"); - if (access(logdir.c_str(), W_OK) != 0) logdir = "/tmp"; + if (access(logdir.c_str(), W_OK) != 0) logdir = tmpLogDir; string hdfslog = logdir + "/hdfsCheck.log1"; @@ -5015,48 +5021,6 @@ void ProcessMonitor::checkModuleFailover( std::string processName) } } -/****************************************************************************************** -* @brief runUpgrade -* -* purpose: run upgrade script -* -******************************************************************************************/ -/*int ProcessMonitor::runUpgrade(std::string mysqlpw) -{ - Oam oam; - - for ( int i = 0 ; i < 10 ; i++ ) - { - //run upgrade script - string cmd = startup::StartUp::installDir() + "/bin/upgrade-columnstore.sh doupgrade --password=" + - mysqlpw + " --installdir=" + startup::StartUp::installDir() + " > " + "/tmp/upgrade-columnstore.log 2>&1"; - system(cmd.c_str()); - - cmd = "/tmp/upgrade-columnstore.log"; - if (oam.checkLogStatus(cmd, "OK")) { - log.writeLog(__LINE__, "upgrade-columnstore.sh: Successful return", LOG_TYPE_DEBUG); - return oam::API_SUCCESS; - } - else { - if (oam.checkLogStatus(cmd, "ERROR 1045") ) { - log.writeLog(__LINE__, "upgrade-columnstore.sh: Missing Password error, return success", LOG_TYPE_DEBUG); - return oam::API_SUCCESS; - } - - log.writeLog(__LINE__, "upgrade-columnstore.sh: Error return, check log /tmp/upgrade-status.log", LOG_TYPE_ERROR); - //restart mysqld and retry - try { - oam.actionMysqlCalpont(MYSQL_RESTART); - } - catch(...) - {} - sleep(1); - } - } - return oam::API_FAILURE; -} -*/ - /****************************************************************************************** * @brief changeMyCnf * @@ -5239,13 +5203,13 @@ int ProcessMonitor::runMariaDBCommandLine(std::string command) if ( MySQLPort.empty() ) MySQLPort = "3306"; - string cmd = startup::StartUp::installDir() + "/bin/mariadb-command-line.sh --installdir=" + startup::StartUp::installDir() + " --command='" + command + "' --port=" + MySQLPort + " > /tmp/mariadb-command-line.sh.log 2>&1"; + string cmd = startup::StartUp::installDir() + "/bin/mariadb-command-line.sh --installdir=" + startup::StartUp::installDir() + " --command='" + command + "' --port=" + MySQLPort + " > " + tmpLogDir + "/mariadb-command-line.sh.log 2>&1"; log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG); system(cmd.c_str()); - string logFile = "/tmp/mariadb-command-line.sh.log"; + string logFile = tmpLogDir + "/mariadb-command-line.sh.log"; if (oam.checkLogStatus(logFile, "ERROR 1045") ) { @@ -5261,7 +5225,7 @@ int ProcessMonitor::runMariaDBCommandLine(std::string command) } else { - log.writeLog(__LINE__, "mariadb-command-line.sh: Error return, check log /tmp/mariadb-command-line.sh.log", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "mariadb-command-line.sh: Error return, check log " + tmpLogDir + "/mariadb-command-line.sh.log", LOG_TYPE_ERROR); return oam::API_FAILURE; } } @@ -5349,8 +5313,8 @@ int ProcessMonitor::runMasterRep(std::string& masterLogFile, std::string& master { string ipAddr = (*pt1).IPAddr; - string logFile = "/tmp/master-rep-columnstore-" + moduleName + ".log"; - string cmd = startup::StartUp::installDir() + "/bin/master-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " --hostIP=" + ipAddr + " --port=" + MySQLPort + " > " + logFile + " 2>&1"; + string logFile = tmpLogDir + "/master-rep-columnstore-" + moduleName + ".log"; + string cmd = startup::StartUp::installDir() + "/bin/master-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " --hostIP=" + ipAddr + " --port=" + MySQLPort + " --tmpdir=" + tmpLogDir + " > " + logFile + " 2>&1"; log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG); system(cmd.c_str()); @@ -5388,13 +5352,14 @@ int ProcessMonitor::runMasterRep(std::string& masterLogFile, std::string& master // File Position Binlog_Do_DB Binlog_Ignore_DB // mysql-bin.000006 2921 // - // in log - /tmp/show-master-status.log + // in log - show-master-status.log - ifstream file ("/tmp/show-master-status.log"); + string masterLog = tmpLogDir + "/show-master-status.log"; + ifstream file (masterLog); if (!file) { - log.writeLog(__LINE__, "runMasterRep - show master status log file doesn't exist - /tmp/show-master-status.log", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "runMasterRep - show master status log file doesn't exist - " + masterLog, LOG_TYPE_ERROR); return oam::API_FAILURE; } else @@ -5439,7 +5404,7 @@ int ProcessMonitor::runMasterRep(std::string& masterLogFile, std::string& master file.close(); } - log.writeLog(__LINE__, "runMasterRep - 'mysql-bin not found in log file - /tmp/show-master-status.log", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "runMasterRep - 'mysql-bin not found in log file - " + masterLog, LOG_TYPE_ERROR); return oam::API_FAILURE; } @@ -5491,14 +5456,14 @@ int ProcessMonitor::runSlaveRep(std::string& masterLogFile, std::string& masterL while (true) { - string cmd = startup::StartUp::installDir() + "/bin/slave-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " --masteripaddr=" + masterIPAddress + " --masterlogfile=" + masterLogFile + " --masterlogpos=" + masterLogPos + " --port=" + MySQLPort + " > /tmp/slave-rep-columnstore.log 2>&1"; + string logFile = tmpLogDir + "/slave-rep-columnstore.log"; + + string cmd = startup::StartUp::installDir() + "/bin/slave-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " --masteripaddr=" + masterIPAddress + " --masterlogfile=" + masterLogFile + " --masterlogpos=" + masterLogPos + " --port=" + MySQLPort + " --tmpdir=" + tmpLogDir + " > " + logFile + " 2>&1"; log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG); system(cmd.c_str()); - string logFile = "/tmp/slave-rep-columnstore.log"; - if (oam.checkLogStatus(logFile, "ERROR 1045") ) { if ( passwordError ) @@ -5519,7 +5484,7 @@ int ProcessMonitor::runSlaveRep(std::string& masterLogFile, std::string& masterL } else { - log.writeLog(__LINE__, "slave-rep-columnstore.sh: Error return, check log /tmp/slave-rep-columnstore.log", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "slave-rep-columnstore.sh: Error return, check log " + logFile, LOG_TYPE_ERROR); return oam::API_FAILURE; } } @@ -5554,16 +5519,16 @@ int ProcessMonitor::runDisableRep() if ( MySQLPort.empty() ) MySQLPort = "3306"; + + string logFile = tmpLogDir + "/disable-rep-columnstore.log"; - string cmd = startup::StartUp::installDir() + "/bin/disable-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " > /tmp/disable-rep-columnstore.log 2>&1"; + string cmd = startup::StartUp::installDir() + "/bin/disable-rep-columnstore.sh --installdir=" + startup::StartUp::installDir() + " --tmpdir=" + tmpLogDir + " > " + logFile + " 2>&1"; log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG); system(cmd.c_str()); - cmd = "/tmp/disable-rep-columnstore.log"; - - if (oam.checkLogStatus(cmd, "OK")) + if (oam.checkLogStatus(logFile, "OK")) { log.writeLog(__LINE__, "disable-rep-columnstore.sh: Successful return", LOG_TYPE_DEBUG); return oam::API_SUCCESS; @@ -5576,7 +5541,7 @@ int ProcessMonitor::runDisableRep() return oam::API_SUCCESS; } - log.writeLog(__LINE__, "disable-rep-columnstore.sh: Error return, check log /tmp/disable-rep-columnstore.log", LOG_TYPE_ERROR); + log.writeLog(__LINE__, "disable-rep-columnstore.sh: Error return, check log " + logFile, LOG_TYPE_ERROR); return oam::API_FAILURE; } @@ -5647,12 +5612,12 @@ int ProcessMonitor::runMasterDist(std::string& password, std::string& slaveModul { string ipAddr = (*pt1).IPAddr; - string cmd = startup::StartUp::installDir() + "/bin/rsync.sh " + ipAddr + " " + password + " " + startup::StartUp::installDir() + " 1 > /tmp/master-dist_" + moduleName + ".log"; + string logFile = tmpLogDir + "/master-dist_" + moduleName + ".log"; + string cmd = startup::StartUp::installDir() + "/bin/rsync.sh " + ipAddr + " " + password + " " + startup::StartUp::installDir() + " 1 > " + logFile; log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG); system(cmd.c_str()); - string logFile = "/tmp/master-dist_" + moduleName + ".log"; if (!oam.checkLogStatus(logFile, "FAILED")) { @@ -5686,10 +5651,10 @@ int ProcessMonitor::runMasterDist(std::string& password, std::string& slaveModul HostConfigList::iterator pt1 = moduleconfig.hostConfigList.begin(); string ipAddr = (*pt1).IPAddr; - string cmd = startup::StartUp::installDir() + "/bin/rsync.sh " + ipAddr + " " + password + " " + startup::StartUp::installDir() + " 1 > /tmp/master-dist_" + slaveModule + ".log"; - system(cmd.c_str()); + string logFile = tmpLogDir + "/master-dist_" + slaveModule + ".log"; - string logFile = "/tmp/master-dist_" + slaveModule + ".log"; + string cmd = startup::StartUp::installDir() + "/bin/rsync.sh " + ipAddr + " " + password + " " + startup::StartUp::installDir() + " 1 > " + logFile; + system(cmd.c_str()); if (!oam.checkLogStatus(logFile, "FAILED")) log.writeLog(__LINE__, "runMasterDist: Success rsync to module: " + slaveModule, LOG_TYPE_DEBUG); @@ -5722,7 +5687,8 @@ bool ProcessMonitor::amazonIPCheck() log.writeLog(__LINE__, "amazonIPCheck function called", LOG_TYPE_DEBUG); // delete description file so it will create a new one - unlink("/tmp/describeInstance.txt"); + string tmpLog = tmpLogDir + "/describeInstance.log"; + unlink(tmpLog.c_str()); // // Get Module Info @@ -5949,8 +5915,8 @@ bool ProcessMonitor::amazonVolumeCheck(int dbrootID) if ( status == "attached" ) { string cmd; - - cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o defaults > /tmp/um_mount.log"; + string mountLog = tmpLogDir + "/um_mount.log"; + cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o defaults > " + mountLog; system(cmd.c_str()); log.writeLog(__LINE__, "mount cmd: " + cmd, LOG_TYPE_DEBUG); @@ -6318,7 +6284,7 @@ int ProcessMonitor::checkDataMount() if ( DataRedundancyConfig == "n" ) { //remove any local check flag for starters - string cmd = "umount " + dbroot + " > /tmp/umount.txt 2>&1"; + string cmd = "umount " + dbroot + " > " + tmpLogDir + "/umount.log 2>&1"; system(cmd.c_str()); unlink(fileName.c_str()); @@ -6331,17 +6297,18 @@ int ProcessMonitor::checkDataMount() if (WEXITSTATUS(status) != 0 ) { // not mounted, mount - cmd = "export LC_ALL=C;mount " + dbroot + " > /tmp/mount.txt 2>&1"; + string mountLog = tmpLogDir + "/mount.log"; + cmd = "export LC_ALL=C;mount " + dbroot + " > " + mountLog + " 2>&1"; system(cmd.c_str()); - ifstream in("/tmp/mount.txt"); + ifstream in(mountLog); in.seekg(0, std::ios::end); int size = in.tellg(); if ( size != 0 ) { - if (!oam.checkLogStatus("/tmp/mount.txt", "already")) + if (!oam.checkLogStatus(mountLog, "already")) { log.writeLog(__LINE__, "checkDataMount: mount failed, DBRoot: " + dbroot, LOG_TYPE_ERROR); @@ -6533,8 +6500,8 @@ int ProcessMonitor::glusterAssign(std::string dbrootID) moduleIPAddr = sysConfig->getConfig("SystemModuleConfig", dataDupIPaddr); } - command = "mount -tglusterfs -odirect-io-mode=enable " + moduleIPAddr + ":/dbroot" + - dbrootID + " " + startup::StartUp::installDir() + "/data" + dbrootID + " > /tmp/glusterAssign.txt 2>&1"; + string tmpLog = tmpLogDir + "/glusterAssign.log"; + command = "mount -tglusterfs -odirect-io-mode=enable " + moduleIPAddr + ":/dbroot" + dbrootID + " " + startup::StartUp::installDir() + "/data" + dbrootID + " > " + tmpLog + " 2>&1"; int ret = system(command.c_str()); @@ -6542,16 +6509,17 @@ int ProcessMonitor::glusterAssign(std::string dbrootID) { log.writeLog(__LINE__, "glusterAssign mount failure: dbroot: " + dbrootID + " error: " + oam.itoa(WEXITSTATUS(ret)), LOG_TYPE_ERROR); - ifstream in("/tmp/glusterAssign.txt"); + ifstream in(tmpLog); in.seekg(0, std::ios::end); int size = in.tellg(); if ( size != 0 ) { - if (!oam.checkLogStatus("/tmp/glusterAssign.txt", "already")) + if (!oam.checkLogStatus(tmpLog, "already")) { log.writeLog(__LINE__, "glusterAssign failed.", LOG_TYPE_ERROR); - system("mv -f /tmp/glusterAssign.txt /tmp/glusterAssign_failed.txt"); + string cmd = "mv -f " + tmpLog + " " + tmpLog + "failed"; + system(cmd.c_str()); return oam::API_FAILURE; } } @@ -6575,8 +6543,10 @@ int ProcessMonitor::glusterUnassign(std::string dbrootID) std::string errmsg = ""; log.writeLog(__LINE__, "glusterUnassign called: " + dbrootID, LOG_TYPE_DEBUG); - - command = "umount -f " + startup::StartUp::installDir() + "/data" + dbrootID + " > /tmp/glusterUnassign.txt 2>&1"; + + string tmpLog = tmpLogDir + "/glusterUnassign.log"; + + command = "umount -f " + startup::StartUp::installDir() + "/data" + dbrootID + " > " + tmpLog + " 2>&1"; int ret = system(command.c_str()); @@ -6584,16 +6554,18 @@ int ProcessMonitor::glusterUnassign(std::string dbrootID) { log.writeLog(__LINE__, "glusterUnassign mount failure: dbroot: " + dbrootID + " error: " + oam.itoa(WEXITSTATUS(ret)), LOG_TYPE_ERROR); - ifstream in("/tmp/glusterUnassign.txt"); + ifstream in(tmpLog); in.seekg(0, std::ios::end); int size = in.tellg(); if ( size != 0 ) { - if (!oam.checkLogStatus("/tmp/glusterUnassign.txt", "not mounted")) + if (!oam.checkLogStatus(tmpLog, "not mounted")) { log.writeLog(__LINE__, "glusterUnassign failed.", LOG_TYPE_ERROR); - system("mv -f /tmp/glusterUnassign.txt /tmp/glusterUnassign_failed.txt"); + + string cmd = "mv -f " + tmpLog + " " + tmpLog + "failed"; + system(cmd.c_str()); return oam::API_FAILURE; } }