sidekick-client 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +2 -1
- data/VERSION +1 -1
- data/config/example_sidekick.conf +8 -0
- data/lib/sidekick/client/sidekick_client.rb +31 -15
- data/lib/sidekick/shared/sidekick_queue_publisher.rb +9 -2
- data/sidekick-client.gemspec +4 -3
- data/test/test_sidekick-client.rb +23 -8
- metadata +19 -9
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.5
|
@@ -1,33 +1,49 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'yaml'
|
2
3
|
require 'logger'
|
3
4
|
require "uuidtools"
|
4
5
|
require "#{File.dirname(__FILE__)}/../shared/sidekick_logger"
|
5
6
|
require "#{File.dirname(__FILE__)}/../shared/sidekick_queue_publisher"
|
6
7
|
|
7
|
-
SIDEKICK_CONFIG = "/etc/vamp/sidekick.conf" unless defined?(SIDEKICK_CONFIG)
|
8
|
-
DEFAULT_LOG_LOCATION = "/var/log/cft/sidekick/sidekick_client.log"
|
9
|
-
# TODO: this client must be used from within a rails application right now
|
10
|
-
# because it relies on RAILS_ROOT to find its config file
|
11
|
-
#
|
12
8
|
class SidekickClient
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_accessor :config
|
12
|
+
attr_accessor :log
|
13
|
+
end
|
14
|
+
|
15
|
+
self.log = "/var/log/cft/sidekick/sidekick_client.log"
|
16
|
+
|
13
17
|
attr_reader :logger
|
14
18
|
attr_reader :config
|
15
19
|
|
16
20
|
def initialize(config_override={})
|
17
|
-
|
18
|
-
|
21
|
+
load_config(config_override)
|
22
|
+
@logger.info "Initialized SidekickClient with config #{@config.inspect}"
|
23
|
+
@qconn = SidekickQueuePublisher.new(@config, @logger)
|
24
|
+
end
|
25
|
+
|
26
|
+
def load_config(config_override)
|
27
|
+
if SidekickClient.config && File.exists?(SidekickClient.config)
|
28
|
+
@config ||= YAML.load_file(SidekickClient.config).with_indifferent_access.merge(config_override)
|
29
|
+
elsif SidekickClient.config
|
30
|
+
raise LoadError, "Missing configuration: #{SidekickClient.config}"
|
19
31
|
else
|
20
|
-
|
32
|
+
warn "Set the sidekick config path using SidekickClient.config='/path/to/sidekick.conf'"
|
21
33
|
end
|
34
|
+
@config ||= config_override.with_indifferent_access
|
35
|
+
@config[:sidekick_log_file] ||= SidekickClient.log
|
36
|
+
|
37
|
+
# If STDOUT is specified as a value use the actual stream to log to STDOUT
|
38
|
+
if @config[:sidekick_log_file] == 'STDOUT'
|
39
|
+
@config[:sidekick_log_file] = Kernel.const_get('STDOUT')
|
40
|
+
end
|
41
|
+
|
42
|
+
FileUtils.mkdir_p(File.dirname(@config[:sidekick_log_file])) if @config[:sidekick_log_file].is_a?(String)
|
43
|
+
@logger = SidekickLogger.new(@config[:sidekick_log_file])
|
22
44
|
|
23
|
-
@config[:sidekick_log_file] ||= DEFAULT_LOG_LOCATION
|
24
|
-
@logger = SidekickLogger.new(@config[:sidekick_log_file].to_s.gsub("sidekick.log","sidekick_client.log"))
|
25
|
-
|
26
45
|
@config[:exchange] ||= "amq.direct"
|
27
|
-
|
28
|
-
@logger.info "Initialized SidekickClient with config #{@config.inspect}"
|
29
|
-
@qconn = SidekickQueuePublisher.new(@config, @logger)
|
30
|
-
end
|
46
|
+
end
|
31
47
|
|
32
48
|
def self.send_and_disconnect(cmd, args={}, queue_name=nil)
|
33
49
|
SidekickClient.new.send_and_disconnect(cmd,args,queue_name)
|
@@ -6,6 +6,12 @@ class SidekickQueuePublisher
|
|
6
6
|
def initialize(config, logger)
|
7
7
|
@logger = logger
|
8
8
|
@config = config.with_indifferent_access
|
9
|
+
|
10
|
+
# Deprecations section
|
11
|
+
if @config[:brokers]
|
12
|
+
raise SyntaxError, "ERROR: 'brokers' is a deprecated config value. Please use something like:\n:broker:\n :ip: 127.0.0.1\n :port: 1234"
|
13
|
+
end
|
14
|
+
|
9
15
|
end
|
10
16
|
|
11
17
|
# Publish a message using a given routing key
|
@@ -75,7 +81,8 @@ class SidekickQueuePublisher
|
|
75
81
|
end
|
76
82
|
|
77
83
|
def init_bunny_connection(temp_reply_queue_name=nil)
|
78
|
-
@broker = @config[:
|
84
|
+
@broker = @config[:broker]
|
85
|
+
|
79
86
|
logger.info "Establishing connection to RabbitMQ broker #{@broker.inspect}."
|
80
87
|
@b = Bunny.new(:host => (@broker[0] || "localhost"), :port => (@broker[1] || 5672), :timeout => @config[:timeout])
|
81
88
|
@b.start
|
@@ -90,4 +97,4 @@ class SidekickQueuePublisher
|
|
90
97
|
logger.log_connection_error_and_sleep(e)
|
91
98
|
retry
|
92
99
|
end
|
93
|
-
end
|
100
|
+
end
|
data/sidekick-client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sidekick-client}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["yan"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-11-02}
|
13
13
|
s.email = %q{yan@pritzker.ws}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
"README.rdoc",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
|
+
"config/example_sidekick.conf",
|
26
27
|
"lib/ext/README",
|
27
28
|
"lib/ext/bunny-0.6.0/LICENSE",
|
28
29
|
"lib/ext/bunny-0.6.0/README.rdoc",
|
@@ -110,7 +111,7 @@ Gem::Specification.new do |s|
|
|
110
111
|
s.homepage = %q{http://github.com/cohesive/sidekick-client}
|
111
112
|
s.rdoc_options = ["--charset=UTF-8"]
|
112
113
|
s.require_paths = ["lib"]
|
113
|
-
s.rubygems_version = %q{1.3.
|
114
|
+
s.rubygems_version = %q{1.3.6}
|
114
115
|
s.summary = %q{RabbitMQ client specific to ESOD's Sidekick server}
|
115
116
|
s.test_files = [
|
116
117
|
"test/helper.rb",
|
@@ -1,14 +1,29 @@
|
|
1
|
+
$: << File.dirname(__FILE__)
|
1
2
|
require 'helper'
|
2
3
|
|
4
|
+
|
3
5
|
class TestSidekickClient < Test::Unit::TestCase
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
context "sidekick client" do
|
7
|
+
setup do
|
8
|
+
SidekickClient.log = "STDOUT"
|
9
|
+
end
|
10
|
+
|
11
|
+
should "instantiate" do
|
12
|
+
SidekickClient.new
|
13
|
+
end
|
10
14
|
|
11
|
-
|
12
|
-
|
15
|
+
should "use config override" do
|
16
|
+
expected_config = {:foo => :bar}
|
17
|
+
|
18
|
+
client = SidekickClient.new(expected_config)
|
19
|
+
assert_equal :bar, client.config[:foo]
|
20
|
+
end
|
21
|
+
|
22
|
+
should "warn about missing config file" do
|
23
|
+
assert_raise(LoadError) do
|
24
|
+
SidekickClient.config = "/foo/bar/doesnotexist"
|
25
|
+
SidekickClient.new
|
26
|
+
end
|
27
|
+
end
|
13
28
|
end
|
14
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekick-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 5
|
9
|
+
version: 0.2.5
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- yan
|
@@ -9,19 +14,21 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2011-11-02 00:00:00 -05:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: shoulda
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :development
|
31
|
+
version_requirements: *id001
|
25
32
|
description:
|
26
33
|
email: yan@pritzker.ws
|
27
34
|
executables: []
|
@@ -39,6 +46,7 @@ files:
|
|
39
46
|
- README.rdoc
|
40
47
|
- Rakefile
|
41
48
|
- VERSION
|
49
|
+
- config/example_sidekick.conf
|
42
50
|
- lib/ext/README
|
43
51
|
- lib/ext/bunny-0.6.0/LICENSE
|
44
52
|
- lib/ext/bunny-0.6.0/README.rdoc
|
@@ -135,18 +143,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
143
|
requirements:
|
136
144
|
- - ">="
|
137
145
|
- !ruby/object:Gem::Version
|
146
|
+
segments:
|
147
|
+
- 0
|
138
148
|
version: "0"
|
139
|
-
version:
|
140
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
150
|
requirements:
|
142
151
|
- - ">="
|
143
152
|
- !ruby/object:Gem::Version
|
153
|
+
segments:
|
154
|
+
- 0
|
144
155
|
version: "0"
|
145
|
-
version:
|
146
156
|
requirements: []
|
147
157
|
|
148
158
|
rubyforge_project:
|
149
|
-
rubygems_version: 1.3.
|
159
|
+
rubygems_version: 1.3.6
|
150
160
|
signing_key:
|
151
161
|
specification_version: 3
|
152
162
|
summary: RabbitMQ client specific to ESOD's Sidekick server
|