You are viewing a plain text version of this content. The canonical link for it is here.
Posted to alois-commits@incubator.apache.org by fl...@apache.org on 2010/11/30 15:08:51 UTC
svn commit: r1040570 - in /incubator/alois/trunk/prisma: bin/prisma
data/prisma/prisma_database/model/log_meta.rb
Author: flavio
Date: Tue Nov 30 15:08:50 2010
New Revision: 1040570
URL: http://svn.apache.org/viewvc?rev=1040570&view=rev
Log:
Prisma can now import logs from stdin
Modified:
incubator/alois/trunk/prisma/bin/prisma
incubator/alois/trunk/prisma/data/prisma/prisma_database/model/log_meta.rb
Modified: incubator/alois/trunk/prisma/bin/prisma
URL: http://svn.apache.org/viewvc/incubator/alois/trunk/prisma/bin/prisma?rev=1040570&r1=1040569&r2=1040570&view=diff
==============================================================================
--- incubator/alois/trunk/prisma/bin/prisma (original)
+++ incubator/alois/trunk/prisma/bin/prisma Tue Nov 30 15:08:50 2010
@@ -13,7 +13,7 @@ waiting_time = nil
force = false
force_user = nil
count = nil
-
+migrate_redo = false
action, params = optparse({
:text => "TODO: add text here",
:actions => {
@@ -21,7 +21,8 @@ action, params = optparse({
"dump DB" => "Dump database schema",
"load DB" => "Load database schema",
"check DB" => "Check database version",
- "start SOURCECLASS" => "start"
+ "start SOURCECLASS" => "start",
+ "stdin" => "Read logs from stdin (for syslog)",
}}) {|o|
o.on( "-d", "--daemon", "Run as daemon." ) do |daemon| end
o.on( "-f", "--force", "Force prisma to run even if do_not_run_prisma is defined." ) do |force| end
@@ -36,6 +37,8 @@ action, params = optparse({
waiting_time = w.to_i
end
+ o.on( "-r", "--redo COUNT", "Redo the latest migration, only valid for migrate task.") do |migrate_redo| end
+
o.on( "--all", "Transform all messages in the queue and exit afterwards." ) do |a|
type = :all
end
@@ -56,6 +59,7 @@ options = {
case action
when "migrate"
# migration
+ options[:redo] = migrate_redo.to_i if migrate_redo
Prisma::Database.migrate(params[:db], ENV["VERSION"] ? ENV["VERSION"].to_i : nil, options)
when "dump"
Prisma::Database.schema_dump(params[:db], options)
@@ -64,6 +68,21 @@ when "load"
when "check"
Prisma::Database.load_all(options)
Prisma::Database.check(params[:db], options)
+when "stdin"
+ Prisma::Database.load_all(options)
+ Prisma::Database.check("prisma" , options)
+ Prisma::Database.check("pumpy" , options)
+
+ raise "Stdin processing can not be run as daemon" if daemon
+
+ source = FileMeta.new
+ source.basename = "STDIN"
+ source.save
+
+ STDIN.each {|line|
+ meta = PureMeta.new.prisma_initialize(source, {:message=>line})
+ meta.transform
+ }
when "start"
if force; $do_not_run_prisma = false; end
if $do_not_run_prisma
Modified: incubator/alois/trunk/prisma/data/prisma/prisma_database/model/log_meta.rb
URL: http://svn.apache.org/viewvc/incubator/alois/trunk/prisma/data/prisma/prisma_database/model/log_meta.rb?rev=1040570&r1=1040569&r2=1040570&view=diff
==============================================================================
--- incubator/alois/trunk/prisma/data/prisma/prisma_database/model/log_meta.rb (original)
+++ incubator/alois/trunk/prisma/data/prisma/prisma_database/model/log_meta.rb Tue Nov 30 15:08:50 2010
@@ -23,6 +23,19 @@
def self.expressions
ret = []
+ # Nov 29 10:36:58 testhost kernel: [251102.020761] ...
+ ret.push({ :condition => lambda {|mesage, meta_class, meta_instance| meta_class == PureMeta },
+ :regex => /^([^ ]*) *(\d+) (..:\d\d:\d\d) ([^ ]*) ([^ ]*)\: \[(\d+\.\d+)\] (.*)$/,
+ :result_filter => lambda {|results, meta_instance|
+ # TODO: time offset and facility should not be ommited
+ results.delete_at(4);results.delete_at(4)
+
+ results[0] = DateTime.strptime("#{results[0]} #{results[1]} #{Time.now.year}", "%b %d %Y")
+ results.delete_at(1)
+ results
+ },
+ :fields => [:date, :time, :host, :message]})
+
ret.push({ :condition => lambda {|mesage, meta_class, meta_instance| meta_class == PureMeta },
:regex => /^([^ ]*) *(\d+) (..:\d\d:\d\d) ([^ ]*) (.*)$/,
:result_filter => lambda {|results, meta_instance|
@@ -31,6 +44,7 @@
results
},
:fields => [:date, :time, :host, :message]})
+
return ret
end