⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callscript.java

📁 Network Administration Visualized 网络管理可视化源码
💻 JAVA
字号:
package no.ntnu.nav.eventengine.handlerplugins.CallScript;import java.util.*;import java.io.*;import java.sql.*;import no.ntnu.nav.Database.*;import no.ntnu.nav.ConfigParser.*;import no.ntnu.nav.logger.*;import no.ntnu.nav.eventengine.*;import no.ntnu.nav.eventengine.deviceplugins.Box.*;import no.ntnu.nav.eventengine.deviceplugins.Netel.*;/** * CallScript handler plugin; calls an external script in response to an event. */public class CallScript implements EventHandler{	public String[] handleEventTypes()	{		return HANDLE_ALL_EVENTS;	}	public void handle(DeviceDB ddb, Event e, ConfigParser cp)	{		ConfigParser navCp = (ConfigParser) cp.getObject("navCp");		String eventtype = e.getEventtypeid();		char sep = File.separatorChar;		String script = navCp.get("NAVROOT") + sep + "bin" + sep + "eventengine" + sep + "scripts" + sep + eventtype;		try {			File f = new File(script);			if (!f.exists()) {				return;			}		} catch (Exception exp) {			exp.printStackTrace(System.err);		}		Log.setDefaultSubsystem("CALL_SCRIPT_EVENTHANDLER");		//Log.d("HANDLE", "Event: " + e);		Map vars = new HashMap();		vars.put("source", "" + e.getSource());		vars.put("deviceid", "" + e.getDeviceid());		vars.put("netboxid", "" + e.getNetboxid());		vars.put("subid", "" + e.getSubid());		vars.put("netboxid", "" + e.getNetboxid());		vars.put("time", "" + e.getTime());		vars.put("eventtypeid", "" + e.getEventtypeid());		vars.put("state", "" + e.getState());		vars.put("value", "" + e.getValue());		vars.put("severity", "" + e.getSeverity());		vars.putAll(e.getVarMap());		try {			if (e.getDeviceid() > 0) {				ResultSet rs = Database.query("SELECT * FROM device LEFT JOIN netbox USING (deviceid) LEFT JOIN type USING (typeid) LEFT JOIN room USING (roomid) LEFT JOIN location USING (locationid) LEFT JOIN module USING(deviceid) WHERE deviceid = " + e.getDeviceid());				ResultSetMetaData rsmd = rs.getMetaData();				if (rs.next()) {					HashMap hm = Database.getHashFromResultSet(rs, rsmd);					vars.putAll(hm);				}			}			if (e.getNetboxid() > 0) {				ResultSet rs = Database.query("SELECT * FROM netbox JOIN device USING (deviceid) LEFT JOIN type USING (typeid) LEFT JOIN room USING (roomid) LEFT JOIN location USING (locationid) WHERE netboxid = " + e.getNetboxid());				ResultSetMetaData rsmd = rs.getMetaData();				if (rs.next()) {					HashMap hm = Database.getHashFromResultSet(rs, rsmd);					vars.putAll(hm);				}			}		} catch (SQLException exp) {			exp.printStackTrace(System.err);		}		long beginTime = System.currentTimeMillis();		if (!execScript(script, vars)) {			Log.e("EXEC_SCRIPT", "Failed to execute script: " + script);		} else {			Log.e("EXEC_SCRIPT", "Script " + script + " executed in " + (System.currentTimeMillis() - beginTime) + " ms");		}			}	public boolean execScript(String script, Map vars)	{		try {			List cmd = new ArrayList();			cmd.add(script);			for (Iterator it = vars.entrySet().iterator(); it.hasNext();) {				Map.Entry me = (Map.Entry)it.next();				cmd.add(me.getKey() + "=" + me.getValue());			}			String[] hostCmd = new String[cmd.size()];			for (int i=0; i < cmd.size(); i++) {				hostCmd[i] = (String) cmd.get(i);			};			Runtime rt = Runtime.getRuntime();			//Log.d("EXEC_SCRIPT", "Exec: " + cmd);			Process p = rt.exec(hostCmd);			try {				p.waitFor();			} catch (InterruptedException e) {				Log.e("EXEC_SCRIPT", "InterruptedException: " + e.getMessage());				e.printStackTrace(System.err);				return false;			}		} catch (Exception e) {			Log.e("EXEC_SCRIPT", "Exception: " + e.getMessage());			e.printStackTrace(System.err);		}		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -