dafiti-rabbit-hutch 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8863c86135d11c76341df7066546a82b083fc6340b9902029685930e147fc1b7
4
- data.tar.gz: cb2a74fe1e4985b4cfaf03469ecce702c23cfde516b244b9e79f0bd9723429fa
3
+ metadata.gz: d9e0cae985e5574669eb39cc283156f3361307a4a33c5d851b4c0675ad140b8b
4
+ data.tar.gz: 9d6c9abe0b2f39fa019d78e266561c225a4c25db9226f3b79cb811566d765d7a
5
5
  SHA512:
6
- metadata.gz: 7a47114d1194912152820544c35ad7fde64174fe74f059f0b83e5d6c423df270228eb27cad6fcf9a5f365cbef36c229ccd8be02dbe6b065d91c9809da3947251
7
- data.tar.gz: 7fee1f9bc5f1274d881c57ef253e3a57788ff0416ad2d309595d56c9314407146a3b4bfb3b3a542d612b72b377e68f9ca6a0d1a147ef319de49594ef489e8c80
6
+ metadata.gz: 790964acf9d7842dae99929a20de94570e40166f66d478e27dd38e55f6bf36583bbde595b1a856b5d005345b4a17c4ac3c30c8ff6b2ef931b2dbb48369fd27de
7
+ data.tar.gz: b59968fd076d8b9609643edac28af352d1a10b5c683f6fb99d5d1904c4e29a166363e16b0f2798f3e3bc930dd8349a645bdeeafd0beb3fc7947a5b046b153b5e
data/.gitignore ADDED
@@ -0,0 +1,56 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ # Gemfile.lock
49
+ # .ruby-version
50
+ # .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
+ # .rubocop-https?--*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hash-that-tree.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,68 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rabbithutch (0.1.6)
5
+ amqp
6
+ bson_ext
7
+ daemons
8
+ eventmachine
9
+ haml
10
+ log4r
11
+ logger
12
+ mongo
13
+ mongo_ext
14
+ mq
15
+ mustache
16
+ shotgun
17
+ sinatra
18
+ thin
19
+ thor
20
+ yard
21
+
22
+ GEM
23
+ remote: https://rubygems.org/
24
+ specs:
25
+ amq-client (0.9.10)
26
+ amq-protocol (>= 0.9.4)
27
+ eventmachine
28
+ amq-protocol (1.0.1)
29
+ amqp (0.9.8)
30
+ amq-client (~> 0.9.5)
31
+ amq-protocol (>= 0.9.4)
32
+ eventmachine
33
+ bson (1.8.2)
34
+ bson_ext (1.8.1)
35
+ bson (~> 1.8.1)
36
+ daemons (1.1.9)
37
+ eventmachine (1.0.0)
38
+ haml (3.1.7)
39
+ log4r (1.1.10)
40
+ logger (1.2.8)
41
+ mongo (1.8.1)
42
+ bson (~> 1.8.1)
43
+ mongo_ext (0.19.3)
44
+ mq (0.1.3)
45
+ mustache (0.99.4)
46
+ rack (1.4.4)
47
+ rack-protection (1.3.2)
48
+ rack
49
+ shotgun (0.9)
50
+ rack (>= 1.0)
51
+ sinatra (1.3.3)
52
+ rack (~> 1.3, >= 1.3.6)
53
+ rack-protection (~> 1.2)
54
+ tilt (~> 1.3, >= 1.3.3)
55
+ thin (1.5.0)
56
+ daemons (>= 1.0.9)
57
+ eventmachine (>= 0.12.6)
58
+ rack (>= 1.0.0)
59
+ thor (0.16.0)
60
+ tilt (1.3.3)
61
+ yard (0.8.3)
62
+
63
+ PLATFORMS
64
+ ruby
65
+ x86-mingw32
66
+
67
+ DEPENDENCIES
68
+ rabbithutch!
data/config.yaml ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ application:
3
+ exchangename: amq.rabbitmq.trace
4
+ queuename: rabbithutch
5
+ rabbitmq:
6
+ hosts:
7
+ - displayname: local1
8
+ enabled: true
9
+ hostname: localhost
10
+ username: admin
11
+ password: admin
12
+ consumers_config:
13
+ consumers:
14
+ - name: console_consumer
Binary file
@@ -0,0 +1,17 @@
1
+ application:
2
+ exchangename: amq.rabbitmq.trace
3
+ queuename: amq.gen-YxeA_wZnR8TsrqlRPEwNNQ
4
+
5
+ rabbitmq:
6
+ hosts:
7
+ - displayname: local1
8
+ enabled: true
9
+ hostname: localhost
10
+ username: admin
11
+ password: admin
12
+
13
+
14
+ consumers_config:
15
+ consumers:
16
+ - name: console_consumer
17
+
@@ -0,0 +1,17 @@
1
+ application:
2
+ exchangename: amq.rabbitmq.trace
3
+ queuename: amq.gen-YxeA_wZnR8TsrqlRPEwNNQ
4
+
5
+ rabbitmq:
6
+ hosts:
7
+ - displayname: local1
8
+ enabled: true
9
+ hostname: localhost:15672
10
+ username: admin
11
+ password: admin
12
+
13
+
14
+ consumers_config:
15
+ consumers:
16
+ - name: console_consumer
17
+
@@ -0,0 +1,51 @@
1
+ ---
2
+ application:
3
+ exchangename: amq.rabbitmq.trace
4
+ queuename: rabbithutch
5
+ rabbitmq:
6
+ hosts:
7
+ - id: 1
8
+ displayname: dev01dd
9
+ enabled: 'on'
10
+ hostname: 127.0.0.1dd
11
+ username: admind
12
+ password: admin
13
+ - id: 2
14
+ displayname: dev02e
15
+ enabled:
16
+ hostname: 127.0.0.23
17
+ username: admin
18
+ password:
19
+ - id: 3
20
+ displayname: QA
21
+ enabled: false
22
+ hostname: 127.0.0.3
23
+ username: admin
24
+ password: admin
25
+ - id: 4
26
+ displayname: STAGING
27
+ enabled: false
28
+ hostname: 127.0.0.4
29
+ username: admin
30
+ password: admin
31
+ - id: '7'
32
+ displayname: dev01dd
33
+ enabled: 'on'
34
+ hostname: ee
35
+ username: eee
36
+ password: eee
37
+ consumers_config:
38
+ consumers:
39
+ - name: console_consumer
40
+ enabled: true
41
+ - name: mongo_consumer
42
+ enabled: true
43
+ hostname: 127.0.0.1
44
+ username: admin
45
+ password: admin
46
+ database_prefix: rhutch_
47
+ port: 27017
48
+ - name: log4r_consumer
49
+ enabled: true
50
+ log_location: /tmp
51
+ log_prefix: rhutch_
@@ -0,0 +1,28 @@
1
+ application:
2
+ exchangename: amq.rabbitmq.trace
3
+ queuename: rabbithutch
4
+
5
+ rabbitmq:
6
+ hosts:
7
+ - id: 1
8
+ displayname: dev01
9
+ enabled: true
10
+ hostname: 127.0.0.1
11
+ username: admin
12
+ password: admin
13
+
14
+ consumers_config:
15
+ consumers:
16
+ - name: console_consumer
17
+ enabled: true
18
+ - name: mongo_consumer
19
+ enabled: true
20
+ hostname: 127.0.0.1
21
+ username: admin
22
+ password: admin
23
+ database_prefix: rhutch_
24
+ port: 27017
25
+ - name: log4r_consumer
26
+ enabled: true
27
+ log_location: /tmp
28
+ log_prefix: rhutch_
@@ -0,0 +1,32 @@
1
+ application:
2
+ exchangename: amq.rabbitmq.trace
3
+ queuename: rabbithutch
4
+
5
+ rabbitmq:
6
+ hosts:
7
+ - displayname: localserver
8
+ enabled: true
9
+ hostname: 127.0.0.1
10
+ username: admin
11
+ password: admin
12
+ - displayname: anotherserver
13
+ enabled: false
14
+ hostname: 127.0.0.2
15
+ username: admin
16
+ password: admin
17
+
18
+ consumers_config:
19
+ consumers:
20
+ - name: console_consumer
21
+ enabled: true
22
+ - name: mongo_consumer
23
+ enabled: true
24
+ hostname: 127.0.0.1
25
+ username: admin
26
+ password: admin
27
+ database_prefix: rhutch_
28
+ port: 27017
29
+ - name: log4r_consumer
30
+ enabled: true
31
+ log_location: /tmp
32
+ log_prefix: rhutch_
@@ -0,0 +1,4 @@
1
+ require 'sinatra'
2
+ require_relative "../web/rabbithutchweb"
3
+
4
+ run Sinatra::Application
data/dev_web.sh ADDED
@@ -0,0 +1 @@
1
+ shotgun ./web/rabbithutchweb.rb
@@ -0,0 +1,38 @@
1
+ require 'yaml'
2
+
3
+ module RabbitHutch
4
+ class Configurator
5
+
6
+ attr_accessor :config
7
+
8
+ def initialize options
9
+
10
+ file = options['config'] || (File.dirname(__FILE__) + '/../config.yaml')
11
+
12
+ puts "Using config from #{file}"
13
+
14
+ unless File.exists? file
15
+ raise "Configuration file [#{file}] doesn't exist"
16
+ end
17
+ @config = YAML::load(File.open(file))
18
+ end
19
+
20
+ def application
21
+ @config['application']
22
+ end
23
+
24
+ def log_config
25
+ @config['log4r_config']
26
+ end
27
+
28
+ def consumers
29
+ @config['consumers_config']["consumers"]
30
+ end
31
+
32
+ def rabbitmq_hosts
33
+ @config['rabbitmq']['hosts']
34
+ end
35
+
36
+ end
37
+ end
38
+
data/lib/consumer.rb ADDED
@@ -0,0 +1,32 @@
1
+ require "rubygems"
2
+ require_relative "configurator"
3
+ require_relative "consumers/mongo_consumer"
4
+
5
+ module RabbitHutch
6
+ # Controls the consumers that are to be kicked off based on the config file
7
+ class Consumer
8
+ def initialize(consumers)
9
+ @consumers = consumers
10
+ end
11
+
12
+ # Raised on receipt of a message from RabbitMq and uses the appropriate appender
13
+ def handle_message(metadata, payload)
14
+ # loop through appenders and fire each as required
15
+ @consumers.each do |consumer|
16
+ action = metadata.routing_key.split('.', 2).first
17
+ if(action == "publish")
18
+ exchange = metadata.attributes[:headers]["exchange_name"]
19
+ queue = metadata.routing_key.split('.', 2).last
20
+ item = {:date => Time.now,
21
+ :exchange => exchange,
22
+ :queue => queue,
23
+ :routing_keys => metadata.attributes[:headers]["routing_keys"].inspect,
24
+ :attributes => metadata.attributes.inspect,
25
+ :payload => payload.inspect
26
+ }
27
+ consumer.log_event(item)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require "mongo"
4
+
5
+ module RabbitHutch
6
+ class ConsoleConsumer
7
+
8
+ def initialize()
9
+ puts "\tInitializing Console Consumer"
10
+ end
11
+
12
+ def log_event(item)
13
+ begin
14
+ puts "console"
15
+ puts item
16
+ rescue Exception => e
17
+ puts "Error occurred Message Handler trying to write messages to Log #{e.inspect}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'log4r'
4
+ #require 'log4r/outputter/syslogoutputter'
5
+
6
+ module RabbitHutch
7
+ class Log4rConsumer
8
+
9
+ def initialize(rabbitmq_host, config)
10
+ puts "\tInitializing Log4r Consumer"
11
+ @rabbitmq_host = rabbitmq_host
12
+ @config = config
13
+ @log_name = rabbitmq_host["displayname"]
14
+ @config.consumers.each do |consumer|
15
+ if consumer["name"] == 'log4r_consumer'
16
+ @log_prefix = consumer['log_prefix']
17
+ @log_location = consumer['log_location']
18
+ end
19
+ end
20
+
21
+
22
+ @logger = Log4r::Logger.new("#{@log_name}#_log")
23
+ @logger.outputters << Log4r::FileOutputter.new("#{@log_name}_filelog", :filename => "#{@log_location}/#{@log_prefix}#{@log_name}.log")
24
+ end
25
+
26
+ def log_event(item)
27
+ begin
28
+ puts "log_consumer"
29
+ @logger.info(item)
30
+ rescue Exception => e
31
+ puts "Error occurred Message Handler trying to write messages to Log #{e.inspect}"
32
+ #@log.error("Error occurred Message Handler trying to write messages to MONGODB #{e.inspect}")
33
+ end
34
+ end
35
+ end
36
+ end