arborist-webservice 0.0.1 → 0.1.0

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
  SHA256:
3
- metadata.gz: 3d364d3021e618267b924682c39b011d365aa486c56a37c13842a23d71e4b4c6
4
- data.tar.gz: b6028b714764befd0d89372432d6936037eaa0b5bd54d10f735c537903fbeb38
3
+ metadata.gz: 9074057038e73d8e0ece407edd5dadd634c65e068a9c88b1f96559cf5638ac3f
4
+ data.tar.gz: 404d121137779059274aced0add2b36dbac8d3c868530a2564a0e7b13a3355be
5
5
  SHA512:
6
- metadata.gz: f7b5ff725bd2e08a5737e5c2d0ceb8dfdff21aec1d30633cf08fa0c310ca82c01f1524c3bdb2ce472843ca002536311cbf1eca65d1e087bd2487ecfb156741ee
7
- data.tar.gz: 1c023a87365bc5551a3ccb3f054e5c15a671f8bff6df0e66e88b8f83232d08524d0f4f07a94a791c19a033b67d8ff71eef437ecf730a4dbebefc08773472fcf4
6
+ metadata.gz: 77063a8daa6787169e5249187e79d05fa4abc10c84504ce2a47d5c2669247ebdb14314d4c1681392e2d5606f60fd88781e2d4fec9cf61a77fd56a95d21dc0756
7
+ data.tar.gz: c624e285ac468e8627b0fa5040ebc510cbdc5c510961bd1fe37962d1028ab15c976ede1a5a2dcb9a922ff4c874375535571fd54c8b669be3b04d3c53cb3d8ef5
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,8 +1,55 @@
1
+ 2018-09-03 Mahlon E. Smith <mahlon@martini.nu>
2
+
3
+ * lib/arborist/monitor/webservice.rb,
4
+ spec/arborist/monitor/webservice_spec.rb:
5
+ Always request 'expected_status' from the node when monitoring.
6
+ [ba3b0f990a97] [github/master, tip]
7
+
8
+ * lib/arborist/node/webservice.rb,
9
+ spec/arborist/node/webservice_spec.rb:
10
+ Allow method symbols or strings.
11
+ [2c0f5b6ec7ed]
12
+
13
+ * lib/arborist/monitor/webservice.rb:
14
+ Pass the entire node into #make_response_results, so child classes
15
+ that override this method have all the node information at their
16
+ disposal.
17
+ [0bbbc289d9af]
18
+
19
+ * spec/arborist/node/webservice_spec.rb:
20
+ Test shorthand node URI syntax with a port, too
21
+ [5eb19864f76f]
22
+
23
+ 2018-09-03 Mahlon E. Smith <mahlon@laika.com>
24
+
25
+ * spec/arborist/monitor/webservice_spec.rb:
26
+ Fix tests.
27
+ [339e7709deca]
28
+
29
+ 2018-08-30 Mahlon E. Smith <mahlon@martini.nu>
30
+
31
+ * lib/arborist/monitor/webservice.rb:
32
+ ... and do the same for timeout messages, including the current
33
+ value.
34
+ [c27a86bfa110]
35
+
36
+ * lib/arborist/monitor/webservice.rb:
37
+ Reuse the 'nicer' error message for the node state message.
38
+ [2e655e5843de]
39
+
1
40
  2018-08-30 Michael Granger <ged@FaerieMUD.org>
2
41
 
42
+ * .hgtags:
43
+ Added tag v0.0.1 for changeset ed8ca51f19e8
44
+ [be250f639097]
45
+
46
+ * .hgsigs:
47
+ Added signature for changeset 65c19b823a1b
48
+ [ed8ca51f19e8] [v0.0.1]
49
+
3
50
  * History.md, arborist-webservice.gemspec:
4
51
  Update history and the gemspec
5
- [65c19b823a1b] [tip]
52
+ [65c19b823a1b]
6
53
 
7
54
  * README.md, lib/arborist/monitor/webservice.rb,
8
55
  lib/arborist/node/webservice.rb,
@@ -18,7 +65,7 @@
18
65
  * lib/arborist/monitor/webservice.rb,
19
66
  spec/arborist/monitor/webservice_spec.rb:
20
67
  Rename 'HTML' monitor callback to 'HTTP'
21
- [c970fb9b5ccf] [github/master]
68
+ [c970fb9b5ccf]
22
69
 
23
70
  2018-08-15 Michael Granger <ged@FaerieMUD.org>
24
71
 
data/History.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## v0.1.0 [2018-09-03] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Always request 'expected_status' from the node when monitoring.
6
+ - Allow HTTP method to be either a symbol or a string.
7
+
8
+ Enhancements:
9
+
10
+ - Make error messages nicer.
11
+ - Support shorthand URI syntax to automatically use the containing
12
+ host's first IP.
13
+ - Improve the ability to override behavior of the HTTP monitor
14
+
15
+
1
16
  ## v0.0.1 [2018-08-30] Michael Granger <ged@FaerieMUD.org>
2
17
 
3
18
  Initial release.
@@ -61,7 +61,7 @@ module Arborist::Monitor::Webservice
61
61
  }
62
62
 
63
63
  # The array of node properites used by this monitor
64
- NODE_PROPERTIES = %i[ uri http_method body body_mimetype config ].freeze
64
+ NODE_PROPERTIES = %i[ uri expected_status http_method body body_mimetype config ].freeze
65
65
 
66
66
 
67
67
  ### Return an array of attributes to fetch from nodes for this monitor.
@@ -112,7 +112,7 @@ module Arborist::Monitor::Webservice
112
112
  request.on_complete do |response|
113
113
  self.log.debug "Handling response for %s" % [ identifier ]
114
114
  results[ identifier ] =
115
- self.make_response_results( response, node['expected_status'] )
115
+ self.make_response_results( response, node )
116
116
  end
117
117
  hydra.queue( request )
118
118
  end
@@ -184,21 +184,21 @@ module Arborist::Monitor::Webservice
184
184
 
185
185
 
186
186
  ### Return a Hash of results appropriate for the specified +response+.
187
- def make_response_results( response, expected_status=200 )
188
- if response.code == expected_status
187
+ def make_response_results( response, node )
188
+ if response.code == node[ 'expected_status' ]
189
189
  return { webservice: self.success_results(response) }
190
190
  elsif response.timed_out?
191
- self.log.error "Request timed out."
192
- return { error: 'Request timed out.' }
191
+ errmsg = "Request timed out after %0.1f seconds." % [ self.timeout ]
192
+ self.log.error( errmsg )
193
+ return { error: errmsg }
193
194
  elsif response.code == 0
194
195
  self.log.error( response.return_message )
195
196
  return { error: response.return_message }
196
197
  else
197
- self.log.error "Got an unexpected %03d %s response; expected %03d." %
198
- [ response.code, response.status_message, expected_status ]
199
- return {
200
- error: "%03d %s" % [ response.code, response.status_message ]
201
- }
198
+ errmsg = "Got an unexpected %03d %s response; expected %03d." %
199
+ [ response.code, response.status_message, node['expected_status'] ]
200
+ self.log.error( errmsg )
201
+ return { error: errmsg }
202
202
  end
203
203
  end
204
204
 
@@ -106,7 +106,7 @@ class Arborist::Node::Webservice < Arborist::Node::Service
106
106
  when 'uri'
107
107
  URI( self.uri ) == URI( val )
108
108
  when 'http_method'
109
- self.http_method == val
109
+ self.http_method.to_s == val
110
110
  when 'http_version'
111
111
  self.http_version == val
112
112
  when 'expected_status'
@@ -14,10 +14,10 @@ module Arborist::Webservice
14
14
 
15
15
 
16
16
  # Package version
17
- VERSION = '0.0.1'
17
+ VERSION = '0.1.0'
18
18
 
19
19
  # Version control revision
20
- REVISION = %q$Revision: 59e390021ccd $
20
+ REVISION = %q$Revision: b5c6af551f6c $
21
21
 
22
22
 
23
23
  ### Return the name of the library with the version, and optionally the build ID if
@@ -36,7 +36,7 @@ describe Arborist::Monitor::Webservice do
36
36
  let( :nodes ) {[ webservice_node1, webservice_node2, webservice_node3 ]}
37
37
  let( :nodes_hash ) do
38
38
  nodes.each_with_object({}) do |node, accum|
39
- accum[ node.identifier ] = node.fetch_values
39
+ accum[ node.identifier ] = node.fetch_values( described_class.node_properties.map( &:to_s ) )
40
40
  end
41
41
  end
42
42
 
@@ -75,7 +75,7 @@ describe Arborist::Monitor::Webservice do
75
75
 
76
76
  result = monitor.run( nodes_hash )
77
77
 
78
- expect( result[webservice_node3.identifier] ).to include( error: '500 Server Error' )
78
+ expect( result[webservice_node3.identifier] ).to include( error: /Got an unexpected 500 Server Error/ )
79
79
  end
80
80
 
81
81
 
@@ -103,7 +103,7 @@ describe Arborist::Monitor::Webservice do
103
103
 
104
104
  result = monitor.run( nodes_hash )
105
105
 
106
- expect( result[webservice_node2.identifier] ).to include( error: 'Request timed out.' )
106
+ expect( result[webservice_node2.identifier] ).to include( error: /Request timed out after/ )
107
107
  end
108
108
 
109
109
 
@@ -20,7 +20,7 @@ describe Arborist::Node::Webservice do
20
20
  let( :node ) { host_node.webservice('api', 'https://example.com/api/v1') }
21
21
  let( :getonly_node ) do
22
22
  host_node.webservice( 'repo-api', 'https://repo.example.com/' ) do
23
- http_method 'GET'
23
+ http_method :GET
24
24
  end
25
25
  end
26
26
  let( :http10_node ) do
@@ -70,5 +70,11 @@ describe Arborist::Node::Webservice do
70
70
  end
71
71
 
72
72
 
73
+ it "allows shorthand URI syntax with a port for implicit host" do
74
+ node = host_node.webservice( 'djinn', 'http://:8080/' )
75
+ expect( node.uri ).to eq( 'http://192.168.66.12:8080/' )
76
+ end
77
+
78
+
73
79
  end
74
80
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arborist-webservice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  X0qdrKi+2aZZ0NGuFj9AItBsVmAvkBGIpX4TEKQp5haEbPpmaqO5nIIhV26PXmyT
36
36
  OMKv6pWsoS81vw5KAGBmfX8nht/Py90DQrbRvakATGI=
37
37
  -----END CERTIFICATE-----
38
- date: 2018-08-31 00:00:00.000000000 Z
38
+ date: 2018-09-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: arborist
metadata.gz.sig CHANGED
Binary file