diff --git a/app/datalogger/views.py b/app/datalogger/views.py index 867a8fb..5294164 100644 --- a/app/datalogger/views.py +++ b/app/datalogger/views.py @@ -1,5 +1,6 @@ import os +import subprocess from flask import Flask, render_template, request, session, send_from_directory, jsonify, url_for, flash, redirect, Response from werkzeug.utils import secure_filename from sqlalchemy import and_, desc @@ -13,6 +14,7 @@ from pycomm_helper.utils import readTag, writeTag from random import random ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'doc', 'docx', 'xls', 'xlsx', 'zip']) +PID_FILE = '/root/datalogger.pid' def allowed_file(filename): @@ -277,3 +279,28 @@ def restore_single(id): except: print("Error backing up tag value for tag {}".format(single_br['tag'])) return jsonify(single_br) + + +@app.route('/api/logger_status') +def get_logger_status(): + global PID_FILE + try: + with open(PID_FILE, 'rb') as pidfile: + pid = f.read() + os.kill(pid, 0) + except OSError: + return jsonify(False) + except IOError: + return jsonify(False) + else: + return jsonify(True) + + +@app.route('/api/restart_logger') +def restart_datalogger(): + global PID_FILE + try: + subprocess.call(["service", "datalogger", "restart"], shell=False) + except Exception as e: + print("Exception during restart_datalogger: {}".format(e)) + return get_logger_status() diff --git a/app/static/js/config.controller.js b/app/static/js/config.controller.js index 65b16e8..a45fb4b 100644 --- a/app/static/js/config.controller.js +++ b/app/static/js/config.controller.js @@ -49,15 +49,15 @@ poconsole.controller('configCtrl', function($scope, Page, $log, Config, Device, var checkLoggerStatus = Config.getLoggerStatus(); checkLoggerStatus.then(function(data){ $scope.loggerLoading = false; - $scope.loggerRunning = data.status; + $scope.loggerRunning = data; }); }; - // $scope.checkLogger(); + $scope.checkLogger(); $scope.restartLogger = function(){ var restartLogger = Config.restartLogger(); restartLogger.then(function(data){ - $scope.checkLogger(); + console.log(data); }); }; diff --git a/app/static/js/config.factory.js b/app/static/js/config.factory.js index 4732087..195aa5c 100644 --- a/app/static/js/config.factory.js +++ b/app/static/js/config.factory.js @@ -48,26 +48,20 @@ poconsole.factory('Config',function($q, $http, $log){ config.getLoggerStatus = function(){ var deferred = $q.defer(); - $http.get('/logger_status').success(function(data) { - deferred.resolve({ - pid:data.pid, - status: data.status - }); + $http.get('/api/logger_status').success(function(data) { + deferred.resolve(JSON.parse(data)); }); return deferred.promise; }; config.restartLogger = function(){ var deferred = $q.defer(); - $http.get('/restart_logger').success(function(data) { - deferred.resolve({ - data: data - }); + $http.get('/api/restart_logger').success(function(data) { + deferred.resolve(data); }); return deferred.promise; }; - return config; }); diff --git a/webserver.sh b/webserver.sh index 41eda6f..6a8c038 100644 --- a/webserver.sh +++ b/webserver.sh @@ -58,7 +58,7 @@ case "$1" in uninstall) uninstall ;; - retart) + restart) stop start ;;