From fc73f02ad3a8333cbea9749acb0fc6e47dc90b9a Mon Sep 17 00:00:00 2001 From: do Date: Tue, 10 Nov 2020 13:53:30 +0100 Subject: [PATCH] auto is ser2net client and server --- base/packages/openhab/files/socat.init | 95 +++++++++++++++++++ .../{openhab2.sls => openhab/init.sls} | 0 base/packages/openhab/ser2net_client.sls | 34 +++++++ base/packages/openhab/ser2net_server.sls | 28 ++++++ top.sls | 4 +- 5 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 base/packages/openhab/files/socat.init rename base/packages/{openhab2.sls => openhab/init.sls} (100%) create mode 100644 base/packages/openhab/ser2net_client.sls create mode 100644 base/packages/openhab/ser2net_server.sls diff --git a/base/packages/openhab/files/socat.init b/base/packages/openhab/files/socat.init new file mode 100644 index 0000000..7c7d6cc --- /dev/null +++ b/base/packages/openhab/files/socat.init @@ -0,0 +1,95 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: ser2net-client +# Required-Start: $local_fs $time $network $named +# Required-Stop: $local_fs $time $network $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start/stop (socat a multipurpose relay) +# +# Description: The socat init script will start/stop socat as specified in /etc/default/socat +# Then log (FATAL,ERROR,WARN,INFO and Notic) in /var/log/socat.log +### END INIT INFO + +NAME=ser2net-client +DAEMON=/usr/bin/socat +# -d -d -d for more logging +SOCAT_DEFAULTS='-lf /var/log/ser2net-client.log' + +. /lib/lsb/init-functions +. /etc/default/${NAME} + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +[ -x $DAEMON ] || exit 0 + +start_socat() { + start-stop-daemon --oknodo --quiet --start \ + --pidfile /run/ser2net-client.pid \ + --background --make-pidfile \ + --exec $DAEMON -- $SOCAT_DEFAULTS $OPTIONS < /dev/null +} + +stop_socat() { + start-stop-daemon --oknodo --stop --quiet --pidfile /run/ser2net-client.pid --exec $DAEMON + rm -f /run/ser2net-client.pid +} + +start () { + start_socat + return $? +} + +stop () { + for PIDFILE in `ls /run/ser2net-client.pid 2> /dev/null`; do + NAME=`echo $PIDFILE | cut -c16-` + NAME=${NAME%%.pid} + stop_socat + done +} + +case "$1" in + start) + log_daemon_msg "Starting multipurpose relay" "ser2net-client" + if start ; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + stop) + log_daemon_msg "Stopping multipurpose relay" "ser2net-client" + if stop ; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + restart) + log_daemon_msg "Restarting multipurpose relay" "ser2net-client" + stop + if start ; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + reload|force-reload) + log_daemon_msg "Reloading multipurpose relay" "ser2net-client" + stop + if start ; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + status) + status_of_proc -p /run/ser2net-client.pid /usr/bin/socat socat && exit 0 || exit $? + ;; + *) + echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload|status}" + exit 3 + ;; +esac + +exit 0 \ No newline at end of file diff --git a/base/packages/openhab2.sls b/base/packages/openhab/init.sls similarity index 100% rename from base/packages/openhab2.sls rename to base/packages/openhab/init.sls diff --git a/base/packages/openhab/ser2net_client.sls b/base/packages/openhab/ser2net_client.sls new file mode 100644 index 0000000..51db98e --- /dev/null +++ b/base/packages/openhab/ser2net_client.sls @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- + +ser2net_client-pkgs: + pkg.installed: + - pkgs: + - socat + +ser2net_socat-conf: + file.managed: + - name: /etc/default/ser2net-client + - user: root + - mode: 0644 + - contents: | + #SALT managed + OPTIONS="pty,link=/dev/ttySER2NET0,raw,user=openhab,group=dialout,mode=660 tcp:auto:3333" + +ser2net_socat-init: + file.managed: + - name: /etc/init.d/ser2net-client + - user: root + - mode: 0740 + - source: salt://base/packages/openhab/files/socat.init + +ser2net_socat-service: + service.running: + - name: ser2net-client + - enable: True + - reload: True + - require: + - file: /etc/init.d/ser2net-client + - watch: + - file: /etc/default/ser2net-client diff --git a/base/packages/openhab/ser2net_server.sls b/base/packages/openhab/ser2net_server.sls new file mode 100644 index 0000000..77cb021 --- /dev/null +++ b/base/packages/openhab/ser2net_server.sls @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- + +ser2net_server-pkgs: + pkg.installed: + - pkgs: + - ser2net + +ser2net-conf: + file.managed: + - name: /etc/ser2net.conf + - user: root + - mode: 0644 + - contents: | + #SALT managed + 3333:raw:0:/dev/ttyAMA0:115200 8DATABITS NONE 1STOPBIT + +ser2net-service: + service.running: + - name: ser2net + - enable: True + - reload: True + - require: + - file: /etc/ser2net.conf + - watch: + - file: /etc/ser2net.conf + \ No newline at end of file diff --git a/top.sls b/top.sls index 1faa4b2..9578cb1 100644 --- a/top.sls +++ b/top.sls @@ -17,7 +17,9 @@ base: - prometheus - grafana 'auto*': - - base.packages.openhab2 + - base.packages.openhab + - base.packages.openhab.ser2net_server + - base.packages.openhab.ser2net_client 'pine*': - k8s 'kube*':