gerouter 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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