mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-28 01:47:19 +01:00
obuspa: 6.0.0.2
This commit is contained in:
parent
a5aeba560e
commit
23d564116c
3 changed files with 289 additions and 50 deletions
|
|
@ -20,7 +20,7 @@ config OBUSPA_MTP_ENABLE_STOMP
|
|||
|
||||
config OBUSPA_MTP_ENABLE_COAP
|
||||
bool "Enable CoAP as mtp protocol"
|
||||
default n
|
||||
default y
|
||||
|
||||
config OBUSPA_CONTROLLER_MTP_VERIFY
|
||||
bool "Enable verification of MQTT response topic before processing the message"
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=obuspa
|
||||
PKG_VERSION:=6.0.0.1
|
||||
PKG_VERSION:=6.0.0.2
|
||||
|
||||
LOCAL_DEV:=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
|
||||
PKG_SOURCE_VERSION:=6372841ada18a4f577799fedb19f489ec1f28255
|
||||
PKG_SOURCE_VERSION:=44118c2d59328b90591634bf74159329a98c17bc
|
||||
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
STOP=2
|
||||
STOP=02
|
||||
USE_PROCD=1
|
||||
|
||||
PROG=/usr/sbin/obuspa
|
||||
CONFIGURATION=obuspa
|
||||
|
||||
ENV_PROFILE="/root/.profile"
|
||||
KEEP_FILES="/lib/upgrade/keep.d/obuspa"
|
||||
KEEP_FILE="/lib/upgrade/keep.d/obuspa"
|
||||
|
||||
RESET_FILE="/tmp/obuspa/obuspa_param_reset.txt"
|
||||
SQL_DB_FILE="/tmp/obuspa/usp.db"
|
||||
|
|
@ -112,8 +112,8 @@ get_refrence_path()
|
|||
value="${2}"
|
||||
path=""
|
||||
|
||||
if [ -f "${SQL_DB_FILE}" ]; then
|
||||
path=$(${PROG} -f ${SQL_DB_FILE} -c show database |grep "${dmref}\d.Alias "|grep -w "${value}")
|
||||
if [ -f "${DB_DUMP}" ]; then
|
||||
path=$(grep "${dmref}\d.Alias " ${DB_DUMP}|grep -w "${value}")
|
||||
elif [ -f "${RESET_FILE}" ]; then
|
||||
path=$(grep "${dmref}\d.Alias " ${RESET_FILE}|grep -w "${value}")
|
||||
fi
|
||||
|
|
@ -123,14 +123,18 @@ get_refrence_path()
|
|||
|
||||
update_keep()
|
||||
{
|
||||
keep_file=${1}
|
||||
file=${1}
|
||||
|
||||
if [ -z "${keep_file}" ]; then
|
||||
if [ -z "${file}" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
if ! grep -q "${keep_file}" ${KEEP_FILES}; then
|
||||
echo "${keep_file}" >> ${KEEP_FILES}
|
||||
if [ ! -f "${KEEP_FILE}" ]; then
|
||||
touch "${KEEP_FILE}"
|
||||
fi
|
||||
|
||||
if ! grep -q "${file}" ${KEEP_FILE}; then
|
||||
echo "${file}" >> ${KEEP_FILE}
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -200,13 +204,15 @@ validate_controller_section()
|
|||
'Enable:bool:1' \
|
||||
'EndpointID:string' \
|
||||
'assigned_role_name:string' \
|
||||
'AssignedRole:string' \
|
||||
'Protocol:or("STOMP","CoAP","MQTT", "WebSocket")' \
|
||||
'Destination:string' \
|
||||
'Topic:string' \
|
||||
'ParameterName:list(string)' \
|
||||
'Reference:string' \
|
||||
'mqtt:string' \
|
||||
'stomp:string' \
|
||||
'Host:host' \
|
||||
'Host:string' \
|
||||
'Port:port' \
|
||||
'Path:string' \
|
||||
'EnableEncryption:bool'
|
||||
|
|
@ -218,7 +224,7 @@ validate_subscription_section()
|
|||
'Enable:bool:1' \
|
||||
'NotifType:or("ValueChange","ObjectCreation","ObjectDeletion","OperationComplete","Event")' \
|
||||
'ReferenceList:list(string)' \
|
||||
'Persistent:bool:1' \
|
||||
'Recipient:string' \
|
||||
'controller:string'
|
||||
}
|
||||
|
||||
|
|
@ -233,6 +239,7 @@ validate_mtp_section()
|
|||
'Path:string' \
|
||||
'mqtt:string' \
|
||||
'stomp:string' \
|
||||
'Reference:string' \
|
||||
'EnableEncryption:bool'
|
||||
}
|
||||
|
||||
|
|
@ -240,7 +247,7 @@ validate_stomp_connection_section()
|
|||
{
|
||||
uci_validate_section ${CONFIGURATION} stomp "${1}" \
|
||||
'Enable:bool:1' \
|
||||
'Host:host' \
|
||||
'Host:string' \
|
||||
'Port:port:61613' \
|
||||
'Username:string' \
|
||||
'Password:string' \
|
||||
|
|
@ -253,7 +260,7 @@ validate_mqtt_client_section()
|
|||
{
|
||||
uci_validate_section ${CONFIGURATION} mqtt "${1}" \
|
||||
'Enable:bool:1' \
|
||||
'BrokerAddress:host' \
|
||||
'BrokerAddress:string' \
|
||||
'BrokerPort:port:1883' \
|
||||
'Username:string' \
|
||||
'Password:string' \
|
||||
|
|
@ -350,16 +357,18 @@ configure_controller()
|
|||
{
|
||||
local EndpointID Enable
|
||||
local Protocol Destination
|
||||
local Topic mqtt stomp assigned_role_name ParameterName
|
||||
local Host Port Path EnableEncryption
|
||||
local dm_ref
|
||||
local Topic mqtt stomp assigned_role_name AssignedRole ParameterName
|
||||
local Host Port Path EnableEncryption Reference
|
||||
local dm_ref sec
|
||||
|
||||
sec="${1}"
|
||||
validate_controller_section "${1}" || {
|
||||
log "Validation of controller section failed"
|
||||
return 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.LocalAgent.Controller." "uci-${1}"
|
||||
sec="${sec/controller_/cpe-}"
|
||||
get_base_path "Device.LocalAgent.Controller." "${sec}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
|
|
@ -371,21 +380,30 @@ configure_controller()
|
|||
fi
|
||||
|
||||
dm_ref=""
|
||||
if [ "${Protocol}" = "STOMP" ]; then
|
||||
dm_ref=$(get_refrence_path "Device.STOMP.Connection." "uci-${stomp}")
|
||||
elif [ "${Protocol}" = "MQTT" ]; then
|
||||
dm_ref=$(get_refrence_path "Device.MQTT.Client." "uci-${mqtt}")
|
||||
if [ -z "${Reference}" ]; then
|
||||
if [ "${Protocol}" = "STOMP" ]; then
|
||||
stomp="${stomp/stomp_/cpe-}"
|
||||
dm_ref=$(get_refrence_path "Device.STOMP.Connection." "${stomp}")
|
||||
elif [ "${Protocol}" = "MQTT" ]; then
|
||||
mqtt="${mqtt/mqtt_/cpe-}"
|
||||
dm_ref=$(get_refrence_path "Device.MQTT.Client." "${mqtt}")
|
||||
fi
|
||||
else
|
||||
dm_ref="${Reference}"
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.EndpointID" "${EndpointID}"
|
||||
if [ -n "${assigned_role_name}" ]; then
|
||||
AssignedRole=$(get_role_index "${assigned_role_name}")
|
||||
fi
|
||||
|
||||
if [ -n "${AssignedRole}" ]; then
|
||||
db_set "${BASEPATH}.AssignedRole" "${AssignedRole}"
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.MTP.1.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.MTP.1.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.MTP.1.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.MTP.1.Protocol" "${Protocol}"
|
||||
# only support configuration of one mtp path per controller using uci
|
||||
|
|
@ -412,7 +430,7 @@ configure_controller()
|
|||
|
||||
for param in ${ParameterName}
|
||||
do
|
||||
db_set "${BASEPATH}.BootParameter.${_pnum}.Alias" "uci-${1}-${_pnum}"
|
||||
db_set "${BASEPATH}.BootParameter.${_pnum}.Alias" "${sec}_boot_${_pnum}"
|
||||
db_set "${BASEPATH}.BootParameter.${_pnum}.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.BootParameter.${_pnum}.ParameterName" "${param}"
|
||||
_pnum=$(( _pnum + 1 ))
|
||||
|
|
@ -423,25 +441,29 @@ configure_controller()
|
|||
|
||||
configure_subscription()
|
||||
{
|
||||
local Enable NotifType ReferenceList Persistent controller
|
||||
local Enable NotifType ReferenceList controller
|
||||
local dm_ref
|
||||
local sec
|
||||
|
||||
sec="${1}"
|
||||
validate_subscription_section "${1}" || {
|
||||
log "Validation of subscription section failed"
|
||||
return 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.LocalAgent.Subscription." "uci-${1}"
|
||||
sec="${sec/sub_/cpe-}"
|
||||
get_base_path "Device.LocalAgent.Subscription." "sub_${1}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
fi
|
||||
|
||||
if [ -n "${controller}" ]; then
|
||||
dm_ref=$(get_refrence_path "Device.LocalAgent.Controller." "uci-${controller}")
|
||||
controller="${controller/controller_/cpe-}"
|
||||
dm_ref=$(get_refrence_path "Device.LocalAgent.Controller." "${controller}")
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.ID" "uci-${1}"
|
||||
db_set "${BASEPATH}.CreationDate" "$(date -I'seconds')"
|
||||
db_set "${BASEPATH}.Enable" "${Enable}"
|
||||
|
|
@ -450,7 +472,7 @@ configure_subscription()
|
|||
ReferenceList=${ReferenceList// /,}
|
||||
db_set "${BASEPATH}.ReferenceList" "${ReferenceList}"
|
||||
fi
|
||||
db_set "${BASEPATH}.Persistent" "${Persistent}"
|
||||
db_set "${BASEPATH}.Persistent" "1"
|
||||
db_set "${BASEPATH}.Recipient" "${dm_ref}"
|
||||
}
|
||||
|
||||
|
|
@ -488,8 +510,7 @@ get_role_index()
|
|||
*)
|
||||
local ji=0
|
||||
|
||||
check_json_load
|
||||
if [ "$?" -eq "0" ]; then
|
||||
if check_json_load; then
|
||||
ji=$(get_role_index_from_json "${role_name}" "${role_def_file}")
|
||||
fi
|
||||
idx=$(( ji + 2 )) # Add predefined roles
|
||||
|
|
@ -501,13 +522,16 @@ get_role_index()
|
|||
configure_challenges()
|
||||
{
|
||||
local Enable Description role_name Role Value Retries LockoutPeriod
|
||||
local sec
|
||||
|
||||
sec="${1}"
|
||||
validate_challenge_section "${1}" || {
|
||||
log "Validation of challenge section failed"
|
||||
exit 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.LocalAgent.ControllerTrust.Challenge." "uci-${1}"
|
||||
sec="${sec/challenge_/cpe-}"
|
||||
get_base_path "Device.LocalAgent.ControllerTrust.Challenge." "${sec}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
|
|
@ -518,7 +542,7 @@ configure_challenges()
|
|||
return 1;
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.Description" "${Description}"
|
||||
|
||||
|
|
@ -535,14 +559,16 @@ configure_challenges()
|
|||
configure_mtp() {
|
||||
local Enable Protocol ResponseTopicConfigured
|
||||
local Path Port EnableEncryption
|
||||
local stomp mqtt dm_ref
|
||||
local stomp mqtt dm_ref sec
|
||||
|
||||
sec="${1}"
|
||||
validate_mtp_section "${1}" || {
|
||||
log "Validation of mtp section failed"
|
||||
return 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.LocalAgent.MTP." "uci-${1}"
|
||||
sec="${sec/mtp_/cpe-}"
|
||||
get_base_path "Device.LocalAgent.MTP." "${sec}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
|
|
@ -554,13 +580,19 @@ configure_mtp() {
|
|||
fi
|
||||
|
||||
dm_ref=""
|
||||
if [ "${Protocol}" = "STOMP" ]; then
|
||||
dm_ref=$(get_refrence_path "Device.STOMP.Connection." "uci-${stomp}")
|
||||
elif [ "${Protocol}" = "MQTT" ]; then
|
||||
dm_ref=$(get_refrence_path "Device.MQTT.Client." "uci-${mqtt}")
|
||||
if [ -z "${Reference}" ]; then
|
||||
if [ "${Protocol}" = "STOMP" ]; then
|
||||
stomp="${stomp/stomp_/cpe-}"
|
||||
dm_ref=$(get_refrence_path "Device.STOMP.Connection." "${stomp}")
|
||||
elif [ "${Protocol}" = "MQTT" ]; then
|
||||
mqtt="${mqtt/mqtt_/cpe-}"
|
||||
dm_ref=$(get_refrence_path "Device.MQTT.Client." "${mqtt}")
|
||||
fi
|
||||
else
|
||||
dm_ref="${Reference}"
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.Protocol" "${Protocol}"
|
||||
if [ "${Protocol}" = "MQTT" ]; then
|
||||
|
|
@ -583,19 +615,22 @@ configure_mtp() {
|
|||
configure_stomp_connection() {
|
||||
local Host Username Password Enable Port VirtualHost
|
||||
local EnableEncryption EnableHeartbeats
|
||||
local sec
|
||||
|
||||
sec="${1}"
|
||||
validate_stomp_connection_section "${1}" || {
|
||||
log "Validation of stomp section failed"
|
||||
return 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.STOMP.Connection." "uci-${1}"
|
||||
sec="${sec/stomp_/cpe-}"
|
||||
get_base_path "Device.STOMP.Connection." "${sec}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.Host" "${Host}"
|
||||
db_set "${BASEPATH}.Username" "${Username}"
|
||||
db_set "${BASEPATH}.Password" "${Password}"
|
||||
|
|
@ -611,19 +646,22 @@ configure_stomp_connection() {
|
|||
configure_mqtt_client(){
|
||||
local BrokerAddress BrokerPort Enable Username Password ProtocolVersion
|
||||
local TransportProtocol ClientID
|
||||
local sec
|
||||
|
||||
sec="${1}"
|
||||
validate_mqtt_client_section "${1}" || {
|
||||
log "Validation of mqtt section failed"
|
||||
return 1;
|
||||
}
|
||||
|
||||
get_base_path "Device.MQTT.Client." "uci-${1}"
|
||||
sec="${sec/mqtt_/cpe-}"
|
||||
get_base_path "Device.MQTT.Client." "${sec}"
|
||||
if [ -z "${BASEPATH}" ]; then
|
||||
log "Failed to get path [$BASEPATH]"
|
||||
return 1;
|
||||
fi
|
||||
|
||||
db_set "${BASEPATH}.Alias" "uci-${1}"
|
||||
db_set "${BASEPATH}.Alias" "${sec}"
|
||||
db_set "${BASEPATH}.Enable" "${Enable}"
|
||||
db_set "${BASEPATH}.BrokerAddress" "${BrokerAddress}"
|
||||
db_set "${BASEPATH}.BrokerPort" "${BrokerPort}"
|
||||
|
|
@ -705,21 +743,222 @@ configure_obuspa() {
|
|||
fi
|
||||
}
|
||||
|
||||
get_instances_from_db_dump()
|
||||
{
|
||||
local obj inst
|
||||
|
||||
obj="${1}\d"
|
||||
if [ ! -f "${DB_DUMP}" ]; then
|
||||
echo ""
|
||||
return 0;
|
||||
fi
|
||||
|
||||
inst="$(grep -oe "${obj}" "${DB_DUMP}"|uniq)"
|
||||
echo "$inst"
|
||||
}
|
||||
|
||||
get_param_value_from_dump()
|
||||
{
|
||||
local param value
|
||||
|
||||
param="${1}"
|
||||
|
||||
if [ -z "${param}" ] || [ ! -f "${DB_DUMP}" ]; then
|
||||
log "error getting param"
|
||||
echo ""
|
||||
return 0
|
||||
fi
|
||||
|
||||
value="$(grep "^${param} " ${DB_DUMP}|awk '{print $3}')"
|
||||
|
||||
echo "$value"
|
||||
}
|
||||
|
||||
update_uci_sec()
|
||||
{
|
||||
local sec tmp
|
||||
|
||||
sec="${1}"
|
||||
stype="${2}"
|
||||
if [ -z "$sec" ] || [ -z "$stype" ]; then
|
||||
log "No section name, error"
|
||||
return 0
|
||||
fi
|
||||
|
||||
tmp="$(uci_get obuspa "${sec}")"
|
||||
if [ "$tmp" != "$stype" ]; then
|
||||
uci_add obuspa "${stype}" "${sec}"
|
||||
fi
|
||||
}
|
||||
|
||||
sync_db_controller()
|
||||
{
|
||||
local cntrs copts sec pvalue protocol
|
||||
|
||||
copts="Enable EndpointID AssignedRole"
|
||||
popts="Destination Topic Reference Host Port Path EnableEncryption"
|
||||
ropts="assigned_role_name mqtt stomp"
|
||||
|
||||
cntrs="$(get_instances_from_db_dump Device.LocalAgent.Controller.)"
|
||||
for cntr in $cntrs; do
|
||||
sec="$(get_param_value_from_dump "${cntr}".Alias)"
|
||||
sec="${sec/cpe-/controller_}"
|
||||
sec="${sec/-/_}"
|
||||
|
||||
update_uci_sec "${sec}" controller
|
||||
for param in ${copts}; do
|
||||
pvalue="$(get_param_value_from_dump "${cntr}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
uci_set obuspa "${sec}" "_sync" "1"
|
||||
|
||||
protocol="$(get_param_value_from_dump "${cntr}".MTP.1.Protocol)"
|
||||
if [ -z "${protocol}" ]; then
|
||||
break;
|
||||
fi
|
||||
uci_set obuspa "${sec}" "Protocol" "${protocol}"
|
||||
for param in ${popts}; do
|
||||
pvalue="$(get_param_value_from_dump "${cntr}".MTP.1."${protocol}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
for param in ${ropts}; do
|
||||
uci_set obuspa "${sec}" "${param}" ""
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
sync_db_localagent_mtp()
|
||||
{
|
||||
local mtps opts popts sec pvalue protocol
|
||||
|
||||
opts="Enable"
|
||||
popts="ResponseTopicConfigured Destination Port Path Reference EnableEncryption"
|
||||
ropts="mqtt stomp"
|
||||
|
||||
mtps="$(get_instances_from_db_dump Device.LocalAgent.MTP.)"
|
||||
for inst in $mtps; do
|
||||
sec="$(get_param_value_from_dump "${inst}".Alias)"
|
||||
sec="${sec/cpe-/mtp_}"
|
||||
sec="${sec/-/_}"
|
||||
update_uci_sec "${sec}" mtp
|
||||
for param in ${opts}; do
|
||||
pvalue="$(get_param_value_from_dump "${inst}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
uci_set obuspa "${sec}" "_sync" "1"
|
||||
|
||||
protocol="$(get_param_value_from_dump "${inst}".Protocol)"
|
||||
if [ -z "${protocol}" ]; then
|
||||
break;
|
||||
fi
|
||||
uci_set obuspa "${sec}" "Protocol" "${protocol}"
|
||||
for param in ${popts}; do
|
||||
pvalue="$(get_param_value_from_dump "${inst}"."${protocol}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
for param in ${ropts}; do
|
||||
uci_set obuspa "${sec}" "${param}" ""
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
sync_db_mqtt_client()
|
||||
{
|
||||
local mtps copts sec pvalue protocol
|
||||
|
||||
opts="Enable BrokerAddress BrokerPort Username ProtocolVersion TransportProtocol ClientID"
|
||||
|
||||
mtps="$(get_instances_from_db_dump Device.MQTT.Client.)"
|
||||
for inst in $mtps; do
|
||||
sec="$(get_param_value_from_dump "${inst}".Alias)"
|
||||
sec="${sec/cpe-/mqtt_}"
|
||||
sec="${sec/-/_}"
|
||||
update_uci_sec "${sec}" mqtt
|
||||
for param in ${opts}; do
|
||||
pvalue="$(get_param_value_from_dump "${inst}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
uci_set obuspa "${sec}" "_sync" "1"
|
||||
done
|
||||
}
|
||||
|
||||
sync_db_stomp_connection()
|
||||
{
|
||||
local mtps copts sec pvalue protocol
|
||||
|
||||
opts="Enable Host Port Username EnableEncryption EnableHeartbeats VirtualHost"
|
||||
|
||||
mtps="$(get_instances_from_db_dump Device.STOMP.Connection.)"
|
||||
for inst in $mtps; do
|
||||
sec="$(get_param_value_from_dump "${inst}".Alias)"
|
||||
sec="${sec/cpe-/stomp_}"
|
||||
sec="${sec/-/_}"
|
||||
update_uci_sec "${sec}" stomp
|
||||
for param in ${opts}; do
|
||||
pvalue="$(get_param_value_from_dump "${inst}"."${param}")"
|
||||
uci_set obuspa "${sec}" "${param}" "${pvalue}"
|
||||
done
|
||||
uci_set obuspa "${sec}" "_sync" "1"
|
||||
done
|
||||
}
|
||||
|
||||
sync_update_sec()
|
||||
{
|
||||
local _sync
|
||||
config_get _sync "${1}" _sync ""
|
||||
if [ -z "${_sync}" ]; then
|
||||
uci_remove obuspa "${1}"
|
||||
else
|
||||
uci_remove obuspa "${1}" _sync
|
||||
fi
|
||||
}
|
||||
|
||||
sync_db_with_uci()
|
||||
{
|
||||
if [ ! -f "${DB_DUMP}" ]; then
|
||||
return 0;
|
||||
fi
|
||||
|
||||
config_load obuspa
|
||||
sync_db_controller
|
||||
sync_db_localagent_mtp
|
||||
sync_db_mqtt_client
|
||||
sync_db_stomp_connection
|
||||
uci_commit obuspa
|
||||
|
||||
config_load obuspa
|
||||
config_foreach sync_update_sec controller
|
||||
config_foreach sync_update_sec mtp
|
||||
config_foreach sync_update_sec mqtt
|
||||
config_foreach sync_update_sec stomp
|
||||
uci_commit obuspa
|
||||
}
|
||||
|
||||
# Create factory reset file
|
||||
db_init()
|
||||
{
|
||||
local reason
|
||||
|
||||
reason="${1}"
|
||||
# Load configuration
|
||||
config_load $CONFIGURATION
|
||||
config_get SQL_DB_FILE global db_file "/tmp/obuspa/usp.db"
|
||||
|
||||
# Dump datamodel parameters from DB
|
||||
if [ -f "${SQL_DB_FILE}" ]; then
|
||||
${PROG} -f ${SQL_DB_FILE} -c show database > ${DB_DUMP}
|
||||
${PROG} -f ${SQL_DB_FILE} -c show database |sort > ${DB_DUMP}
|
||||
fi
|
||||
|
||||
# Only sync uci with db in case of non service triggers
|
||||
if [ -f "${DB_DUMP}" ] && [ "${reason}" != "update" ]; then
|
||||
sync_db_with_uci
|
||||
fi
|
||||
|
||||
# Remove reset file if present
|
||||
[ -f "${RESET_FILE}" ] && rm -f ${RESET_FILE}
|
||||
|
||||
config_load $CONFIGURATION
|
||||
global_init
|
||||
config_foreach configure_localagent localagent
|
||||
global_init
|
||||
|
|
@ -771,7 +1010,7 @@ start_service() {
|
|||
fi
|
||||
|
||||
mkdir -p /tmp/obuspa/
|
||||
db_init
|
||||
db_init "${1}"
|
||||
register_service
|
||||
}
|
||||
|
||||
|
|
@ -781,7 +1020,7 @@ stop_service() {
|
|||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
start update
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
|
|
@ -801,7 +1040,7 @@ service_triggers() {
|
|||
json_add_array
|
||||
json_add_string "" "run_script"
|
||||
json_add_string "" "/etc/init.d/obuspa"
|
||||
json_add_string "" "reload"
|
||||
json_add_string "" "restart"
|
||||
json_close_array
|
||||
json_close_array
|
||||
json_add_int "" "2000"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue