/containers/blockchain/cliLoadTester/src/main/java/secretApp/testApp/ResultGenerator.java

https://github.com/IBM/android-kubernetes-blockchain · Java · 109 lines · 95 code · 11 blank · 3 comment · 14 complexity · a4607d9b7baee54c537dfd89c85d1a27 MD5 · raw file

  1. package secretApp.testApp;
  2. import java.net.UnknownHostException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import org.json.simple.JSONObject;
  6. import org.json.simple.parser.JSONParser;
  7. import com.google.gson.JsonObject;
  8. import com.google.gson.JsonParser;
  9. import com.mongodb.BasicDBObject;
  10. import com.mongodb.DB;
  11. import com.mongodb.DBCollection;
  12. import com.mongodb.DBCursor;
  13. import com.mongodb.DBObject;
  14. import com.mongodb.MongoClient;
  15. public class ResultGenerator {
  16. private static String resultURL = "http://localhost:3000/api/results/";
  17. private static String dbName = "testResults";
  18. public static void main(String[] args) throws UnknownHostException {
  19. System.out.println("scheduling task to be executed every 2 seconds with an initial delay of 0 seconds");
  20. MongoClient mongo;
  21. mongo = new MongoClient("localhost", 27017);
  22. while (true) {
  23. try {
  24. DB database = mongo.getDB(dbName);
  25. DBCollection collection = Task.getDBCollection(database, "results");
  26. DBCursor cursor = collection.find();
  27. List<DBObject> removelist = new ArrayList<>();
  28. while (cursor.hasNext()) {
  29. DBObject object = cursor.next();
  30. String resultId = object.get("resultId").toString();
  31. String resultsData = Task.get(resultURL + resultId);
  32. JsonObject jsonObj = new JsonParser().parse(resultsData).getAsJsonObject();
  33. if (jsonObj.get("status").getAsString().equals("done")) {
  34. String resultString = jsonObj.get("result").toString();
  35. resultString = resultString.substring(1, resultString.length() - 1);
  36. resultString = resultString.replaceAll("\\\\\"", "\"");
  37. resultString = resultString.replaceAll("\\\\\"", "\"");
  38. // System.out.println(resultString);
  39. JSONObject jsonObject = (JSONObject) new JSONParser().parse(resultString);
  40. String queryResultStatus = jsonObject.get("message").toString();
  41. DBCollection resultCollection;
  42. String query = object.get("query").toString();
  43. if (query.contains("enroll")) {
  44. String db = "users";
  45. BasicDBObject dataObject = new BasicDBObject();
  46. if (queryResultStatus.contains("success")) {
  47. resultCollection = Task.getDBCollection(database, db);
  48. JSONObject userObj = (JSONObject) jsonObject.get("result");
  49. if (userObj != null) {
  50. dataObject.append("user", userObj.get("user"));
  51. }
  52. } else {
  53. resultCollection = Task.getDBCollection(database, "failed" + db);
  54. dataObject.append("queue",
  55. query.contains("user_queue") ? "user_queue" : "seller_queue");
  56. dataObject.append("error", jsonObject.get("error"));
  57. }
  58. resultCollection.insert(dataObject);
  59. } else {
  60. String db = "_query";
  61. if (query.contains("invoke")) {
  62. db = "_invoke";
  63. }
  64. if (queryResultStatus.contains("success")) {
  65. resultCollection = Task.getDBCollection(database, "success" + db);
  66. BasicDBObject searchQuery = new BasicDBObject().append("id", "count");
  67. BasicDBObject modifiedObject = new BasicDBObject();
  68. modifiedObject.append("$inc", new BasicDBObject().append("value", 1));
  69. // parentObject.removeField("value");
  70. resultCollection.update(searchQuery, modifiedObject);
  71. } else {
  72. resultCollection = Task.getDBCollection(database, "failed" + db);
  73. BasicDBObject dataObject = new BasicDBObject();
  74. dataObject.append("query", query);
  75. dataObject.append("error", jsonObject.get("error"));
  76. resultCollection.insert(dataObject);
  77. }
  78. }
  79. removelist.add(object);
  80. }
  81. }
  82. if (removelist.size() > 0) {
  83. for (DBObject dbObject : removelist) {
  84. collection.remove(dbObject);
  85. }
  86. }
  87. } catch (Exception e) {
  88. e.printStackTrace();
  89. }
  90. try {
  91. Thread.currentThread().sleep(2000);
  92. } catch (InterruptedException e) {
  93. // TODO Auto-generated catch block
  94. e.printStackTrace();
  95. }
  96. }
  97. }
  98. }