diff options
Diffstat (limited to 'rhnop-client/nopcollectd')
-rwxr-xr-x | rhnop-client/nopcollectd | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/rhnop-client/nopcollectd b/rhnop-client/nopcollectd index 239011e..0944323 100755 --- a/rhnop-client/nopcollectd +++ b/rhnop-client/nopcollectd @@ -35,26 +35,40 @@ end conffile = "nopcollectd." .. arg[1] .. ".conf" conf = require "conf" --- connect to server (reconnect after error) -local sock = assert(socket.tcp()) +src_db = require "db" +assert(src_db:init(conf.src_db, conf.src_user, conf.src_pwd, conf.src_host, conf.src_port, conf.src.table)) + +dst_db = require "db" +assert(dst_db:init(conf.dst_db, conf.dst_user, conf.dst_pwd, conf.dst_host, conf.dst_port, conf.dst.table)) +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 +local last = dst_db:getLastEntry() +cur = assert(src_db:findMissingEntries(last) +local cnt = 0 +while true do + local data = srd_db:getNextMissingEntry(cur) + if data == nil then break end + local ret, err = dst_db:addEntry(data) + if ret == nil do print(err) end + cnt = cnt + 1 +end + +print("synced " .. cnt .. " Entries") 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 + if timestamp == nil then break end + data = assert(src_db:getEntry(timestamp)) + dst_db:addEntry(data) end + sock:close() + return 0 |