summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-12-02 19:47:19 -0500
committerSam Anthony <sam@samanthony.xyz>2024-12-02 19:47:19 -0500
commit57af33949782caffb4de26e36eb70fe4053e511b (patch)
treee99ed643688291f9c8061c90333ac58397e24449
parent7eaca644d1632d15d684bbdfab4b9eda78e4a139 (diff)
downloadsoen423-57af33949782caffb4de26e36eb70fe4053e511b.zip
replica2: implement findResource()
-rw-r--r--src/main/java/derms/replica2/Replica2.java23
1 files changed, 19 insertions, 4 deletions
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) {