diff options
author | sunil unnava <sunil.unnava@att.com> | 2018-10-23 12:59:53 -0400 |
---|---|---|
committer | sunil unnava <sunil.unnava@att.com> | 2018-10-23 13:00:36 -0400 |
commit | e5b378ca8f3c6667ab8b8bc6cfce6aead463f447 (patch) | |
tree | 912645ddd9733846754d7059cdd0e28d2385ac69 /src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | |
parent | 2d7c204c7af3debb647da75ff46bbe926a71f353 (diff) |
update the package name
Issue-ID: DMAAP-858
Change-Id: I07b7968a689bdbdc8a220d67ea9235ed72df6f61
Signed-off-by: sunil unnava <sunil.unnava@att.com>
Diffstat (limited to 'src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java')
-rw-r--r-- | src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java | 200 |
1 files changed, 200 insertions, 0 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 new file mode 100644 index 0000000..82086a3 --- /dev/null +++ b/src/main/java/org/onap/dmaap/mr/dmaapMMAgent/utils/MirrorMakerProcessHandler.java @@ -0,0 +1,200 @@ +/******************************************************************************* + * ============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.utils; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; + +import org.apache.log4j.Logger; + +public class MirrorMakerProcessHandler {/* + static final Logger logger = Logger.getLogger(MirrorMakerProcessHandler.class); + static String mmagenthome = System.getProperty("MMAGENTHOME"); + + public static boolean checkMirrorMakerProcess(String agentname, boolean enablelogCheck, String grepLog) throws Exception { + String line,linelog; + try { + Runtime rt = Runtime.getRuntime(); + Process mmprocess = null; + + if (System.getProperty("os.name").contains("Windows")) { + String args = ""; + args = "wmic.exe process where \"commandline like '%agentname=" + agentname + + "~%' and caption='java.exe'\""; + mmprocess = rt.exec(args); + } 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' "}; + logger.info("CheckMM process->"+args[2]); + mmprocess = rt.exec(args); + } + + InputStream is = mmprocess.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + + while ((line = br.readLine()) != null) { + System.out.println(line); + // if (line.contains("agentname=" + agentname) && line.contains("/bin/sh -c") == false) { + + //If enablelogCheck Check MirrorMaker log for errors and restart mirrormaker + if(enablelogCheck) { + logger.info("Check if MM log contains any errors"); + String args2[]; + args2 = new String[] { "/bin/sh", "-c", "grep -i ERROR "+ mmagenthome + "/logs/" + agentname + "_MMaker.log"}; + if(null!=grepLog && !grepLog.isEmpty()) + { + args2 = new String[]{ "/bin/sh", "-c", grepLog +" " + mmagenthome + "/logs/" + agentname + "_MMaker.log"}; + } + logger.info("Grep log args-- "+args2[2]); + mmprocess = rt.exec(args2); + InputStream islog = mmprocess.getInputStream(); + InputStreamReader isrlog = new InputStreamReader(islog); + BufferedReader brlog = new BufferedReader(isrlog); + + while ((linelog = brlog.readLine()) != null) + { + logger.info("Error from MM log--"+linelog); + + if (linelog.toLowerCase().contains("ERROR".toLowerCase()) || + linelog.toLowerCase().contains("Issue".toLowerCase()) ) + { + logger.info("MM log contains error Stop MM and restart"); + stopMirrorMaker(agentname); + isrlog.close(); + brlog.close(); + return false; + } + + + } + isrlog.close(); + brlog.close(); + } + + return true; + // } + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static void stopMirrorMaker(String agentname) { + try { + Runtime rt = Runtime.getRuntime(); + Process killprocess = null; + + if (System.getProperty("os.name").contains("Windows")) { + String args = "wmic.exe process where \"commandline like '%agentname=" + agentname + + "~%' and caption='java.exe'\" call terminate"; + killprocess = rt.exec(args); + } else { + //String args[] = { "/bin/sh", "-c", + // "kill -9 $(ps -ef |grep java |grep agentname=" + agentname + "~| awk '{print $2}')" }; + + //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"}; + logger.info ("Stop MM ->"+args[2]); + // args = "kill $(ps -ef |grep java |grep agentname=" + + // agentname + "~| awk '{print $2}')"; + killprocess = rt.exec(args); + } + + InputStream is = killprocess.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + String line; + while ((line = br.readLine()) != null) { + // System.out.println(line); + } + + logger.info("Mirror Maker " + agentname + " Stopped"); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public static void startMirrorMaker(String mmagenthome, String kafkaHome, String agentName, String consumerConfig, + String producerConfig, int numStreams, String whitelist) { + try { + Runtime rt = Runtime.getRuntime(); + + if (System.getProperty("os.name").contains("Windows")) { + String args = kafkaHome + "/bin/windows/kafka-run-class.bat -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"; + final Process process = rt.exec(args); + new Thread() { + @Override + public void run() { + try { + InputStream is = process.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + String line; + while ((line = br.readLine()) != null) { + // System.out.println(line); + } + } catch (Exception anExc) { + anExc.printStackTrace(); + } + } + }.start(); + } 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" }; + final Process process = rt.exec(args); + new Thread() { + public void run() { + try { + InputStream is = process.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + String line; + while ((line = br.readLine()) != null) { + // System.out.println(line); + } + } catch (Exception anExc) { + anExc.printStackTrace(); + } + } + }.start(); + } + + logger.info("Mirror Maker " + agentName + " Started" + " WhiteListing:" + whitelist); + + } catch (Exception e) { + e.printStackTrace(); + } + } +*/} |