banter 1.0.1 → 1.0.2
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 +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
|