]> granicus.if.org Git - pdns/commitdiff
Proper logging for remotebackend tests to help find out problems
authorAki Tuomi <cmouse@desteem.org>
Thu, 23 Jan 2014 16:34:28 +0000 (18:34 +0200)
committerAki Tuomi <cmouse@desteem.org>
Thu, 23 Jan 2014 16:34:28 +0000 (18:34 +0200)
.travis.yml
modules/remotebackend/regression-tests/dnsbackend.rb
modules/remotebackend/regression-tests/pipe-backend.rb
modules/remotebackend/regression-tests/unix-backend.rb [changed from symlink to file mode: 0755]
modules/remotebackend/regression-tests/zeromq-backend.rb
modules/remotebackend/unittest_http.rb
modules/remotebackend/unittest_json.rb
modules/remotebackend/unittest_pipe.rb
modules/remotebackend/unittest_post.rb
modules/remotebackend/unittest_zeromq.rb

index bc9d0a266c4b866e5c76272a1fc1f8ebf6c58c33..19b9cab58228a0657d026431b39c862b8fe8f652 100644 (file)
@@ -73,6 +73,7 @@ script:
  - cd ../regression-tests.nobackend/
  - ./runtests
  - test ! -s ./failed_tests
+ - cat /tmp/remotebackend.txt.* | sort
 notifications:
   irc:
     channels:
index 29a8f38975161db3ec02a9947a2575ded4737318..b26e478dad3974862c6083d8bc35e6220847d55a 100644 (file)
@@ -5,7 +5,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
    def initialize(server, dnsbackend)
      @dnsbackend = dnsbackend
      @semaphore = Mutex.new
-     @f = File.open("/tmp/tmp.txt","a")
+     @f = File.open("/tmp/remotebackend.txt","a")
      @f.sync
    end
 
index ebf7e8c4bf19614c85d819eabfdcc5fba3571d41..39db7a2140b7ff972a8cbe81ae9a9fbdc432f3af 100755 (executable)
@@ -7,16 +7,16 @@ require "backend"
 
 h = Handler.new("#{File.dirname(__FILE__)}/remote.sqlite3")
 
-f = File.open "/tmp/tmp.txt","a"
+f = File.open "/tmp/remotebackend.txt.#{$$}","a"
 f.sync = true
 
 STDOUT.sync = true
 begin 
   STDIN.each_line do |line|
-    f.puts line
     # expect json
     input = {}
     line = line.strip
+    f.puts "#{Time.now.to_f}: [pipe] #{line}"
     next if line.empty?
     begin
       input = JSON.parse(line)
@@ -32,9 +32,10 @@ begin
          res, log = h.send(method)
       end
       puts ({:result => res, :log => log}).to_json
-      f.puts({:result => res, :log => log}).to_json
+      f.puts "#{Time.now.to_f} [pipe]: #{({:result => res, :log => log}).to_json}"
     rescue JSON::ParserError
       puts ({:result => false, :log => "Cannot parse input #{line}"}).to_json
+      f.puts "#{Time.now.to_f} [pipe]: #{({:result => false, :log => "Cannot parse input #{line}"}).to_json}"
       next
     end
   end
deleted file mode 120000 (symlink)
index ebb5e0c25c32fe96eb41775d0b7abf1b76e1fb77..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-pipe-backend.rb
\ No newline at end of file
new file mode 100755 (executable)
index 0000000000000000000000000000000000000000..a1f79daed2d4d5f682b8be1ee54e25f383682bed
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/env ruby
+require "rubygems"
+require 'bundler/setup'
+require 'json'
+$:.unshift File.dirname(__FILE__)
+require "backend"
+
+h = Handler.new("#{File.dirname(__FILE__)}/remote.sqlite3")
+
+f = File.open "/tmp/remotebackend.txt","a"
+f.sync = true
+
+STDOUT.sync = true
+begin 
+  STDIN.each_line do |line|
+    # expect json
+    input = {}
+    line = line.strip
+    f.puts "#{Time.now.to_f}: [unix] #{line}"
+    next if line.empty?
+    begin
+      input = JSON.parse(line)
+      next unless input and input["method"]
+      method = "do_#{input["method"].downcase}"
+      args = input["parameters"]
+
+      if h.respond_to?(method.to_sym) == false
+         res = false
+      elsif args.size > 0
+         res, log = h.send(method,args)
+      else
+         res, log = h.send(method)
+      end
+      puts ({:result => res, :log => log}).to_json
+      f.puts "#{Time.now.to_f} [unix]: #{({:result => res, :log => log}).to_json}"
+    rescue JSON::ParserError
+      f.puts "#{Time.now.to_f} [unix]: #{({:result => false, :log => "Cannot parse input #{line}"}).to_json}"
+      next
+    end
+  end
+rescue SystemExit, Interrupt
+end
index 74d88cadea780e6d5cc17e129533ec6b02e73a42..63d152631b29cd4da56397dac88470b0e4f4493a 100755 (executable)
@@ -1,5 +1,3 @@
-#!/usr/bin/ruby1.9.1
-
 #!/usr/bin/env ruby
 require "rubygems"
 require 'bundler/setup'
@@ -10,7 +8,7 @@ require "backend"
 
 h = Handler.new("#{File.dirname(__FILE__)}/remote.sqlite3")
 
-f = File.open "/tmp/tmp.txt","a"
+f = File.open "/tmp/remotebackend.txt.#{$$}","a"
 f.sync = true
 
 begin
@@ -21,10 +19,10 @@ begin
   while(true) do
     line = ""
     rc = socket.recv_string line
-    f.puts line
     # expect json
     input = {}
     line = line.strip
+    f.puts "#{Time.now.to_f}: [zmq] #{line}"
     next if line.empty?
     begin
       input = JSON.parse(line)
@@ -40,9 +38,10 @@ begin
          res, log = h.send(method)
       end
       socket.send_string ({:result => res, :log => log}).to_json, 0
-      f.puts({:result => res, :log => log}).to_json
+      f.puts "#{Time.now.to_f} [zmq]: #{({:result => res, :log => log}).to_json}"
     rescue JSON::ParserError
       socket.send_string ({:result => false, :log => "Cannot parse input #{line}"}).to_json
+      f.puts "#{Time.now.to_f} [zmq]: #{({:result => false, :log => "Cannot parse input #{line}"}).to_json}"
       next
     end
   end
index 3c7c34d949584b9ab37177f9c70a00e995866e28..e4a579ec1d452ac1f826951ab60cfbbad976d88c 100755 (executable)
@@ -11,7 +11,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
    def initialize(server, dnsbackend)
      @dnsbackend = dnsbackend
      @semaphore = Mutex.new
-     @f = File.open("/tmp/tmp.txt","a")
+     @f = File.open("/tmp/remotebackend.txt.#{$$}","a")
    end
 
    def parse_arrays(params)
@@ -137,8 +137,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
 
      args = parse_arrays args
 
-     @f.puts method
-     @f.puts args
+     @f.puts "#{Time.now.to_f} [http]: #{({:method=>method,:parameters=>args}).to_json}"
 
      @semaphore.synchronize do
        if @dnsbackend.respond_to?(method.to_sym)
@@ -152,6 +151,8 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
           res["Content-Type"] = "application/javascript; charset=utf-8"
           res.body = ({:result => false, :log => ["Method not found"]}).to_json
         end
+
+        @f.puts "#{Time.now.to_f} [http]: #{res.body}"
      end
    end
 
index 54a3e3ba5a9828f45d92a90b1dfd704aad7b7099..2c713b75a228d02a9818800f07c80431408e2030 100755 (executable)
@@ -11,7 +11,8 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
    def initialize(server, dnsbackend)
      @dnsbackend = dnsbackend
      @semaphore = Mutex.new
-     @f = File.open("/tmp/tmp.txt","a")
+     @f = File.open("/tmp/remotebackend.txt.#{$$}","a")
+     @f.sync
    end
 
    def do_POST(req,res)
@@ -23,9 +24,8 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
      method = tmp["method"].downcase
      method = "do_#{method}"
      args = tmp["parameters"]
-    
-     @f.puts method
-     @f.puts args
+
+     @f.puts "#{Time.now.to_f} [http/json]: #{({:method=>method,:parameters=>args}).to_json}"    
 
      @semaphore.synchronize do
        if @dnsbackend.respond_to?(method.to_sym)
@@ -39,6 +39,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
           res["Content-Type"] = "application/javascript; charset=utf-8"
           res.body = ({:result => false, :log => ["Method not found"]}).to_json
         end
+        @f.puts "#{Time.now.to_f} [http/json]: #{res.body}"
      end
    end
 end
index e95652bfdca865375e2b025d6ca4b0c797d6815d..4c6a1557208148f7b6204e54629faba40fad9729 100755 (executable)
@@ -6,12 +6,13 @@ require 'json'
 require './unittest'
 
 h = Handler.new()
-f = File.open "/tmp/tmp.txt","a"
+f = File.open "/tmp/remotebackend.txt.#{$$}","a"
+f.sync
 
 STDOUT.sync = true
 begin
   STDIN.each_line do |line|
-    f.puts line
+    f.puts "#{Time.now.to_f}: [pipe] #{line}"
     # expect json
     input = {}
     line = line.strip
@@ -29,9 +30,10 @@ begin
          res, log = h.send(method)
       end
       puts ({:result => res, :log => log}).to_json
-      f.puts({:result => res, :log => log}).to_json
+      f.puts "#{Time.now.to_f} [pipe]: #{({:result => res, :log => log}).to_json}"
     rescue JSON::ParserError
       puts ({:result => false, :log => "Cannot parse input #{line}"}).to_json
+      f.puts "#{Time.now.to_f} [pipe]: #{({:result => false, :log => "Cannot parse input #{line}"}).to_json}"
       next
     end
   end
index bf9b7ed93044d2710f4011c71bc573e657feac89..db82974a772784fc6a3092da8cb11243da55ffd8 100755 (executable)
@@ -11,7 +11,8 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
    def initialize(server, dnsbackend)
      @dnsbackend = dnsbackend
      @semaphore = Mutex.new
-     @f = File.open("/tmp/tmp.txt","a")
+     @f = File.open("/tmp/remotebackend.txt.#{$$}","a")
+     @f.sync
    end
 
    def do_POST(req,res)
@@ -24,9 +25,8 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
      method = url.shift.downcase
      method = "do_#{method}"
      args = JSON::parse(req.query["parameters"])
-    
-     @f.puts method
-     @f.puts args
+
+     @f.puts "#{Time.now.to_f} [http/post]: #{({:method=>method,:parameters=>args}).to_json}"    
 
      @semaphore.synchronize do
        if @dnsbackend.respond_to?(method.to_sym)
@@ -40,6 +40,7 @@ class DNSBackendHandler < WEBrick::HTTPServlet::AbstractServlet
           res["Content-Type"] = "application/javascript; charset=utf-8"
           res.body = ({:result => false, :log => ["Method not found"]}).to_json
         end
+        @f.puts "#{Time.now.to_f} [http/post]: #{res.body}"
      end
    end
 end
index be8569d92b8cd5122d3abed5502cb00d652d29aa..e65609719423355196592f080f803cb81ea813a4 100755 (executable)
@@ -7,7 +7,9 @@ require 'zero_mq'
 require './unittest'
 
 h = Handler.new()
-f = File.open "/tmp/tmp.txt","a"
+f = File.open "/tmp/remotebackend.txt.#{$$}","a"
+f.sync = true
+
 runcond=true
 
 trap('INT') { runcond = false }
@@ -23,10 +25,11 @@ begin
   while(runcond) do
     line = ""
     rc = socket.recv_string line
-    f.puts line
     # expect json
     input = {}
     line = line.strip
+
+    f.puts "#{Time.now.to_f}: [zmq] #{line}"
     next if line.empty?
     begin
       input = JSON.parse(line)
@@ -41,9 +44,10 @@ begin
          res, log = h.send(method)
       end
       socket.send_string ({:result => res, :log => log}).to_json, 0
-      f.puts({:result => res, :log => log}).to_json
+      f.puts "#{Time.now.to_f} [z,q]: #{({:result => res, :log => log}).to_json}"
     rescue JSON::ParserError
       socket.send_string ({:result => false, :log => "Cannot parse input #{line}"}).to_json
+      f.puts "#{Time.now.to_f} [zmq]: #{({:result => false, :log => "Cannot parse input #{line}"}).to_json}"
       next
     end
   end