vayacondios-client 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ def ENV.root_path(*args)
2
+ File.expand_path(File.join(File.dirname(__FILE__), '../../../', *args))
3
+ end
4
+
5
+ require 'configliere'
6
+
7
+ Settings.read(ENV.root_path('config/vayacondios.yaml'))
8
+ Settings.resolve!
9
+
@@ -1,6 +1,8 @@
1
1
  require 'gorillib/logger/log'
2
2
  require 'net/http'
3
3
  require 'multi_json'
4
+ require_relative 'config'
5
+ require_relative '../legacy_switch'
4
6
 
5
7
  class Vayacondios
6
8
  class Client
@@ -15,7 +17,7 @@ class Vayacondios
15
17
 
16
18
  def fetch organization=nil, topic=nil, id=nil
17
19
  resp = execute_request(_req(:fetch, nil, organization, topic, id)) and
18
- resp["contents"]
20
+ Vayacondios.legacy_switch.extract_response(resp)
19
21
  end
20
22
 
21
23
  def update ary, organization=nil, topic=nil, id=nil
@@ -70,7 +72,10 @@ class Vayacondios
70
72
  when :remove then Net::HTTP::Delete
71
73
  else raise ArgumentError.new("invalid type: #{type}")
72
74
  end.new(the_path, headers).tap do |req|
73
- req.body = MultiJson.encode(contents: ary) unless type == :fetch
75
+ unless type == :fetch
76
+ req.body =
77
+ MultiJson.encode(Vayacondios.legacy_switch.wrap_contents(ary))
78
+ end
74
79
  end
75
80
  end
76
81
  end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+ require_relative '../../lib/vayacondios/legacy_switch'
3
+
4
+ require 'multi_json'
5
+
6
+ require_relative '../../lib/vayacondios/client/itemset'
7
+
8
+ describe Vayacondios::Client::ItemSet do
9
+ context "after instantiation in legacy mode" do
10
+ itemset = Vayacondios::Client::ItemSet.new("foohost", 9999, "fooorg", "footopic", "fooid")
11
+ ary = ["foo", "bar", "baz"]
12
+
13
+ # testing internals here to avoid shimming up HTTP libraries.
14
+
15
+ it "generates a put request without a patch header when asked to create" do
16
+ Vayacondios.force_legacy_mode true
17
+
18
+ req = itemset.instance_eval{_req(:create, ary)}
19
+
20
+ req.method.should eql('PUT')
21
+ req.body.should eql(MultiJson.encode(ary))
22
+ req.path.should eql('/v1/fooorg/itemset/footopic/fooid')
23
+ req.each_header.to_a.should_not include(["x_method", "PATCH"])
24
+ end
25
+
26
+ it "generates a put request with a patch header when asked to update" do
27
+ Vayacondios.force_legacy_mode true
28
+
29
+ req = itemset.instance_eval{_req(:update, ary)}
30
+
31
+ req.method.should eql('PUT')
32
+ req.body.should eql(MultiJson.encode(ary))
33
+ req.path.should eql('/v1/fooorg/itemset/footopic/fooid')
34
+ req.each_header.to_a.should include(["x-method", "PATCH"])
35
+ end
36
+
37
+ it "generates a get request when asked to fetch" do
38
+ req = itemset.instance_eval{_req(:fetch)}
39
+
40
+ req.method.should eql('GET')
41
+ req.body.should be_nil
42
+ req.path.should eql('/v1/fooorg/itemset/footopic/fooid')
43
+ end
44
+
45
+ it "generates a delete request when asked to remove" do
46
+ Vayacondios.force_legacy_mode true
47
+
48
+ req = itemset.instance_eval{_req(:remove, ary)}
49
+
50
+ req.method.should eql('DELETE')
51
+ req.body.should eql(MultiJson.encode(ary))
52
+ req.path.should eql('/v1/fooorg/itemset/footopic/fooid')
53
+ end
54
+ end
55
+ end
@@ -12,13 +12,14 @@ describe Vayacondios::Client::ItemSet do
12
12
  end
13
13
 
14
14
  context "after instantiation" do
15
-
16
15
  itemset = Vayacondios::Client::ItemSet.new("foohost", 9999, "fooorg", "footopic", "fooid")
17
16
  ary = ["foo", "bar", "baz"]
18
17
 
19
18
  # testing internals here to avoid shimming up HTTP libraries.
20
19
 
21
20
  it "generates a put request without a patch header when asked to create" do
21
+ Vayacondios.force_legacy_mode false
22
+
22
23
  req = itemset.instance_eval{_req(:create, ary)}
23
24
 
24
25
  req.method.should eql('PUT')
@@ -28,6 +29,8 @@ describe Vayacondios::Client::ItemSet do
28
29
  end
29
30
 
30
31
  it "generates a put request with a patch header when asked to update" do
32
+ Vayacondios.force_legacy_mode false
33
+
31
34
  req = itemset.instance_eval{_req(:update, ary)}
32
35
 
33
36
  req.method.should eql('PUT')
@@ -45,6 +48,8 @@ describe Vayacondios::Client::ItemSet do
45
48
  end
46
49
 
47
50
  it "generates a delete request when asked to remove" do
51
+ Vayacondios.force_legacy_mode false
52
+
48
53
  req = itemset.instance_eval{_req(:remove, ary)}
49
54
 
50
55
  req.method.should eql('DELETE')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vayacondios-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -118,12 +118,14 @@ extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
120
  - lib/vayacondios-client.rb
121
+ - lib/vayacondios/client/config.rb
121
122
  - lib/vayacondios/client/configliere.rb
122
123
  - lib/vayacondios/client/cube_client.rb
123
124
  - lib/vayacondios/client/http_client.rb
124
125
  - lib/vayacondios/client/itemset.rb
125
126
  - lib/vayacondios/client/notifier.rb
126
127
  - lib/vayacondios/client/zabbix_client.rb
128
+ - spec/client/itemset_legacy_spec.rb
127
129
  - spec/client/itemset_spec.rb
128
130
  - spec/client/notifier_spec.rb
129
131
  homepage: https://github.com/infochimps-labs/vayacondios
@@ -140,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
142
  version: '0'
141
143
  segments:
142
144
  - 0
143
- hash: -3461893375101577588
145
+ hash: -3011077076674901928
144
146
  required_rubygems_version: !ruby/object:Gem::Requirement
145
147
  none: false
146
148
  requirements:
@@ -149,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
151
  version: '0'
150
152
  segments:
151
153
  - 0
152
- hash: -3461893375101577588
154
+ hash: -3011077076674901928
153
155
  requirements: []
154
156
  rubyforge_project:
155
157
  rubygems_version: 1.8.25
@@ -157,6 +159,7 @@ signing_key:
157
159
  specification_version: 3
158
160
  summary: Data goes in. The right thing happens
159
161
  test_files:
162
+ - spec/client/itemset_legacy_spec.rb
160
163
  - spec/client/itemset_spec.rb
161
164
  - spec/client/notifier_spec.rb
162
165
  has_rdoc: