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

Commit 408a67b

Browse files
change actor for audit events in DELETE plans and offerings
[#172644677](https://www.pivotaltracker.com/story/show/172644677)
1 parent 8ab6e35 commit 408a67b

6 files changed

Lines changed: 72 additions & 4 deletions

File tree

app/controllers/v3/service_offerings_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def destroy
9494
service_event_repository.record_service_purge_event(service_offering)
9595
else
9696
ServiceOfferingDelete.new.delete(service_offering)
97-
service_event_repository.record_service_event(:delete, service_offering)
97+
service_event_repository.record_service_delete_event(service_offering)
9898
end
9999

100100
head :no_content

app/controllers/v3/service_plans_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def destroy
8787
service_event_repository = VCAP::CloudController::Repositories::ServiceEventRepository.new(user_audit_info)
8888

8989
ServicePlanDelete.new.delete(service_plan)
90-
service_event_repository.record_service_plan_event(:delete, service_plan)
90+
service_event_repository.record_service_plan_delete_event(service_plan)
9191

9292
head :no_content
9393
rescue ServicePlanDelete::AssociationNotEmptyError => e

app/repositories/service_event_repository.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ def logger
2020
:record_service_instance_event,
2121
:record_user_provided_service_instance_event,
2222
:record_service_key_event,
23+
:record_service_delete_event,
2324
:record_service_purge_event,
25+
:record_service_plan_delete_event,
2426
to: :with_user_actor,
2527
)
2628

@@ -168,6 +170,26 @@ def record_service_purge_event(service)
168170
create_event('audit.service.delete', user_actor, actee, metadata)
169171
end
170172

173+
def record_service_delete_event(service)
174+
metadata = { request: {} }
175+
actee = {
176+
actee: service.guid,
177+
actee_type: 'service',
178+
actee_name: service.label,
179+
}
180+
create_event('audit.service.delete', user_actor, actee, metadata)
181+
end
182+
183+
def record_service_plan_delete_event(plan)
184+
metadata = { request: {} }
185+
actee = {
186+
actee: plan.guid,
187+
actee_type: 'service_plan',
188+
actee_name: plan.name,
189+
}
190+
create_event('audit.service_plan.delete', user_actor, actee, metadata)
191+
end
192+
171193
private
172194

173195
attr_reader :user_audit_info

spec/request/service_offerings_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,13 +833,15 @@
833833
end
834834

835835
describe 'audit events' do
836+
let(:email) { Sham.email }
837+
let(:admin_headers) { admin_headers_for(user, email: email) }
836838
let(:service_offering) { VCAP::CloudController::Service.make }
837839

838840
it 'emits an audit event' do
839841
delete "/v3/service_offerings/#{service_offering.guid}", nil, admin_headers
840842

841843
expect([
842-
{ type: 'audit.service.delete', actor: service_offering.service_broker.name },
844+
{ type: 'audit.service.delete', actor: email },
843845
]).to be_reported_as_events
844846
end
845847
end

spec/request/service_plans_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,12 +613,14 @@
613613

614614
describe 'audit events' do
615615
let(:service_plan) { VCAP::CloudController::ServicePlan.make }
616+
let(:email) { Sham.email }
617+
let(:admin_headers) { admin_headers_for(user, email: email) }
616618

617619
it 'emits an audit event' do
618620
delete "/v3/service_plans/#{service_plan.guid}", nil, admin_headers
619621

620622
expect([
621-
{ type: 'audit.service_plan.delete', actor: service_plan.service_broker.name },
623+
{ type: 'audit.service_plan.delete', actor: email },
622624
]).to be_reported_as_events
623625
end
624626
end

spec/unit/repositories/service_event_repository_spec.rb

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,28 @@ module Repositories
361361
end
362362
end
363363

364+
describe '#record_service_plan_delete_event' do
365+
let(:plan) { VCAP::CloudController::ServicePlan.make }
366+
367+
it 'creates an event with empty metadata' do
368+
repository.record_service_plan_delete_event(plan)
369+
370+
event = Event.first
371+
expect(event.type).to eq('audit.service_plan.delete')
372+
expect(event.actor_type).to eq('user')
373+
expect(event.actor).to eq(user.guid)
374+
expect(event.actor_name).to eq(email)
375+
expect(event.actor_username).to eq(user_name)
376+
expect(event.timestamp).to be
377+
expect(event.actee).to eq(plan.guid)
378+
expect(event.actee_type).to eq('service_plan')
379+
expect(event.actee_name).to eq(plan.name)
380+
expect(event.space_guid).to eq('')
381+
expect(event.organization_guid).to eq('')
382+
expect(event.metadata).to eq({ 'request' => {} })
383+
end
384+
end
385+
364386
describe '#record_service_dashboard_client_event' do
365387
let(:broker) { VCAP::CloudController::ServiceBroker.make }
366388
let(:client_attrs) do
@@ -577,6 +599,26 @@ def check_event_data(event_type, metadata)
577599
end
578600
end
579601

602+
describe '#record_service_delete_event' do
603+
let(:service) { VCAP::CloudController::Service.make }
604+
it 'records an event' do
605+
repository.record_service_delete_event(service)
606+
event = Event.first(type: 'audit.service.delete')
607+
metadata = { 'request' => {} }
608+
609+
expect(event.actor).to eq user.guid
610+
expect(event.actor_type).to eq 'user'
611+
expect(event.actor_name).to eq email
612+
expect(event.actor_username).to eq user_name
613+
expect(event.actee).to eq service.guid
614+
expect(event.actee_type).to eq 'service'
615+
expect(event.actee_name).to eq service.label
616+
expect(event.space_guid).to eq ''
617+
expect(event.organization_guid).to eq ''
618+
expect(event.metadata).to eq(metadata)
619+
end
620+
end
621+
580622
describe 'when creating the event fails' do
581623
before do
582624
allow(Event).to receive(:create).and_raise

0 commit comments

Comments
 (0)