banter 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/banter/server/client_queue_listener.rb +5 -5
- data/lib/banter/version.rb +1 -1
- data/lib/banter/web/models/banter_message.rb +6 -4
- data/lib/banter/web/serializers/banter_message_serializer.rb +1 -0
- data/spec/banter/server/client_queue_listener_spec.rb +7 -1
- data/web/assets/javascripts/dashboard_app/controllers/message_controller.coffee +1 -0
- data/web/views/_message.haml +15 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42627fddd3d122f765afe2aef89821602043ba0d
|
4
|
+
data.tar.gz: c665d387761aa6a52af05a4e55e08ff35f794cf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b5e5f28f78eecfed934806260c4eda7231e338deb826132a0ba752c7c3238f6dd05693a884df0ac059552d765b80d910b8fc669464fd4a1213751d8321433c2
|
7
|
+
data.tar.gz: d33a2b58e7da306eebcb9424a3581834a3eca0b03a4711132fc32fcceec57a2b6fbe30c71b5726e4eaa39bd9551458b945bcf4dfee5933b0403cc88dd8b67514
|
@@ -38,7 +38,7 @@ module Banter
|
|
38
38
|
worker.perform!(payload)
|
39
39
|
track_message_successful
|
40
40
|
rescue ::Banter::PayloadValidationError => banter_error
|
41
|
-
track_message_failed(banter_error
|
41
|
+
track_message_failed(banter_error, false)
|
42
42
|
Banter::RabbitLogger.log(::Logger::ERROR, { worker: worker_class.name, message: banter_error.message, envelope: envelope })
|
43
43
|
Airbrake.notify("Validation error for #{worker_class.name}",
|
44
44
|
params: {
|
@@ -47,7 +47,7 @@ module Banter
|
|
47
47
|
context: envelope[:context],
|
48
48
|
payload: envelope[:payload] })
|
49
49
|
rescue => e
|
50
|
-
track_message_failed(e
|
50
|
+
track_message_failed(e, true)
|
51
51
|
Banter::RabbitLogger.log(::Logger::DEBUG, "Failed message for #{worker_class.name} #{e.message}")
|
52
52
|
Airbrake.notify("Failed perform for #{worker_class.name}",
|
53
53
|
params: {
|
@@ -65,10 +65,10 @@ module Banter
|
|
65
65
|
BanterMessage.message_successful
|
66
66
|
end
|
67
67
|
|
68
|
-
def track_message_failed(
|
68
|
+
def track_message_failed(error, errored = true)
|
69
69
|
return unless Banter::Configuration.web_enabled
|
70
|
-
status =
|
71
|
-
BanterMessage.message_failed(
|
70
|
+
status = errored ? BanterMessage::STATUS_ERROR : BanterMessage::STATUS_VALIDATION_FAILED
|
71
|
+
BanterMessage.message_failed(error, status)
|
72
72
|
end
|
73
73
|
|
74
74
|
def track_message_received(worker, payload)
|
data/lib/banter/version.rb
CHANGED
@@ -13,6 +13,7 @@ class BanterMessage
|
|
13
13
|
field :done_at, type: Time
|
14
14
|
field :status, type: String
|
15
15
|
field :error_message, type: String
|
16
|
+
field :error_backtrace
|
16
17
|
field :worker_id
|
17
18
|
field :progress_at, type: Integer
|
18
19
|
field :progress_total, type: Integer
|
@@ -71,10 +72,11 @@ class BanterMessage
|
|
71
72
|
# Records the current message as errored or validation failed with error message. Clears the BanterMessage.current
|
72
73
|
# @param [String] error_message
|
73
74
|
# @param [String] status
|
74
|
-
def self.message_failed(
|
75
|
-
current.status
|
76
|
-
current.done_at
|
77
|
-
current.error_message
|
75
|
+
def self.message_failed(error, status)
|
76
|
+
current.status = status
|
77
|
+
current.done_at = Time.now
|
78
|
+
current.error_message = error.message
|
79
|
+
current.error_backtrace = error.backtrace
|
78
80
|
current.save!
|
79
81
|
BanterWorker.clear_current_message!(false)
|
80
82
|
@@current = nil
|
@@ -22,6 +22,7 @@ module Banter
|
|
22
22
|
done_at: message.done_at,
|
23
23
|
status: message.status,
|
24
24
|
error_message: message.error_message,
|
25
|
+
error_backtrace: message.error_backtrace,
|
25
26
|
worker_id: message.worker_id,
|
26
27
|
progress_total: message.progress_total,
|
27
28
|
progress_at: message.progress_at,
|
@@ -29,7 +29,13 @@ describe Banter::Server::ClientQueueListener do
|
|
29
29
|
it { expect(banter_message.done_at.to_s).to eq(Time.now.to_s) }
|
30
30
|
it { expect(banter_message.worker_id).to eq(BanterWorker.current.id) }
|
31
31
|
it { expect(banter_message.status).to eq(status) }
|
32
|
-
|
32
|
+
if error_message
|
33
|
+
it { expect(banter_message.error_message).to eq(error_message) }
|
34
|
+
it { expect(banter_message.error_backtrace).not_to be_blank }
|
35
|
+
else
|
36
|
+
it { expect(banter_message.error_message).to be_nil }
|
37
|
+
it { expect(banter_message.error_backtrace).to be_nil }
|
38
|
+
end
|
33
39
|
end
|
34
40
|
|
35
41
|
before do
|
@@ -1,6 +1,7 @@
|
|
1
1
|
angular.module('dashboardApp').controller 'messageController', ($scope, $rootScope, $http, $routeParams, $timeout, message, messagesService, commonMethodsService, messageMethodsService) ->
|
2
2
|
commonMethodsService.setup($scope)
|
3
3
|
messageMethodsService.setup($scope)
|
4
|
+
$scope.showBacktrace = false
|
4
5
|
$scope.message = message
|
5
6
|
|
6
7
|
$rootScope.$on 'start-messageController', ->
|
data/web/views/_message.haml
CHANGED
@@ -36,6 +36,21 @@
|
|
36
36
|
.col-sm-3.bold Payload
|
37
37
|
.col-sm-9
|
38
38
|
%pre{data: { 'pretty-json' => 'message.payload'}}
|
39
|
+
|
40
|
+
%li.list-group-item.row{data: { 'ng-if' => 'message.error_message'}}
|
41
|
+
.col-sm-3.bold Error Message
|
42
|
+
.col-sm-9 {{ message.error_message }}
|
43
|
+
|
44
|
+
%li.list-group-item.row{data: { 'ng-if' => 'message.error_backtrace'}}
|
45
|
+
.col-sm-3.bold Error Backtrace
|
46
|
+
.col-sm-9
|
47
|
+
%a{data: { 'ng-click' => "showBacktrace = !showBacktrace"}}
|
48
|
+
%span{data: { 'ng-show' => 'showBacktrace' }} Hide Backtrace
|
49
|
+
%span{data: { 'ng-show' => '!showBacktrace' }} Show Backtrace
|
50
|
+
%div{data: { 'ng-if' => 'showBacktrace'}}
|
51
|
+
%p{data: { 'ng-repeat' => "bt in message.error_backtrace track by $index"}}
|
52
|
+
{{ bt }}
|
53
|
+
|
39
54
|
%li.list-group-item.row{data: {'ng-show' => 'message.progress || message.progress_at || message.progress_total'}}
|
40
55
|
.col-sm-3.bold Progress
|
41
56
|
.col-sm-9
|