-module(get_rack_location_task). -behaviour(bt_task). -export([ get_params/0, run/3 ]). get_params() -> ["rack_id", "rack_location"]. run(#{"rack_id" := RackId_key, "rack_location" := RackLocation_key}, BB, _) -> RackId = blackboard:eval(RackId_key, BB), case gproc:lookup_local_name({dummy_rack_location_service, RackId}) of undefined -> io:format("Failure: couldn't find rack location for ~p because rack locator service not found.~n", [RackId]), {failure, BB}; RackLocationServicePid -> Location = dummy_rack_location_service:get_rack_location(RackLocationServicePid), io:format("Setting location for rack ~p to ~p~n", [RackId, Location]), NewBB = blackboard:write(RackLocation_key, Location, BB), {success, NewBB} end.