From fa9a94321572e588dd18078c11ac1e8fc8ca179c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 4 Jan 2022 09:52:42 +0100 Subject: [PATCH] Convert hard tabs to soft. --- compile.sh | 80 ++++++++--------- package.sh | 8 +- scripts/build_deb.sh | 32 +++---- set-version.sh | 4 +- src/main.go | 178 ++++++++++++++++++------------------- src/server.go | 206 +++++++++++++++++++++---------------------- src/utils/json.go | 10 +-- 7 files changed, 259 insertions(+), 259 deletions(-) diff --git a/compile.sh b/compile.sh index ab0f6c8..dc88058 100755 --- a/compile.sh +++ b/compile.sh @@ -5,19 +5,19 @@ SYSTEMS=( windows linux freebsd ) ARCHS=( 386 amd64 amd64p32 arm arm64 ppc ppc64 ) function usage() { - echo "Usage: ${0##*/} [ -h|--help ] [ -t|--target ] [ -a|--arch ]" - echo "" - echo " Valid systems:" - for i in "${SYSTEMS[@]}"; do - echo " * ${i}" - done - echo "" - echo " Valid architectures:" - for i in "${ARCHS[@]}"; do - echo " * ${i}" - done - echo "" - exit 1 + echo "Usage: ${0##*/} [ -h|--help ] [ -t|--target ] [ -a|--arch ]" + echo "" + echo " Valid systems:" + for i in "${SYSTEMS[@]}"; do + echo " * ${i}" + done + echo "" + echo " Valid architectures:" + for i in "${ARCHS[@]}"; do + echo " * ${i}" + done + echo "" + exit 1 } options=$(getopt -n "${0##*/}" -o "ht:a:" -l "help,target:,arch:" -- "$@") @@ -30,40 +30,40 @@ MAKE_TARGET="all" while true; do - case $1 in - -t|--target) - shift - REGEX=$(echo "${SYSTEMS[@]}" | sed 's/[[:space:]]/|/g') - [[ ! "$1" =~ ^($REGEX)$ ]] && { - echo "Incorrect system '$1' provided" - usage - } - export GOOS=$1 - ;; - -a|--arch) - shift - REGEX=$(echo "${ARCHS[@]}" | sed 's/[[:space:]]/|/g') - [[ ! "$1" =~ ^($REGEX)$ ]] && { - echo "Incorrect architecture '$1' provided" - usage - } - export GOARCH=$1 - ;; - -h|--help) usage ;; - --) shift - break - ;; - esac - shift + case $1 in + -t|--target) + shift + REGEX=$(echo "${SYSTEMS[@]}" | sed 's/[[:space:]]/|/g') + [[ ! "$1" =~ ^($REGEX)$ ]] && { + echo "Incorrect system '$1' provided" + usage + } + export GOOS=$1 + ;; + -a|--arch) + shift + REGEX=$(echo "${ARCHS[@]}" | sed 's/[[:space:]]/|/g') + [[ ! "$1" =~ ^($REGEX)$ ]] && { + echo "Incorrect architecture '$1' provided" + usage + } + export GOARCH=$1 + ;; + -h|--help) usage ;; + --) shift + break + ;; + esac + shift done MESSAGE="" if [ ! -z "${GOOS}" ]; then - MESSAGE="[\e[34m::\e[0m] Crosscompiling for: ${GOOS}" + MESSAGE="[\e[34m::\e[0m] Crosscompiling for: ${GOOS}" fi if [ ! -z "${GOARCH}" ]; then - MESSAGE="${MESSAGE} (${GOARCH})" + MESSAGE="${MESSAGE} (${GOARCH})" fi diff --git a/package.sh b/package.sh index 643dd9e..b0ba664 100755 --- a/package.sh +++ b/package.sh @@ -3,15 +3,15 @@ BUILD_INFO=build/.buildinfo if [ ! -f "${BUILD_INFO}" ]; then - echo "Could not find '${BUILD_INFO}' file, You need to compile first." - exit 1 + echo "Could not find '${BUILD_INFO}' file, You need to compile first." + exit 1 fi TYPE=$(cat "${BUILD_INFO}" | sed -n 's/^GOOS=\"\(.*\)\"/\1/p') if [ "$TYPE" == "freebsd" ]; then - MAKE_TARGET="package_freebsd" + MAKE_TARGET="package_freebsd" else - MAKE_TARGET="package_deb" + MAKE_TARGET="package_deb" fi make -B ${MAKE_TARGET} diff --git a/scripts/build_deb.sh b/scripts/build_deb.sh index 7fba5a1..e7deefa 100755 --- a/scripts/build_deb.sh +++ b/scripts/build_deb.sh @@ -5,19 +5,19 @@ PACKAGE_RSYSLOGDIR=etc/rsyslog.d PACKAGE_LOGROTATEDIR=etc/logrotate.d if [[ -f /etc/upstream-release/lsb-release ]]; then - source /etc/upstream-release/lsb-release + source /etc/upstream-release/lsb-release elif [[ -f /etc/lsb-release ]]; then - source /etc/lsb-release + source /etc/lsb-release else - echo "ERROR: could not determine debian release." - exit 1 + echo "ERROR: could not determine debian release." + exit 1 fi DISTRIB_ID=$(echo $DISTRIB_ID | tr '[:upper:]' '[:lower:]') # Default to 1 if no release is set. if [[ -z $RELEASE ]]; then - RELEASE="1" + RELEASE="1" fi PACKAGE_FULLNAME="${PACKAGE_NAME}_${PACKAGE_VERSION}-${RELEASE}-${DISTRIB_ID}-${DISTRIB_RELEASE}_amd64" @@ -40,30 +40,30 @@ cat ${PACKAGE_TMPDIR}/DEBIAN/control # Create service file mkdir -p ${PACKAGE_TMPDIR}/${PACKAGE_SYSUNITDIR} cat ${TEMPLATE_DIR}/sysunit.service \ - | sed "s~{{ PACKAGE_NAME }}~${PACKAGE_NAME}~" \ - | sed "s~{{ DESCRIPTION }}~${PACKAGE_DESCRIPTION}~" \ - | sed "s~{{ PROGRAM }}~/${PACKAGE_PREFIX}/bin/${PACKAGE_NAME}~" \ - > ${PACKAGE_TMPDIR}/${PACKAGE_SYSUNITDIR}/${PACKAGE_NAME}.service + | sed "s~{{ PACKAGE_NAME }}~${PACKAGE_NAME}~" \ + | sed "s~{{ DESCRIPTION }}~${PACKAGE_DESCRIPTION}~" \ + | sed "s~{{ PROGRAM }}~/${PACKAGE_PREFIX}/bin/${PACKAGE_NAME}~" \ + > ${PACKAGE_TMPDIR}/${PACKAGE_SYSUNITDIR}/${PACKAGE_NAME}.service # Create rsyslog file mkdir -p ${PACKAGE_TMPDIR}/${PACKAGE_RSYSLOGDIR} cat ${TEMPLATE_DIR}/rsyslog.conf \ - | sed "s~{{ PROGRAM }}~${PACKAGE_NAME}~" \ - | sed "s~{{ LOG_FILE }}~${PACKAGE_LOGFILE}~" \ - > ${PACKAGE_TMPDIR}/${PACKAGE_RSYSLOGDIR}/49-${PACKAGE_NAME}.conf + | sed "s~{{ PROGRAM }}~${PACKAGE_NAME}~" \ + | sed "s~{{ LOG_FILE }}~${PACKAGE_LOGFILE}~" \ + > ${PACKAGE_TMPDIR}/${PACKAGE_RSYSLOGDIR}/49-${PACKAGE_NAME}.conf # Create logrotate file mkdir -p ${PACKAGE_TMPDIR}/${PACKAGE_LOGROTATEDIR} cat ${TEMPLATE_DIR}/logrotate.conf \ - | sed "s~{{ LOG_FILE }}~${PACKAGE_LOGFILE}~" \ - > ${PACKAGE_TMPDIR}/${PACKAGE_LOGROTATEDIR}/${PACKAGE_NAME}.conf + | sed "s~{{ LOG_FILE }}~${PACKAGE_LOGFILE}~" \ + > ${PACKAGE_TMPDIR}/${PACKAGE_LOGROTATEDIR}/${PACKAGE_NAME}.conf chmod 644 ${PACKAGE_TMPDIR}/${PACKAGE_LOGROTATEDIR}/${PACKAGE_NAME}.conf # Cerate config file mkdir -p ${PACKAGE_TMPDIR}/${PACKAGE_ETCDIR} cat ${TEMPLATE_DIR}/config \ - | sed "s~{{ PACKAGE_NAME }}~${PACKAGE_NAME}~" \ - > ${PACKAGE_TMPDIR}/${PACKAGE_ETCDIR}/env + | sed "s~{{ PACKAGE_NAME }}~${PACKAGE_NAME}~" \ + > ${PACKAGE_TMPDIR}/${PACKAGE_ETCDIR}/env # Copy program mkdir -p ${PACKAGE_TMPDIR}/${PACKAGE_BINDIR} diff --git a/set-version.sh b/set-version.sh index 35832b4..14e810e 100755 --- a/set-version.sh +++ b/set-version.sh @@ -1,8 +1,8 @@ #!/bin/bash if [ $# -lt 1 ]; then - echo "$0 " - exit 1 + echo "$0 " + exit 1 fi sed -i "s:PACKAGE_VERSION=\\\\\"\(.*\)\\\\\":PACKAGE_VERSION=\\\\\"$1\\\\\":g" Makefile diff --git a/src/main.go b/src/main.go index 17b5092..69536f5 100644 --- a/src/main.go +++ b/src/main.go @@ -2,12 +2,12 @@ package main import ( - "os" - "os/signal" - "syscall" - log "github.com/inconshreveable/log15" - "github.com/eosswedenorg-go/pid" - "github.com/pborman/getopt/v2" + "os" + "os/signal" + "syscall" + log "github.com/inconshreveable/log15" + "github.com/eosswedenorg-go/pid" + "github.com/pborman/getopt/v2" ) // Command line flags @@ -29,43 +29,43 @@ var logger log.Logger // --------------------------------------------------------- func argv_listen_addr() string { - var addr string + var addr string - argv := getopt.Args() - if len(argv) > 0 { - addr = argv[0] - } else { - addr = "127.0.0.1" - } + argv := getopt.Args() + if len(argv) > 0 { + addr = argv[0] + } else { + addr = "127.0.0.1" + } - addr += ":" - if len(argv) > 1 { - addr += argv[1] - } else { - addr += "1337" - } + addr += ":" + if len(argv) > 1 { + addr += argv[1] + } else { + addr += "1337" + } - return addr + return addr } func setLogFile() { - // Open file - fd, err := os.OpenFile(logFile, os.O_APPEND | os.O_CREATE | os.O_WRONLY, 0644) - if err != nil { - logger.Error(err.Error()) - } + // Open file + fd, err := os.OpenFile(logFile, os.O_APPEND | os.O_CREATE | os.O_WRONLY, 0644) + if err != nil { + logger.Error(err.Error()) + } - // Try close if old descriptor is defined. - if logfd != nil { - if err = logfd.Close(); err != nil { - logger.Error(err.Error()) - } - } + // Try close if old descriptor is defined. + if logfd != nil { + if err = logfd.Close(); err != nil { + logger.Error(err.Error()) + } + } - // Update variable and set log writer. - logfd = fd - logger.SetHandler(log.StreamHandler(logfd, log.LogfmtFormat())) + // Update variable and set log writer. + logfd = fd + logger.SetHandler(log.StreamHandler(logfd, log.LogfmtFormat())) } // signalEventLoop() @@ -74,88 +74,88 @@ func setLogFile() { // --------------------------------------------------------- func signalEventLoop() { - // Setup a channel - sig_ch := make(chan os.Signal, 1) + // Setup a channel + sig_ch := make(chan os.Signal, 1) - // subscribe to SIGHUP signal. - signal.Notify(sig_ch, syscall.SIGHUP) + // subscribe to SIGHUP signal. + signal.Notify(sig_ch, syscall.SIGHUP) - // Event loop (runs in a seperate thread) - go func() { - for { - // Block until we get a signal. - sig := <- sig_ch + // Event loop (runs in a seperate thread) + go func() { + for { + // Block until we get a signal. + sig := <- sig_ch - switch sig { - // SIGHUP is sent when logfile is rotated. - case syscall.SIGHUP : - msg := "SIGHUP (Logfile was rotated): " + switch sig { + // SIGHUP is sent when logfile is rotated. + case syscall.SIGHUP : + msg := "SIGHUP (Logfile was rotated): " - if logfd != nil { - setLogFile() - msg += "Filedescriptor was updated" - } else { - msg += "No Filedescriptor to update (most likely uses standard out/err streams)" - } + if logfd != nil { + setLogFile() + msg += "Filedescriptor was updated" + } else { + msg += "No Filedescriptor to update (most likely uses standard out/err streams)" + } - logger.Info(msg) - default: - logger.Warn("Unknown signal", "signal", sig) - } - } - }() + logger.Info(msg) + default: + logger.Warn("Unknown signal", "signal", sig) + } + } + }() } // main // --------------------------------------------------------- func main() { - var version bool + var version bool var usage bool - var addr string; + var addr string; - logger = log.New() + logger = log.New() - // Command line parsing + // Command line parsing getopt.SetParameters("[ip] [port]") getopt.FlagLong(&usage, "help", 'h', "Print this help text") - getopt.FlagLong(&version, "version", 'v', "Print version") - getopt.FlagLong(&logFile, "log", 'l', "Path to log file", "file") - getopt.FlagLong(&pidFile, "pid", 'p', "Path to pid file", "file") - getopt.Parse() + getopt.FlagLong(&version, "version", 'v', "Print version") + getopt.FlagLong(&logFile, "log", 'l', "Path to log file", "file") + getopt.FlagLong(&pidFile, "pid", 'p', "Path to pid file", "file") + getopt.Parse() if usage { getopt.Usage() return } - if version { - print("Version: v1.1\n") - return; - } + if version { + print("Version: v1.1\n") + return; + } - // Open logfile. - if len(logFile) > 0 { - setLogFile() - } + // Open logfile. + if len(logFile) > 0 { + setLogFile() + } - logger.Info("Process is starting", "pid", pid.Get()) + logger.Info("Process is starting", "pid", pid.Get()) - if len(pidFile) > 0 { - logger.Info("Writing pidfile", "file", pidFile) - err := pid.Save(pidFile) - if err != nil { - logger.Error("Failed to write pidfile", "msg", err) - } - } + if len(pidFile) > 0 { + logger.Info("Writing pidfile", "file", pidFile) + err := pid.Save(pidFile) + if err != nil { + logger.Error("Failed to write pidfile", "msg", err) + } + } - // Run the signal event loop. - signalEventLoop() + // Run the signal event loop. + signalEventLoop() - addr = argv_listen_addr() + addr = argv_listen_addr() - logger.Info("TCP Server started", "addr", addr) + logger.Info("TCP Server started", "addr", addr) - // Start listening to TCP Connections - spawnTcpServer(addr); + // Start listening to TCP Connections + spawnTcpServer(addr); } diff --git a/src/server.go b/src/server.go index 80f4669..f3fc5e8 100644 --- a/src/server.go +++ b/src/server.go @@ -2,12 +2,12 @@ package main import ( "fmt" - "time" - "strings" - "strconv" - "internal/utils" - "github.com/eosswedenorg-go/eosapi" - "github.com/eosswedenorg-go/haproxy" + "time" + "strings" + "strconv" + "internal/utils" + "github.com/eosswedenorg-go/eosapi" + "github.com/eosswedenorg-go/haproxy" "github.com/eosswedenorg-go/tcp_server" ) @@ -15,30 +15,30 @@ import ( // --------------------------------------------------------- func check_api(p eosapi.ReqParams, block_time float64) (haproxy.HealthCheckStatus, string) { - info, err := eosapi.GetInfo(p) - if err != nil { - msg := fmt.Sprintf("%s", err); - return haproxy.HealthCheckFailed, msg - } + info, err := eosapi.GetInfo(p) + if err != nil { + msg := fmt.Sprintf("%s", err); + return haproxy.HealthCheckFailed, msg + } - // Check HTTP Status Code - if info.HTTPStatusCode > 299 { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because %v was received from backend", info.HTTPStatusCode) - } + // Check HTTP Status Code + if info.HTTPStatusCode > 299 { + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because %v was received from backend", info.HTTPStatusCode) + } - // Validate head block. - now := time.Now().In(time.UTC) - diff := now.Sub(info.HeadBlockTime).Seconds() + // Validate head block. + now := time.Now().In(time.UTC) + diff := now.Sub(info.HeadBlockTime).Seconds() - if diff > block_time { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because head block is lagging %.0f seconds", diff) - } else if diff < -block_time { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because head block is %.0f seconds into the future", diff) - } - return haproxy.HealthCheckUp, "OK" + if diff > block_time { + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because head block is lagging %.0f seconds", diff) + } else if diff < -block_time { + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because head block is %.0f seconds into the future", diff) + } + return haproxy.HealthCheckUp, "OK" } // check_api_v2 (hyperion) @@ -47,111 +47,111 @@ func check_api(p eosapi.ReqParams, block_time float64) (haproxy.HealthCheckStatu // --------------------------------------------------------- func check_api_v2(p eosapi.ReqParams, offset int64) (haproxy.HealthCheckStatus, string) { - health, err := eosapi.GetHealth(p) - if err != nil { - msg := fmt.Sprintf("%s", err); - return haproxy.HealthCheckFailed, msg - } + health, err := eosapi.GetHealth(p) + if err != nil { + msg := fmt.Sprintf("%s", err); + return haproxy.HealthCheckFailed, msg + } // Check HTTP Status Code if health.HTTPStatusCode > 299 { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because %v was received from backend", health.HTTPStatusCode) + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because %v was received from backend", health.HTTPStatusCode) } - // Fetch elasticsearch and nodeos block numbers from json. - var es_block int64 = 0 - var node_block int64 = 0 + // Fetch elasticsearch and nodeos block numbers from json. + var es_block int64 = 0 + var node_block int64 = 0 - for _, v := range health.Health { - if v.Name == "Elasticsearch" { - es_block = utils.JsonGetInt64(v.Data["last_indexed_block"]) - } else if v.Name == "NodeosRPC" { - node_block = utils.JsonGetInt64(v.Data["head_block_num"]) - } - } + for _, v := range health.Health { + if v.Name == "Elasticsearch" { + es_block = utils.JsonGetInt64(v.Data["last_indexed_block"]) + } else if v.Name == "NodeosRPC" { + node_block = utils.JsonGetInt64(v.Data["head_block_num"]) + } + } - // Error out if ether or both are zero. - if es_block == 0 || node_block == 0 { - msg := fmt.Sprintf("Failed to get Elasticsearch and/or nodeos " + - "block numbers (es: %d, eos: %d)", es_block, node_block) - return haproxy.HealthCheckFailed, msg - } + // Error out if ether or both are zero. + if es_block == 0 || node_block == 0 { + msg := fmt.Sprintf("Failed to get Elasticsearch and/or nodeos " + + "block numbers (es: %d, eos: %d)", es_block, node_block) + return haproxy.HealthCheckFailed, msg + } - // Check if ES is behind or in the future. - diff := node_block - es_block; - if diff > offset { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because Elastic is %d blocks behind", diff) - } else if diff < -offset { - return haproxy.HealthCheckDown, - fmt.Sprintf("Taking offline because Elastic is %d blocks into the future", -1 * diff) - } - return haproxy.HealthCheckUp, "OK" + // Check if ES is behind or in the future. + diff := node_block - es_block; + if diff > offset { + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because Elastic is %d blocks behind", diff) + } else if diff < -offset { + return haproxy.HealthCheckDown, + fmt.Sprintf("Taking offline because Elastic is %d blocks into the future", -1 * diff) + } + return haproxy.HealthCheckUp, "OK" } // onTcpMessage callback function // --------------------------------------------------------- func onTcpMessage(c *tcp_server.Client, args string) { - params := eosapi.ReqParams{} - var block_time int = 10 - var version string = "v1" + params := eosapi.ReqParams{} + var block_time int = 10 + var version string = "v1" - // Parse arguments. - // ------------------- - split := strings.Split(strings.TrimSpace(args), "|") + // Parse arguments. + // ------------------- + split := strings.Split(strings.TrimSpace(args), "|") - // 1. url (scheme + ip/domain + port) - params.Url = split[0] + // 1. url (scheme + ip/domain + port) + params.Url = split[0] - // 2. Block time. - if len(split) > 1 { - p, err := strconv.ParseInt(split[1], 10, 32) - if err == nil { - block_time = int(p) - } - } + // 2. Block time. + if len(split) > 1 { + p, err := strconv.ParseInt(split[1], 10, 32) + if err == nil { + block_time = int(p) + } + } - // 3. Version - if len(split) > 2 { - version = split[2] - } + // 3. Version + if len(split) > 2 { + version = split[2] + } - // 4. Host - if len(split) > 3 { - params.Host = split[3] - } + // 4. Host + if len(split) > 3 { + params.Host = split[3] + } - // Check api. - // ------------------- - var status haproxy.HealthCheckStatus - var msg string + // Check api. + // ------------------- + var status haproxy.HealthCheckStatus + var msg string - if version == "v2" { - status, msg = check_api_v2(params, int64(block_time / 2)) - } else { - version = "v1" - status, msg = check_api(params, float64(block_time)) - } + if version == "v2" { + status, msg = check_api_v2(params, int64(block_time / 2)) + } else { + version = "v1" + status, msg = check_api(params, float64(block_time)) + } - logger.Info("API Check", "version", version, "url", params.Url, - "block", block_time / 2, "status", status) + logger.Info("API Check", "version", version, "url", params.Url, + "block", block_time / 2, "status", status) - if status != haproxy.HealthCheckUp && len(msg) > 0 { - logger.Warn("API Check Failed", "message", msg) - } + if status != haproxy.HealthCheckUp && len(msg) > 0 { + logger.Warn("API Check Failed", "message", msg) + } - // Report status to HAproxy - c.WriteString(fmt.Sprintln(status)) - c.Close() + // Report status to HAproxy + c.WriteString(fmt.Sprintln(status)) + c.Close() } // spawnTcpServer // --------------------------------------------------------- func spawnTcpServer(addr string) { - server := tcp_server.New(addr) - server.OnMessage(onTcpMessage) + server := tcp_server.New(addr) + server.OnMessage(onTcpMessage) server.Listen() } diff --git a/src/utils/json.go b/src/utils/json.go index 17feeba..dc15a87 100644 --- a/src/utils/json.go +++ b/src/utils/json.go @@ -9,9 +9,9 @@ package utils // --------------------------------------------------------- func JsonGetInt64(input interface{}) (int64) { - v, res := input.(float64) - if res { - return (int64) (v) - } - return 0 + v, res := input.(float64) + if res { + return (int64) (v) + } + return 0 }