ocular 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/ocular +11 -3
- data/lib/ocular/event/eventfactory.rb +2 -0
- data/lib/ocular/inputs/http_input.rb +12 -1
- data/lib/ocular/inputs/rabbitmq_input.rb +87 -0
- data/lib/ocular/ocular.rb +1 -0
- data/lib/ocular/version.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89e4559ff9d5af112b1d8112311d72658732f4a0
|
4
|
+
data.tar.gz: ad7aefaf93159266fdbe1977bed667c24cd82529
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c89e2f89937f1e1aac4036872e8262db351ef4cfbfb08035e511591756fed79b00ca985ca2886e7cc646ee903850a7624c560c6f1909837af23e0af5113c1e5
|
7
|
+
data.tar.gz: 8fa4c75d13e95ffd823778f7454d2ab4fc390a2e8048360b4c72b3323d6d325252bbd4a3d16bfcbb7f21da1f1e042a9ad1ef3d02836100229404f9f06231feb5
|
data/bin/ocular
CHANGED
@@ -95,12 +95,20 @@ ssh:
|
|
95
95
|
- /home/user/.ssh/id_dsa
|
96
96
|
user: ubuntu
|
97
97
|
|
98
|
-
|
99
|
-
http:
|
100
|
-
port: 8083
|
98
|
+
datasources:
|
101
99
|
etcd:
|
102
100
|
host: etc
|
103
101
|
port: 4001
|
102
|
+
mysql:
|
103
|
+
host: localhost
|
104
|
+
password: xyz
|
105
|
+
username: ocular
|
106
|
+
database: ocular
|
107
|
+
|
108
|
+
inputs:
|
109
|
+
http:
|
110
|
+
port: 8083
|
111
|
+
|
104
112
|
|
105
113
|
"
|
106
114
|
exit -1
|
@@ -3,6 +3,7 @@ require 'ocular/event/eventbase.rb'
|
|
3
3
|
require 'ocular/inputs/http_input.rb'
|
4
4
|
require 'ocular/inputs/cron_input.rb'
|
5
5
|
require 'ocular/inputs/trigger_input.rb'
|
6
|
+
require 'ocular/inputs/rabbitmq_input.rb'
|
6
7
|
|
7
8
|
class Ocular
|
8
9
|
module Event
|
@@ -30,6 +31,7 @@ class Ocular
|
|
30
31
|
include Ocular::Inputs::HTTP::ErrorDSL
|
31
32
|
include Ocular::Inputs::Cron::DSL
|
32
33
|
include Ocular::Inputs::Trigger::DSL
|
34
|
+
include Ocular::Inputs::RabbitMQ::DSL
|
33
35
|
|
34
36
|
def fork(value)
|
35
37
|
@do_fork = value
|
@@ -32,6 +32,12 @@ class Ocular
|
|
32
32
|
handler = handlers.get(::Ocular::Inputs::HTTP::Input)
|
33
33
|
handler.add_delete(script_name, path, opts, self, &block)
|
34
34
|
end
|
35
|
+
|
36
|
+
def onOPTIONS(path, opts = {}, &block)
|
37
|
+
handler = handlers.get(::Ocular::Inputs::HTTP::Input)
|
38
|
+
handler.add_options(script_name, path, opts, self, &block)
|
39
|
+
end
|
40
|
+
|
35
41
|
end
|
36
42
|
|
37
43
|
module ErrorDSL
|
@@ -282,7 +288,12 @@ class Ocular
|
|
282
288
|
def add_delete(script_name, path, options, proxy, &block)
|
283
289
|
name = generate_uri_from_names(script_name, path)
|
284
290
|
route('DELETE', name, options, proxy, &block)
|
285
|
-
end
|
291
|
+
end
|
292
|
+
|
293
|
+
def add_options(script_name, path, options, proxy, &block)
|
294
|
+
name = generate_uri_from_names(script_name, path)
|
295
|
+
route('OPTIONS', name, options, proxy, &block)
|
296
|
+
end
|
286
297
|
|
287
298
|
def build_signature(pattern, keys, &block)
|
288
299
|
return [pattern, keys, block]
|
@@ -0,0 +1,87 @@
|
|
1
|
+
|
2
|
+
require 'ocular/inputs/base.rb'
|
3
|
+
require 'ocular/dsl/dsl.rb'
|
4
|
+
require 'ocular/dsl/runcontext.rb'
|
5
|
+
require 'rufus/scheduler'
|
6
|
+
|
7
|
+
class Ocular
|
8
|
+
module Inputs
|
9
|
+
|
10
|
+
module RabbitMQ
|
11
|
+
|
12
|
+
module DSL
|
13
|
+
|
14
|
+
#add_event_help "cron.in(rule)", "Schedule event to be executed in 'rule'. eg: '1m'"
|
15
|
+
def rabbitmq()
|
16
|
+
handler = handlers.get(::Ocular::Inputs::RabbitMQ::Input)
|
17
|
+
return Input::DSLProxy.new(self, handler, logger)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
class Input < ::Ocular::Inputs::Base
|
23
|
+
|
24
|
+
attr_reader :routes
|
25
|
+
attr_reader :conn
|
26
|
+
|
27
|
+
def initialize(settings_factory)
|
28
|
+
settings = settings_factory[:rabbitmq]
|
29
|
+
|
30
|
+
::Ocular.logger.debug "Starting RabbitMQ input"
|
31
|
+
|
32
|
+
@conn = Bunny.new
|
33
|
+
conn.start
|
34
|
+
|
35
|
+
ch = conn.create_channel
|
36
|
+
q = ch.queue("bunny.examples.hello_world", :auto_delete => true)
|
37
|
+
x = ch.default_exchange
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
def start()
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
def stop()
|
46
|
+
@scheduler.shutdown
|
47
|
+
end
|
48
|
+
|
49
|
+
class RabbitMQRunContext < ::Ocular::DSL::RunContext
|
50
|
+
attr_accessor :delivery_info, :metadata, :payload
|
51
|
+
|
52
|
+
def initialize()
|
53
|
+
super(Ocular::Logging::ConsoleLogger.new)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
class DSLProxy
|
59
|
+
def initialize(proxy, handler, logger)
|
60
|
+
@proxy = proxy
|
61
|
+
@handler = handler
|
62
|
+
@logger = logger
|
63
|
+
end
|
64
|
+
|
65
|
+
def subscribe(topic, &block)
|
66
|
+
eventbase = Ocular::DSL::EventBase.new(@proxy, &block)
|
67
|
+
::Ocular.logger.debug "rabbitmq.subscribe to# #{topic} for block #{block}"
|
68
|
+
|
69
|
+
q.subscribe(topic) do |delivery_info, metadata, payload|
|
70
|
+
context = RabbitMQRunContext.new(@logger)
|
71
|
+
context.log_cause("rabbitmq.subscribe(#{topic})")
|
72
|
+
context.delivery_info = delivery_info
|
73
|
+
context.metadata = metadata
|
74
|
+
context.payload = payload
|
75
|
+
eventbase.exec(context)
|
76
|
+
end
|
77
|
+
|
78
|
+
@proxy.events[id] = eventbase
|
79
|
+
|
80
|
+
return id
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/lib/ocular/ocular.rb
CHANGED
data/lib/ocular/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ocular
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juho Mäkinen
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 0.4.3
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: bunny
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 2.3.1
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 2.3.1
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: rspec
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,6 +212,7 @@ files:
|
|
198
212
|
- lib/ocular/inputs/cron_input.rb
|
199
213
|
- lib/ocular/inputs/handlers.rb
|
200
214
|
- lib/ocular/inputs/http_input.rb
|
215
|
+
- lib/ocular/inputs/rabbitmq_input.rb
|
201
216
|
- lib/ocular/inputs/trigger_input.rb
|
202
217
|
- lib/ocular/logging/console_logger.rb
|
203
218
|
- lib/ocular/logging/kafka_logger.rb
|