opswalrus 1.0.90 → 1.0.92

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: be30907e45b6057c4144c751d217cbf29257467a43a774bb8af77aa3800e57ee
4
- data.tar.gz: 64cf47f93ca059c651a7d7d18d2ce413ff777f9227919010113775bfbf19abe4
3
+ metadata.gz: 12092a91a60682fa8bf763b91fcc872428f770204623883e5e4ede606facaec9
4
+ data.tar.gz: 0c6eab4a21a4dcaa665cae384e45ad5dbdf49be909bcd026838ea67017c006d5
5
5
  SHA512:
6
- metadata.gz: 99e694d84109d972405d1a261db3a87c20c1bf5c61ea1fb02404602f4010e4e0b5fa7ff48f891ae4951aabfd835034f26d491413c3a8866a5b87dd2e15d269f9
7
- data.tar.gz: bb839633cd249d2d4144c63665035b56800014563fef80db45f38a15952f872dca6e8a3925c39be4759964d9d31fcb36a2e22f5d3994cc39dcc11b3db2080451
6
+ metadata.gz: b96e1b0f743884e7e57830716d36e207d00cc9864391a5df41c8cde0eaf22dc53e9f43a7733401c1cf60f2405aac527e0569e1da8355e1b6b30e81659bd8a0e8
7
+ data.tar.gz: 8b219159bdf7cffb9b8fe7e3f75ad5d07c727647370b4a0d16285505eb376373636b8de09ad3e86da651d77ae4b2ac17a70c91affd75352c6356bb0aec085194
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.92)
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
@@ -170,10 +178,11 @@ module OpsWalrus
170
178
  App.instance.error "[!] The host '#{host}' doesn't accept password authentication method."
171
179
  rescue Errno::EHOSTUNREACH => e
172
180
  App.instance.error "[!] The host '#{host}' is unreachable"
173
- rescue => e
174
- App.instance.error e.class
175
- App.instance.error e.message
176
- App.instance.error e.backtrace.join("\n")
181
+ # rescue => e
182
+ # App.instance.error "[!] Command failed:"
183
+ # App.instance.error e.class
184
+ # App.instance.error e.message
185
+ # App.instance.error e.backtrace.join("\n")
177
186
  ensure
178
187
  host.clear_ssh_session
179
188
  end
@@ -1,3 +1,3 @@
1
1
  module OpsWalrus
2
- VERSION = "1.0.90"
2
+ VERSION = "1.0.92"
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.92
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Ellis