From fbc20fa03d5df5fff8a6188dd572bafa2ff80e6b Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Fri, 26 Oct 2018 12:02:52 -0400 Subject: [PATCH 01/16] update oparent to 1.2.1 Issue-ID: DMAAP-791 Change-Id: I37fa97dc50d73a7880951a3aca6791053645c09b Signed-off-by: sunil unnava --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b0d06cb..30decd7 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ org.onap.oparent oparent - 1.2.0 + 1.2.1 dmaap-messagerouter-mirroragent @@ -40,6 +40,7 @@ UTF-8 + https://nexus.onap.org 0.7.7.201606060606 3.2 jacoco -- 2.16.6 From b07822276c0bba8896d05555094c6e53f69ca2fb Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Thu, 27 Dec 2018 16:13:13 -0500 Subject: [PATCH 02/16] add mirror maker agent code Issue-ID: DMAAP-910 Change-Id: Ibff92499729d5b34fdbe500783678ef65d6894d5 Signed-off-by: sunil unnava --- pom.xml | 7 +- .../dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 258 ++++++++------------- .../org/onap/dmaap/mr/dmaapMMAgent/TopicUtil.java | 104 +++++++++ .../mr/dmaapMMAgent/dao/CreateMirrorMaker.java | 6 +- .../utils/MirrorMakerProcessHandler.java | 4 +- .../mr/dmaapMMAgent/TestMirrorMakerAgent.java | 124 ++++++++-- 6 files changed, 320 insertions(+), 183 deletions(-) create mode 100644 src/main/java/org/onap/dmaap/mr/dmaapMMAgent/TopicUtil.java diff --git a/pom.xml b/pom.xml index 30decd7..878ccd2 100644 --- a/pom.xml +++ b/pom.xml @@ -97,6 +97,11 @@ powermock-api-mockito 1.6.4 + + org.json + json + 20131018 + com.google.code.gson gson @@ -178,7 +183,7 @@ true - com.att.nsa.dmaapMMAgent.MirrorMakerAgent + org.onap.dmaap.mr.MirrorMakerAgent diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index becfbc5..86a653d 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -34,9 +34,9 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.Properties; -//import org.json.JSONObject; -//import org.apache.log4j.Logger; -//import org.jasypt.util.text.BasicTextEncryptor; +import org.json.JSONObject; +import org.apache.log4j.Logger; +import org.jasypt.util.text.BasicTextEncryptor; import org.onap.dmaap.mr.dmaapMMAgent.dao.CreateMirrorMaker; import org.onap.dmaap.mr.dmaapMMAgent.dao.DeleteMirrorMaker; @@ -48,10 +48,11 @@ import org.onap.dmaap.mr.dmaapMMAgent.utils.MirrorMakerProcessHandler; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.internal.LinkedTreeMap; + import com.sun.org.apache.xerces.internal.impl.dtd.models.CMAny; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; -public class MirrorMakerAgent {/* +public class MirrorMakerAgent { static final Logger logger = Logger.getLogger(MirrorMakerAgent.class); Properties mirrorMakerProperties = new Properties(); ListMirrorMaker mirrorMakers = null; @@ -62,6 +63,8 @@ public class MirrorMakerAgent {/* String mechid = ""; String password = ""; String grepLog = ""; + public boolean exitLoop = false; + TopicUtil topicUtil = new TopicUtil(); private static String secret = "utdfpWlgyDQ2ZB8SLVRtmN834I1JcT9J"; public static void main(String[] args) { @@ -84,7 +87,7 @@ public class MirrorMakerAgent {/* try { agent.checkAgentProcess(); } catch (Exception e) { - + e.printStackTrace(); } agent.readAgentTopic(); @@ -129,14 +132,14 @@ public class MirrorMakerAgent {/* } } } - String response = publishTopic("{\"test\":\"test\"}"); + String response = topicUtil.publishTopic(topicURL, topicname, mechid, password, "{\"test\":\"test\"}"); if (response.startsWith("ERROR:")) { logger.error("Problem publishing to topic, please verify the config " + this.topicname + " MR URL is:" + this.topicURL + " Error is: " + response); return false; } logger.info("Published to Topic :" + this.topicname + " Successfully"); - response = subscribeTopic("1"); + response = topicUtil.subscribeTopic(topicURL, topicname, "1", response, response); if (response != null && response.startsWith("ERROR:")) { logger.error("Problem subscribing to topic, please verify the config " + this.topicname + " MR URL is:" + this.topicURL + " Error is: " + response); @@ -160,14 +163,14 @@ public class MirrorMakerAgent {/* Properties prop = new Properties(); prop.load(input); if (propName.equals("consumer")) { - prop.setProperty("group.id", mm.name); - - prop.setProperty("bootstrap.servers", mm.consumer); - prop.setProperty("client.id", mm.name + "MM_consumer"); - } else { + prop.setProperty("group.id", mm.name); + + prop.setProperty("bootstrap.servers", mm.consumer); + prop.setProperty("client.id", mm.name + "MM_consumer"); + } else { prop.setProperty("bootstrap.servers", mm.producer); - prop.setProperty("client.id", mm.name + "MM_producer"); - + prop.setProperty("client.id", mm.name + "MM_producer"); + } out = new FileOutputStream(mmagenthome + "/etc/" + mm.name + propName + ".properties"); prop.store(out, ""); @@ -199,15 +202,17 @@ public class MirrorMakerAgent {/* int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size(); for (int i = 0; i < mirrorMakersCount; i++) { MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i); - if (MirrorMakerProcessHandler.checkMirrorMakerProcess(mm.name,mm.enablelogCheck,this.grepLog) == false) { + if (MirrorMakerProcessHandler.checkMirrorMakerProcess(mm.name, mm.enablelogCheck, + this.grepLog) == false) { checkPropertiesFile(mm, "consumer", false); checkPropertiesFile(mm, "producer", false); if (mm.whitelist != null && !mm.whitelist.equals("")) { - logger.info("MirrorMaker " + mm.name + " is not running, restarting. Check Logs for more Details"); + logger.info( + "MirrorMaker " + mm.name + " is not running, restarting. Check Logs for more Details"); MirrorMakerProcessHandler.startMirrorMaker(this.mmagenthome, this.kafkahome, mm.name, mmagenthome + "/etc/" + mm.name + "consumer.properties", - mmagenthome + "/etc/" + mm.name + "producer.properties",mm.numStreams, mm.whitelist); + mmagenthome + "/etc/" + mm.name + "producer.properties", mm.numStreams, mm.whitelist); mm.setStatus("RESTARTING"); } else { @@ -230,142 +235,28 @@ public class MirrorMakerAgent {/* // System.out.println(g.toJson(mirrorMakers)); } - private String subscribeTopic(String timeout) { - String response = ""; - try { - String requestURL = this.topicURL + "/events/" + this.topicname + "/mirrormakeragent/1?timeout=" + timeout - + "&limit=1"; - String authString = this.mechid + ":" + this.password; - String authStringEnc = Base64.encode(authString.getBytes()); - URL url = new URL(requestURL); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.setDoOutput(true); - connection.setRequestProperty("Authorization", "Basic " + authStringEnc); - connection.setRequestProperty("Content-Type", "application/json"); - InputStream content = (InputStream) connection.getInputStream(); - BufferedReader in = new BufferedReader(new InputStreamReader(content)); - String line; - - while ((line = in.readLine()) != null) { - response = response + line; - } - Gson g = new Gson(); - //Get message as JSON Array - JsonArray topicMessage = g.fromJson(response, JsonArray.class); - if (topicMessage.size() != 0) { - return topicMessage.get(0).toString(); - } - - // get message as JSON String Array - String[] topicMessage = g.fromJson(response, String[].class); - if (topicMessage.length != 0) { - return topicMessage[0]; - } - } catch (Exception e) { - return "ERROR:" + e.getMessage() + " Server Response is:" + response; - } - return null; - } - - private String publishTopic(String message) { - try { - String requestURL = this.topicURL + "/events/" + this.topicname; - String authString = this.mechid + ":" + this.password; - String authStringEnc = Base64.encode(authString.getBytes()); - URL url = new URL(requestURL); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setDoOutput(true); - connection.setRequestProperty("Authorization", "Basic " + authStringEnc); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setRequestProperty("Content-Length", Integer.toString(message.length())); - DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); - wr.write(message.getBytes()); - - InputStream content = (InputStream) connection.getInputStream(); - BufferedReader in = new BufferedReader(new InputStreamReader(content)); - String line; - String response = ""; - while ((line = in.readLine()) != null) { - response = response + line; - } - return response; - - } catch (Exception e) { - return "ERROR:" + e.getLocalizedMessage(); - } - } - - private void readAgentTopic() { + public void readAgentTopic() { try { int connectionattempt = 0; while (true) { logger.info("--------------------------------"); logger.info("Waiting for Messages for 60 secs"); - String topicMessage = subscribeTopic("60000"); + String topicMessage = topicUtil.subscribeTopic(topicURL, topicname, "60000", mechid, password); Gson g = new Gson(); LinkedTreeMap object = null; if (topicMessage != null) { try { - //Check and parse if String object returned by consumer API - //else use the jsonObject - if( topicMessage.startsWith("\"")) - { - topicMessage = g.fromJson(topicMessage.toString(), String.class); - } + // Check and parse if String object returned by consumer + // API + // else use the jsonObject + if (topicMessage.startsWith("\"")) { + topicMessage = g.fromJson(topicMessage.toString(), String.class); + } object = g.fromJson(topicMessage, LinkedTreeMap.class); // 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); - JSONObject json = new JSONObject(topicMessage); - JSONObject json2 = (JSONObject) json.get("updateMirrorMaker"); - if(!json2.has("numStreams")){ - m.getUpdateMirrorMaker().setNumStreams(0); - } - 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) { @@ -381,6 +272,9 @@ public class MirrorMakerAgent {/* connectionattempt = 0; checkAgentProcess(); } + if (exitLoop) { + break; + } } } catch (Exception e) { @@ -389,7 +283,7 @@ public class MirrorMakerAgent {/* } - private void createMirrorMaker(MirrorMaker newMirrorMaker) { + public void createMirrorMaker(MirrorMaker newMirrorMaker) { boolean exists = false; if (mirrorMakers != null) { int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size(); @@ -412,8 +306,8 @@ public class MirrorMakerAgent {/* list.add(newMirrorMaker); mirrorMakers.setListMirrorMaker(list); } - checkPropertiesFile(newMirrorMaker, "consumer", true); - checkPropertiesFile(newMirrorMaker, "producer", true); + checkPropertiesFile(newMirrorMaker, "consumer", true); + checkPropertiesFile(newMirrorMaker, "producer", true); Gson g = new Gson(); mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers)); @@ -442,23 +336,20 @@ public class MirrorMakerAgent {/* MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i); if (mm.name.equals(newMirrorMaker.name)) { exists = true; - if(null!=newMirrorMaker.getConsumer()) - { + if (null != newMirrorMaker.getConsumer()) { mm.setConsumer(newMirrorMaker.getConsumer()); } - if(null!=newMirrorMaker.getProducer()) - { + if (null != newMirrorMaker.getProducer()) { mm.setProducer(newMirrorMaker.getProducer()); } - if(newMirrorMaker.getNumStreams()>=1) - { + if (newMirrorMaker.getNumStreams() >= 1) { mm.setNumStreams(newMirrorMaker.getNumStreams()); - } - + } + mm.setEnablelogCheck(newMirrorMaker.enablelogCheck); - + mirrorMakers.getListMirrorMaker().set(i, mm); - newMirrorMaker=mm; + newMirrorMaker = mm; logger.info("Updating MirrorMaker:" + newMirrorMaker.name); } } @@ -608,12 +499,12 @@ public class MirrorMakerAgent {/* this.topicURL = mirrorMakerProperties.getProperty("topicURL"); this.topicname = mirrorMakerProperties.getProperty("topicname"); this.mechid = mirrorMakerProperties.getProperty("mechid"); - this.grepLog= mirrorMakerProperties.getProperty("grepLog"); + this.grepLog = mirrorMakerProperties.getProperty("grepLog"); BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); textEncryptor.setPassword(secret); this.password = textEncryptor.decrypt(mirrorMakerProperties.getProperty("password")); - } catch (IOException ex) { + } catch (Exception ex) { // ex.printStackTrace(); } finally { if (input != null) { @@ -626,4 +517,59 @@ public class MirrorMakerAgent {/* } } -*/} + + public void readAgent(LinkedTreeMap object, String topicMessage) throws Exception{ + + 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()); + topicUtil.publishTopic(topicURL, topicname, mechid, password, 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); + JSONObject json = new JSONObject(topicMessage); + JSONObject json2 = (JSONObject) json.get("updateMirrorMaker"); + if (!json2.has("numStreams")) { + m.getUpdateMirrorMaker().setNumStreams(0); + } + updateMirrorMaker(m.getUpdateMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + topicUtil.publishTopic(topicURL, topicname, mechid, password, 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()); + topicUtil.publishTopic(topicURL, topicname, mechid, password, 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")); + topicUtil.publishTopic(topicURL, topicname, mechid, password, 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()); + topicUtil.publishTopic(topicURL, topicname, mechid, password, 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"); + } + + } +} diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/TopicUtil.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/TopicUtil.java new file mode 100644 index 0000000..e2dc0ef --- /dev/null +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/TopicUtil.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.dmaapMMAgent; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +import org.apache.log4j.Logger; + +import com.google.gson.Gson; +import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; + +public class TopicUtil { + + static final Logger logger = Logger.getLogger(TopicUtil.class); + + public String publishTopic(String topicURL, String topicname, String mechid, String password, String message) { + try { + String requestURL = topicURL + "/events/" + topicname; + String authString = mechid + ":" + password; + String authStringEnc = Base64.encode(authString.getBytes()); + URL url = new URL(requestURL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setDoOutput(true); + connection.setRequestProperty("Authorization", "Basic " + authStringEnc); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Content-Length", Integer.toString(message.length())); + DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); + wr.write(message.getBytes()); + + InputStream content = (InputStream) connection.getInputStream(); + BufferedReader in = new BufferedReader(new InputStreamReader(content)); + String line; + String response = ""; + while ((line = in.readLine()) != null) { + response = response + line; + } + return response; + + } catch (Exception e) { + logger.error(" Exception Occered " + e); + return "ERROR:" + e.getLocalizedMessage(); + } + } + + public String subscribeTopic(String topicURL, String topicname, String timeout, String mechid, String password) { + String response = ""; + try { + String requestURL = topicURL + "/events/" + topicname + "/mirrormakeragent/1?timeout=" + timeout + + "&limit=1"; + String authString = mechid + ":" + password; + String authStringEnc = Base64.encode(authString.getBytes()); + URL url = new URL(requestURL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoOutput(true); + connection.setRequestProperty("Authorization", "Basic " + authStringEnc); + connection.setRequestProperty("Content-Type", "application/json"); + InputStream content = (InputStream) connection.getInputStream(); + BufferedReader in = new BufferedReader(new InputStreamReader(content)); + String line; + + while ((line = in.readLine()) != null) { + response = response + line; + } + Gson g = new Gson(); + // get message as JSON String Array + String[] topicMessage = g.fromJson(response, String[].class); + if (topicMessage.length != 0) { + return topicMessage[0]; + } + } catch (Exception e) { + logger.error(" Exception Occered " + e); + return "ERROR:" + e.getMessage() + " Server Response is:" + response; + } + return null; + } + +} diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/dao/CreateMirrorMaker.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/dao/CreateMirrorMaker.java index 4d1426a..a1809f8 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/dao/CreateMirrorMaker.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/dao/CreateMirrorMaker.java @@ -23,14 +23,14 @@ package org.onap.dmaap.mr.dmaapMMAgent.dao; public class CreateMirrorMaker { String messageID; - MirrorMaker MirrorMaker; + MirrorMaker createMirrorMaker; public MirrorMaker getCreateMirrorMaker() { - return MirrorMaker; + return createMirrorMaker; } public void setCreateMirrorMaker(MirrorMaker createMirrorMaker) { - this.MirrorMaker = createMirrorMaker; + this.createMirrorMaker = createMirrorMaker; } public String getMessageID() { diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 82086a3..21a3974 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -27,7 +27,7 @@ import java.io.InputStreamReader; import org.apache.log4j.Logger; -public class MirrorMakerProcessHandler {/* +public class MirrorMakerProcessHandler { static final Logger logger = Logger.getLogger(MirrorMakerProcessHandler.class); static String mmagenthome = System.getProperty("MMAGENTHOME"); @@ -197,4 +197,4 @@ public class MirrorMakerProcessHandler {/* e.printStackTrace(); } } -*/} +} diff --git a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java index def9f39..f7b14d4 100644 --- a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java +++ b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java @@ -23,43 +23,112 @@ package org.onap.dmaap.mr.dmaapMMAgent; import static org.junit.Assert.*; +import static org.mockito.Mockito.spy; -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.net.HttpURLConnection; import java.util.ArrayList; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.Mock; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.modules.junit4.PowerMockRunner; -import org.onap.dmaap.mr.dmaapMMAgent.dao.ListMirrorMaker; -import org.onap.dmaap.mr.dmaapMMAgent.dao.MirrorMaker; +import org.onap.dmaap.mr.dmaapMMAgent.dao.ListMirrorMaker; +import org.onap.dmaap.mr.dmaapMMAgent.dao.MirrorMaker; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; + +@RunWith(PowerMockRunner.class) +public class TestMirrorMakerAgent { -//@RunWith(PowerMockRunner.class) -public class TestMirrorMakerAgent {/* MirrorMakerAgent mirrorMakerAgent = new MirrorMakerAgent(); ListMirrorMaker listMirrorMaker = new ListMirrorMaker(); MirrorMaker mirrorMaker = new MirrorMaker(); MirrorMaker mirrorMaker2 = new MirrorMaker(); ArrayList listsMirrorMaker = new ArrayList(); + Gson g = new Gson(); + @InjectMocks + private MirrorMakerAgent agent; + @Mock + private TopicUtil topicUtil; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } @Test public void testcheckStartup() { String currentDirectory = System.getProperty("user.dir"); String MMAGENTHOME = currentDirectory + "/src/test/resources/"; - String parameters[] = {"-encrypt", "test"}; + String parameters[] = { "-encrypt", "test" }; String args[] = null; - + System.setProperty("MMAGENTHOME", MMAGENTHOME); - mirrorMakerAgent.main(args); - + + } + + @Test + public void testReadAgentTopics() { + + agent.exitLoop = true; + agent.readAgentTopic(); + } + + @Test + public void testReadCreateMirrorMaker() throws Exception { + + String topicMessage = "{ messageID:\"test\", createMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\"}}"; + LinkedTreeMap object = g.fromJson(topicMessage, LinkedTreeMap.class); + agent.exitLoop = true; + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadUpdateMirrorMaker() throws Exception { + + String topicMessage = "{ messageID:\"test\", updateMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\"}}"; + LinkedTreeMap object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + } - + + @Test + public void testReadDeleteMirrorMaker() throws Exception { + + String topicMessage = "{ messageID:\"test\", deleteMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadListMirrorMaker() throws Exception { + + String topicMessage = "{ messageID:\"test\", listAllMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadWhitelistMirrorMaker() throws Exception { + + String topicMessage = "{ messageID:\"test\", updateWhiteList: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + @Test public void testCreateMirrorMaker() { mirrorMaker.setConsumer("consumer"); @@ -67,21 +136,34 @@ public class TestMirrorMakerAgent {/* mirrorMaker.setProducer("producer"); mirrorMaker.setStatus("200"); mirrorMaker.setWhitelist("whitelist"); - + mirrorMaker2.setConsumer("consumer"); mirrorMaker2.setName("MirrorMaker2"); mirrorMaker2.setProducer("producer"); mirrorMaker2.setStatus("200"); mirrorMaker2.setWhitelist("whitelist"); - + listsMirrorMaker.add(mirrorMaker2); listMirrorMaker.setListMirrorMaker(listsMirrorMaker); - + mirrorMakerAgent.mirrorMakers = listMirrorMaker; - + mirrorMakerAgent.createMirrorMaker(mirrorMaker); - + assertEquals(2, mirrorMakerAgent.mirrorMakers.getListMirrorMaker().size()); } -*/} + @Test + public void testPublish() { + TopicUtil util = new TopicUtil(); + util.publishTopic("topicURL", "topicname", "mechid", "password", "message"); + + } + + @Test + public void testSubscribe() { + TopicUtil util = new TopicUtil(); + util.subscribeTopic("topicURL", "topicname", "1", "mechid", "password"); + + } +} -- 2.16.6 From 08234869b6e0052f312a6bb04d9cd8df7f6c252e Mon Sep 17 00:00:00 2001 From: Chandan Ghosh Date: Fri, 4 Jan 2019 12:39:42 +0530 Subject: [PATCH 03/16] Added logger for exception log Added logger for exception log. Reported in sonar Issue-ID: DMAAP-927 Change-Id: If3cf309c84ad931715f007a68747a51142f0db15 Signed-off-by: Chandan Ghosh --- .../org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 21a3974..5246ce9 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -97,7 +97,7 @@ public class MirrorMakerProcessHandler { // } } } catch (Exception e) { - e.printStackTrace(); + logger.error("Error occured in MirrorMakerProcessHandler.checkMirrorMakerProcess"+e); } return false; } -- 2.16.6 From 36c24531b60b2a0b909c2594f6f37741b1901ca7 Mon Sep 17 00:00:00 2001 From: Chandan Ghosh Date: Fri, 4 Jan 2019 12:47:27 +0530 Subject: [PATCH 04/16] Added logger for exception block Added logger for exception block reported in sonar Issue-ID: DMAAP-927 Change-Id: Ib1e120888bc1b7b4c51b39da37f49cd83ef770e8 Signed-off-by: Chandan Ghosh --- .../java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index 86a653d..23fd99f 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -111,7 +111,7 @@ public class MirrorMakerAgent { try { input.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error("exception occured in checkStartup "+e); } } } @@ -128,7 +128,7 @@ public class MirrorMakerAgent { try { input.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error("exception occured in checkStartup "+e); } } } @@ -176,7 +176,7 @@ public class MirrorMakerAgent { prop.store(out, ""); } catch (Exception e) { - e.printStackTrace(); + logger.error("exception occured in checkPropertiesFile "+e); } } finally { if (input != null) { @@ -190,7 +190,7 @@ public class MirrorMakerAgent { try { out.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error("exception occured in checkPropertiesFile "+e); } } } -- 2.16.6 From b6688e0be2295a96f089b7692e655bdfb0442165 Mon Sep 17 00:00:00 2001 From: Chandan Ghosh Date: Fri, 4 Jan 2019 12:52:52 +0530 Subject: [PATCH 05/16] Replaced std out to logger Replaced std out with logger reported in sonar Issue-ID: DMAAP-927 Change-Id: I5203d7700389ce5c67b15be8ef08fcae721891c9 Signed-off-by: Chandan Ghosh --- .../org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 21a3974..37e0981 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -55,7 +55,7 @@ public class MirrorMakerProcessHandler { BufferedReader br = new BufferedReader(isr); while ((line = br.readLine()) != null) { - System.out.println(line); + logger.info(line); // if (line.contains("agentname=" + agentname) && line.contains("/bin/sh -c") == false) { //If enablelogCheck Check MirrorMaker log for errors and restart mirrormaker -- 2.16.6 From d9f5e7364845230e6aa53601383094556ccac1b3 Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Tue, 8 Jan 2019 16:35:54 -0500 Subject: [PATCH 06/16] file name and location changes Issue-ID: DMAAP-909 Change-Id: I22baeb7cdb05b51577102373e9f5a4f4de44dba3 Signed-off-by: sunil unnava --- pom.xml | 4 ++-- .../org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 4 ++-- src/test/resources/etc/mmagent.config | 12 +++++------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 878ccd2..2d9c1d7 100644 --- a/pom.xml +++ b/pom.xml @@ -179,11 +179,11 @@ jar-with-dependencies + false - true - org.onap.dmaap.mr.MirrorMakerAgent + org.onap.dmaap.mr.dmaapMMAgent.MirrorMakerAgent diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index 86a653d..de19474 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -56,7 +56,7 @@ public class MirrorMakerAgent { static final Logger logger = Logger.getLogger(MirrorMakerAgent.class); Properties mirrorMakerProperties = new Properties(); ListMirrorMaker mirrorMakers = null; - String mmagenthome = ""; + String mmagenthome = "/opt"; String kafkahome = ""; String topicURL = ""; String topicname = ""; @@ -100,7 +100,7 @@ public class MirrorMakerAgent { private boolean checkStartup() { FileInputStream input = null; try { - this.mmagenthome = System.getProperty("MMAGENTHOME"); + //this.mmagenthome = System.getProperty("MMAGENTHOME"); input = new FileInputStream(mmagenthome + "/etc/mmagent.config"); logger.info("mmagenthome is set :" + mmagenthome + " loading properties at /etc/mmagent.config"); } catch (IOException ex) { diff --git a/src/test/resources/etc/mmagent.config b/src/test/resources/etc/mmagent.config index 1d978c1..0270a86 100644 --- a/src/test/resources/etc/mmagent.config +++ b/src/test/resources/etc/mmagent.config @@ -1,7 +1,5 @@ -#kafkahome=C:/dev/att/kafka_2.10-0.8.2.1 -kafkahome=/opt/ -topicURL=http://172.18.0.1:3904 -#topicname=com.att.agenttest -topicname=org.openecomp.dmaapBC.mmatopic -mechid=dgl@openecomp.org -password=ecomp_admin \ No newline at end of file +kafkahome=/opt/kafka +topicURL=http://message-router:3904 +topicname=org.onap.dmaap.mr.mmagent +mechid=demo@people.osaaf.org +password=YKCAVhSQ+nedsh1Nry57l19jJQSnk8gs \ No newline at end of file -- 2.16.6 From 53548bf9c813d182f9169f9bbe740ed2f1c78e8e Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Tue, 8 Jan 2019 23:22:56 -0500 Subject: [PATCH 07/16] bumped the version Issue-ID: DMAAP-909 Change-Id: Iab4d9a1c7dda0eda66846059da6dde3ece198074 Signed-off-by: sunil unnava --- pom.xml | 2 +- version.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2d9c1d7..f840099 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.onap.dmaap.messagerouter.mirroragent dmaapMMAgent - 1.1.0-SNAPSHOT + 1.1.1-SNAPSHOT jar diff --git a/version.properties b/version.properties index d6e413c..e1118ab 100644 --- a/version.properties +++ b/version.properties @@ -27,7 +27,7 @@ major=1 minor=1 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} -- 2.16.6 From b7c7d9152b29bc7469bd62c0fe0c7cf7688431c8 Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Mon, 14 Jan 2019 17:52:38 -0800 Subject: [PATCH 08/16] Update INFO.yaml file Change-Id: Ib5c4ce6d44062cd23f32e07d0c2804cd2111be87 Issue-ID: CIMAN-134 Signed-off-by: Jessica Wagantall --- INFO.yaml | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 INFO.yaml diff --git a/INFO.yaml b/INFO.yaml new file mode 100644 index 0000000..b7236d8 --- /dev/null +++ b/INFO.yaml @@ -0,0 +1,42 @@ +--- +project: 'dmaap-messagerouter-mirroragent' +project_creation_date: '2017-08-29' +lifecycle_state: 'Incubation' +project_lead: &onap_releng_ptl + name: 'Ram Koya' + email: 'rk541m@att.com' + id: 'rampi_k' + company: 'ATT' + timezone: 'America/Dallas' +primary_contact: *onap_releng_ptl +issue_tracking: + type: 'jira' + url: 'https://jira.onap.org/projects/DMAAP' + key: 'DMAAP' +meetings: + - type: 'zoom' + agenda: '' + url: 'https://wiki.onap.org/pages/viewpage.action?pageId=13599275' + server: 'n/a' + channel: 'n/a' + repeats: 'weekly' + time: '13:00 UTC' +committers: + - <<: *onap_releng_ptl + - name: 'Ramdas Sawant' + email: 'rs873m@att.com' + company: 'ATT' + id: 'rs873m' + timezone: 'America/Dallas' + - name: 'Varun Gudisena' + email: 'vg411h@att.com' + company: 'ATT' + id: 'vg411h' + timezone: 'America/Dallas' +tsc: + approval: 'https://lists.onap.org/pipermail/onap-tsc' + changes: + - type: 'Removal' + name: 'Habib Madani' + name: 'Xinhui Li' + name: 'Jing Wang' -- 2.16.6 From b64034c4f7b6dafea01961af501c3e03f174d1ba Mon Sep 17 00:00:00 2001 From: BhanuRamesh Date: Fri, 18 Jan 2019 15:56:05 -0600 Subject: [PATCH 09/16] Removed unused imports and log file Issue-ID: DMAAP-971 Change-Id: I5724e84f36d2d0fdb9d37c4bdee05249263ef0da Signed-off-by: BhanuRamesh --- .gitignore | 1 + .../org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 14 +++----------- src/test/resources/logs/mmagent.log | 4 ---- 3 files changed, 4 insertions(+), 15 deletions(-) delete mode 100644 src/test/resources/logs/mmagent.log diff --git a/.gitignore b/.gitignore index b83d222..0f63015 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target/ +/bin/ diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index de19474..3b2f201 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -21,23 +21,18 @@ *******************************************************************************/ package org.onap.dmaap.mr.dmaapMMAgent; -import java.io.BufferedReader; -import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.ArrayList; import java.util.Properties; -import org.json.JSONObject; + import org.apache.log4j.Logger; import org.jasypt.util.text.BasicTextEncryptor; - +import org.json.JSONObject; import org.onap.dmaap.mr.dmaapMMAgent.dao.CreateMirrorMaker; import org.onap.dmaap.mr.dmaapMMAgent.dao.DeleteMirrorMaker; import org.onap.dmaap.mr.dmaapMMAgent.dao.ListMirrorMaker; @@ -45,13 +40,10 @@ import org.onap.dmaap.mr.dmaapMMAgent.dao.MirrorMaker; import org.onap.dmaap.mr.dmaapMMAgent.dao.UpdateMirrorMaker; import org.onap.dmaap.mr.dmaapMMAgent.dao.UpdateWhiteList; import org.onap.dmaap.mr.dmaapMMAgent.utils.MirrorMakerProcessHandler; + import com.google.gson.Gson; -import com.google.gson.JsonArray; import com.google.gson.internal.LinkedTreeMap; -import com.sun.org.apache.xerces.internal.impl.dtd.models.CMAny; -import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; - public class MirrorMakerAgent { static final Logger logger = Logger.getLogger(MirrorMakerAgent.class); Properties mirrorMakerProperties = new Properties(); diff --git a/src/test/resources/logs/mmagent.log b/src/test/resources/logs/mmagent.log deleted file mode 100644 index 3484430..0000000 --- a/src/test/resources/logs/mmagent.log +++ /dev/null @@ -1,4 +0,0 @@ -2017-10-02 21:46:17 INFO - Mirror Maker agentName Started WhiteListing:whitelist -2017-10-02 21:46:17 INFO - Mirror Maker AgentName Stopped -2017-10-02 22:19:07 INFO - Mirror Maker AgentName Stopped -2017-10-02 22:19:07 INFO - Mirror Maker agentName Started WhiteListing:whitelist -- 2.16.6 From 82136c1fd201cf815cdd85a0f02e8dd6316d6ec7 Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Mon, 4 Feb 2019 17:55:00 -0500 Subject: [PATCH 10/16] update the credentials in subscribe call Issue-ID: DMAAP-909 Change-Id: Ib27e6b3341376885a802e6702e64a5029da29356 Signed-off-by: sunil unnava --- src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index 304a067..61515bc 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -139,7 +139,7 @@ public class MirrorMakerAgent { return false; } logger.info("Published to Topic :" + this.topicname + " Successfully"); - response = topicUtil.subscribeTopic(topicURL, topicname, "1", response, response); + response = topicUtil.subscribeTopic(topicURL, topicname, "1", mechid, password); if (response != null && response.startsWith("ERROR:")) { logger.error("Problem subscribing to topic, please verify the config " + this.topicname + " MR URL is:" + this.topicURL + " Error is: " + response); -- 2.16.6 From 2fb7a686abae1fcdd8ae06c8abeb759c2bcfd069 Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Thu, 7 Feb 2019 13:57:01 -0500 Subject: [PATCH 11/16] update the shell script Issue-ID: DMAAP-909 Change-Id: If2148445006a2c412bec1e42bb9b519b5d5ae527 Signed-off-by: sunil unnava --- .../dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 9fe80db..114d1f8 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -45,7 +45,7 @@ public class MirrorMakerProcessHandler { } else { //String args[] = { "/bin/sh", "-c", "ps -ef |grep java |grep agentname=" + agentname + "~" }; - String args[] = { "/bin/sh", "-c", "ps -ef | grep `ps -ef |grep agentname=" + agentname + "~ | egrep -v 'grep|java' | awk '{print $2}' `| egrep -v '/bin/sh|grep' "}; + String args[] = { "/bin/sh", "-c", "ps -ef |grep agentname=" + agentname + "| grep -v grep | awk '{print $1}'"}; logger.info("CheckMM process->"+args[2]); mmprocess = rt.exec(args); } @@ -118,7 +118,7 @@ public class MirrorMakerProcessHandler { //String args[] = { "/bin/sh", "-c", // "kill -9 `ps -ef |grep agentname=" + agentname + "~| egrep -v 'grep|java' | awk '{print $2}'` | egrep -v '/bin/sh|grep'"}; String args[] = { "/bin/sh", "-c", - "for i in `ps -ef |grep agentname="+ agentname + "~ | egrep -v 'grep|java' | awk '{print $2}'`;do kill -9 `ps -eaf | grep $i | egrep -v '/bin/sh|grep' | awk '{print $2}'` ;done"}; + "kill -9 $(ps -ef | grep agentname=" + agentname + "| grep -v grep | awk '{print $1}')"}; logger.info ("Stop MM ->"+args[2]); // args = "kill $(ps -ef |grep java |grep agentname=" + // agentname + "~| awk '{print $2}')"; @@ -170,9 +170,9 @@ public class MirrorMakerProcessHandler { } else { String args[] = { "/bin/sh", "-c", kafkaHome + "/bin/kafka-run-class.sh -Dagentname=" + agentName - + "~ kafka.tools.MirrorMaker --consumer.config " + consumerConfig - + " --producer.config " + producerConfig + " --num.streams " + numStreams + " --abort.on.send.failure true" + " --whitelist '" + whitelist + "' >" - + mmagenthome + "/logs/" + agentName + "_MMaker.log 2>&1" }; + + " kafka.tools.MirrorMaker --consumer.config " + consumerConfig + + " --producer.config " + producerConfig + " --num.streams " + numStreams + " --abort.on.send.failure true" + " --whitelist '" + whitelist + "' 2>&1 >" + + mmagenthome + "/logs/" + agentName + "_MMaker.log " }; final Process process = rt.exec(args); new Thread() { public void run() { -- 2.16.6 From edb57cc44d6e84f8e83205c792a6484882343b8e Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Thu, 7 Feb 2019 16:21:13 -0500 Subject: [PATCH 12/16] update the shell script Issue-ID: DMAAP-911 Change-Id: I9cbcd3534673e4a8a2a29cb56a18e1d05c140db6 Signed-off-by: sunil unnava --- .../onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 114d1f8..9b5f863 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -171,8 +171,8 @@ public class MirrorMakerProcessHandler { String args[] = { "/bin/sh", "-c", kafkaHome + "/bin/kafka-run-class.sh -Dagentname=" + agentName + " kafka.tools.MirrorMaker --consumer.config " + consumerConfig - + " --producer.config " + producerConfig + " --num.streams " + numStreams + " --abort.on.send.failure true" + " --whitelist '" + whitelist + "' 2>&1 >" - + mmagenthome + "/logs/" + agentName + "_MMaker.log " }; + + " --producer.config " + producerConfig + " --num.streams " + numStreams + " --abort.on.send.failure true" + " --whitelist '" + whitelist + "' >" + + mmagenthome + "/logs/" + agentName + "_MMaker.log 2>&1" }; final Process process = rt.exec(args); new Thread() { public void run() { -- 2.16.6 From 9ce2bfd7ee1d4e20e0378106b48c2494378da2c7 Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Wed, 13 Feb 2019 16:24:47 -0500 Subject: [PATCH 13/16] update INFO.Yaml Issue-ID: DMAAP-911 Change-Id: I42b4791c97193598aa3e9e09641924b1d1e9fd2a Signed-off-by: sunil unnava --- INFO.yaml | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/INFO.yaml b/INFO.yaml index b7236d8..3c821b8 100644 --- a/INFO.yaml +++ b/INFO.yaml @@ -1,5 +1,5 @@ --- -project: 'dmaap-messagerouter-mirroragent' +project: 'dmaap-messagerouter-msgrtr' project_creation_date: '2017-08-29' lifecycle_state: 'Incubation' project_lead: &onap_releng_ptl @@ -23,16 +23,36 @@ meetings: time: '13:00 UTC' committers: - <<: *onap_releng_ptl - - name: 'Ramdas Sawant' - email: 'rs873m@att.com' + - name: 'Mandar Sawant' + email: 'ms5838@att.com' company: 'ATT' - id: 'rs873m' + id: 'sawantmandar' timezone: 'America/Dallas' - name: 'Varun Gudisena' email: 'vg411h@att.com' company: 'ATT' id: 'vg411h' timezone: 'America/Dallas' + - name: 'Bhanu Ramesh' + email: 'bg6954@att.com' + company: 'ATT' + id: 'BhanuRamesh' + timezone: 'America/Dallas' + - name: 'Dominic Lunanuova' + email: 'dgl@research.att.com' + company: 'ATT' + id: 'dglFromAtt' + timezone: 'America/Dallas' + - name: 'Sunil Unnava' + email: 'su622b@att.com' + company: 'ATT' + id: 'su622b' + timezone: 'America/Louisville' + - name: 'Conor Ward' + email: 'conor.ward@ericsson.com' + company: 'ericsson' + id: 'econwar' + timezone: 'America/Dallas' tsc: approval: 'https://lists.onap.org/pipermail/onap-tsc' changes: @@ -40,3 +60,4 @@ tsc: name: 'Habib Madani' name: 'Xinhui Li' name: 'Jing Wang' + name: 'Ramdas Sawant' -- 2.16.6 From 1984a71414faf146b1088b185eb72c59820568bd Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Wed, 6 Mar 2019 20:29:34 -0800 Subject: [PATCH 14/16] Update INFO.yaml file Add missing information so that the new verify job passes. Change-Id: I0ad029e026fa2a81476c65887cc0cc188ab8e8a6 Issue-ID: CIMAN-134 Signed-off-by: Jessica Wagantall --- INFO.yaml | 79 ++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/INFO.yaml b/INFO.yaml index 3c821b8..e39c75b 100644 --- a/INFO.yaml +++ b/INFO.yaml @@ -1,5 +1,5 @@ --- -project: 'dmaap-messagerouter-msgrtr' +project: 'dmaap-messagerouter-mirroragent' project_creation_date: '2017-08-29' lifecycle_state: 'Incubation' project_lead: &onap_releng_ptl @@ -9,50 +9,67 @@ project_lead: &onap_releng_ptl company: 'ATT' timezone: 'America/Dallas' primary_contact: *onap_releng_ptl +project_category: '' issue_tracking: type: 'jira' url: 'https://jira.onap.org/projects/DMAAP' key: 'DMAAP' +mailing_list: + type: 'groups.io' + url: 'lists.onap.org' + tag: '<[sub-project_name]>' +realtime_discussion: '' meetings: - type: 'zoom' - agenda: '' - url: 'https://wiki.onap.org/pages/viewpage.action?pageId=13599275' - server: 'n/a' - channel: 'n/a' - repeats: 'weekly' - time: '13:00 UTC' + agenda: '' + url: 'https://wiki.onap.org/pages/viewpage.action?pageId=13599275' + server: 'n/a' + channel: 'n/a' + repeats: 'weekly' + time: '13:00 UTC' +repositories: + - 'dmaap-buscontroller' + - 'dmaap-datarouter' + - 'dmaap-dbcapi' + - 'dmaap-kafka11aaf' + - 'dmaap-messagerouter-dmaapclient' + - 'dmaap-messagerouter-messageservice' + - 'dmaap-messagerouter-mirroragent' + - 'dmaap-messagerouter-msgrtr' + - 'dmaap-oom' + - 'dmaap-zookeeper' committers: - <<: *onap_releng_ptl - name: 'Mandar Sawant' - email: 'ms5838@att.com' - company: 'ATT' - id: 'sawantmandar' - timezone: 'America/Dallas' + email: 'ms5838@att.com' + company: 'ATT' + id: 'sawantmandar' + timezone: 'America/Dallas' - name: 'Varun Gudisena' - email: 'vg411h@att.com' - company: 'ATT' - id: 'vg411h' - timezone: 'America/Dallas' + email: 'vg411h@att.com' + company: 'ATT' + id: 'vg411h' + timezone: 'America/Dallas' - name: 'Bhanu Ramesh' - email: 'bg6954@att.com' - company: 'ATT' - id: 'BhanuRamesh' - timezone: 'America/Dallas' + email: 'bg6954@att.com' + company: 'ATT' + id: 'BhanuRamesh' + timezone: 'America/Dallas' - name: 'Dominic Lunanuova' - email: 'dgl@research.att.com' - company: 'ATT' - id: 'dglFromAtt' - timezone: 'America/Dallas' + email: 'dgl@research.att.com' + company: 'ATT' + id: 'dglFromAtt' + timezone: 'America/Dallas' - name: 'Sunil Unnava' - email: 'su622b@att.com' - company: 'ATT' - id: 'su622b' - timezone: 'America/Louisville' + email: 'su622b@att.com' + company: 'ATT' + id: 'su622b' + timezone: 'America/Louisville' - name: 'Conor Ward' - email: 'conor.ward@ericsson.com' - company: 'ericsson' - id: 'econwar' - timezone: 'America/Dallas' + email: 'conor.ward@ericsson.com' + company: 'ericsson' + id: 'econwar' + timezone: 'America/Dallas' tsc: approval: 'https://lists.onap.org/pipermail/onap-tsc' changes: -- 2.16.6 From d36378283cf16a5fffd85765a507f4a3f84f8a2b Mon Sep 17 00:00:00 2001 From: "sunil.unnava" Date: Mon, 1 Apr 2019 23:30:36 -0400 Subject: [PATCH 15/16] add testcases Issue-ID: DMAAP-1139 Change-Id: I53303289183b45406696477eb575c013d8a355fe Signed-off-by: sunil.unnava --- .../onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java | 14 ++++++++++---- .../mr/dmaapMMAgent/TestMirrorMakerProcessHandler.java | 7 +++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java index f7b14d4..fdcb1ed 100644 --- a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java +++ b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerAgent.java @@ -23,7 +23,6 @@ package org.onap.dmaap.mr.dmaapMMAgent; import static org.junit.Assert.*; -import static org.mockito.Mockito.spy; import java.util.ArrayList; @@ -33,7 +32,6 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.modules.junit4.PowerMockRunner; import org.onap.dmaap.mr.dmaapMMAgent.dao.ListMirrorMaker; @@ -71,6 +69,14 @@ public class TestMirrorMakerAgent { mirrorMakerAgent.main(args); } + + @Test + public void testcheckStartupWtOneParam() { + String parameters[] = { "test" }; + mirrorMakerAgent.main(parameters); + + } + @Test public void testReadAgentTopics() { @@ -156,14 +162,14 @@ public class TestMirrorMakerAgent { @Test public void testPublish() { TopicUtil util = new TopicUtil(); - util.publishTopic("topicURL", "topicname", "mechid", "password", "message"); + util.publishTopic("http://localhost:3904/events/testtopic", "topicname", "mechid", "password", "message"); } @Test public void testSubscribe() { TopicUtil util = new TopicUtil(); - util.subscribeTopic("topicURL", "topicname", "1", "mechid", "password"); + util.subscribeTopic("http://localhost:3904/events/testtopic/cg/c", "topicname", "1", "mechid", "password"); } } diff --git a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerProcessHandler.java b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerProcessHandler.java index 9d8b259..5f46dca 100644 --- a/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerProcessHandler.java +++ b/src/test/java/org/onap/dmaap/mr/dmaapMMAgent/TestMirrorMakerProcessHandler.java @@ -22,7 +22,6 @@ package org.onap.dmaap.mr.dmaapMMAgent; -import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; @@ -30,8 +29,8 @@ import org.powermock.modules.junit4.PowerMockRunner; import org.onap.dmaap.mr.dmaapMMAgent.utils.MirrorMakerProcessHandler; -//@RunWith(PowerMockRunner.class) -public class TestMirrorMakerProcessHandler {/* +@RunWith(PowerMockRunner.class) +public class TestMirrorMakerProcessHandler { @Test public void testCheckMirrorMakerProcess() { @@ -65,4 +64,4 @@ public class TestMirrorMakerProcessHandler {/* } } -*/} +} -- 2.16.6 From 2757afb4727dd82d834cdd788d10c162fe4b89f5 Mon Sep 17 00:00:00 2001 From: "sunil.unnava" Date: Mon, 15 Apr 2019 15:49:32 -0400 Subject: [PATCH 16/16] set mmagenthome for logs Issue-ID: DMAAP-1139 Change-Id: Ic81c51103b17a0f99390c51b54dbf07100830c34 Signed-off-by: sunil.unnava --- pom.xml | 2 +- src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java | 5 ++--- .../onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 2 +- src/main/resources/log4j.properties | 2 +- version.properties | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index f840099..a7d2230 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.onap.dmaap.messagerouter.mirroragent dmaapMMAgent - 1.1.1-SNAPSHOT + 1.1.2-SNAPSHOT jar diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java index c205440..afab7f6 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/MirrorMakerAgent.java @@ -92,11 +92,10 @@ public class MirrorMakerAgent { private boolean checkStartup() { FileInputStream input = null; try { - //this.mmagenthome = System.getProperty("MMAGENTHOME"); input = new FileInputStream(mmagenthome + "/etc/mmagent.config"); logger.info("mmagenthome is set :" + mmagenthome + " loading properties at /etc/mmagent.config"); } catch (IOException ex) { - logger.error(mmagenthome + "/etc/mmagent.config not found. Set -DMMAGENTHOME and check the config file"); + logger.error(mmagenthome + "/etc/mmagent.config not found."); return false; } finally { if (input != null) { @@ -111,7 +110,7 @@ public class MirrorMakerAgent { input = null; try { input = new FileInputStream(kafkahome + "/bin/kafka-run-class.sh"); - logger.info("kakahome is set :" + kafkahome); + logger.info("kafkahome is set :" + kafkahome); } catch (IOException ex) { logger.error(kafkahome + "/bin/kafka-run-class.sh not found. Make sure kafka home is set correctly"); return false; diff --git a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java index 9b5f863..a73ac70 100644 --- a/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -29,7 +29,7 @@ import org.apache.log4j.Logger; public class MirrorMakerProcessHandler { static final Logger logger = Logger.getLogger(MirrorMakerProcessHandler.class); - static String mmagenthome = System.getProperty("MMAGENTHOME"); + static String mmagenthome = "/opt"; public static boolean checkMirrorMakerProcess(String agentname, boolean enablelogCheck, String grepLog) throws Exception { String line,linelog; diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index a0ac24f..9225695 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -30,7 +30,7 @@ log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p - %m # Redirect log messages to a log file, support file rolling. log4j.appender.file=org.apache.log4j.RollingFileAppender -log4j.appender.file.File= ${MMAGENTHOME}/logs/mmagent.log +log4j.appender.file.File= /opt/logs/mmagent.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout diff --git a/version.properties b/version.properties index e1118ab..ac02ac5 100644 --- a/version.properties +++ b/version.properties @@ -27,7 +27,7 @@ major=1 minor=1 -patch=1 +patch=2 base_version=${major}.${minor}.${patch} -- 2.16.6