From 57af33949782caffb4de26e36eb70fe4053e511b Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 2 Dec 2024 19:47:19 -0500 Subject: replica2: implement findResource() --- src/main/java/derms/replica2/Replica2.java | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/main') diff --git a/src/main/java/derms/replica2/Replica2.java b/src/main/java/derms/replica2/Replica2.java index 7c9cebf..3c9f764 100644 --- a/src/main/java/derms/replica2/Replica2.java +++ b/src/main/java/derms/replica2/Replica2.java @@ -194,9 +194,8 @@ public class Replica2 implements Replica { ResourceType.parse(request.getResourceType())); StringBuilder result = new StringBuilder(); result.append(request.getResourceType()); - for (Resource resource : resources) { + for (Resource resource : resources) result.append(" " + resource.id + "-" + resource.duration); - } return result.toString(); } catch (ServerCommunicationError e) { String msg = "Error listing resources: " + e.getMessage(); @@ -220,8 +219,24 @@ public class Replica2 implements Replica { } private String findResource(Request request) { - // TODO - throw new NotImplementedException(); + try { + Resource[] resources = coordinatorServer.findResource( + CoordinatorID.parse(request.getClientID()), + ResourceType.parse(request.getResourceType())); + + if (resources.length < 1) + return "Resources of " + request.getResourceType() + " occupied by coordinator " + request.getClientID() + " are not found!"; + + StringBuilder result = new StringBuilder(); + result.append(request.getResourceType()); + for (Resource resource : resources) + result.append(" " + resource.id + "-" + resource.borrowDuration); + return result.toString(); + } catch (ServerCommunicationError e) { + String msg = "Error finding resources: " + e.getMessage(); + log.warning(msg); + return msg; + } } private String returnResource(Request request) { -- cgit v1.2.3