statscloud 1.1.0 → 1.1.1

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: 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