@@ -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