diff --git a/config/config.template.ini b/config/config.template.ini index ba55ef3..4f4bc0a 100644 --- a/config/config.template.ini +++ b/config/config.template.ini @@ -135,7 +135,7 @@ template = 0 [MySQL] # MySQL configuration dbserver = localhost -dbuser = root +dbuser = boswatch dbpassword = root database = boswatch @@ -143,6 +143,11 @@ database = boswatch tableFMS = bos_fms tableZVEI = bos_zvei tablePOC = bos_pocsag +tableSIG = bos_signal + +# Signal RICs (empty: none set, separator ",") +# f.e.: signal_ric = 1234566,1234567,1234568 +signal_ric = ## SIGNAL-RICS ## [httpRequest] diff --git a/plugins/MySQL/MySQL.py b/plugins/MySQL/MySQL.py index 80ddadc..7ba29c3 100644 --- a/plugins/MySQL/MySQL.py +++ b/plugins/MySQL/MySQL.py @@ -20,6 +20,26 @@ from includes import globals # Global variables from includes.helper import configHandler +def isSignal(poc_id): + """ + @type poc_id: string + @param poc_id: POCSAG Ric + + @requires: Configuration has to be set in the config.ini + + @return: True if the Ric is Signal, other False + @exception: none + """ + # If RIC is Signal return True, else False + if globals.config.get("MySQL", "signal_ric"): + if poc_id in globals.config.get("MySQL", "signal_ric"): + logging.info("RIC %s is signal", poc_id) + return True + else: + logging.info("RIC %s is not signal", poc_id) + return False + + ## # # onLoad (init) function of plugin @@ -90,7 +110,12 @@ def run(typ,freq,data): cursor.execute("INSERT INTO "+globals.config.get("MySQL","tableZVEI")+" (time, zvei, description) VALUES (FROM_UNIXTIME(%s),%s,%s)", (data["timestamp"], data["zvei"], data["description"])) elif typ == "POC": - cursor.execute("INSERT INTO "+globals.config.get("MySQL","tablePOC")+" (time, ric, function, functionChar, msg, bitrate, description) VALUES (FROM_UNIXTIME(%s),%s,%s,%s,%s,%s,%s)", (data["timestamp"], data["ric"], data["function"], data["functionChar"], data["msg"], data["bitrate"], data["description"])) + if isSignal(data["ric"]): + cursor.execute("UPDATE "+globals.config.get("MySQL","tableSIG")+" SET time = NOW() WHERE ric = "+data["ric"]) + if cursor.rowcount == 0: + cursor.execute("INSERT INTO "+globals.config.get("MySQL","tableSIG")+" (time,ric) VALUES (NOW(),"+data["ric"]+")") + else: + cursor.execute("INSERT INTO "+globals.config.get("MySQL","tablePOC")+" (time, ric, function, functionChar, msg, bitrate, description) VALUES (FROM_UNIXTIME(%s),%s,%s,%s,%s,%s,%s)", (data["timestamp"], data["ric"], data["function"], data["functionChar"], data["msg"], data["bitrate"], data["description"])) else: logging.warning("Invalid Typ: %s", typ) diff --git a/plugins/MySQL/boswatch.sql b/plugins/MySQL/boswatch.sql index 955b1b7..8f584fb 100644 --- a/plugins/MySQL/boswatch.sql +++ b/plugins/MySQL/boswatch.sql @@ -19,10 +19,24 @@ SET time_zone = "+00:00"; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; +-- -------------------------------------------------------- + -- --- Datenbank: `boswatch` +-- Datenbank anlegen `boswatch` -- +CREATE DATABASE IF NOT EXISTS boswatch; +USE boswatch; + +-- -------------------------------------------------------- + +-- +-- Benutzer erstellen für Datenbank `boswatch` +-- + +GRANT ALL ON * to 'boswatch'@'localhost' identified by 'root'; +FLUSH PRIVILEGES; + -- -------------------------------------------------------- -- @@ -30,16 +44,16 @@ SET time_zone = "+00:00"; -- CREATE TABLE IF NOT EXISTS `bos_fms` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `time` datetime NOT NULL, - `fms` char(8) NOT NULL, - `status` char(1) NOT NULL, - `direction` char(1) NOT NULL, - `directionText` char(10) NOT NULL, - `tsi` varchar(3) NOT NULL, - `description` text, - PRIMARY KEY (`ID`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `id` INT(11) NOT NULL AUTO_INCREMENT, + `time` DATETIME NOT NULL, + `fms` VARCHAR(8) NOT NULL, + `status` VARCHAR(1) NOT NULL, + `direction` VARCHAR(1) NOT NULL, + `directionText` TEXT(10) NOT NULL, + `tsi` VARCHAR(3) NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`ID`) +) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1; -- -------------------------------------------------------- @@ -48,16 +62,16 @@ CREATE TABLE IF NOT EXISTS `bos_fms` ( -- CREATE TABLE IF NOT EXISTS `bos_pocsag` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `time` datetime NOT NULL, - `ric` char(7) NOT NULL, - `function` int(1) NOT NULL, - `functionChar` char(1), - `bitrate` int(4), - `msg` text, - `description` text, - PRIMARY KEY (`ID`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `id` INT(11) NOT NULL AUTO_INCREMENT, + `time` DATETIME NOT NULL, + `ric` VARCHAR(7) NOT NULL DEFAULT '0', + `funktion` INT(1) NOT NULL, + `funktionChar` TEXT(1) NOT NULL, + `msg` TEXT NOT NULL, + `bitrate` INT(4) NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`ID`) +) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1; -- -------------------------------------------------------- @@ -66,13 +80,81 @@ CREATE TABLE IF NOT EXISTS `bos_pocsag` ( -- CREATE TABLE IF NOT EXISTS `bos_zvei` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `time` datetime NOT NULL, - `zvei` char(5) NOT NULL, - `description` text, - PRIMARY KEY (`ID`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `id` INT(11) NOT NULL AUTO_INCREMENT, + `time` DATETIME NOT NULL, + `zvei` VARCHAR(5) NOT NULL DEFAULT '0', + `description` TEXT NOT NULL, + PRIMARY KEY (`ID`) +) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1; +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `bos_signal` +-- + +CREATE TABLE IF NOT EXISTS `bos_signal` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `time` DATETIME NOT NULL, + `ric` VARCHAR(7) NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`) +) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `bos_weblogin` +-- + +CREATE TABLE IF NOT EXISTS `bos_weblogin` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `user` VARCHAR(150) DEFAULT NULL, + `password` VARCHAR(32) DEFAULT NULL, + `isadmin` BOOLEAN DEFAULT FALSE, + PRIMARY KEY (`id`) +) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1; + +INSERT INTO `bos_weblogin` (`id`, `user`, `password`, `isadmin`) VALUES (NULL, 'admin', '21232f297a57a5a743894a0e4a801fc3', '1'); + +-- -------------------------------------------------------- + +-- +-- Schedule für Tabelle `bos_pocsag` +-- +CREATE EVENT IF NOT EXISTS `Delete POCSAG Entries > 3 Months` + ON SCHEDULE EVERY 1 DAY + STARTS '2016-01-01 00:00:00' + ON COMPLETION PRESERVE ENABLE + DO + DELETE FROM bos_pocsag WHERE time < DATE_SUB(NOW(),INTERVAL 3 MONTH); + +-- -------------------------------------------------------- + +-- +-- Schedule für Tabelle `bos_fms` +-- + +CREATE EVENT IF NOT EXISTS `Delete FMS Entries > 3 Months` + ON SCHEDULE EVERY 1 DAY + STARTS '2016-01-01 00:00:00' + ON COMPLETION PRESERVE ENABLE + DO + DELETE FROM bos_fms WHERE time < DATE_SUB(NOW(),INTERVAL 3 MONTH); + +-- -------------------------------------------------------- + +-- +-- Schedule für Tabelle `bos_zvei` +-- + +CREATE EVENT IF NOT EXISTS `Delete ZVEI Entries > 3 Months` + ON SCHEDULE EVERY 1 DAY + STARTS '2016-01-01 00:00:00' + ON COMPLETION PRESERVE ENABLE + DO + DELETE FROM bos_zvei WHERE time < DATE_SUB(NOW(),INTERVAL 3 MONTH); + + /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;