Skip to content

Commit

Permalink
Parse data from TRSS url
Browse files Browse the repository at this point in the history
- TKG Parse data from TRSS url

related:#558

Signed-off-by: Anna Babu Palathingal <anna.bp@ibm.com>
  • Loading branch information
annaibm committed Jul 22, 2024
1 parent 4d4c26a commit b394edd
Showing 1 changed file with 53 additions and 13 deletions.
66 changes: 53 additions & 13 deletions src/org/testKitGen/TestDivider.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.FileReader;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
Expand Down Expand Up @@ -226,22 +227,53 @@ private Map<String, Integer> getDataFromTRSS() {
String level = getLevel();
Map<String, Integer> map = new HashMap<String, Integer>();
String URL = constructURL(impl, plat, group, level);
String command = "curl --silent --max-time 120 -L " + URL;
String osName = System.getProperty("os.name").toLowerCase();
String responseFilePath = new File("response.json").getAbsolutePath();
String command;

if (osName.contains("win")) {
command = "cmd.exe /c curl --silent --max-time 120 -L -k \"" + URL + "\"";
} else {
command = "curl --silent --max-time 120 -L -k " + URL;
}

System.out.println("Attempting to get test duration data from TRSS.");
System.out.println(command);
Process process;

try {
process = Runtime.getRuntime().exec(command);
} catch (IOException e) {
System.out.println("Warning: cannot get data from TRSS.");
return map;
}
try (InputStream responseStream = process.getInputStream();
Reader responseReader = new BufferedReader(new InputStreamReader(responseStream))) {
parseDuration(responseReader, map);
} catch (IOException | ParseException e) {
System.out.println("Warning: cannot parse data from TRSS.");
Process process = Runtime.getRuntime().exec(command);
int exitCode = process.waitFor();
if (exitCode != 0) {
System.out.println("Curl command failed with exit code " + exitCode);
return map;
}

try (InputStream responseStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(responseStream))) {
String line;
StringBuilder responseBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
responseBuilder.append(line);
}
String responseData = responseBuilder.toString();
System.out.println("Response from TRSS: " + responseData);

if (!responseData.isEmpty()) {
try (Reader stringReader = new StringReader(responseData)) {
parseDuration(stringReader, map);
map.forEach((key, value) -> System.out.println("Test ID: " + key + ", Average Duration: " + value));
} catch (ParseException e) {
System.out.println("Error parsing the data: " + e.getMessage());
e.printStackTrace();
}
} else {
System.out.println("No data received from TRSS.");
}
}
} catch (IOException | InterruptedException e) {
System.out.println("Error executing curl command or reading input: " + e.getMessage());
e.printStackTrace();
return map;
}
return map;
}
Expand Down Expand Up @@ -276,7 +308,15 @@ private Queue<Map.Entry<String, Integer>> createDurationQueue() {
Map<String, Integer> testsInvalid = new HashMap<>();
for (String test : allTests) {
if (matchTRSS.contains(test) || matchCache.contains(test)) {
int duration = TRSSMap.containsKey(test) ? TRSSMap.get(test) : cacheMap.get(test);
int duration;
if (TRSSMap.containsKey(test)) {
duration = TRSSMap.get(test);
System.out.println("TRSSMap.get(" + test + "): " + duration);
} else {
duration = cacheMap.get(test);
System.out.println("cacheMap.get(" + test + "): " + duration);
}
// int duration = TRSSMap.containsKey(test) ? TRSSMap.get(test) : cacheMap.get(test);
if (duration > 0) {
durationQueue.offer(new AbstractMap.SimpleEntry<>(test, duration));
} else {
Expand Down

0 comments on commit b394edd

Please sign in to comment.