Merge "Fix linters error and enable linters zuul gate"

This commit is contained in:
Zuul 2018-09-13 06:51:30 +00:00 committed by Gerrit Code Review
commit 2f2d0a1e02
40 changed files with 181 additions and 299 deletions

View File

@ -4,8 +4,9 @@
jobs: jobs:
- openstack-tox-pep8: - openstack-tox-pep8:
voting: false voting: false
- openstack-tox-linters: - openstack-tox-linters
voting: false
gate: gate:
jobs: jobs:
- noop - openstack-tox-pep8:
voting: false
- openstack-tox-linters

View File

@ -59,7 +59,9 @@ start() {
} }
stop() { stop() {
if [ ! -e $PIDFILE ]; then return; fi if [ ! -e $PIDFILE ]; then
return
fi
echo -n "Stopping $DESC..." echo -n "Stopping $DESC..."
@ -73,8 +75,7 @@ stop() {
remove_TPM_transients remove_TPM_transients
} }
status() status() {
{
pid=`cat $PIDFILE 2>/dev/null` pid=`cat $PIDFILE 2>/dev/null`
if [ -n "$pid" ]; then if [ -n "$pid" ]; then
if ps -p $pid &>/dev/null ; then if ps -p $pid &>/dev/null ; then

View File

@ -29,8 +29,7 @@ mount_nfs=no
mount_smb=no mount_smb=no
mount_ncp=no mount_ncp=no
mount_cifs=no mount_cifs=no
while read device mountpt fstype options while read device mountpt fstype options; do
do
case "$device" in case "$device" in
""|\#*) ""|\#*)
continue continue
@ -70,8 +69,7 @@ done
exec 0>&1 exec 0>&1
if test "$rpcbind" = yes if test "$rpcbind" = yes; then
then
# WRL: Centos precheck: Dont start rpcbind in this init script. # WRL: Centos precheck: Dont start rpcbind in this init script.
# It is started by a systemd service file. # It is started by a systemd service file.
if test "/etc/centos-release" = no if test "/etc/centos-release" = no
@ -88,8 +86,7 @@ then
fi fi
fi fi
if test "$mount_nfs" = yes || test "$mount_smb" = yes || test "$mount_ncp" = yes || test "$mount_cifs" = yes if test "$mount_nfs" = yes || test "$mount_smb" = yes || test "$mount_ncp" = yes || test "$mount_cifs" = yes; then
then
echo "Mounting remote filesystems..." echo "Mounting remote filesystems..."
test "$mount_nfs" = yes && mount -a -t nfs test "$mount_nfs" = yes && mount -a -t nfs
test "$mount_smb" = yes && mount -a -t smbfs test "$mount_smb" = yes && mount -a -t smbfs

View File

@ -43,8 +43,7 @@ fi
WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \ WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \
2>${ERR_FILE} | tail -1 2>>${ERR_FILE}) 2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]] if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]]; then
then
# Check only when set to 0 to avoid latency in response. # Check only when set to 0 to avoid latency in response.
if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then
READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \ READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \

View File

@ -27,30 +27,26 @@ should_initialize ()
# If two args given first is user, second is group # If two args given first is user, second is group
# otherwise the arg is the systemd service file # otherwise the arg is the systemd service file
if [ "$#" -eq 2 ] if [ "$#" -eq 2 ]; then
then
myuser="$1" myuser="$1"
mygroup="$2" mygroup="$2"
else else
# Absorb configuration settings from the specified systemd service file, # Absorb configuration settings from the specified systemd service file,
# or the default service if not specified # or the default service if not specified
SERVICE_NAME="$1" SERVICE_NAME="$1"
if [ x"$SERVICE_NAME" = x ] if [ x"$SERVICE_NAME" = x ]; then
then
SERVICE_NAME=@DAEMON_NAME@.service SERVICE_NAME=@DAEMON_NAME@.service
fi fi
myuser=`systemctl show -p User "${SERVICE_NAME}" | myuser=`systemctl show -p User "${SERVICE_NAME}" |
sed 's/^User=//'` sed 's/^User=//'`
if [ x"$myuser" = x ] if [ x"$myuser" = x ]; then
then
myuser=mysql myuser=mysql
fi fi
mygroup=`systemctl show -p Group "${SERVICE_NAME}" | mygroup=`systemctl show -p Group "${SERVICE_NAME}" |
sed 's/^Group=//'` sed 's/^Group=//'`
if [ x"$mygroup" = x ] if [ x"$mygroup" = x ]; then
then
mygroup=mysql mygroup=mysql
fi fi
fi fi
@ -79,8 +75,7 @@ chmod 0640 "$errlogfile"
if should_initialize "$datadir" ; then if should_initialize "$datadir" ; then
# First, make sure $datadir is there with correct permissions # First, make sure $datadir is there with correct permissions
# (note: if it's not, and we're not root, this'll fail ...) # (note: if it's not, and we're not root, this'll fail ...)
if [ ! -e "$datadir" -a ! -h "$datadir" ] if [ ! -e "$datadir" -a ! -h "$datadir" ]; then
then
mkdir -p "$datadir" || exit 1 mkdir -p "$datadir" || exit 1
fi fi
chown "$myuser:$mygroup" "$datadir" chown "$myuser:$mygroup" "$datadir"

View File

@ -12,12 +12,10 @@ MOUNT=/opt/platform
previous=1 previous=1
delay=60 delay=60
while : while : ; do
do
# First, check that it's actually an NFS mount # First, check that it's actually an NFS mount
mount | grep -q $MOUNT mount | grep -q $MOUNT
if [ $? -ne 0 ] if [ $? -ne 0 ]; then
then
logger -t NFSCHECK "$MOUNT is not mounted" logger -t NFSCHECK "$MOUNT is not mounted"
previous=1 previous=1
sleep $delay sleep $delay
@ -31,18 +29,15 @@ do
# At this point, jobs will either report no jobs (empty) or Done, # At this point, jobs will either report no jobs (empty) or Done,
# unless the job is still running/hung # unless the job is still running/hung
rc=$(jobs) rc=$(jobs)
if [[ -z "$rc" || $rc =~ "Done" ]] if [[ -z "$rc" || $rc =~ "Done" ]]; then
then
# NFS is successful # NFS is successful
if [ $previous -ne 0 ] if [ $previous -ne 0 ]; then
then
logger -t NFSCHECK "NFS test of $MOUNT is ok" logger -t NFSCHECK "NFS test of $MOUNT is ok"
previous=0 previous=0
fi fi
else else
# Keep waiting until the job is done # Keep waiting until the job is done
while ! [[ -z "$rc" || $rc =~ "Done" ]] while ! [[ -z "$rc" || $rc =~ "Done" ]]; do
do
logger -t NFSCHECK "NFS test of $MOUNT is failed" logger -t NFSCHECK "NFS test of $MOUNT is failed"
previous=1 previous=1
sleep $delay sleep $delay

View File

@ -25,20 +25,17 @@ DEBUGFS_PATH=/sys/kernel/debug
DEBUGFS_I40_DEVICES_PATH=$DEBUGFS_PATH/i40e DEBUGFS_I40_DEVICES_PATH=$DEBUGFS_PATH/i40e
LLDP_COMMAND=lldp LLDP_COMMAND=lldp
function log() function log {
{
local MSG="${PROGNAME}: $1" local MSG="${PROGNAME}: $1"
logger -p notice "${MSG}" logger -p notice "${MSG}"
} }
function err() function err {
{
local MSG="${PROGNAME}: $1" local MSG="${PROGNAME}: $1"
logger -p error "${MSG}" logger -p error "${MSG}"
} }
function configure_device() function configure_device {
{
local DEVICE=$1 local DEVICE=$1
local ACTION=$2 local ACTION=$2
local DEVICE_PATH=${DEBUGFS_I40_DEVICES}/${DEVICE} local DEVICE_PATH=${DEBUGFS_I40_DEVICES}/${DEVICE}
@ -59,23 +56,22 @@ function configure_device()
return ${RET} return ${RET}
} }
function is_debugfs_mounted() { function is_debugfs_mounted {
if grep -qs "${DEBUGFS_PATH}" /proc/mounts; then if grep -qs "${DEBUGFS_PATH}" /proc/mounts; then
return 0 return 0
fi fi
return 1 return 1
} }
function mount_debugfs() { function mount_debugfs {
mount -t debugfs none ${DEBUGFS_PATH} mount -t debugfs none ${DEBUGFS_PATH}
} }
function unmount_debugfs() { function unmount_debugfs {
umount ${DEBUGFS_PATH} umount ${DEBUGFS_PATH}
} }
function scan_devices() function scan_devices {
{
local ACTION=$1 local ACTION=$1
local DEBUGFS_MOUNTED="false" local DEBUGFS_MOUNTED="false"
local DEVICES=${DEBUGFS_I40_DEVICES_PATH}/* local DEVICES=${DEBUGFS_I40_DEVICES_PATH}/*
@ -111,20 +107,17 @@ function scan_devices()
return 0 return 0
} }
function start() function start {
{
scan_devices start scan_devices start
return $? return $?
} }
function stop() function stop {
{
scan_devices stop scan_devices stop
return $? return $?
} }
function status() function status {
{
return 0 return 0
} }

View File

@ -15,8 +15,7 @@ DEBUG=${DEBUG:-0}
# all files beginning in "mlx4_port" and ending in one or more digits. # all files beginning in "mlx4_port" and ending in one or more digits.
shopt -s extglob shopt -s extglob
function log() function log {
{
local MSG="${PROGNAME}: $1" local MSG="${PROGNAME}: $1"
if [ ${DEBUG} -ne 0 ]; then if [ ${DEBUG} -ne 0 ]; then
echo "${MSG}" echo "${MSG}"
@ -24,8 +23,7 @@ function log()
echo "${MSG}" >> /var/log/mlx4-configure.log echo "${MSG}" >> /var/log/mlx4-configure.log
} }
function configure_device() function configure_device {
{
local DEVICE=$1 local DEVICE=$1
local DEVICE_PATH=${SYSFS_PCI_DEVICES}/${DEVICE} local DEVICE_PATH=${SYSFS_PCI_DEVICES}/${DEVICE}
@ -58,8 +56,7 @@ function configure_device()
} }
function scan_devices() function scan_devices {
{
local DEVICES=$(ls -1 ${SYSFS_PCI_DEVICES}) local DEVICES=$(ls -1 ${SYSFS_PCI_DEVICES})
for DEVICE in ${DEVICES}; do for DEVICE in ${DEVICES}; do
@ -83,19 +80,16 @@ function scan_devices()
} }
function start() function start {
{
scan_devices scan_devices
return $? return $?
} }
function stop() function stop {
{
return 0 return 0
} }
function status() function status {
{
return 0 return 0
} }

View File

@ -12,13 +12,11 @@ NAME=$(basename $0)
OPTIONS_CHANGED_FLAG=/var/run/.mlx4_cx3_reboot_required OPTIONS_CHANGED_FLAG=/var/run/.mlx4_cx3_reboot_required
COMPUTE_CONFIG_COMPLETE=/var/run/.compute_config_complete COMPUTE_CONFIG_COMPLETE=/var/run/.compute_config_complete
function LOG() function LOG {
{
logger "$NAME: $*" logger "$NAME: $*"
} }
if [ -f $OPTIONS_CHANGED_FLAG ] && [ -f $COMPUTE_CONFIG_COMPLETE ] if [ -f $OPTIONS_CHANGED_FLAG ] && [ -f $COMPUTE_CONFIG_COMPLETE ]; then
then
LOG "mlx4_core options has been changed. Failing goenabled check." LOG "mlx4_core options has been changed. Failing goenabled check."
exit 1 exit 1
fi fi

View File

@ -14,8 +14,7 @@ SERVICE="ceph"
LOGFILE="${extradir}/ceph.info" LOGFILE="${extradir}/ceph.info"
echo "${hostname}: Ceph Info .........: ${LOGFILE}" echo "${hostname}: Ceph Info .........: ${LOGFILE}"
function is_service_active() function is_service_active {
{
active=`sm-query service management-ip | grep "enabled-active"` active=`sm-query service management-ip | grep "enabled-active"`
if [ -z "$active" ] ; then if [ -z "$active" ] ; then
return 0 return 0
@ -24,8 +23,7 @@ function is_service_active()
fi fi
} }
function exit_if_timeout() function exit_if_timeout {
{
if [ "$?" = "124" ] ; then if [ "$?" = "124" ] ; then
echo "Exiting due to ceph command timeout" >> ${LOGFILE} echo "Exiting due to ceph command timeout" >> ${LOGFILE}
exit 0 exit 0

View File

@ -10,8 +10,7 @@
source /usr/local/sbin/collect_parms source /usr/local/sbin/collect_parms
source /usr/local/sbin/collect_utils source /usr/local/sbin/collect_utils
function is_extended_profile() function is_extended_profile {
{
if [ ! -n "${security_profile}" ] || [ "${security_profile}" != "extended" ]; then if [ ! -n "${security_profile}" ] || [ "${security_profile}" != "extended" ]; then
return 0 return 0
else else

View File

@ -12,8 +12,7 @@ source /usr/local/sbin/collect_utils
LOGFILE="${extradir}/nfv-vim.info" LOGFILE="${extradir}/nfv-vim.info"
echo "${hostname}: NFV-Vim Info ......: ${LOGFILE}" echo "${hostname}: NFV-Vim Info ......: ${LOGFILE}"
function is_service_active() function is_service_active {
{
active=`sm-query service vim | grep "enabled-active"` active=`sm-query service vim | grep "enabled-active"`
if [ -z "$active" ] ; then if [ -z "$active" ] ; then
return 0 return 0

View File

@ -10,8 +10,7 @@
source /usr/local/sbin/collect_parms source /usr/local/sbin/collect_parms
source /usr/local/sbin/collect_utils source /usr/local/sbin/collect_utils
function is_service_active() function is_service_active {
{
active=`sm-query service rabbit-fs | grep "enabled-active"` active=`sm-query service rabbit-fs | grep "enabled-active"`
if [ -z "$active" ] ; then if [ -z "$active" ] ; then
return 0 return 0

View File

@ -19,8 +19,7 @@ DB_DIR="${extradir}/database"
LOGFILE="${extradir}/database.info" LOGFILE="${extradir}/database.info"
echo "${hostname}: Database Info .....: ${LOGFILE}" echo "${hostname}: Database Info .....: ${LOGFILE}"
function is_service_active() function is_service_active {
{
active=`sm-query service postgres | grep "enabled-active"` active=`sm-query service postgres | grep "enabled-active"`
if [ -z "$active" ] ; then if [ -z "$active" ] ; then
return 0 return 0
@ -34,11 +33,9 @@ function is_service_active()
############################################################################### ###############################################################################
mkdir -p ${DB_DIR} mkdir -p ${DB_DIR}
function log_database() function log_database {
{
db_list=( $(${PSQL_CMD} -t -c "SELECT datname FROM pg_database WHERE datistemplate = false;") ) db_list=( $(${PSQL_CMD} -t -c "SELECT datname FROM pg_database WHERE datistemplate = false;") )
for db in "${db_list[@]}" for db in "${db_list[@]}"; do
do
echo "postgres database: ${db}" echo "postgres database: ${db}"
${PSQL_CMD} -d ${db} -c " ${PSQL_CMD} -d ${db} -c "
SELECT SELECT
@ -75,12 +72,10 @@ function log_database()
DB_EXT=db.sql.txt DB_EXT=db.sql.txt
function database_dump() function database_dump {
{
mkdir -p ${DB_DIR} mkdir -p ${DB_DIR}
db_list=( $(${PSQL_CMD} -t -c "SELECT datname FROM pg_database WHERE datistemplate = false;") ) db_list=( $(${PSQL_CMD} -t -c "SELECT datname FROM pg_database WHERE datistemplate = false;") )
for DB in "${db_list[@]}" for DB in "${db_list[@]}"; do
do
if [ "$DB" != "keystone" -a "$DB" != "ceilometer" ] ; then if [ "$DB" != "keystone" -a "$DB" != "ceilometer" ] ; then
echo "${hostname}: Dumping Database ..: ${DB_DIR}/$DB.$DB_EXT" echo "${hostname}: Dumping Database ..: ${DB_DIR}/$DB.$DB_EXT"
(cd ${DB_DIR} ; sudo -u postgres pg_dump $DB > $DB.$DB_EXT) (cd ${DB_DIR} ; sudo -u postgres pg_dump $DB > $DB.$DB_EXT)

View File

@ -14,8 +14,7 @@ SERVICE="inventory"
LOGFILE="${extradir}/${SERVICE}.info" LOGFILE="${extradir}/${SERVICE}.info"
RPMLOG="${extradir}/rpm.info" RPMLOG="${extradir}/rpm.info"
function is_service_active() function is_service_active {
{
active=`sm-query service management-ip | grep "enabled-active"` active=`sm-query service management-ip | grep "enabled-active"`
if [ -z "$active" ] ; then if [ -z "$active" ] ; then
return 0 return 0

View File

@ -27,8 +27,8 @@ fi
delimiter ${LOGFILE} "ip link" delimiter ${LOGFILE} "ip link"
ip link >> ${LOGFILE} ip link >> ${LOGFILE}
for i in $(ip link | grep mtu | grep eth |awk '{print $2}' | sed 's#:##g'); for i in $(ip link | grep mtu | grep eth |awk '{print $2}' | sed 's#:##g'); do
do
delimiter ${LOGFILE} "ethtool ${i}" delimiter ${LOGFILE} "ethtool ${i}"
ethtool ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG} ethtool ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG}
@ -55,8 +55,8 @@ fi
delimiter ${LOGFILE} "tc qdisc show" delimiter ${LOGFILE} "tc qdisc show"
tc qdisc show >> ${LOGFILE} tc qdisc show >> ${LOGFILE}
for i in $(ip link | grep htb | awk '{print $2}' | sed 's#:##g'); for i in $(ip link | grep htb | awk '{print $2}' | sed 's#:##g'); do
do
delimiter ${LOGFILE} "tc class show dev ${i}" delimiter ${LOGFILE} "tc class show dev ${i}"
tc class show dev ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG} tc class show dev ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG}
@ -70,8 +70,8 @@ done
delimiter ${LOGFILE} "tc -s qdisc show" delimiter ${LOGFILE} "tc -s qdisc show"
tc -s qdisc show >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG} tc -s qdisc show >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG}
for i in $(ip link | grep htb | awk '{print $2}' | sed 's#:##g'); for i in $(ip link | grep htb | awk '{print $2}' | sed 's#:##g'); do
do
delimiter ${LOGFILE} "tc -s class show dev ${i}" delimiter ${LOGFILE} "tc -s class show dev ${i}"
tc -s class show dev ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG} tc -s class show dev ${i} >> ${LOGFILE} 2>>${COLLECT_ERROR_LOG}

View File

@ -14,8 +14,7 @@ fi
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print key ceph statistics # Print key ceph statistics
function print_ceph() function print_ceph {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -47,8 +46,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_ceph print_ceph
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -32,14 +32,12 @@ LOG "Cleanup engtools:"
# ( be sure not to clobber /etc/init.d/collect-engtools.sh ) # ( be sure not to clobber /etc/init.d/collect-engtools.sh )
LOG "kill processes brute force" LOG "kill processes brute force"
pids=( $(pidof -x /usr/local/bin/collect-engtools.sh) ) pids=( $(pidof -x /usr/local/bin/collect-engtools.sh) )
if [ ${#pids[@]} -ne 0 ] if [ ${#pids[@]} -ne 0 ]; then
then
LOG "killing: ${pids[@]}" LOG "killing: ${pids[@]}"
for pid in ${pids[@]} for pid in ${pids[@]}; do
do LOG "kill: [ ${pid} ] "
LOG "kill: [ ${pid} ] " pkill -KILL -P ${pid}
pkill -KILL -P ${pid} kill -9 ${pid}
kill -9 ${pid}
done done
pkill -KILL iostat pkill -KILL iostat
pkill -KILL top pkill -KILL top
@ -48,8 +46,7 @@ else
fi fi
LOG "remove pidfiles" LOG "remove pidfiles"
for TOOL in "${TOOLS[@]}" for TOOL in "${TOOLS[@]}"; do
do
rm -f -v /var/run/${TOOL}.pid rm -f -v /var/run/${TOOL}.pid
done done
LOG "done" LOG "done"

View File

@ -48,11 +48,9 @@ declare tgt_avail_bytes
declare tgt_used_bytes declare tgt_used_bytes
# do_parallel_commands - launch parallel tools with separate output files # do_parallel_commands - launch parallel tools with separate output files
function do_parallel_commands() function do_parallel_commands {
{
parallel_outfiles=() parallel_outfiles=()
for elem in "${tlist[@]}" for elem in "${tlist[@]}"; do
do
tool=""; period=""; repeat=""; interval="" tool=""; period=""; repeat=""; interval=""
my_hash="elem[*]" my_hash="elem[*]"
local ${!my_hash} local ${!my_hash}
@ -75,8 +73,7 @@ function do_parallel_commands()
# get_current_avail_usage() - get output destination file-system usage and # get_current_avail_usage() - get output destination file-system usage and
# availability. # availability.
# - updates: df_size_bytes, df_avail_bytes, du_used_bytes # - updates: df_size_bytes, df_avail_bytes, du_used_bytes
function get_current_avail_usage() function get_current_avail_usage {
{
local -a df_arr_bytes=( $(df -P --block-size=1 ${TOOL_DEST_DIR} | awk 'NR==2 {print $2, $4}') ) local -a df_arr_bytes=( $(df -P --block-size=1 ${TOOL_DEST_DIR} | awk 'NR==2 {print $2, $4}') )
df_size_bytes=${df_arr_bytes[0]} df_size_bytes=${df_arr_bytes[0]}
df_avail_bytes=${df_arr_bytes[1]} df_avail_bytes=${df_arr_bytes[1]}
@ -85,8 +82,7 @@ function get_current_avail_usage()
# purge_oldest_files() - remove oldest files based on file-system available space, # purge_oldest_files() - remove oldest files based on file-system available space,
# and maximum collection size # and maximum collection size
function purge_oldest_files() function purge_oldest_files {
{
# get current file-system usage # get current file-system usage
get_current_avail_usage get_current_avail_usage
msg=$(printf "avail %d MB, headroom %d MB; used %d MB, max %d MB" \ msg=$(printf "avail %d MB, headroom %d MB; used %d MB, max %d MB" \
@ -116,8 +112,7 @@ function purge_oldest_files()
# remove files in oldest time sorted order until we meet usage targets, # remove files in oldest time sorted order until we meet usage targets,
# incrementally updating usage as we remve files # incrementally updating usage as we remve files
for file in $( ls -rt ${TOOL_DEST_DIR}/${HOSTNAME}_* 2>/dev/null ) for file in $( ls -rt ${TOOL_DEST_DIR}/${HOSTNAME}_* 2>/dev/null ); do
do
if [[ $df_avail_bytes -ge $tgt_avail_bytes ]] && \ if [[ $df_avail_bytes -ge $tgt_avail_bytes ]] && \
[[ $du_used_bytes -le $tgt_used_bytes ]]; then [[ $du_used_bytes -le $tgt_used_bytes ]]; then
break break
@ -307,9 +302,7 @@ REP=0
if [ ${#tlist[@]} -ne 0 ]; then if [ ${#tlist[@]} -ne 0 ]; then
# Static stats collection is turned on # Static stats collection is turned on
while [[ ${TOOL_USR1_SIGNAL} -eq 0 ]] && while [[ ${TOOL_USR1_SIGNAL} -eq 0 ]] && [[ ${OPT_FOREVER} -eq 1 || ${REP} -lt ${REPEATS} ]]; do
[[ ${OPT_FOREVER} -eq 1 || ${REP} -lt ${REPEATS} ]]
do
# increment loop counter # increment loop counter
((REP++)) ((REP++))

View File

@ -14,8 +14,7 @@ fi
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print disk summary # Print disk summary
function print_disk() function print_disk {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -57,8 +56,7 @@ function print_disk()
} }
# Print disk static summary # Print disk static summary
function print_disk_static() function print_disk_static {
{
print_separator print_separator
cmd='cat /proc/scsi/scsi' cmd='cat /proc/scsi/scsi'
${ECHO} "Attached devices: ${cmd}" ${ECHO} "Attached devices: ${cmd}"
@ -109,8 +107,7 @@ print_disk_static
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_disk print_disk
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -24,8 +24,7 @@ else
. /etc/init.d/functions . /etc/init.d/functions
fi fi
# Lightweight replacement for pidofproc -p <pid> # Lightweight replacement for pidofproc -p <pid>
function check_pidfile () function check_pidfile {
{
local pidfile pid local pidfile pid
OPTIND=1 OPTIND=1
@ -53,8 +52,7 @@ function check_pidfile ()
} }
# tools_init - initialize tool resources # tools_init - initialize tool resources
function tools_init () function tools_init {
{
local rc=0 local rc=0
local error=0 local error=0
TOOLNAME=$(basename $0) TOOLNAME=$(basename $0)
@ -199,7 +197,7 @@ function tools_init ()
} }
# tools_cleanup() - terminate child processes # tools_cleanup() - terminate child processes
function tools_cleanup() { function tools_cleanup {
# restore signal handling to default behaviour # restore signal handling to default behaviour
trap - INT HUP TERM EXIT trap - INT HUP TERM EXIT
trap - USR1 USR2 trap - USR1 USR2
@ -230,43 +228,47 @@ function tools_cleanup() {
} }
# tools_exit_handler() - exit handler routine # tools_exit_handler() - exit handler routine
function tools_exit_handler() { function tools_exit_handler {
TOOL_EXIT_SIGNAL=1 TOOL_EXIT_SIGNAL=1
tools_cleanup 128 tools_cleanup 128
} }
# tools_usr1_handler() - USR1 handler routine # tools_usr1_handler() - USR1 handler routine
function tools_usr1_handler() { function tools_usr1_handler {
TOOL_USR1_SIGNAL=1 TOOL_USR1_SIGNAL=1
LOG "caught USR1" LOG "caught USR1"
} }
# tools_usr2_handler() - USR2 handler routine # tools_usr2_handler() - USR2 handler routine
function tools_usr2_handler() { function tools_usr2_handler {
TOOL_USR2_SIGNAL=1 TOOL_USR2_SIGNAL=1
LOG "caught USR1" LOG "caught USR1"
} }
# LOG(), WARNLOG(), ERRLOG() - simple print log functions (not logger) # LOG(), WARNLOG(), ERRLOG() - simple print log functions (not logger)
function LOG () function LOG {
{
local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" ) local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" )
echo "${tstamp_H} ${HOSTNAME} $0($$): $@"; echo "${tstamp_H} ${HOSTNAME} $0($$): $@";
} }
function LOG_NOCR ()
{ function LOG_NOCR {
local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" ) local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" )
echo -n "${tstamp_H} ${HOSTNAME} $0($$): $@"; echo -n "${tstamp_H} ${HOSTNAME} $0($$): $@";
} }
function WARNLOG () { LOG "WARN $@"; }
function ERRLOG () { LOG "ERROR $@"; } function WARNLOG {
LOG "WARN $@";
}
function ERRLOG {
LOG "ERROR $@";
}
# TOOL_HIRES_TIME() - easily parsed date/timestamp and hi-resolution uptime # TOOL_HIRES_TIME() - easily parsed date/timestamp and hi-resolution uptime
function TOOL_HIRES_TIME() function TOOL_HIRES_TIME {
{
echo "time: " $( ${DATE} +"%a %F %H:%M:%S.%N %Z %z" ) "uptime: " $( cat /proc/uptime ) echo "time: " $( ${DATE} +"%a %F %H:%M:%S.%N %Z %z" ) "uptime: " $( cat /proc/uptime )
} }
# set_affinity() - set affinity for current script if a a CPULIST is defined # set_affinity() - set affinity for current script if a a CPULIST is defined
function set_affinity() { function set_affinity {
local CPULIST=$1 local CPULIST=$1
if [ -z "${CPULIST}" ]; then if [ -z "${CPULIST}" ]; then
return return
@ -280,7 +282,7 @@ function set_affinity() {
} }
# cmd_idle_priority() - command to set nice + ionice # cmd_idle_priority() - command to set nice + ionice
function cmd_idle_priority() { function cmd_idle_priority {
local NICE="" local NICE=""
local IONICE="" local IONICE=""
@ -301,13 +303,13 @@ function cmd_idle_priority() {
# print_separator() - print a horizontal separation line '\u002d' is '-' # print_separator() - print a horizontal separation line '\u002d' is '-'
function print_separator () { function print_separator {
printf '\u002d%.s' {1..80} printf '\u002d%.s' {1..80}
printf '\n' printf '\n'
} }
# tools_header() - print out common GenWare tools header # tools_header() - print out common GenWare tools header
function tools_header() { function tools_header {
local TOOLNAME=$(basename $0) local TOOLNAME=$(basename $0)
# Get timestamp # Get timestamp
@ -393,7 +395,7 @@ function tools_header() {
# tools_usage() - show generic tools tool usage # tools_usage() - show generic tools tool usage
function tools_usage() { function tools_usage {
if [ ${OPT_USE_INTERVALS} -eq 1 ]; then if [ ${OPT_USE_INTERVALS} -eq 1 ]; then
echo "usage: ${TOOLNAME} [-f] [-p <period_mins>] [-i <interval_seconds>] [-c <cpulist>] [-h]" echo "usage: ${TOOLNAME} [-f] [-p <period_mins>] [-i <interval_seconds>] [-c <cpulist>] [-h]"
else else
@ -402,7 +404,7 @@ function tools_usage() {
} }
# tools_print_help() - print generic tool help # tools_print_help() - print generic tool help
function tools_print_help() { function tools_print_help {
tools_usage tools_usage
echo echo
echo "Options:"; echo "Options:";
@ -423,7 +425,7 @@ function tools_print_help() {
} }
# tools_parse_options() -- parse common options for tools scripts # tools_parse_options() -- parse common options for tools scripts
function tools_parse_options() { function tools_parse_options {
# check for no arguments, print usage # check for no arguments, print usage
if [ $# -eq "0" ]; then if [ $# -eq "0" ]; then
tools_usage tools_usage
@ -432,8 +434,7 @@ function tools_parse_options() {
fi fi
# parse the input arguments # parse the input arguments
while getopts "fp:i:c:h" Option while getopts "fp:i:c:h" Option; do
do
case $Option in case $Option in
f) f)
OPT_FOREVER=1 OPT_FOREVER=1

View File

@ -16,8 +16,7 @@ PAGE_SIZE=$(getconf PAGE_SIZE)
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
function print_files() function print_files {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -85,8 +84,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_files print_files
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -69,8 +69,7 @@ case $1 in
stop) stop)
if [ -e ${PIDFILE} ]; then if [ -e ${PIDFILE} ]; then
pids=$(pidof -x ${NAME}) pids=$(pidof -x ${NAME})
if [[ ! -z "${pids}" ]] if [[ ! -z "${pids}" ]]; then
then
echo_success "Stopping ${NAME} [$pid]" echo_success "Stopping ${NAME} [$pid]"
start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE} --retry=TERM/3/KILL/5 start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE} --retry=TERM/3/KILL/5
# [ JGAULD: none of the following should be necessary ] # [ JGAULD: none of the following should be necessary ]

View File

@ -29,8 +29,7 @@ compute_ports=(8000 8001 8002)
traffic_types=(storage migration default drbd) traffic_types=(storage migration default drbd)
flow_ids=(1:20 1:30 1:40 1:50) flow_ids=(1:20 1:30 1:40 1:50)
function exec_cmd () function exec_cmd {
{
node="$1" node="$1"
cmd="$2" cmd="$2"
@ -41,8 +40,7 @@ function exec_cmd ()
fi fi
} }
function iperf3_server_start () function iperf3_server_start {
{
local server="$1" local server="$1"
local result="$2" local result="$2"
local port="$3" local port="$3"
@ -55,8 +53,7 @@ function iperf3_server_start ()
$(exec_cmd "${server}" "${cmd}") $(exec_cmd "${server}" "${cmd}")
} }
function iperf3_client_tcp_start () function iperf3_client_tcp_start {
{
local result="${result_dir}/throughput" local result="${result_dir}/throughput"
local cmd="" local cmd=""
local client="$1" local client="$1"
@ -76,8 +73,7 @@ function iperf3_client_tcp_start ()
$(exec_cmd "${client}" "${cmd} > ${result} 2>&1") $(exec_cmd "${client}" "${cmd} > ${result} 2>&1")
} }
function iperf3_client_udp_start () function iperf3_client_udp_start {
{
local result="${result_dir}/throughput_udp" local result="${result_dir}/throughput_udp"
local cmd="" local cmd=""
local client="$1" local client="$1"
@ -102,20 +98,17 @@ function iperf3_client_udp_start ()
$(exec_cmd "${client}" "${cmd} -b ${bw} >> ${result} 2>&1" ) $(exec_cmd "${client}" "${cmd} -b ${bw} >> ${result} 2>&1" )
} }
function iperf3_stop () function iperf3_stop {
{
local node="$1" local node="$1"
local cmd="pkill iperf3" local cmd="pkill iperf3"
$(exec_cmd "${node}" "${cmd}") $(exec_cmd "${node}" "${cmd}")
} }
function get_ip_addr () function get_ip_addr {
{
arp -a | grep -oP "(?<=$1 \()[^)]*" | head -n 1 arp -a | grep -oP "(?<=$1 \()[^)]*" | head -n 1
} }
function throughput_tcp_test() function throughput_tcp_test {
{
for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do
for interface in "${interfaces[@]}"; do for interface in "${interfaces[@]}"; do
local interface_name="management" local interface_name="management"
@ -137,8 +130,7 @@ function throughput_tcp_test()
done done
} }
function throughput_udp_test () function throughput_udp_test {
{
for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do
for interface in "${interfaces[@]}"; do for interface in "${interfaces[@]}"; do
local interface_name="management" local interface_name="management"
@ -229,8 +221,7 @@ function throughput_udp_test ()
done done
} }
function throughput_parallel_test () function throughput_parallel_test {
{
local dev="" local dev=""
local ip_addr="" local ip_addr=""
local interface_name="" local interface_name=""
@ -304,8 +295,7 @@ function throughput_parallel_test ()
done done
} }
function latency_test () function latency_test {
{
for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do for (( i = 0; i < ${#nodes[@]} ; i+=2 )); do
for interface in "${interfaces[@]}"; do for interface in "${interfaces[@]}"; do
local interface_name="management" local interface_name="management"
@ -328,16 +318,14 @@ function latency_test ()
done done
} }
function setup () function setup {
{
for node in ${nodes[@]}; do for node in ${nodes[@]}; do
iperf3_stop "${node}" iperf3_stop "${node}"
$(exec_cmd "${node}" "rm -rf ${result_dir}; mkdir -p ${result_dir}") $(exec_cmd "${node}" "rm -rf ${result_dir}; mkdir -p ${result_dir}")
done done
} }
function get_remote_results () function get_remote_results {
{
for node in ${nodes[@]}; do for node in ${nodes[@]}; do
if [ "${node}" != "${host}" ]; then if [ "${node}" != "${host}" ]; then
mkdir ${result_dir}/${node} mkdir ${result_dir}/${node}
@ -346,8 +334,7 @@ function get_remote_results ()
done done
} }
function get_interface_info () function get_interface_info {
{
local dev="" local dev=""
local ip_addr="" local ip_addr=""
printf "Network interfaces info\n" >> ${summary_file} printf "Network interfaces info\n" >> ${summary_file}
@ -365,8 +352,7 @@ function get_interface_info ()
done done
} }
function generate_summary () function generate_summary {
{
local header="" local header=""
local result="" local result=""
local result_file="" local result_file=""

View File

@ -16,8 +16,7 @@ PAGE_SIZE=$(getconf PAGE_SIZE)
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print key networking device statistics # Print key networking device statistics
function print_memory() function print_memory {
{
# Configuration for netcmds # Configuration for netcmds
MEMINFO=/proc/meminfo MEMINFO=/proc/meminfo
NODEINFO=/sys/devices/system/node/node?/meminfo NODEINFO=/sys/devices/system/node/node?/meminfo
@ -99,8 +98,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_memory print_memory
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -14,8 +14,7 @@ fi
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print key networking device statistics # Print key networking device statistics
function print_netcmds() function print_netcmds {
{
# Configuration for netcmds # Configuration for netcmds
DEV=/proc/net/dev DEV=/proc/net/dev
NETSTAT=/proc/net/netstat NETSTAT=/proc/net/netstat
@ -26,8 +25,7 @@ function print_netcmds()
for net in \ for net in \
${DEV} ${NETSTAT} ${DEV} ${NETSTAT}
do do
if [ -e "${net}" ] if [ -e "${net}" ]; then
then
${ECHO} "# ${net}" ${ECHO} "# ${net}"
${CAT} ${net} ${CAT} ${net}
${ECHO} ${ECHO}
@ -53,8 +51,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_netcmds print_netcmds
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -14,8 +14,7 @@ fi
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print key networking device statistics # Print key networking device statistics
function print_postgres() function print_postgres {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -40,8 +39,7 @@ ORDER BY pg_database_size DESC;
" "
# For each database, list tables and their sizes (similar to "\dt+") # For each database, list tables and their sizes (similar to "\dt+")
for db in "${db_list[@]}" for db in "${db_list[@]}"; do
do
${ECHO} "# postgres database: ${db}" ${ECHO} "# postgres database: ${db}"
${PSQL} -d ${db} -c " ${PSQL} -d ${db} -c "
SELECT SELECT
@ -128,8 +126,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_postgres print_postgres
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -15,8 +15,7 @@ OPT_USE_INTERVALS=1
#Need this workaround #Need this workaround
MQOPT="-n rabbit@localhost" MQOPT="-n rabbit@localhost"
# Print key networking device statistics # Print key networking device statistics
function print_rabbitmq() function print_rabbitmq {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -72,8 +71,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_rabbitmq print_rabbitmq
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -41,8 +41,7 @@ LOG "rsync engtools data from all blades:"
# controllers # controllers
SRC=/scratch/syseng_data/ SRC=/scratch/syseng_data/
DEST=/opt/backups/syseng_data/ DEST=/opt/backups/syseng_data/
for HOST in ${CONTROLLER[@]} for HOST in ${CONTROLLER[@]}; do
do
ping -c1 ${HOST} 1>/dev/null 2>/dev/null ping -c1 ${HOST} 1>/dev/null 2>/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
LOG "rsync ${RSYNC_OPT} ${USER}@${HOST}:${SRC} ${DEST}" LOG "rsync ${RSYNC_OPT} ${USER}@${HOST}:${SRC} ${DEST}"
@ -55,8 +54,7 @@ done
# computes & storage # computes & storage
SRC=/tmp/syseng_data/ SRC=/tmp/syseng_data/
DEST=/opt/backups/syseng_data/ DEST=/opt/backups/syseng_data/
for HOST in ${STORAGE[@]} ${COMPUTE[@]} for HOST in ${STORAGE[@]} ${COMPUTE[@]}; do
do
ping -c1 ${HOST} 1>/dev/null 2>/dev/null ping -c1 ${HOST} 1>/dev/null 2>/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
LOG "rsync ${RSYNC_OPT} ${USER}@${HOST}:${SRC} ${DEST}" LOG "rsync ${RSYNC_OPT} ${USER}@${HOST}:${SRC} ${DEST}"

View File

@ -29,8 +29,7 @@ set_affinity ${CPULIST}
LOG_NOCR "collecting " LOG_NOCR "collecting "
t=0 t=0
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
((t++)) ((t++))
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
if [ ${t} -ge ${REP_LOG} ]; then if [ ${t} -ge ${REP_LOG} ]; then

View File

@ -14,8 +14,7 @@ fi
OPT_USE_INTERVALS=1 OPT_USE_INTERVALS=1
# Print key networking device statistics # Print key networking device statistics
function print_vswitch() function print_vswitch {
{
print_separator print_separator
TOOL_HIRES_TIME TOOL_HIRES_TIME
@ -55,8 +54,7 @@ tools_header
# Calculate number of sample repeats based on overall interval and sampling interval # Calculate number of sample repeats based on overall interval and sampling interval
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC)) ((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
for ((rep=1; rep <= REPEATS ; rep++)) for ((rep=1; rep <= REPEATS ; rep++)); do
do
print_vswitch print_vswitch
sleep ${INTERVAL_SEC} sleep ${INTERVAL_SEC}
done done

View File

@ -22,8 +22,7 @@ YEAR=`date +'%Y'`
files="${FILE_LIST// /, }" files="${FILE_LIST// /, }"
read -p "Are you sure you want to remove all uncompressed $files files? [Y/N]: " -n 1 -r read -p "Are you sure you want to remove all uncompressed $files files? [Y/N]: " -n 1 -r
echo echo
if [[ $REPLY =~ ^[Y]$ ]] if [[ $REPLY =~ ^[Y]$ ]]; then
then
for FILE in ${FILE_LIST}; do for FILE in ${FILE_LIST}; do
rm -v */*_${YEAR}-*${FILE} rm -v */*_${YEAR}-*${FILE}
done done

View File

@ -41,8 +41,7 @@ NODE=$1
CURDATE=$(date) CURDATE=$(date)
DATESTAMP=$(date +%b-%d) DATESTAMP=$(date +%b-%d)
function sedit() function sedit {
{
local FILETOSED=$1 local FILETOSED=$1
sed -i -e "s/ */ /g" ${FILETOSED} sed -i -e "s/ */ /g" ${FILETOSED}
sed -i -e "s/ /,/g" ${FILETOSED} sed -i -e "s/ /,/g" ${FILETOSED}
@ -50,8 +49,7 @@ function sedit()
sed -i "s/,$//" ${FILETOSED} sed -i "s/,$//" ${FILETOSED}
} }
function get_filename_from_mountname() function get_filename_from_mountname {
{
local name=$1 local name=$1
local fname local fname
if test "${name#*"scratch"}" != "${name}"; then if test "${name#*"scratch"}" != "${name}"; then
@ -82,8 +80,7 @@ function get_filename_from_mountname()
echo $fname echo $fname
} }
function parse_process_schedtop_data() function parse_process_schedtop_data {
{
# Logic has been moved to a separate script so that parsing process level schedtop # Logic has been moved to a separate script so that parsing process level schedtop
# can be run either as part of parse-all.sh script or independently. # can be run either as part of parse-all.sh script or independently.
LOG "Process level schedtop parsing is turned on in lab.conf. Parsing schedtop detail..." LOG "Process level schedtop parsing is turned on in lab.conf. Parsing schedtop detail..."
@ -92,8 +89,7 @@ function parse_process_schedtop_data()
cd ${NODE} cd ${NODE}
} }
function parse_controller_specific() function parse_controller_specific {
{
# Parsing Postgres data, removing data from previous run if there are any. Generate summary # Parsing Postgres data, removing data from previous run if there are any. Generate summary
# data for each database and detail data for specified tables # data for each database and detail data for specified tables
LOG "Parsing postgres data for ${NODE}" LOG "Parsing postgres data for ${NODE}"
@ -123,14 +119,12 @@ function parse_controller_specific()
done done
} }
function parse_compute_specific() function parse_compute_specific {
{
LOG "Parsing vswitch data for ${NODE}" LOG "Parsing vswitch data for ${NODE}"
../parse-vswitch.sh ${NODE} ../parse-vswitch.sh ${NODE}
} }
function parse_occtop_data() function parse_occtop_data {
{
LOG "Parsing occtop data for ${NODE}" LOG "Parsing occtop data for ${NODE}"
bzcat *occtop.bz2 >occtop-${NODE}-${DATESTAMP}.txt bzcat *occtop.bz2 >occtop-${NODE}-${DATESTAMP}.txt
cp occtop-${NODE}-${DATESTAMP}.txt tmp.txt cp occtop-${NODE}-${DATESTAMP}.txt tmp.txt
@ -181,8 +175,7 @@ function parse_occtop_data()
rm tmp.txt tmp2.txt tmpdate.txt tmpcore.txt rm tmp.txt tmp2.txt tmpdate.txt tmpcore.txt
} }
function parse_memtop_data() function parse_memtop_data {
{
LOG "Parsing memtop data for ${NODE}" LOG "Parsing memtop data for ${NODE}"
bzcat *memtop.bz2 > memtop-${NODE}-${DATESTAMP}.txt bzcat *memtop.bz2 > memtop-${NODE}-${DATESTAMP}.txt
cp memtop-${NODE}-${DATESTAMP}.txt tmp.txt cp memtop-${NODE}-${DATESTAMP}.txt tmp.txt
@ -200,8 +193,7 @@ function parse_memtop_data()
rm tmp.txt tmp2.txt rm tmp.txt tmp2.txt
} }
function parse_netstats_data() function parse_netstats_data {
{
LOG "Parsing netstats data for ${NODE}" LOG "Parsing netstats data for ${NODE}"
# First generate the summary data then detail data for specified interfaces # First generate the summary data then detail data for specified interfaces
../parse_netstats *netstats.bz2 > netstats-summary-${NODE}-${DATESTAMP}.txt ../parse_netstats *netstats.bz2 > netstats-summary-${NODE}-${DATESTAMP}.txt
@ -225,8 +217,7 @@ function parse_netstats_data()
fi fi
} }
function parse_iostats_data() function parse_iostats_data {
{
LOG "Parsing iostat data for ${NODE}" LOG "Parsing iostat data for ${NODE}"
if [ -z "${IOSTATS_DEVICE_LIST}" ]; then if [ -z "${IOSTATS_DEVICE_LIST}" ]; then
ERRLOG "IOSTAT_DEVICE_LIST is not set in host.conf. Skipping iostats..." ERRLOG "IOSTAT_DEVICE_LIST is not set in host.conf. Skipping iostats..."
@ -236,8 +227,7 @@ function parse_iostats_data()
echo "Date/Time,${DEVICE},rqm/s,wrqm/s,r/s,w/s,rkB/s,wkB/s,avgrq-sz,avgqu-sz,await,r_await,w_await,svctm,%util" > iostat-${NODE}-${DEVICE}.csv echo "Date/Time,${DEVICE},rqm/s,wrqm/s,r/s,w/s,rkB/s,wkB/s,avgrq-sz,avgqu-sz,await,r_await,w_await,svctm,%util" > iostat-${NODE}-${DEVICE}.csv
# Dumping iostat content to tmp file # Dumping iostat content to tmp file
bzcat *iostat.bz2 | grep -E "/2015|/2016|/2017|${DEVICE}" | awk '{print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14}' > tmp.txt bzcat *iostat.bz2 | grep -E "/2015|/2016|/2017|${DEVICE}" | awk '{print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14}' > tmp.txt
while IFS= read -r current while IFS= read -r current; do
do
if test "${current#*Linux}" != "$current" if test "${current#*Linux}" != "$current"
then then
# Skip the line that contains the word "Linux" # Skip the line that contains the word "Linux"
@ -277,8 +267,7 @@ function parse_iostats_data()
fi fi
} }
function parse_diskstats_data() function parse_diskstats_data {
{
LOG "Parsing diskstats data for ${NODE}" LOG "Parsing diskstats data for ${NODE}"
if [ -z "${DISKSTATS_FILESYSTEM_LIST}" ]; then if [ -z "${DISKSTATS_FILESYSTEM_LIST}" ]; then
@ -362,8 +351,7 @@ if test "${NODE#*"controller"}" != "${NODE}"; then
# is to use inotify which requires another inotify-tools package. # is to use inotify which requires another inotify-tools package.
oldsize=0 oldsize=0
newsize=0 newsize=0
while true while true; do
do
newsize=$(stat -c %s postgres-conns.csv) newsize=$(stat -c %s postgres-conns.csv)
if [ "$oldsize" == "$newsize" ]; then if [ "$oldsize" == "$newsize" ]; then
break break

View File

@ -19,16 +19,14 @@
# e.g. >./parse-daily.sh memstats sm-eru # e.g. >./parse-daily.sh memstats sm-eru
# >./parse-daily.sh controller-0 filestats postgress # >./parse-daily.sh controller-0 filestats postgress
function print_usage() function print_usage {
{
echo "Usage: ./parse-daily.sh <parser-name> <process-name> will parse daily data for all hosts." echo "Usage: ./parse-daily.sh <parser-name> <process-name> will parse daily data for all hosts."
echo "Usage: ./parse-daily.sh <host-name> <parser-name> <process-name> will parse daily data for specified host." echo "Usage: ./parse-daily.sh <host-name> <parser-name> <process-name> will parse daily data for specified host."
echo "Valid parsers for daily stats are: memstats & filestats." echo "Valid parsers for daily stats are: memstats & filestats."
exit 1 exit 1
} }
function parse_daily_stats() function parse_daily_stats {
{
local PARSER_NAME=$1 local PARSER_NAME=$1
local PROCESS_NAME=$2 local PROCESS_NAME=$2
local TMPFILE="tmp.txt" local TMPFILE="tmp.txt"

View File

@ -25,8 +25,7 @@ else
fi fi
LOG "Parsing postgres files ${FILES}" LOG "Parsing postgres files ${FILES}"
function generate_header() function generate_header {
{
local header="Date/Time,Total" local header="Date/Time,Total"
for DB in ${DATABASE_LIST}; do for DB in ${DATABASE_LIST}; do
if [ ${DB} == "nova_api" ]; then if [ ${DB} == "nova_api" ]; then
@ -59,8 +58,7 @@ function generate_header()
echo $header echo $header
} }
function generate_grep_str() function generate_grep_str {
{
local grepstr="time:" local grepstr="time:"
for DB in ${DATABASE_LIST}; do for DB in ${DATABASE_LIST}; do
grepstr="${grepstr}|${DB}" grepstr="${grepstr}|${DB}"
@ -69,8 +67,7 @@ function generate_grep_str()
echo $grepstr echo $grepstr
} }
function init_variables() function init_variables {
{
CONN_TOTAL="0" CONN_TOTAL="0"
CONN_ACTIVE_TOTAL="0" CONN_ACTIVE_TOTAL="0"
CONN_IDLE_TOTAL="0" CONN_IDLE_TOTAL="0"
@ -85,8 +82,7 @@ function init_variables()
done done
} }
function output_values() function output_values {
{
local result="${DATEVAL} ${TIMEVAL},${CONN_TOTAL}" local result="${DATEVAL} ${TIMEVAL},${CONN_TOTAL}"
for DB in ${DATABASE_LIST}; do for DB in ${DATABASE_LIST}; do
val=$(eval echo \${CONN_${DB^^}}) val=$(eval echo \${CONN_${DB^^}})

View File

@ -17,16 +17,14 @@
PARSERDIR=$(dirname $0) PARSERDIR=$(dirname $0)
. ${PARSERDIR}/parse-util.sh . ${PARSERDIR}/parse-util.sh
function print_usage() function print_usage {
{
echo "Usage: ./parse-schedtop.sh <host-name>" echo "Usage: ./parse-schedtop.sh <host-name>"
echo " ./parse-schedtop.sh <host-name> <service-name>" echo " ./parse-schedtop.sh <host-name> <service-name>"
echo "e.g. >./parse-schedtop.sh controller-0 nova-conductor" echo "e.g. >./parse-schedtop.sh controller-0 nova-conductor"
exit 1 exit 1
} }
function sedit() function sedit {
{
local FILETOSED=$1 local FILETOSED=$1
sed -i -e "s/ */ /g" ${FILETOSED} sed -i -e "s/ */ /g" ${FILETOSED}
sed -i -e "s/ /,/2g" ${FILETOSED} sed -i -e "s/ /,/2g" ${FILETOSED}
@ -34,8 +32,7 @@ function sedit()
sed -i "s/,$//" ${FILETOSED} sed -i "s/,$//" ${FILETOSED}
} }
function parse_schedtop_data() function parse_schedtop_data {
{
HOST=$1 HOST=$1
SERVICE=$2 SERVICE=$2
LOG "Parsing ${SERVICE} schedtop for host ${HOST}" LOG "Parsing ${SERVICE} schedtop for host ${HOST}"

View File

@ -8,19 +8,16 @@
#LOGFILE="${PARSERDIR}/parserlog.txt" #LOGFILE="${PARSERDIR}/parserlog.txt"
LOGFILE="parserlog.txt" LOGFILE="parserlog.txt"
function LOG () function LOG {
{
local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" ) local tstamp_H=$( date +"%Y-%0m-%0e %H:%M:%S" )
echo -e "${tstamp_H} $0($$): $@" >> ${LOGFILE} echo -e "${tstamp_H} $0($$): $@" >> ${LOGFILE}
} }
function ERRLOG () function ERRLOG {
{
LOG "ERROR: $@" LOG "ERROR: $@"
} }
function WARNLOG () function WARNLOG {
{
LOG "WARN: $@" LOG "WARN: $@"
} }

12
tox.ini
View File

@ -14,6 +14,12 @@ deps = -r{toxinidir}/test-requirements.txt
[testenv:linters] [testenv:linters]
whitelist_externals = bash whitelist_externals = bash
#bashate ignore
#E006 Line too long
#E041 Arithmetic expansion using $[ is deprecated for $((
#E042 local declaration hides errors
#E043 Arithmetic compound has inconsistent return semantics
#E044 Use [[ for non-POSIX comparisions
commands = commands =
bash -c "find {toxinidir} \ bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \ -not \( -type d -name .?\* -prune \) \
@ -21,10 +27,10 @@ commands =
-not -name \*~ \ -not -name \*~ \
-not -name \*.md \ -not -name \*.md \
-name \*.sh \ -name \*.sh \
-print0 | xargs -0 bashate -v" -print0 | xargs -0 bashate -v \
-i E006,E041,E042,E043,E044 -e E*"
bash -c "find {toxinidir} \ bash -c "find {toxinidir} \
\( -name middleware/io-monitor/recipes-common/io-monitor/io-monitor/io_monitor/test-tools/yaml/* -prune \) \ \( -path {toxinidir}/.tox \) -a -prune \
-o \( -name .tox -prune \) \
-o -type f -name '*.yaml' \ -o -type f -name '*.yaml' \
-print0 | xargs -0 yamllint" -print0 | xargs -0 yamllint"

View File

@ -22,15 +22,13 @@ fi
# network link to autonegotiate link speed. Re-run the script in # network link to autonegotiate link speed. Re-run the script in
# the background so the parent can return right away and init can # the background so the parent can return right away and init can
# continue. # continue.
if [ $# -eq 3 ] if [ $# -eq 3 ]; then
then
$0 $DEV $NETWORKTYPE $NETWORKSPEED dummy & $0 $DEV $NETWORKTYPE $NETWORKSPEED dummy &
disown disown
exit 0 exit 0
fi fi
function test_valid_speed function test_valid_speed {
{
# After the link is enabled but before the autonegotiation is complete # After the link is enabled but before the autonegotiation is complete
# the link speed may be read as either -1 or as 4294967295 (which is # the link speed may be read as either -1 or as 4294967295 (which is
# uint(-1) in twos-complement) depending on the kernel. Neither one is valid. # uint(-1) in twos-complement) depending on the kernel. Neither one is valid.
@ -42,24 +40,20 @@ function test_valid_speed
fi fi
} }
function log function log {
{
# It seems that syslog isn't yet running, so append directly to the syslog file # It seems that syslog isn't yet running, so append directly to the syslog file
echo `date +%FT%T.%3N` `hostname` CGCS_TC_SETUP: $@ >> /var/log/platform.log echo `date +%FT%T.%3N` `hostname` CGCS_TC_SETUP: $@ >> /var/log/platform.log
} }
function infra_exists function infra_exists {
{ if [ -z "$infrastructure_interface" ]; then
if [ -z "$infrastructure_interface" ]
then
return 1 return 1
else else
return 0 return 0
fi fi
} }
function is_consolidated function is_consolidated {
{
if ! infra_exists if ! infra_exists
then then
return 1 return 1
@ -67,26 +61,22 @@ function is_consolidated
# determine whether the management interface is a parent of the # determine whether the management interface is a parent of the
# infrastructure interface based on name. # infrastructure interface based on name.
# eg. this matches enp0s8 to enp0s8.10 but not enp0s88 # eg. this matches enp0s8 to enp0s8.10 but not enp0s88
if [[ $infrastructure_interface =~ $management_interface[\.][0-9]+$ ]] if [[ $infrastructure_interface =~ $management_interface[\.][0-9]+$ ]]; then
then
return 0 return 0
fi fi
return 1 return 1
fi fi
} }
function is_vlan function is_vlan {
{ if [ -f /proc/net/vlan/$DEV ]; then
if [ -f /proc/net/vlan/$DEV ]
then
return 0 return 0
else else
return 1 return 1
fi fi
} }
function is_loopback function is_loopback {
{
# (from include/uapi/linux/if.h) # (from include/uapi/linux/if.h)
IFF_LOOPBACK=$((1<<3)) IFF_LOOPBACK=$((1<<3))
@ -101,8 +91,7 @@ function is_loopback
fi fi
} }
function setup_tc_port_filter function setup_tc_port_filter {
{
local PORT=$1 local PORT=$1
local PORTMASK=$2 local PORTMASK=$2
local FLOWID=$3 local FLOWID=$3

View File

@ -9,8 +9,7 @@
# $1 - listening port of remote log server # $1 - listening port of remote log server
PORT=$1 PORT=$1
function is_loopback function is_loopback {
{
# (from include/uapi/linux/if.h) # (from include/uapi/linux/if.h)
IFF_LOOPBACK=$((1<<3)) IFF_LOOPBACK=$((1<<3))
@ -25,14 +24,12 @@ function is_loopback
fi fi
} }
function log function log {
{
# It seems that syslog isn't yet running, so append directly to the syslog file # It seems that syslog isn't yet running, so append directly to the syslog file
echo `date +%FT%T.%3N` `hostname` CGCS_TC_SETUP: $@ >> /var/log/platform.log echo `date +%FT%T.%3N` `hostname` CGCS_TC_SETUP: $@ >> /var/log/platform.log
} }
function test_valid_speed function test_valid_speed {
{
# After the link is enabled but before the autonegotiation is complete # After the link is enabled but before the autonegotiation is complete
# the link speed may be read as either -1 or as 4294967295 (which is # the link speed may be read as either -1 or as 4294967295 (which is
# uint(-1) in twos-complement) depending on the kernel. Neither one is valid. # uint(-1) in twos-complement) depending on the kernel. Neither one is valid.
@ -44,8 +41,7 @@ function test_valid_speed
fi fi
} }
function get_dev_speed function get_dev_speed {
{
# If the link doesn't come up we won't go enabled, so here we can # If the link doesn't come up we won't go enabled, so here we can
# afford to wait forever for the link. # afford to wait forever for the link.
while true while true