lita-consul 0.0.5 → 0.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e1dcdc85c967e90ba40290503f6e2262eab3168
4
- data.tar.gz: 6bf0caf3912baed6aaf5a204defe552f8568e4e3
3
+ metadata.gz: 9232658952f1f4983470a1482317b32aec9fe6cd
4
+ data.tar.gz: 37ec31b1e22031b9ec645d644185aa7517f47d7a
5
5
  SHA512:
6
- metadata.gz: 748b6e59e0102d457b5aa8a0d8ab7be876b1fd8cd00c3fbf6ce5fed7c2d920df4a61427b9db1c5fe126814896aa0f60c0257a56b7f3c5e8e944553e16e1eb53d
7
- data.tar.gz: 1240dd05be30f3abfc9cd27177d2b10c69bd2bc333d82ab4b8f35d5f371264235a8c6926de21ed7c04e8f99125db78b4d43182e5376ab97cf2b7c8fe660605b8
6
+ metadata.gz: d2184ec1fe24738df0955e50b470b5cdb993edd2e7e829684505243a28e12948018fda06398e55e538f55675334c1c5fdcf3d884db5d5f37431306ce7f983bb7
7
+ data.tar.gz: ebbbb868792a0505b9a4d535d0b9b8c0d4d6a5e3d3e759f344de0447139255cbcba07fb1a4d0663f4fcbddf2e6e8973df4eb9ccfac8a49c2595da0260e6f9c42
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2015 David Pires
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/dpires/lita-consul.png?branch=master)](https://travis-ci.org/dpires/lita-consul)
4
4
  [![Coverage Status](https://coveralls.io/repos/dpires/lita-consul/badge.svg?branch=master&service=github)](https://coveralls.io/github/dpires/lita-consul?branch=master)
5
+ [![Gem Version](https://badge.fury.io/rb/lita-consul.svg)](https://badge.fury.io/rb/lita-consul)
5
6
 
6
7
  **lita-consul** is a handler for [Lita](https://github.com/litaio/lita) for interacting with [Consul](https://github.com/hashicorp/consul).
7
8
 
@@ -28,8 +29,11 @@ gem "lita-consul"
28
29
  [Lita]: foo = bar
29
30
  [You]: lita consul set mykey myvalue
30
31
  [Lita]: mykey = myvalue
32
+ [You]: lita consul members
33
+ [Lita]: node1.node.consul - 192.168.0.33
34
+ node2.node.consul - 192.168.0.34
31
35
  ```
32
36
 
33
37
  ## License
34
38
 
35
- [MIT](http://opensource.org/licenses/MIT)
39
+ [MIT](LICENSE)
@@ -20,19 +20,26 @@ module Lita
20
20
  }
21
21
 
22
22
  def consul_members(response)
23
- resp = http.get("#{api_url}/catalog/nodes")
24
- replies = []
25
- MultiJson.load(resp.body).each do | node |
26
- replies << "#{node['Node']} - #{node['Address']}"
27
- end
28
- response.reply replies.join("\n")
23
+ begin
24
+ resp = http.get("#{api_url}/catalog/nodes")
25
+ replies = []
26
+ MultiJson.load(resp.body).each do | node |
27
+ replies << "#{node['Node']} - #{node['Address']}"
28
+ end
29
+ response.reply replies.join("\n")
30
+ rescue Faraday::ConnectionFailed => e
31
+ response.reply e.message
32
+ end
29
33
  end
30
34
 
31
35
  def consul_get(response)
32
36
  key = response.matches.first.first
33
-
34
- value = get_key_value(key)
35
- response.reply "#{key} = #{value}"
37
+ begin
38
+ value = get_key_value(key)
39
+ response.reply "#{key} = #{value}"
40
+ rescue Faraday::ConnectionFailed => e
41
+ response.reply e.message
42
+ end
36
43
  end
37
44
 
38
45
  def consul_set(response)
@@ -40,19 +47,16 @@ module Lita
40
47
  value = response.matches.first.last
41
48
  begin
42
49
  resp = http.put("#{api_url}/kv/#{key}", value)
43
- if resp.status == 200
44
- value = get_key_value(key)
45
- response.reply "#{key} = #{value}"
46
- else
47
- response.reply resp.body
48
- end
50
+ value = get_key_value(key)
51
+ response.reply "#{key} = #{value}"
52
+ rescue Faraday::ConnectionFailed => e
53
+ response.reply e.message
49
54
  end
50
55
  end
51
56
 
52
57
  private
53
58
 
54
59
  def get_key_value(key)
55
- begin
56
60
  resp = http.get("#{api_url}/kv/#{key}")
57
61
  obj = MultiJson.load(resp.body)
58
62
  unless obj[0]["Value"].nil?
@@ -61,9 +65,6 @@ module Lita
61
65
  else
62
66
  "null"
63
67
  end
64
- rescue Faraday::ConnectionFailed=> e
65
- e.to_s
66
- end
67
68
  end
68
69
 
69
70
  def api_url
data/lita-consul.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-consul"
3
- spec.version = "0.0.5"
3
+ spec.version = "0.0.6"
4
4
  spec.authors = ["David Pires"]
5
5
  spec.email = ["david.pires@gmail.com"]
6
6
  spec.description = "Lita handler for Consul"
@@ -68,6 +68,12 @@ describe Lita::Handlers::Consul, lita_handler: true do
68
68
  }
69
69
 
70
70
  describe '#consul members' do
71
+ it 'should catch connection error' do
72
+ allow_any_instance_of(Faraday::Connection).to receive(:get).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
73
+ send_command('consul members')
74
+ expect(replies.last).to eq('Connection refused - connect(2)');
75
+ end
76
+
71
77
  it 'should list member nodes' do
72
78
  allow(response).to receive(:body).and_return(members_response)
73
79
  send_command('consul members')
@@ -76,13 +82,19 @@ describe Lita::Handlers::Consul, lita_handler: true do
76
82
  end
77
83
 
78
84
  describe '#consul get' do
79
- it 'return value for key' do
85
+ it 'should catch error when exception occurs' do
86
+ allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
87
+ send_command('consul get mykey')
88
+ expect(replies.last).to eq('Connection refused - connect(2)');
89
+ end
90
+
91
+ it 'should return value for key' do
80
92
  allow(response).to receive(:body).and_return(single_key_response)
81
93
  send_command('consul get mykey')
82
94
  expect(replies.last).to eq("mykey = testing")
83
95
  end
84
96
 
85
- it 'return null value for key' do
97
+ it 'should return null value for key' do
86
98
  allow(response).to receive(:body).and_return(null_value_response)
87
99
  send_command('consul get mykey')
88
100
  expect(replies.last).to eq("mykey = null")
@@ -90,7 +102,13 @@ describe Lita::Handlers::Consul, lita_handler: true do
90
102
  end
91
103
 
92
104
  describe '#consul set' do
93
- it 'set and return value for key' do
105
+ it 'should catch error when exception occurs' do
106
+ allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
107
+ send_command('consul set mykey value')
108
+ expect(replies.last).to eq('Connection refused - connect(2)');
109
+ end
110
+
111
+ it 'should set and return value for key' do
94
112
  allow(response).to receive(:body).and_return(new_key_response)
95
113
  allow(response).to receive(:status).and_return(200)
96
114
  send_command('consul set myapp/config/url www.test.com')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-consul
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Pires
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-14 00:00:00.000000000 Z
11
+ date: 2015-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -132,6 +132,7 @@ files:
132
132
  - ".gitignore"
133
133
  - ".travis.yml"
134
134
  - Gemfile
135
+ - LICENSE
135
136
  - README.md
136
137
  - Rakefile
137
138
  - lib/lita-consul.rb