Skip to content

Commit 7a5a766

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

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

app/controllers/v3/service_instances_controller.rb

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

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

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

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

0 commit comments

Comments
 (0)