From 0cb7ded87955286f950d2802fc6a0d1c9c26726a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Wed, 15 Jan 2020 04:44:54 +0100 Subject: Add setting contacts in a fetcher flag --- build.gradle | 9 +++++++++ .../java/pl/edu/mimuw/cloudatlas/client/ClientController.java | 8 ++++---- src/main/java/pl/edu/mimuw/cloudatlas/fetcher/Fetcher.java | 11 +++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index c6ebcae..51a49c5 100644 --- a/build.gradle +++ b/build.gradle @@ -50,6 +50,14 @@ ext.querySignerHostname = { return System.getProperty("querySignerHostname") ?: "localhost" } +/* +Example: -DfallbackContacts=\{\"/uw/violet07\":[192,168,0,11]} +escape at the beginning and before " + */ +ext.fallbackContacts = { + return System.getProperty("fallbackContacts") ?: "{\"" + zonePath() + "\":[127,0,0,1]}" +} + /* Possible options: RoundRobinExp @@ -138,6 +146,7 @@ task runFetcher(type: JavaExec) { main = 'pl.edu.mimuw.cloudatlas.fetcher.Fetcher' args(hostname() , 1099) systemProperty 'zone_path', zonePath() + systemProperty 'fallback_contacts', fallbackContacts() } task runInterpreter(type: JavaExec) { diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/client/ClientController.java b/src/main/java/pl/edu/mimuw/cloudatlas/client/ClientController.java index 5f34fe9..f147b2a 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/client/ClientController.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/client/ClientController.java @@ -133,9 +133,9 @@ public class ClientController { return "contactsForm"; } - private Set parseContactsString(DataStringInput contactsInput) throws Exception { + public static Set parseContactsString(String contactsInput) throws Exception { Gson gson = new Gson(); - Map contactStrings = gson.fromJson(contactsInput.getString(), Map.class); + Map contactStrings = gson.fromJson(contactsInput, Map.class); Set contactObjects = new HashSet(); ArrayList cAddr; byte[] inetArray = new byte[4]; @@ -160,7 +160,7 @@ public class ClientController { Set contactObjects; try { - contactObjects = parseContactsString(contactsObject); + contactObjects = parseContactsString(contactsObject.getString()); this.agentApi.setFallbackContacts(contactObjects); } catch (Exception e) { success = false; @@ -263,7 +263,7 @@ public class ClientController { case "Contact": DataStringInput contactsString = new DataStringInput(); contactsString.setString(attributeObject.getValueString()); - attributeValue = parseContactsString(contactsString).iterator().next(); + attributeValue = parseContactsString(contactsString.getString()).iterator().next(); break; case "List": List parsedListValue = gson.fromJson(attributeObject.getValueString(), List.class); diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/fetcher/Fetcher.java b/src/main/java/pl/edu/mimuw/cloudatlas/fetcher/Fetcher.java index 12d795a..2b8d033 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/fetcher/Fetcher.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/fetcher/Fetcher.java @@ -7,11 +7,10 @@ import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.io.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import com.google.gson.Gson; +import pl.edu.mimuw.cloudatlas.client.ClientController; import pl.edu.mimuw.cloudatlas.model.*; public class Fetcher { @@ -98,13 +97,17 @@ public class Fetcher { String jsonAttribs; System.out.println(System.getProperty("user.dir")); - + String fallbackContactsString = System.getProperty("fallback_contacts"); + System.out.println(fallbackContactsString); try { initializeApiStub(); initializePythonProcess(); bufferRead = new BufferedReader( new InputStreamReader(pythonProcess.getInputStream())); + Set fallbackContacts = new HashSet(); + api.setFallbackContacts(ClientController.parseContactsString(fallbackContactsString)); + while((jsonAttribs = bufferRead.readLine()) != null) { System.out.println(jsonAttribs); System.out.flush(); -- cgit v1.2.3