From 9ed0da8ca5b125495b3a0796c60f98abb233e27f Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Tue, 29 Mar 2011 21:51:35 +0000 Subject: add initial nopcollect diff --git a/nopcollect/conf.lua b/nopcollect/conf.lua new file mode 100644 index 0000000..eb1cd29 --- /dev/null +++ b/nopcollect/conf.lua @@ -0,0 +1,33 @@ +-- +-- rhnop +-- +-- Copyright (C) 2011 Christian Pointner +-- +-- This file is part of rhnop. +-- +-- rhnop is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- any later version. +-- +-- rhnop is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with rhnop. If not, see . +-- + +local conf = {} + +local file = assert(io.open("nopcollect.conf", "r")) +for line in file:lines() do + local k,v = string.match(line, "^([^=#]+)=(.*)$") + if k and v and v ~= "" then + conf[k] = v + end +end +file:close() + +return conf diff --git a/nopcollect/nopcollect b/nopcollect/nopcollect new file mode 100755 index 0000000..04560e2 --- /dev/null +++ b/nopcollect/nopcollect @@ -0,0 +1,54 @@ +#!/usr/bin/lua +-- +-- rhnop +-- +-- Copyright (C) 2011 Christian Pointner +-- +-- This file is part of rhnop. +-- +-- rhnop is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- any later version. +-- +-- rhnop is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with rhnop. If not, see . +-- +-- +-- send now and next cart# and length to nopsyncd +-- this script should be called by the now/next macro cart +-- the arguments should be: now# nowlen next# nextlen +-- + +require "socket" + +conf = require "conf" + +-- connect to server (reconnect after error) +local sock = assert(socket.tcp()) + +local ret, err = sock:connect(conf.host, conf.port) +if ret == nil then + print(err) + return 1 +end + +print "connection established" + +-- TODO: load all info we don't have yet + +while true do + local timestamp = sock:receive('*l') + -- TODO: check if connection is closed + print("received: '" .. timestamp .. "'") + + -- TODO: check if we already fetched that timestamp + -- TODO: fetch info for the timestamp and insert it into local db +end +sock:close() +return 0 diff --git a/nopcollect/nopcollect.conf b/nopcollect/nopcollect.conf new file mode 100644 index 0000000..18316fb --- /dev/null +++ b/nopcollect/nopcollect.conf @@ -0,0 +1,8 @@ +host=127.0.0.1 +port=2345 + +db=nop +#db_host=127.0.0.1 +#db_port=3306 +db_user= +db_pwd= diff --git a/noprml/noprml b/noprml/noprml new file mode 100755 index 0000000..360087d --- /dev/null +++ b/noprml/noprml @@ -0,0 +1,59 @@ +#!/usr/bin/lua +-- +-- rhnop +-- +-- Copyright (C) 2011 Christian Pointner +-- +-- This file is part of rhnop. +-- +-- rhnop is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- any later version. +-- +-- rhnop is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with rhnop. If not, see . +-- +-- +-- send now and next cart# and length to nopsyncd +-- this script should be called by the now/next macro cart +-- the arguments should be: now# nowlen next# nextlen +-- + +local queue_name = "/rhnop" + +mq = require "luamq" + +-- reading timestamp (milliseconds since epoch) +local p = assert(io.popen("/bin/date --utc '+%s %N'" , 'r')) +local time = assert(p:read('*l')) +p:close() +local s, ns = assert(string.match(time, "([0-9]+) ([0-9]+)")) +local timestamp = s*1000 + math.floor(ns/1000000) + +-- check arguments +if #arg < 4 then + io.stderr:write("too few parameters\n") + os.exit(1) +end + +-- open message queue +local q, err = mq.create(queue_name, "wo") +if q == nil then + io.stderr:write("creation of message queue failed: " .. err .. "\n") + os.exit(1) +end + +-- send out message to nopsyncd +local result, err = mq.send(q, timestamp .. " " .. arg[1] .. " " .. arg[2] .. " " .. arg[3] .. " " .. arg[4], 0) +if result == nil then + io.stderr:write("sending message failed: " .. err .. "\n") + os.exit(2) +end + +mq.close(q) diff --git a/noprml/noprml.lua b/noprml/noprml.lua deleted file mode 100755 index 360087d..0000000 --- a/noprml/noprml.lua +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/lua --- --- rhnop --- --- Copyright (C) 2011 Christian Pointner --- --- This file is part of rhnop. --- --- rhnop is free software: you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation, either version 3 of the License, or --- any later version. --- --- rhnop is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with rhnop. If not, see . --- --- --- send now and next cart# and length to nopsyncd --- this script should be called by the now/next macro cart --- the arguments should be: now# nowlen next# nextlen --- - -local queue_name = "/rhnop" - -mq = require "luamq" - --- reading timestamp (milliseconds since epoch) -local p = assert(io.popen("/bin/date --utc '+%s %N'" , 'r')) -local time = assert(p:read('*l')) -p:close() -local s, ns = assert(string.match(time, "([0-9]+) ([0-9]+)")) -local timestamp = s*1000 + math.floor(ns/1000000) - --- check arguments -if #arg < 4 then - io.stderr:write("too few parameters\n") - os.exit(1) -end - --- open message queue -local q, err = mq.create(queue_name, "wo") -if q == nil then - io.stderr:write("creation of message queue failed: " .. err .. "\n") - os.exit(1) -end - --- send out message to nopsyncd -local result, err = mq.send(q, timestamp .. " " .. arg[1] .. " " .. arg[2] .. " " .. arg[3] .. " " .. arg[4], 0) -if result == nil then - io.stderr:write("sending message failed: " .. err .. "\n") - os.exit(2) -end - -mq.close(q) diff --git a/nopsyncd/conf.lua b/nopsyncd/conf.lua index ee5487d..83257b5 100644 --- a/nopsyncd/conf.lua +++ b/nopsyncd/conf.lua @@ -21,7 +21,7 @@ local conf = {} -local file = assert(io.open("/etc/rhnop/nopsyncd.conf", "r")) +local file = assert(io.open("nopsyncd.conf", "r")) for line in file:lines() do local k,v = string.match(line, "^([^=#]+)=(.*)$") if k and v and v ~= "" then diff --git a/nopsyncd/nopsyncd.conf b/nopsyncd/nopsyncd.conf index cf324e7..0338cb6 100644 --- a/nopsyncd/nopsyncd.conf +++ b/nopsyncd/nopsyncd.conf @@ -1,4 +1,6 @@ queue_name=/rhnop +tcp_host=* +tcp_port=2345 rddb_db=rivendell rddb_host=127.0.0.1 @@ -8,6 +10,6 @@ rddb_pwd= playlog_db=rhnop playlog_host=127.0.0.1 -#playlog_port=3307 +#playlog_port=3306 playlog_user= playlog_pwd= diff --git a/nopsyncd/tcpserver.lua b/nopsyncd/tcpserver.lua index 3b4c777..bd945b6 100755 --- a/nopsyncd/tcpserver.lua +++ b/nopsyncd/tcpserver.lua @@ -21,11 +21,13 @@ require "socket" +conf = require "conf" + function init_server() local server = assert(socket.tcp()) assert(server:setoption('reuseaddr', true)) - assert(server:bind("*", 2342)) + assert(server:bind(conf.tcp_host, conf.tcp_port)) assert(server:listen(5)) return server -- cgit v0.10.2