opswalrus 1.0.89 → 1.0.91

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: ea3eb2c025307f4caf46517d31cc699e129f11a1f5af9ab031a17813f54478cb
4
- data.tar.gz: 22d758a1ac797784030ef99dea7f16cb042060d90a20d826b3d999a0276030fa
3
+ metadata.gz: 715100b21f903cbb4dd8b56d95cf47b9be85450f8f48522cc85930fecf6ac5f3
4
+ data.tar.gz: b663103514a09ae4aca6c53628aa23c8d19ec40bc658ef91d39bd88a2f2f9139
5
5
  SHA512:
6
- metadata.gz: 335f860e454819af1e4741a06d936a8b2e8b1ab66faf3504b1b064801b3ecd267a1f8034d56ed2a5188b2a560174fcf266c30c510ed5dee20000fa4b230ee337
7
- data.tar.gz: 82d39a23be2b270400b7f5207570d73d7b8952c1305e214ce38dd5dec3f2084817a96cced59d0d017cdd0334f8748b9c06a0dd359098725238779f4038cafd5a
6
+ metadata.gz: 84414b900f1d6c6fc70642828fc14a7791a317e76051c60daec2865d33f6d40e91af35ed71e3ac8f67f88485eca9ff59e08f78a40501034113096fae92db0d39
7
+ data.tar.gz: 064154eb02e64e59d06b9a0d344f2fba5493eda287f73fb8456cf40a4440cdb7f3da568a222ab1f71e4adf218e34b9089a92157d05fc3b2cbeeea08e86504396
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opswalrus (1.0.89)
4
+ opswalrus (1.0.91)
5
5
  activesupport (~> 7.0)
6
6
  bcrypt_pbkdf (~> 1.1)
7
7
  binding_of_caller (~> 1.0)
data/lib/opswalrus/app.rb CHANGED
@@ -320,10 +320,7 @@ module OpsWalrus
320
320
  when Invocation::Success
321
321
  result.value
322
322
  when Invocation::Error
323
- {
324
- error_type: result.value.class,
325
- error: result.value,
326
- }
323
+ result.serialize_error
327
324
  end
328
325
  io.puts JSON.pretty_generate(obj)
329
326
  io.string
@@ -2,6 +2,9 @@ module OpsWalrus
2
2
  class Error < StandardError
3
3
  end
4
4
 
5
+ class InvocationError < Error
6
+ end
7
+
5
8
  class SymbolResolutionError < Error
6
9
  end
7
10
  end
@@ -215,7 +215,11 @@ module OpsWalrus
215
215
  retval = JSON.parse(json_string)
216
216
  case retval
217
217
  when Hash
218
- retval.with_indifferent_access.easynav
218
+ if retval["type"] == 'Invocation::Error'
219
+ raise InvocationError.new("#{retval["error_type"]}: #{retval["error"]}#{retval["backtrace"] && "\n Backtrace: #{retval['backtrace']}"}")
220
+ else
221
+ retval.with_indifferent_access.easynav
222
+ end
219
223
  when Array
220
224
  retval.easynav
221
225
  else
@@ -86,17 +86,17 @@ module OpsWalrus
86
86
  Invocation::Success.new(ruby_script_return)
87
87
  end
88
88
  rescue SSHKit::Command::Failed => e
89
- App.instance.error "[!] Command failed: #{e.message}"
89
+ App.instance.error "Runtime error, command failed: #{e.message}"
90
90
  Invocation::Error.new(e)
91
91
  rescue Error => e
92
92
  # puts "OperationRunner#run - #{Time.now.strftime('%s%L')}"
93
- App.instance.error "Error: Ops script crashed."
93
+ App.instance.error "Runtime error: Ops script crashed."
94
94
  App.instance.error e.message
95
95
  App.instance.error e.backtrace.take(10).join("\n")
96
96
  Invocation::Error.new(e)
97
97
  rescue => e
98
98
  # puts "OperationRunner#run - #{Time.now.strftime('%s%L')}"
99
- App.instance.error "Unhandled Error: Ops script crashed."
99
+ App.instance.error "Unhandled runtime error: Ops script crashed."
100
100
  App.instance.error e.class
101
101
  App.instance.error e.message
102
102
  App.instance.error e.backtrace.take(10).join("\n")
@@ -40,6 +40,14 @@ module OpsWalrus
40
40
  def initialize(value, exit_status = 1)
41
41
  super(value, exit_status == 0 ? 1 : exit_status)
42
42
  end
43
+ def serialize_error
44
+ {
45
+ type: "Invocation::Error",
46
+ error_type: value.class.name,
47
+ error: value,
48
+ backtrace: value.is_a?(Exception) ? value.backtrace.take(10).join("\n") : nil,
49
+ }
50
+ end
43
51
  def failure?
44
52
  true
45
53
  end
@@ -1,3 +1,3 @@
1
1
  module OpsWalrus
2
- VERSION = "1.0.89"
2
+ VERSION = "1.0.91"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opswalrus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.89
4
+ version: 1.0.91
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Ellis