Skip to content
This repository was archived by the owner on Jun 2, 2021. It is now read-only.

Commit 0c199d4

Browse files
author
Aakash Shah
committed
Truncate 'metadata' app.crash event payload
fixes cloudfoundry/capi-release#152 fixes cloudfoundry/capi-release#162 [#168010974 #170222110] Authored-by: Aakash Shah <ashah@pivotal.io>
1 parent 7395ee8 commit 0c199d4

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

app/repositories/app_event_repository.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ module VCAP::CloudController
44
module Repositories
55
class AppEventRepository
66
include AppManifestEventMixins
7+
TRUNCATED_SUFFIX = ' (truncated)'.freeze
8+
TRUNCATE_THRESHOLD = 10000
79

810
CENSORED_FIELDS = [:encrypted_environment_json,
911
:command,
@@ -17,6 +19,8 @@ def create_app_exit_event(app, droplet_exited_payload)
1719

1820
actor = { name: app.name, guid: app.guid, type: 'app' }
1921
metadata = droplet_exited_payload.slice('instance', 'index', 'cell_id', 'exit_status', 'exit_description', 'reason')
22+
metadata['exit_description'] = metadata['exit_description'].truncate(TRUNCATE_THRESHOLD, omission: TRUNCATED_SUFFIX)
23+
2024
create_app_audit_event('app.crash', app, app.space, actor, metadata)
2125
end
2226

spec/unit/repositories/app_event_repository_spec.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,14 @@ module Repositories
187187

188188
describe '#create_app_exit_event' do
189189
let(:exiting_process) { ProcessModelFactory.make }
190+
let(:exit_description) { 'X' * AppEventRepository::TRUNCATE_THRESHOLD * 2 }
190191
let(:droplet_exited_payload) {
191192
{
192193
'instance' => 'abc',
193194
'index' => '2',
194195
'cell_id' => 'some-cell',
195196
'exit_status' => '1',
196-
'exit_description' => 'shut down',
197+
'exit_description' => exit_description,
197198
'reason' => 'evacuation',
198199
'unknown_key' => 'something'
199200
}
@@ -213,7 +214,8 @@ module Repositories
213214
expect(event.metadata['cell_id']).to eq('some-cell')
214215
expect(event.metadata['index']).to eq('2')
215216
expect(event.metadata['exit_status']).to eq('1')
216-
expect(event.metadata['exit_description']).to eq('shut down')
217+
expect(event.metadata['exit_description'].length).to eq(AppEventRepository::TRUNCATE_THRESHOLD)
218+
expect(event.metadata['exit_description']).to eq(exit_description.truncate(AppEventRepository::TRUNCATE_THRESHOLD, omission: ' (truncated)'))
217219
expect(event.metadata['reason']).to eq('evacuation')
218220
end
219221

0 commit comments

Comments
 (0)