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 +4 -4
- data/.gitignore +56 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +68 -0
- data/config.yaml +14 -0
- data/configs/.config.yml.swp +0 -0
- data/configs/config.yaml +17 -0
- data/configs/config.yml +17 -0
- data/configs/config2.yaml +51 -0
- data/configs/config_old.yaml +28 -0
- data/configs/configtemplate.yaml +32 -0
- data/configs/webconfig.ru +4 -0
- data/dev_web.sh +1 -0
- data/lib/configurator.rb +38 -0
- data/lib/consumer.rb +32 -0
- data/lib/consumers/console_consumer.rb +21 -0
- data/lib/consumers/log4r_consumer.rb +36 -0
- data/lib/consumers/mongo_consumer.rb +35 -0
- data/lib/logger.rb +16 -0
- data/lib/rabbithutch.rb +78 -0
- data/lib/rabbithutchmgr.rb +48 -0
- data/lib/worker.rb +33 -0
- data/rabbithutch.gemspec +43 -0
- data/rabbithutchservice.rb +18 -0
- data/web/public/assets/css/bootstrap-responsive.css +1092 -0
- data/web/public/assets/css/bootstrap-responsive.min.css +9 -0
- data/web/public/assets/css/bootstrap.css +6046 -0
- data/web/public/assets/css/bootstrap.min.css +9 -0
- data/web/public/assets/css/main.css +30 -0
- data/web/public/assets/img/glyphicons-halflings-white.png +0 -0
- data/web/public/assets/img/glyphicons-halflings.png +0 -0
- data/web/public/assets/js/bootstrap.js +2159 -0
- data/web/public/assets/js/bootstrap.min.js +6 -0
- data/web/rabbithutchweb.rb +106 -0
- data/web/views/index.haml +50 -0
- data/web/views/layout.haml +65 -0
- data/web/views/manageconfig.haml +18 -0
- data/web/views/rabbitmqsettings.haml +37 -0
- metadata +38 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9e0cae985e5574669eb39cc283156f3361307a4a33c5d851b4c0675ad140b8b
|
4
|
+
data.tar.gz: 9d6c9abe0b2f39fa019d78e266561c225a4c25db9226f3b79cb811566d765d7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
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
|
data/configs/config.yaml
ADDED
@@ -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
|
+
|
data/configs/config.yml
ADDED
@@ -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_
|
data/dev_web.sh
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
shotgun ./web/rabbithutchweb.rb
|
data/lib/configurator.rb
ADDED
@@ -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
|