First commit

This commit is contained in:
Ivan Vazhenin
2023-03-12 16:40:33 +03:00
commit 54fa589261
44 changed files with 3339 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
# path to enserver main file
ENSERVER="/usr/lib/python2.7/dist-packages/enserver/enserver.py"
PIDFILE="/var/run/apsh/enserver.pid"
# logging options
LOGFILE="/var/log/apsh/enserver/enserver.log"
# log level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
LOGLEVEL="INFO"
# DB options
DB_HOST="pgsql"
DB_PORT="5432"
DB_NAME="enserver"
DB_USER="db_apsh"
DB_PASSWD="12345678"
# path to enserver storage
STORAGE="/share/store/enserver/storage"
# local enserver id
SERVERID="enserver_astra"
# local ip-address
ADDRESS="enserv"
# providers options
AUTH_PROVIDER="http://apsh@userv:8008/xmlrpc"
# subscribes options
SUBSCRIBER_USERVER="http://userv:8008/xmlrpc"
SUBSCRIBER_CDSERVER="http://cdserv:8080/Transport"
# connection options
TCP_PORT=7001
TCP_TIMEOUT=90
DISCONNECT_TIMEOUT="7"
CDSERVER_REPLICATION="http://cdserv:8080/Replication"
REPLICATION_PROVIDER="$CDSERVER_REPLICATION"
# required for parent bank - uncomment next line and add to unit file param '--host ${HOST}'
# unit file path: /etc/systemd/system/enserver.service
#HOST="bnd"

View File

@@ -0,0 +1,8 @@
/var/log/apsh/enserver.log {
size 10M
rotate 10
notifempty
compress
copytruncate
delaycompress
}

View File

@@ -0,0 +1,22 @@
# Contents of /etc/systemd/system/enserver.service
[Unit]
Description=En-Server
After=network.target
[Service]
CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK
AmbientCapabilities=CAP_IPC_LOCK
CapabilityBoundingSet=CAP_IPC_LOCK
Type=simple
User=apsh
Group=apsh
EnvironmentFile=/etc/default/enserver
Restart=always
RestartSec=30s
PIDFile=/var/run/apsh/enserver.pid
WorkingDirectory=/usr/lib/python2.7/dist-packages/enserver/
ExecStart=/usr/bin/python ${ENSERVER} --debug --id=${SERVERID} --loglevel ${LOGLEVEL} --logfile ${LOGFILE} --pidfile
${PIDFILE} --address ${ADDRESS} --port ${TCP_PORT} --tcp-timeout ${TCP_TIMEOUT} --db-name ${DB_NAME} --db-user ${DB_USER} --db-port ${DB_PORT} --db-host ${DB_HOST} --db-passwd ${DB_PASSWD} --storage ${STORAGE} --auth-provider ${AUTH_PROVIDER} --disconnect_timeout ${DISCONNECT_TIMEOUT} --replication-provider ${REPLICATION_PROVIDER} ${SUBSCRIBER_USERVER} ${SUBSCRIBER_CDSERVER}
[Install]
WantedBy=multi-user.target

92
data/zarya/init.d/enserver Executable file
View File

@@ -0,0 +1,92 @@
#!/bin/sh
#
# enserver Start/Stop the EN-Server daemon
#
# chkconfig: 345 96 10
# description: Apsheronsk transport system
### BEGIN INIT INFO
# Provides: enserver
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Short-Description: enserver daemon
# Description: Apsheronsk transport system
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
#set -e
# This is an interactive program, we need the current locale
[ -f /etc/profile.d/lang.sh ] && . /etc/profile.d/lang.sh
if [ -f /etc/sysconfig/enserver ]; then
. /etc/sysconfig/enserver
fi
# configuration parameters
PYTHON=${PYTHON:-/usr/bin/python2.6}
ENSERVER=${ENSERVER:-/usr/lib/python2.6/site-packages/enserver/enserver.py}
USER=${USER:-apsh}
PIDFILE=${PIDFILE:-/var/run/apsh/enserver.pid}
STOP_TIMEOUT=${STOP_TIMEOUT:-10}
HTTP_PORT=${HTTP_PORT:-7000}
TCP_PORT=${TCP_PORT:-7001}
LOGLEVEL=${LOGLEVEL:+--debug}
LOGFILE=${LOGFILE:-/var/log/apsh/enserver.log}
STORAGE=${STORAGE:-/share/store/enserver}
PARENT_HOST=${HOST:+--host=$HOST}
ADDRESS=${ADDRESS:-enserv}
RETVAL=0
OPTIONS="$LOGLEVEL --logfile=$LOGFILE --port=$TCP_PORT --pidfile=$PIDFILE --storage=$STORAGE --address=$ADDRESS $PARENT_HOST $OPTIONS"
DAEMON="--daemon"
start() {
echo -n $"Starting enserver: "
LANG="C" ss -pltn | grep ":${HTTP_PORT}[ \t]\+" > /dev/null && P1=0 || P1=1
LANG="C" ss -pltn | grep ":${TCP_PORT}[ \t]\+" > /dev/null && P2=0 || P2=1
if [ $P1 -eq 0 ] || [ $P2 -eq 0 ]; then
echo -n $"port already in use"
RETVAL=1
else
daemon --user=${USER} --pidfile=${PIDFILE} $PYTHON $ENSERVER $DAEMON $OPTIONS
RETVAL=$?
fi
echo
}
stop() {
echo -n $"Stopping enserver: "
killproc -p ${PIDFILE} -d ${STOP_TIMEOUT} $PYTHON
RETVAL=$?
echo
}
case "$1" in
start)
start
;;
constart)
DAEMON=""
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status -p ${PIDFILE} $PYTHON
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
RETVAL=2
esac
exit $RETVAL

View File

@@ -0,0 +1,8 @@
/var/log/apsh/enserver.log {
size 10M
rotate 10
notifempty
compress
copytruncate
delaycompress
}

View File

@@ -0,0 +1,4 @@
python setup.py install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
sed -ri '\@^/etc/@ {\@/init.d/@! s@.+@%config(noreplace) \0@}' INSTALLED_FILES

View File

@@ -0,0 +1,16 @@
#!/bin/sh -e
CONF="/etc/sysconfig/enserver"
if [ -f ${CONF} ]; then
. ${CONF}
fi
USER=${USER-"apsh"}
GROUP=${GROUP-"apsh"}
DBNAME=${DBNAME-"enserver"}
STORAGE=${STORAGE-"/share/store/enserver"}
LOGDIR=${LOGDIR-"/share/store"}
mkdir -p ${STORAGE} ${LOGDIR}
chown ${USER}:${GROUP} ${STORAGE} ${LOGDIR}

View File

@@ -0,0 +1,23 @@
PYTHON="/usr/bin/python2.6"
USER="apsh"
PIDFILE="/var/run/apsh/enserver.pid"
LOGFILE="/var/log/apsh/enserver.log"
LOGLEVEL="DEBUG"
STORAGE="/share/store/enserver"
SERVERID="bnd"
ADDRESS="enserv"
DBHOST="pgsql"
DBPORT="5432"
DBUSER="apsh"
DBPASSWD="apsh"
DISCONNECT_TIMEOUT="7"
#required for parent bank - uncomment next line
#HOST="parent_bank"
CDSERVER="http://cdserv:8080/Transport"
CDSERVER_REPLICATION="http://cdserv:8080/Replication"
USERVER="http://userv:8008/xmlrpc"
VSERVER="http://vserv:10110/enclient,local://vis"
AUTH_PROVIDER="$USERVER"
REPLICATION_PROVIDER="$CDSERVER_REPLICATION"
SUBSCRIBERS="$USERVER $CDSERVER $VSERVER"
OPTIONS="--id=$SERVERID --db-host=$DBHOST --db-port=$DBPORT --db-user=$DBUSER --db-passwd=$DBPASSWD --disconnect_timeout=$DISCONNECT_TIMEOUT --auth-provider=$AUTH_PROVIDER --replication-provider=$REPLICATION_PROVIDER $SUBSCRIBERS"