sidekick-client 0.2.4 → 0.2.5
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/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
|