consul_api 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c41569f58a1d5cfd56e2fa6f1e49aa91cd44c6d
4
- data.tar.gz: b1d83907083c624c58129e1c32bb20aa3479a9a2
3
+ metadata.gz: f22e8fdb3be7edafca3fbc65932cf460ba5a8e25
4
+ data.tar.gz: 5b867560da1f1446001bf4762a868980b895b799
5
5
  SHA512:
6
- metadata.gz: a0bb0fd26ad95722ebbea0fb8abdb0b1ca7c3456cf0149a2b0eb4338ad508691025f5c0acd8570c7f937b65f34f69cc8429570089138681a4e212dc1e05e2e78
7
- data.tar.gz: 69c4f618c5faaefc1896fafe952417bd3b778d66319e098fc9483ccf967506809767e3adbfde37ea922cc266b5274c20e604f0d7c39c9def3c17ebc8c5433b64
6
+ metadata.gz: ef4049f4576df68f9d6986a89fbc5a30de19c9e942e4cba6514be04e05e363225a14618314bf937dfe3b17b6d3b3c2ce0a19f7a23df615a98de4334041188741
7
+ data.tar.gz: 0b671d652a0060ecda80fbcceaaeda43984b1f2456c30512bab147c2aacc127236bd6817bc1e0c3412b7292a89124b2d2f9487bede6feb8bb29fea3dcabf01d1
@@ -11,18 +11,17 @@ module ConsulApi
11
11
  # gets and puts will fail with an http status code in the 4xx and 5xx range
12
12
  fail "http status #{response.status} returned from consul" if response.status >= 400
13
13
 
14
- # if the response is empty, return an empty hash
15
- body = response.body == '' ? '{}' : response.body
16
-
14
+ # return a nil of the response is 'null'
15
+ return nil if response.body == nil || response.body == 'null'
17
16
  begin
17
+ # if the response is empty, return an empty hash
18
+ body = response.body == '' ? '{}' : response.body
18
19
  parsed_response = JSON.parse(body)
19
20
  rescue => e
20
21
  fail "unable to parse the json returned by Consul. Returned data: #{response.body}"
21
22
  end
22
23
 
23
- return Hashie::Mash.new(parsed_response) if parsed_response.is_a?(Hash)
24
- # assume array otherwise, and return a collection of Mashes
25
- parsed_response.map { |node| Hashie::Mash.new(node) }
24
+ parsed_response
26
25
  end
27
26
 
28
27
  def consul_ip
@@ -1,3 +1,3 @@
1
1
  module ConsulApi
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -3,13 +3,13 @@ require 'spec_helper'
3
3
  describe ConsulApi::Agent, :vcr do
4
4
  describe '#services' do
5
5
  it 'gets services running on an agent' do
6
- expect(ConsulApi::Agent.services).to be_a(Hashie::Mash)
6
+ expect(ConsulApi::Agent.services).to be_a(Hash)
7
7
  end
8
8
  end
9
9
 
10
10
  describe '#service_register' do
11
11
  it 'registers a service on consul' do
12
- expect(ConsulApi::Agent.service_register({'ID' => '123', 'Name' => 'abc'})).to be_a(Hashie::Mash)
12
+ expect(ConsulApi::Agent.service_register({'ID' => '123', 'Name' => 'abc'})).to be_a(Hash)
13
13
  end
14
14
  end
15
15
 
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe ConsulApi::Catalog, :vcr do
4
+ describe '#datacenters' do
5
+ it 'returns an array of the data' do
6
+ expect(ConsulApi::Catalog.datacenters).to be_a(Array)
7
+ end
8
+ end
9
+
10
+ describe '#nodes' do
11
+ it 'returns an array of the data' do
12
+ expect(ConsulApi::Catalog.nodes).to be_a(Array)
13
+ end
14
+ end
15
+
16
+ describe '#services' do
17
+ it 'returns an array of the data' do
18
+ expect(ConsulApi::Catalog.services).to be_a(Hash)
19
+ end
20
+ end
21
+
22
+ describe '#node' do
23
+ it 'returns an array of the data' do
24
+ expect(ConsulApi::Catalog.node('488221c29862')).to be_a(Hash)
25
+ end
26
+ end
27
+
28
+ describe '#service' do
29
+ it 'returns an array of the data' do
30
+ expect(ConsulApi::Catalog.service('abc')).to be_a(Array)
31
+ end
32
+ end
33
+ end
@@ -21,7 +21,7 @@ http_interactions:
21
21
  message: OK
22
22
  headers:
23
23
  Date:
24
- - Wed, 17 Sep 2014 22:03:52 GMT
24
+ - Wed, 17 Sep 2014 23:48:17 GMT
25
25
  Content-Length:
26
26
  - '0'
27
27
  Content-Type:
@@ -30,5 +30,5 @@ http_interactions:
30
30
  encoding: UTF-8
31
31
  string: ''
32
32
  http_version:
33
- recorded_at: Wed, 17 Sep 2014 22:03:52 GMT
33
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
34
34
  recorded_with: VCR 2.9.2
@@ -23,12 +23,12 @@ http_interactions:
23
23
  Content-Type:
24
24
  - application/json
25
25
  Date:
26
- - Wed, 17 Sep 2014 22:03:52 GMT
26
+ - Wed, 17 Sep 2014 23:48:17 GMT
27
27
  Content-Length:
28
28
  - '162'
29
29
  body:
30
30
  encoding: UTF-8
31
31
  string: '{"123":{"ID":"123","Service":"abc","Tags":null,"Port":0},"jockey_consul_update":{"ID":"jockey_consul_update","Service":"docker_consul_update","Tags":[],"Port":0}}'
32
32
  http_version:
33
- recorded_at: Wed, 17 Sep 2014 22:03:52 GMT
33
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
34
34
  recorded_with: VCR 2.9.2
@@ -0,0 +1,34 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://127.0.0.1:8500/v1/catalog/datacenters
6
+ body:
7
+ encoding: UTF-8
8
+ string: 'null'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json
25
+ Date:
26
+ - Wed, 17 Sep 2014 23:48:17 GMT
27
+ Content-Length:
28
+ - '7'
29
+ body:
30
+ encoding: UTF-8
31
+ string: '["dc1"]'
32
+ http_version:
33
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
34
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://127.0.0.1:8500/v1/catalog/node/488221c29862
6
+ body:
7
+ encoding: UTF-8
8
+ string: 'null'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json
25
+ X-Consul-Index:
26
+ - '290'
27
+ X-Consul-Knownleader:
28
+ - 'true'
29
+ X-Consul-Lastcontact:
30
+ - '0'
31
+ Date:
32
+ - Wed, 17 Sep 2014 23:48:17 GMT
33
+ Content-Length:
34
+ - '294'
35
+ body:
36
+ encoding: UTF-8
37
+ string: '{"Node":{"Node":"488221c29862","Address":"172.17.42.1"},"Services":{"123":{"ID":"123","Service":"abc","Tags":[],"Port":0},"consul":{"ID":"consul","Service":"consul","Tags":[],"Port":8300},"jockey_consul_update":{"ID":"jockey_consul_update","Service":"docker_consul_update","Tags":[],"Port":0}}}'
38
+ http_version:
39
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
40
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://127.0.0.1:8500/v1/catalog/nodes
6
+ body:
7
+ encoding: UTF-8
8
+ string: 'null'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json
25
+ X-Consul-Index:
26
+ - '290'
27
+ X-Consul-Knownleader:
28
+ - 'true'
29
+ X-Consul-Lastcontact:
30
+ - '0'
31
+ Date:
32
+ - Wed, 17 Sep 2014 23:48:17 GMT
33
+ Content-Length:
34
+ - '49'
35
+ body:
36
+ encoding: UTF-8
37
+ string: '[{"Node":"488221c29862","Address":"172.17.42.1"}]'
38
+ http_version:
39
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
40
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://127.0.0.1:8500/v1/catalog/service/abc
6
+ body:
7
+ encoding: UTF-8
8
+ string: 'null'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json
25
+ X-Consul-Index:
26
+ - '290'
27
+ X-Consul-Knownleader:
28
+ - 'true'
29
+ X-Consul-Lastcontact:
30
+ - '0'
31
+ Date:
32
+ - Wed, 17 Sep 2014 23:48:17 GMT
33
+ Content-Length:
34
+ - '120'
35
+ body:
36
+ encoding: UTF-8
37
+ string: '[{"Node":"488221c29862","Address":"172.17.42.1","ServiceID":"123","ServiceName":"abc","ServiceTags":[],"ServicePort":0}]'
38
+ http_version:
39
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
40
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://127.0.0.1:8500/v1/catalog/services
6
+ body:
7
+ encoding: UTF-8
8
+ string: 'null'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json
25
+ X-Consul-Index:
26
+ - '290'
27
+ X-Consul-Knownleader:
28
+ - 'true'
29
+ X-Consul-Lastcontact:
30
+ - '0'
31
+ Date:
32
+ - Wed, 17 Sep 2014 23:48:17 GMT
33
+ Content-Length:
34
+ - '48'
35
+ body:
36
+ encoding: UTF-8
37
+ string: '{"abc":[],"consul":[],"docker_consul_update":[]}'
38
+ http_version:
39
+ recorded_at: Wed, 17 Sep 2014 23:48:17 GMT
40
+ recorded_with: VCR 2.9.2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consul_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay OConnor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2014-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -156,10 +156,16 @@ files:
156
156
  - lib/consul_api/dns.rb
157
157
  - lib/consul_api/version.rb
158
158
  - spec/agent_spec.rb
159
+ - spec/catalog_spec.rb
159
160
  - spec/spec_helper.rb
160
161
  - spec/support/vcr.rb
161
162
  - spec/vcr/consul_api/agent_service_register/registers_a_service_on_consul.yml
162
163
  - spec/vcr/consul_api/agent_services/gets_services_running_on_an_agent.yml
164
+ - spec/vcr/consul_api/catalog_datacenters/returns_an_array_of_the_data.yml
165
+ - spec/vcr/consul_api/catalog_node/returns_an_array_of_the_data.yml
166
+ - spec/vcr/consul_api/catalog_nodes/returns_an_array_of_the_data.yml
167
+ - spec/vcr/consul_api/catalog_service/returns_an_array_of_the_data.yml
168
+ - spec/vcr/consul_api/catalog_services/returns_an_array_of_the_data.yml
163
169
  homepage: ''
164
170
  licenses:
165
171
  - MIT
@@ -186,7 +192,13 @@ specification_version: 4
186
192
  summary: Ruby wrapper for Consul V1 API
187
193
  test_files:
188
194
  - spec/agent_spec.rb
195
+ - spec/catalog_spec.rb
189
196
  - spec/spec_helper.rb
190
197
  - spec/support/vcr.rb
191
198
  - spec/vcr/consul_api/agent_service_register/registers_a_service_on_consul.yml
192
199
  - spec/vcr/consul_api/agent_services/gets_services_running_on_an_agent.yml
200
+ - spec/vcr/consul_api/catalog_datacenters/returns_an_array_of_the_data.yml
201
+ - spec/vcr/consul_api/catalog_node/returns_an_array_of_the_data.yml
202
+ - spec/vcr/consul_api/catalog_nodes/returns_an_array_of_the_data.yml
203
+ - spec/vcr/consul_api/catalog_service/returns_an_array_of_the_data.yml
204
+ - spec/vcr/consul_api/catalog_services/returns_an_array_of_the_data.yml