From 29b7e83f5a1d386617a56acdea8ebe9017c39199 Mon Sep 17 00:00:00 2001
From: David Hoese <david.hoese@ssec.wisc.edu>
Date: Mon, 17 May 2021 13:55:03 -0500
Subject: [PATCH] Add initial draft of ceilo adapter driver installation script

---
 README.rst                        |  9 ++++++
 scripts/reinstall_ceilo_driver.sh | 53 +++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)
 create mode 100755 scripts/reinstall_ceilo_driver.sh

diff --git a/README.rst b/README.rst
index 9273b26..d4e2322 100644
--- a/README.rst
+++ b/README.rst
@@ -7,3 +7,12 @@ and higher level product generation.
 NOTE: Most of the code in this repository was copied from the old subversion
 repository. This code was executed on python 2.6/2.7 environments, but will
 be run from python 3.6+ from now on. Some scripts may not work out of the box.
+
+Serial Adapter
+^^^^^^^^^^^^^^
+
+To communicate with the ceilometer there is an ethernet to serial adapter
+attached to it. The "rain01" server communicates to it through a special
+driver from "MOXA" (the manufacturer of the adapter). This driver is
+automatically installed as part of the root accounts crontab. See the
+``scripts/reinstall_ceilo_driver.sh`` script for more information.
\ No newline at end of file
diff --git a/scripts/reinstall_ceilo_driver.sh b/scripts/reinstall_ceilo_driver.sh
new file mode 100755
index 0000000..96053bc
--- /dev/null
+++ b/scripts/reinstall_ceilo_driver.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+# Description: This script must be run as root and will reinstall the "MOXA"
+#   drivers for the ethernet to serial adapter so the ceilometer can be
+#   communicated with. This should be run on reboot as the driver seems to
+#   have trouble with kernel updates and maybe even reboots of the server.
+
+if [ $UID -ne 0 ];
+    echo "ERROR: This script must be run as root (UID 0)."
+    exit 1
+fi
+
+TARBALL="/opt/metobs/misc/npreal2_1.18.65_build_17062316.tgz"
+if [ ! -f $TARBALL ]; then
+    echo "ERROR: Source tarball does not exist"
+    exit 1
+fi
+
+SRC_DIR="/tmp/moxa"
+if [ ! -d $SRC_DIR ]; then
+    cd `dirname $SRC_DIR`
+    tar -xzf $TARBALL
+    if [ ! -d $SRC_DIR ]; then
+        echo "ERROR: Could not extract moxa drivers"
+        exit 1
+    fi
+fi
+
+DRIVER_DST="/usr/lib/npreal2/driver"
+
+# Uninstall the old drivers
+if [ -d $DRIVER_DST ]; then
+    cd $DRIVER_DST
+    ./mxuninst
+fi
+
+cd "${SRC_DIR}/kernel3.x"
+/usr/bin/expect <(cat << EOF
+spawn ./mxinst SP1
+expect "Do you want to continue installing?"
+send "N\r"
+expect eof
+EOF
+)
+
+# Add the server
+cd $DRIVER_DST
+./mxaddsvr 192.168.16.27 4
+status=$?
+
+if [ $? -ne 0]; then
+    echo "ERROR: Could not install driver"
+    exit 1
+fi
\ No newline at end of file
-- 
GitLab