X-Git-Url: https://gerrit.onap.org/r/gitweb?p=dmaap%2Fmessagerouter%2Fmirroragent.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Fatt%2Fnsa%2FdmaapMMAgent%2FMirrorMakerAgent.java;h=a80d5b9a6459d8c2fbea34f4da6cde57e2f179d3;hp=37236f38649b18d07bca8c9fe8c0bd8495775016;hb=34c276d7a1922eb737f628f532865525fb54a202;hpb=91973c04d5cbba775f0f4272cf385199ec794fa7 diff --git a/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java index 37236f3..a80d5b9 100644 --- a/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java @@ -36,6 +36,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.Properties; +import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.jasypt.util.text.BasicTextEncryptor; @@ -61,6 +62,7 @@ public class MirrorMakerAgent { String topicname = ""; String mechid = ""; String password = ""; + public boolean exitLoop=false; private static String secret = "utdfpWlgyDQ2ZB8SLVRtmN834I1JcT9J"; public static void main(String[] args) { @@ -174,7 +176,7 @@ public class MirrorMakerAgent { try { input.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error("Exception occurred is " +e); } } if (out != null) { @@ -182,7 +184,7 @@ public class MirrorMakerAgent { out.close(); } catch (IOException e) { e.printStackTrace(); - logger.error("IOException" + e); + logger.error("Exception is : "+e); } } } @@ -212,6 +214,7 @@ public class MirrorMakerAgent { try { Thread.sleep(1000); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); } mirrorMakers.getListMirrorMaker().set(i, mm); } else { @@ -225,7 +228,7 @@ public class MirrorMakerAgent { // System.out.println(g.toJson(mirrorMakers)); } - private String subscribeTopic(String timeout) { + public String subscribeTopic(String timeout) { String response = ""; try { String requestURL = this.topicURL + "/events/" + this.topicname + "/mirrormakeragent/1?timeout=" + timeout @@ -252,12 +255,13 @@ public class MirrorMakerAgent { return topicMessage[0]; } } catch (Exception e) { + logger.error(" Exception Occered " + e); return "ERROR:" + e.getMessage() + " Server Response is:" + response; } return null; } - private String publishTopic(String message) { + public String publishTopic(String message) { try { String requestURL = this.topicURL + "/events/" + this.topicname; String authString = this.mechid + ":" + this.password; @@ -282,11 +286,12 @@ public class MirrorMakerAgent { return response; } catch (Exception e) { + logger.error(" Exception Occered " + e); return "ERROR:" + e.getLocalizedMessage(); } } - private void readAgentTopic() { + public void readAgentTopic() { try { int connectionattempt = 0; while (true) { @@ -301,53 +306,11 @@ public class MirrorMakerAgent { // Cast the 1st item (since limit=1 and see the type of // object - if (object.get("createMirrorMaker") != null) { - logger.info("Received createMirrorMaker request from topic"); - CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class); - createMirrorMaker(m.getCreateMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("updateMirrorMaker") != null) { - logger.info("Received updateMirrorMaker request from topic"); - UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class); - updateMirrorMaker(m.getUpdateMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("deleteMirrorMaker") != null) { - logger.info("Received deleteMirrorMaker request from topic"); - DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class); - deleteMirrorMaker(m.getDeleteMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("listAllMirrorMaker") != null) { - logger.info("Received listALLMirrorMaker request from topic"); - checkAgentProcess(); - mirrorMakers.setMessageID((String) object.get("messageID")); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("updateWhiteList") != null) { - logger.info("Received updateWhiteList request from topic"); - UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class); - updateWhiteList(m.getUpdateWhiteList()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("listMirrorMaker") != null) { - logger.info("Received listMirrorMaker from topic, skipping messages"); - } else { - logger.info("Received unknown request from topic"); - } + readAgent(object, topicMessage); } catch (Exception ex) { connectionattempt++; if (connectionattempt > 5) { - logger.info("Can't connect to the topic, mmagent shutting down , " + topicMessage); + logger.info("Can't connect to the topic, mmagent shutting down , " + topicMessage + ex); return; } logger.info("Can't connect to the topic, " + topicMessage + " Retrying " + connectionattempt @@ -359,13 +322,65 @@ public class MirrorMakerAgent { connectionattempt = 0; checkAgentProcess(); } - + if(exitLoop){ + break; + } } } catch (Exception e) { - e.printStackTrace(); + logger.error("Exception at readAgentTopic : " + e); } } + + public void readAgent(LinkedTreeMap object,String topicMessage){ + + Gson g = new Gson(); + + if (object.get("createMirrorMaker") != null) { + logger.info("Received createMirrorMaker request from topic"); + CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class); + createMirrorMaker(m.getCreateMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("updateMirrorMaker") != null) { + logger.info("Received updateMirrorMaker request from topic"); + UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class); + updateMirrorMaker(m.getUpdateMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("deleteMirrorMaker") != null) { + logger.info("Received deleteMirrorMaker request from topic"); + DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class); + deleteMirrorMaker(m.getDeleteMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("listAllMirrorMaker") != null) { + logger.info("Received listALLMirrorMaker request from topic"); + checkAgentProcess(); + mirrorMakers.setMessageID((String) object.get("messageID")); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("updateWhiteList") != null) { + logger.info("Received updateWhiteList request from topic"); + UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class); + updateWhiteList(m.getUpdateWhiteList()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("listMirrorMaker") != null) { + logger.info("Received listMirrorMaker from topic, skipping messages"); + } else { + logger.info("Received unknown request from topic"); + } + + } protected void createMirrorMaker(MirrorMaker newMirrorMaker) { boolean exists = false; @@ -386,7 +401,7 @@ public class MirrorMakerAgent { } else if (exists == false && mirrorMakers == null) { mirrorMakers = new ListMirrorMaker(); ArrayList list = mirrorMakers.getListMirrorMaker(); - list = new ArrayList(); + list = new ArrayList(); list.add(newMirrorMaker); mirrorMakers.setListMirrorMaker(list); } @@ -400,7 +415,7 @@ public class MirrorMakerAgent { out = new FileOutputStream(mmagenthome + "/etc/mmagent.config"); mirrorMakerProperties.store(out, ""); } catch (IOException ex) { - ex.printStackTrace(); + logger.error(" IOException Occered " + ex); } finally { if (out != null) { try { @@ -441,15 +456,17 @@ public class MirrorMakerAgent { try { Thread.sleep(1000); } catch (InterruptedException e) { + logger.log(Level.WARN, "Interrupted!", e); + Thread.currentThread().interrupt(); } } catch (IOException ex) { - ex.printStackTrace(); + logger.error(" IOException Occered " + ex); } finally { if (out != null) { try { out.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error(" IOException Occered " + e); } } } @@ -484,9 +501,11 @@ public class MirrorMakerAgent { try { Thread.sleep(1000); } catch (InterruptedException e) { + logger.log(Level.WARN, "Interrupted!", e); + Thread.currentThread().interrupt(); } } catch (IOException ex) { - ex.printStackTrace(); + logger.error("Exception at updateWhiteList : " + ex); } finally { if (out != null) { try {