opswalrus 1.0.90 → 1.0.91

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: be30907e45b6057c4144c751d217cbf29257467a43a774bb8af77aa3800e57ee
4
- data.tar.gz: 64cf47f93ca059c651a7d7d18d2ce413ff777f9227919010113775bfbf19abe4
3
+ metadata.gz: 715100b21f903cbb4dd8b56d95cf47b9be85450f8f48522cc85930fecf6ac5f3
4
+ data.tar.gz: b663103514a09ae4aca6c53628aa23c8d19ec40bc658ef91d39bd88a2f2f9139
5
5
  SHA512:
6
- metadata.gz: 99e694d84109d972405d1a261db3a87c20c1bf5c61ea1fb02404602f4010e4e0b5fa7ff48f891ae4951aabfd835034f26d491413c3a8866a5b87dd2e15d269f9
7
- data.tar.gz: bb839633cd249d2d4144c63665035b56800014563fef80db45f38a15952f872dca6e8a3925c39be4759964d9d31fcb36a2e22f5d3994cc39dcc11b3db2080451
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.90)
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,11 +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
- backtrace: result.value.backtrace.take(10).join("\n")
327
- }
323
+ result.serialize_error
328
324
  end
329
325
  io.puts JSON.pretty_generate(obj)
330
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.90"
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.90
4
+ version: 1.0.91
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Ellis