@@ -11,7 +11,7 @@ def lrp_instances(process)
1111 process_guid = ProcessGuid . from_process ( process )
1212 logger . info ( 'lrp.instances.request' , process_guid :)
1313
14- actual_lrps_response = handle_diego_errors ( process_guid ) do
14+ actual_lrps_response = handle_diego_errors do
1515 response = @client . actual_lrps_by_process_guid ( process_guid )
1616 logger . info ( 'lrp.instances.response' , process_guid : process_guid , error : response . error )
1717 response
@@ -20,30 +20,42 @@ def lrp_instances(process)
2020 actual_lrps_response . actual_lrps
2121 end
2222
23+ def actual_lrps_by_processes ( processes )
24+ process_guids = processes . map { |process | ProcessGuid . from_process ( process ) }
25+ logger . info ( 'actual.lrps.by.processes.request' , process_guids :)
26+
27+ actual_lrps_response = handle_diego_errors do
28+ response = @client . actual_lrps_by_process_guids ( process_guids )
29+ logger . info ( 'actual.lrps.by.processes.response' , process_guids : process_guids , error : response . error )
30+ response
31+ end
32+
33+ actual_lrps_response . actual_lrps
34+ end
35+
2336 def desired_lrp_instance ( process )
2437 process_guid = ProcessGuid . from_process ( process )
25- response = handle_diego_errors ( process_guid ) do
38+ response = handle_diego_errors ( handle_resource_not_found : true , process_guid : process_guid ) do
2639 @client . desired_lrp_by_process_guid ( process_guid )
2740 end
2841 response . desired_lrp
2942 end
3043
3144 private
3245
33- def handle_diego_errors ( process_guid )
46+ def handle_diego_errors ( handle_resource_not_found : false , process_guid : nil )
3447 begin
3548 response = yield
3649 rescue ::Diego ::Error => e
3750 raise CloudController ::Errors ::InstancesUnavailable . new ( e )
3851 end
3952
4053 if response . error
41- if response . error . type == ::Diego ::Bbs ::ErrorTypes ::ResourceNotFound
54+ if handle_resource_not_found && response . error . type == ::Diego ::Bbs ::ErrorTypes ::ResourceNotFound
4255 raise CloudController ::Errors ::NoRunningInstances . new ( "No running instances found for process guid #{ process_guid } " )
4356 end
4457
4558 raise CloudController ::Errors ::InstancesUnavailable . new ( response . error . message )
46-
4759 end
4860
4961 response
0 commit comments