Skip to content

Commit cd65bf7

Browse files
committed
Inform operators which service plan, offering and broker is involved in service instance creation/update/deletion
1 parent d64bbd3 commit cd65bf7

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

app/controllers/v3/service_instances_controller.rb

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,26 @@ def create_managed(message, space:)
270270
audit_hash: message.audit_hash
271271
)
272272

273+
result = VCAP::CloudController::ServicePlan.
274+
join(:services, id: :service_id).
275+
join(:service_brokers, id: Sequel[:services][:service_broker_id]).
276+
where(Sequel[:service_plans][:id] => service_plan.id).
277+
select(
278+
Sequel[:services][:label].as(:service_name),
279+
Sequel[:service_brokers][:name].as(:broker_name)
280+
).
281+
first
282+
283+
service_name = result[:service_name]
284+
broker_name = result[:broker_name]
285+
286+
logger.info(
287+
"Creating managed service instance with name '#{instance.name}' " \
288+
"using service plan '#{service_plan.name}' " \
289+
"from service offering '#{service_name}' " \
290+
"provided by broker '#{broker_name}'."
291+
)
292+
273293
pollable_job = Jobs::Enqueuer.new(queue: Jobs::Queues.generic).enqueue_pollable(provision_job)
274294

275295
head :accepted, 'Location' => url_builder.build_url(path: "/v3/jobs/#{pollable_job.guid}")
@@ -297,6 +317,35 @@ def update_managed(service_instance)
297317
action = V3::ServiceInstanceUpdateManaged.new(service_instance, message, user_audit_info, message.audit_hash)
298318
action.preflight!
299319
if action.update_broker_needed?
320+
321+
plan_scope = if message.service_plan_guid
322+
{ Sequel[:service_plans][:guid] => message.service_plan_guid }
323+
else
324+
{ Sequel[:service_plans][:id] => service_instance.service_plan_id }
325+
end
326+
327+
result = VCAP::CloudController::ServicePlan.
328+
join(:services, id: :service_id).
329+
join(:service_brokers, id: Sequel[:services][:service_broker_id]).
330+
where(plan_scope).
331+
select(
332+
Sequel[:service_plans][:name].as(:plan_name),
333+
Sequel[:services][:label].as(:service_name),
334+
Sequel[:service_brokers][:name].as(:broker_name)
335+
).
336+
first
337+
338+
plan_name = result[:plan_name]
339+
service_name = result[:service_name]
340+
broker_name = result[:broker_name]
341+
342+
logger.info(
343+
"Updating managed service instance with name '#{service_instance.name}' " \
344+
"using service plan '#{plan_name}' " \
345+
"from service offering '#{service_name}' " \
346+
"provided by broker '#{broker_name}'."
347+
)
348+
300349
update_job = action.enqueue_update
301350
head :accepted, 'Location' => url_builder.build_url(path: "/v3/jobs/#{update_job.guid}")
302351
else
@@ -352,6 +401,29 @@ def fetch_writable_service_instance(guid)
352401

353402
def enqueue_delete_job(service_instance)
354403
delete_job = V3::DeleteServiceInstanceJob.new(service_instance.guid, user_audit_info)
404+
405+
result = VCAP::CloudController::ServicePlan.
406+
join(:services, id: :service_id).
407+
join(:service_brokers, id: Sequel[:services][:service_broker_id]).
408+
where(Sequel[:service_plans][:id] => service_instance.service_plan_id).
409+
select(
410+
Sequel[:service_plans][:name].as(:plan_name),
411+
Sequel[:services][:label].as(:service_name),
412+
Sequel[:service_brokers][:name].as(:broker_name)
413+
).
414+
first
415+
416+
plan_name = result[:plan_name]
417+
service_name = result[:service_name]
418+
broker_name = result[:broker_name]
419+
420+
logger.info(
421+
"Deleting managed service instance with name '#{service_instance.name}' " \
422+
"using service plan '#{plan_name}' " \
423+
"from service offering '#{service_name}' " \
424+
"provided by broker '#{broker_name}'."
425+
)
426+
355427
pollable_job = Jobs::Enqueuer.new(queue: Jobs::Queues.generic).enqueue_pollable(delete_job)
356428
pollable_job.guid
357429
end

0 commit comments

Comments
 (0)