statscloud 1.1.0 → 1.1.1

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
  SHA256:
3
- metadata.gz: 46395a60038b7f3886bc4e79275fe98156940690f73acee7ab8061a28164e82e
4
- data.tar.gz: dc1d83819866769fb18f48f732f5e8db2ed2d2c732c2929d949cbdc1f21de96d
3
+ metadata.gz: 453bc5a93478f283118f53760a2e4d317991430fe3c456099cf4bba6c60980ed
4
+ data.tar.gz: f92c79947fc8e0d8ce281e2ee53021aca4b5b256eb421dfb763f31520dfa5b7b
5
5
  SHA512:
6
- metadata.gz: 016af1b77dd8c472abea59ec7737735581ae9e6b3ffdd7e9f1cd32bf6cc36d59ffd54219cd163a460fcbce5771433c333afb7847ebcc20ad11d518d420c80edd
7
- data.tar.gz: 1c79fd2b558d124c645dc4c3f9e1f29082f2d83fd696ce5966a9c9e641d797f6f1a557cfac66c0c1a5518d20f8c44a4316fa68939d3fb58c61a1fba022bc8d1f
6
+ metadata.gz: f6570bb5634c9f84c47b8faad0d9c8fe0a38735cb5b82d84c0136bbacc5f48e4aaeb158f865991a2823ad332121849f3c15d4f4ee64f65dce23457c12aad549d
7
+ data.tar.gz: ba903954aa9544c4314e6e5ff933f5cb9d6ccb26a1f6069cac1c10816657d7dcc35e7275f67f1f2fdd4c32331bf2e7ccd8f53bcc1c76dbbf0c0caa84566d0fa0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- statscloud (1.1.0)
4
+ statscloud (1.1.1)
5
5
  crc32 (~> 1.0.1)
6
6
  eventmachine (~> 1.2)
7
7
  fileutils
@@ -2,12 +2,15 @@
2
2
 
3
3
  require "rest-client"
4
4
 
5
- require_relative "./helpers/logger_helper"
6
- require_relative "./helpers/parsed_response_helper"
5
+ require_relative "helpers/json_parser"
6
+ require_relative "helpers/logger_helper"
7
+ require_relative "helpers/cluster_client/parsed_response_helper"
8
+ require_relative "errors/client_error"
7
9
 
8
10
  module StatsCloud
9
11
  # statscloud.io cluster-api service client.
10
12
  class ClusterClient
13
+ include StatsCloud::JsonParser
11
14
  include StatsCloud::LoggerHelper
12
15
 
13
16
  # Constructs cluster-api service client instance.
@@ -53,6 +56,10 @@ module StatsCloud
53
56
  body = body_hash_parameters(configuration)
54
57
  response = http_client.put(url, body.to_json, headers(token))
55
58
  get_parsed_response(response)
59
+ rescue RestClient::ExceptionWithResponse => error
60
+ error_info = convert_to_pretty_json(error.http_body)
61
+ logger($stdout).error error_info
62
+ raise statscloud_client_error(error_info)
56
63
  end
57
64
 
58
65
  # Schedules cluster to be undeployed.
@@ -109,6 +116,10 @@ module StatsCloud
109
116
  }
110
117
  end
111
118
 
119
+ def statscloud_client_error(message)
120
+ StatsCloud::ClientError.new(message)
121
+ end
122
+
112
123
  def get_parsed_response(response)
113
124
  StatsCloud::ParsedResponseHelper.new(response)
114
125
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
3
+ require_relative "../json_parser"
4
4
 
5
5
  module StatsCloud
6
6
  # This helper works to parse response from the server to convenient object.
7
7
  class ParsedResponseHelper
8
+ include StatsCloud::JsonParser
8
9
  # RestClient json-parsed response body.
9
10
  #
10
11
  # Type: *Hash*
@@ -21,15 +22,7 @@ module StatsCloud
21
22
  # response from the cluster.
22
23
  def initialize(response)
23
24
  @code = response&.code
24
- @body = parse_json(response.body)
25
- end
26
-
27
- private
28
-
29
- def parse_json(json, default = nil)
30
- JSON.parse(json)
31
- rescue JSON::ParserError
32
- default
25
+ @body = parse_json(response.body, nil)
33
26
  end
34
27
  end
35
28
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module StatsCloud
6
+ # Json Parser helper.
7
+ module JsonParser
8
+ def parse_json(json, default = {})
9
+ json_service.parse(json)
10
+ rescue JSON::ParserError
11
+ default
12
+ end
13
+
14
+ def convert_to_pretty_json(json)
15
+ json_service.pretty_generate parse_json(json)
16
+ end
17
+
18
+ private
19
+
20
+ def json_service
21
+ JSON
22
+ end
23
+ end
24
+ end
@@ -6,9 +6,9 @@ module StatsCloud
6
6
  # This helper works to help log errors and info about StatsCloud service work.
7
7
  module LoggerHelper
8
8
  # Log information about work to standard output
9
- def logger
9
+ def logger(output = default_output)
10
10
  file_utils.mkdir_p "log"
11
- @logger ||= logger_service.new(File.join("log", "statscloud.log")).tap do |log|
11
+ @logger ||= logger_service.new(output).tap do |log|
12
12
  log.progname = "StatsCloud"
13
13
  end
14
14
  end
@@ -31,6 +31,10 @@ module StatsCloud
31
31
 
32
32
  attr_reader :last_error_log_at, :last_info_log_at
33
33
 
34
+ def default_output
35
+ File.join("log", "statscloud.log")
36
+ end
37
+
34
38
  def log_with_interval(type, last_log_at, message)
35
39
  logger.add(type, message) if can_log?(last_log_at)
36
40
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "socket"
4
- require_relative "../errors/client_error"
4
+
5
+ require_relative "../../errors/client_error"
5
6
 
6
7
  module StatsCloud
7
8
  # This helper configures StatsCloud::Client.
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "statscloud.io-ruby-socket.io-client-simple"
4
4
 
5
- require_relative "logger_helper"
5
+ require_relative "../logger_helper"
6
6
 
7
7
  module StatsCloud
8
8
  # This helper works to create socket connection.
@@ -1,13 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "version"
4
- require_relative "statsmeter_client"
5
4
  require_relative "cluster_client"
6
- require_relative "helpers/assets_helper"
7
- require_relative "helpers/logger_helper"
8
- require_relative "helpers/statscloud_helper"
5
+ require_relative "statsmeter_client"
6
+
9
7
  require_relative "jobs/register_connection_job"
10
8
 
9
+ require_relative "helpers/logger_helper"
10
+ require_relative "helpers/statscloud_client/assets_helper"
11
+ require_relative "helpers/statscloud_client/statscloud_helper"
12
+
11
13
  module StatsCloud
12
14
  # Module which implements StatsCloud framework support.
13
15
  class Client
@@ -3,10 +3,10 @@
3
3
  require "crc32"
4
4
  require "eventmachine"
5
5
 
6
- require_relative "helpers/socketio_helper"
7
- require_relative "helpers/statsmeter_helper"
6
+ require_relative "helpers/statsmeter_client/socketio_helper"
7
+ require_relative "helpers/statsmeter_client/statsmeter_helper"
8
+ require_relative "helpers/statsmeter_client/event_helper"
8
9
  require_relative "helpers/logger_helper"
9
- require_relative "helpers/event_helper"
10
10
  require_relative "helpers/plugins_helper"
11
11
 
12
12
  module StatsCloud
@@ -4,5 +4,5 @@ module StatsCloud
4
4
  # version of statscloud-ruby-client.
5
5
  #
6
6
  # Type: *String*
7
- VERSION = "1.1.0"
7
+ VERSION = "1.1.1"
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statscloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Ovcharov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-17 00:00:00.000000000 Z
11
+ date: 2018-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: crc32
@@ -200,14 +200,15 @@ files:
200
200
  - lib/statscloud.rb
201
201
  - lib/statscloud/cluster_client.rb
202
202
  - lib/statscloud/errors/client_error.rb
203
- - lib/statscloud/helpers/assets_helper.rb
204
- - lib/statscloud/helpers/event_helper.rb
203
+ - lib/statscloud/helpers/cluster_client/parsed_response_helper.rb
204
+ - lib/statscloud/helpers/json_parser.rb
205
205
  - lib/statscloud/helpers/logger_helper.rb
206
- - lib/statscloud/helpers/parsed_response_helper.rb
207
206
  - lib/statscloud/helpers/plugins_helper.rb
208
- - lib/statscloud/helpers/socketio_helper.rb
209
- - lib/statscloud/helpers/statscloud_helper.rb
210
- - lib/statscloud/helpers/statsmeter_helper.rb
207
+ - lib/statscloud/helpers/statscloud_client/assets_helper.rb
208
+ - lib/statscloud/helpers/statscloud_client/statscloud_helper.rb
209
+ - lib/statscloud/helpers/statsmeter_client/event_helper.rb
210
+ - lib/statscloud/helpers/statsmeter_client/socketio_helper.rb
211
+ - lib/statscloud/helpers/statsmeter_client/statsmeter_helper.rb
211
212
  - lib/statscloud/jobs/register_connection_job.rb
212
213
  - lib/statscloud/statscloud_client.rb
213
214
  - lib/statscloud/statsmeter_client.rb