You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
# linux script server http interactive logic functions encapsulation.
|
|
# Longwei Lai
|
|
###################################################################
|
|
|
|
source "${____FWK_SCRIPT_PATH}/lnx_fwk_path.sh"
|
|
source "${____FWK_SCRIPT_PATH}/lnx_fwk_server.sh"
|
|
source "${____LOGIC_SCRIPT_PATH}/lnx_logic_defs.sh"
|
|
source "${____LOGIC_SCRIPT_PATH}/lnx_logic_serversql.sh"
|
|
|
|
# send http message to specific node
|
|
# arguments:
|
|
# arg1: node
|
|
# arg2: message cmd(integer)
|
|
# arg3: sub message cmd(integer)
|
|
# arg4: http message(what message do you want to send?)
|
|
# returns:
|
|
# echo style:
|
|
# server return message
|
|
# return style:
|
|
# 0: success
|
|
# <other>: failed
|
|
function send_httpmsg_to_node()
|
|
{
|
|
local node="$1"
|
|
|
|
local msg_cmd="$2"
|
|
local msg_subcmd="$3"
|
|
local http_msg="$4"
|
|
|
|
local verify_key="${____SERVER_HTTP_KEY}"
|
|
local now_time=`date "+%s"`
|
|
|
|
# calculate sign
|
|
local verify_sign="`echo -n "${now_time}${verify_key}" | md5sum | cut -d ' ' -f 1`"
|
|
|
|
# get http access info
|
|
local http_info=(`exec_sql_cmd_on_confdb "SELECT web, port FROM conf_http WHERE nodeid = ${node}"`)
|
|
if [ $? -ne 0 ]; then
|
|
log_err "failed to get http access port from mysql!"
|
|
log_err "failed to send http message[${http_msg}] to node: ${node}!"
|
|
return 1
|
|
fi
|
|
local http_addr="http://${http_info[0]}:${http_info[1]}"
|
|
|
|
local http_packet="{\"cmd\":${msg_cmd}, \"subcmd\": ${msg_subcmd}, \"data\": ${http_msg}, \"sign\": \"${verify_sign}\", \"time\":${now_time}}"
|
|
local curl_ret="`curl --max-time 8 -s -d "${http_packet}" "${http_addr}"`"
|
|
local curl_ret_code=$?
|
|
if [ ${curl_ret_code} -ne 0 ]; then
|
|
echo -n "${curl_ret}"
|
|
return ${curl_ret_code}
|
|
else
|
|
echo -n "${curl_ret}"
|
|
return 0
|
|
fi
|
|
}
|
|
|