gerouter 0.0.3 → 0.0.4

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.
data/Gemfile.lock CHANGED
@@ -9,13 +9,13 @@ PATH
9
9
  GEM
10
10
  remote: http://rubygems.org/
11
11
  specs:
12
- amq-client (0.9.11)
13
- amq-protocol (>= 1.0.1)
12
+ amq-client (0.9.12)
13
+ amq-protocol (>= 1.2.0)
14
14
  eventmachine
15
15
  amq-protocol (1.2.0)
16
- amqp (0.9.8)
17
- amq-client (~> 0.9.5)
18
- amq-protocol (>= 0.9.4)
16
+ amqp (0.9.9)
17
+ amq-client (~> 0.9.12)
18
+ amq-protocol (~> 1.2.0)
19
19
  eventmachine
20
20
  em-ssh (0.4.3)
21
21
  eventmachine
data/README.md CHANGED
@@ -98,17 +98,19 @@ The above is also stored in [here][samples].
98
98
  * gerrits can share one broker
99
99
 
100
100
 
101
- Stuffed Gerrit event
101
+ Additional attribute in Gerrit event
102
102
  ---------------------------
103
103
 
104
- As below, gerouter stuffs Gerrit event with own object then send to broker.
104
+ As below, gerouter adds `misc` attribute into Gerrit event then send to broker.
105
105
 
106
106
  ```json
107
107
  {
108
- "provider":"gerouter",
109
- "version":"1",
110
- "host":"gerrit hostname",
111
- "event":{"ORIGINAL EVENT"}
108
+ "provider": {
109
+ "name":"gerrit name in config"
110
+ "host":"gerrit host",
111
+ "port":"gerrit port",
112
+ "version":"gerrit version"
113
+ }
112
114
  }
113
115
  ```
114
116
 
data/lib/ger/constants.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module GerritEventRouter
3
3
  NAME = 'GEROUTER'
4
+ ORIGIN = 'gerrit'
4
5
  CONFIG_NAME = 'gerouter.conf'
5
6
  LOG_NORMAL = ::Logger::INFO
6
7
  LOG_DEBUG = ::Logger::DEBUG
data/lib/ger/gerrit.rb CHANGED
@@ -6,6 +6,7 @@ module GerritEventRouter
6
6
  class Config < GerritEventRouter::Config::Base
7
7
  DEFAULT_PORT = 29418
8
8
  COMMAND = 'gerrit stream-events'
9
+ VERSION = 'gerrit version'
9
10
 
10
11
  def initialize(name, uri, ssh_keys, broker, routing_key)
11
12
  super(name, uri)
@@ -26,6 +27,10 @@ module GerritEventRouter
26
27
  COMMAND
27
28
  end
28
29
 
30
+ def version
31
+ VERSION
32
+ end
33
+
29
34
  def header
30
35
  Gerrit::HEADER
31
36
  end
data/lib/ger/router.rb CHANGED
@@ -45,6 +45,8 @@ module GerritEventRouter
45
45
  ssh_options = { :port => uri.port }
46
46
  ssh_options[:keys] = @gerrit.ssh_keys if @gerrit.ssh_keys
47
47
 
48
+ provider = {"name" => @gerrit.name, "host" => uri.host, "port" => uri.port.to_s}
49
+
48
50
  EM.run do
49
51
  EM::Ssh.start(uri.host, uri.user, ssh_options) do |connection|
50
52
  connection.errback do |err|
@@ -59,12 +61,22 @@ module GerritEventRouter
59
61
  GER.logger.info("#{@broker.header} connection established.")
60
62
  GER.logger.debug("#{@broker.header} channel id = #{broker.channel.id}")
61
63
 
64
+ session.exec(@gerrit.version) do |channel, stream, data|
65
+ if data then
66
+ version = data.strip.delete("gerrit version")
67
+ provider["version"] = version
68
+ GER.logger.info("version: #{version}")
69
+ end
70
+ end
71
+
62
72
  session.exec(@gerrit.command) do |channel, stream, data|
63
73
  channel.on_data do |ch, data|
64
74
  if @broker.mode == "raw" then
65
75
  str = %Q(#{data.strip})
66
76
  else
67
- str = %Q({"provider":"#{GER::NAME.downcase}","version":"#{GER::SCHEMA_VERSION}","host":"#{uri.host}","event":#{data.strip}})
77
+ json = JSON.parse(data.strip)
78
+ json["provider"] = provider
79
+ str = JSON.generate(json)
68
80
  end
69
81
  broker.send(str, :routing_key => @gerrit.routing_key)
70
82
  end
data/lib/ger/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module GerritEventRouter
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
data/lib/ger.rb CHANGED
@@ -4,6 +4,7 @@ $:.unshift File.dirname(File.expand_path(__FILE__))
4
4
  require 'logger'
5
5
  require 'yaml'
6
6
  require 'uri'
7
+ require 'json'
7
8
  require 'ger/constants'
8
9
  require 'ger/config'
9
10
  require 'ger/router'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gerouter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-15 00:00:00.000000000 Z
12
+ date: 2013-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine