private String valueStringImplementation(String s, int i, boolean flag) { i = getPrecision(i); if (s.equals("n/a") || s.length() == 0) { return "n/a"; } if (units != null && units.length() > 0) { String s1 = getDisplayUnits(); try { s = convertValue(s, units, s1); } catch (IllegalConversionException illegalconversionexception) { s1 = units; } if (flag) { return TextUtils.floatToString(toFloat(s), i) + unitSeparator + getUnitDisplayString(s1); } else { return TextUtils.floatToString(toFloat(s), i); } } if (TextUtils.isNumber(s)) { return TextUtils.floatToString(toFloat(s), i); } else { return s; } }
protected boolean update() { String s = getProperty(pMachineName); long l = 0L; long l1 = 0L; try { l = Long.parseLong(getProperty(pLastMeasurement)); l1 = Long.parseLong(getProperty(pLastPageFaults)); } catch (NumberFormatException numberformatexception) { } ArrayList array = null; if (monitorDebugLevel == 3) { array = new ArrayList(); } long al[] = Platform.getMemoryFull(s, l1, l, this, array); long l2 = al[0]; long l3 = al[2]; long l4 = l3 - al[1]; long l5 = al[3]; long l6 = al[4]; l1 = al[5]; l = al[6]; long l7 = al[7]; String s1 = "" + l4 / 0x100000L; float f = -1F; if (l5 != -1L && l6 != 0L) { float f1 = (float) l6 / (float) l7; f = (float) l5 / f1; if ((double) f < 0.001D) { f = 0.0F; } } if (stillActive()) { synchronized (this) { setProperty(pLastPageFaults, l1); setProperty(pLastMeasurement, l); if (l2 == -1L) { setProperty(pPercentFull, "n/a"); setProperty(pFreeSpace, "n/a"); setProperty(pPageFaultsPerSecond, "n/a"); setProperty(pMeasurement, 0); setProperty(pStateString, "no data"); setProperty(pNoData, "n/a"); if (monitorDebugLevel == 3 && array != null) { StringBuffer stringbuffer = new StringBuffer(); for (int i = 0; i < array.size(); i++) { stringbuffer.append(array.get(i) + "\n"); } LogManager.log( "Error", "MemoryMonitor: " + getFullID() + " failed, output:\n" + stringbuffer); } } else { setProperty(pPercentFull, l2); setProperty(pFreeSpace, l4 / 0x100000L); setProperty(pMeasurement, getMeasurement(pPercentFull)); String s2 = l2 + "% used, " + s1 + "MB free"; if (f == -1F) { setProperty(pPageFaultsPerSecond, "n/a"); } else { setProperty(pPageFaultsPerSecond, f); s2 = s2 + ", " + TextUtils.floatToString(f, 2) + " pages/sec"; } setProperty(pStateString, s2); } } } return true; }
/** CAUTION: Decompiled by hand. */ protected boolean update() { long l = Platform.timeMillis(); int i = -1; String[] as = (new String[] {""}); String s = getProperty(pExpression); long l1 = getPropertyAsLong(pMaxMeasurement); int j = getPropertyAsInteger(pCacheLife); boolean flag = j > 0; ArrayList array = new ArrayList(); String s1 = ""; try { String s2 = I18N.toDefaultEncoding(getProperty(pScript)); String s3 = I18N.toDefaultEncoding(getProperty(pRemoteScript)); String s4 = null; String s7 = I18N.toDefaultEncoding(getProperty(pLocalScriptLocation)); if (s7.length() == 0) { s7 = "scripts"; } else if (s7.indexOf("../") >= 0 || s7.indexOf("..\\") >= 0) { failMonitorRun(i, "Illegal Script Location contains ../ construct"); return true; } s1 = getProperty(pMachineName); if (Machine.isNTSSH(s1) && s2.equals("USE COMMAND")) { failMonitorRun(i, "Can't use this option with remote NT ssh connection"); return true; } if (Platform.isRemote(s1) && Machine.getMachine(s1) == null) { failMonitorRun(i, "Remote host unreachable"); return true; } if (Platform.isNTRemote(s1) && !Machine.isNTSSH(s1)) { failMonitorRun(i, "NT host must be configured as NT ssh remote "); return true; } if (s3.equals("none") && s2.equals("USE COMMAND")) { failMonitorRun(i, "Need to specify a script"); return true; } if (s3.length() != 0 && !s3.equals("none")) { try { s4 = getCommandFromLocalFile(s3); s4 = TextUtils.replaceParameters(s4, getParameters(), getReplacementChars()); } catch (IOException ioexception) { LogManager.log("Error", " File load error " + ioexception.toString()); setProperty(pNoData, "n/a"); } } else { if (!Platform.isRemote(s1)) { String s8 = Platform.getRoot() + "/" + s7 + "/" + s2; File file = new File(s8); s4 = file.getAbsolutePath(); } else { String s9 = "scripts" + Machine.getMachinePathSeparator(s1) + s2; OSAdapter osadapter = Machine.getAdapter(s1); if (osadapter != null) { CommandLine commandline = new CommandLine(); String s11 = osadapter.getCommandSetting("fileExists", "changeDirectory"); if (s11.length() > 0) { s4 = s11; } else { s4 = "/usr/bin/cd"; } commandline.exec(s4, s1, Platform.getLock(s1)); } RemoteFile remotefile = new RemoteFile(s1, s9); s4 = remotefile.getFullPath(); } s4 = s4 + " " + getParameters(); System.out.println("Script: " + s4); } LogManager.log("RunMonitor", "Script monitor command: " + s4 + ", machine: " + s1); String s10 = s1; if (s10.startsWith("\\\\")) { s10 = s10.substring(2); } Machine machine = Machine.getNTMachine(s10); int j1 = getPropertyAsInteger(pTimeout) * 1000; if (j1 < 0) { j1 = getSettingAsLong("_scriptMonitorTimeout", -1) * 1000; } String s12 = getScriptServerName(s1); String s14 = getProperty(pScript).equals("USE COMMAND") ? getProperty(pRemoteScript) : getProperty(pScript); ScriptMonitorCache scriptmonitorcache = new ScriptMonitorCache(s12, s14, getPropertyAsInteger(pCacheLife)); if (!flag && alertDebug) { System.out.println("Caching is disabled."); } boolean flag1 = scriptmonitorcache.isFresh(); if (flag && flag1 && scriptmonitorcache.getExitValue() == 0) { if (alertDebug) { System.out.println( "Caching is enabled, the cache life time is set to: " + getPropertyAsInteger(pCacheLife)); } if (alertDebug) { System.out.println( "The cache is still good, not exec'ing script, cache last modified on: " + scriptmonitorcache.getLastModDate()); } array = scriptmonitorcache.getOutput(); i = scriptmonitorcache.getExitValue(); } else if (machine != null && Machine.isNTSSH(s10)) { if (s4.indexOf("\\\\" + s10) > 0) { s4 = TextUtils.replaceString(s4, "\\\\" + s10, ""); } s4 = "scripts\\" + s4.substring(s4.indexOf(s2)); if (j1 > 0) { s4 = CommandLine.getExecSyncCmd(s10, s4, j1, true); } SSHCommandLine sshcommandline = new SSHCommandLine(); array = sshcommandline.exec(s4, machine, false); i = sshcommandline.exitValue; } else { CommandLine commandline1 = new CommandLine(); array = commandline1.exec(s4, s1, Platform.monitorLock, j1); i = commandline1.getExitValue(); } if (flag && !flag1) { if (alertDebug) { System.out.println("Exec'd script and updating cache."); } scriptmonitorcache.update(i, array); } if (i < 0) { String s16 = "Failed to run script"; if (i == Monitor.kURLTimeoutError) { s16 = "Script timed out"; } failMonitorRun(i, s16); return true; } StringBuffer stringbuffer1 = new StringBuffer(); String s17; Enumeration enumeration = (Enumeration) array.iterator(); while (enumeration.hasMoreElements()) { s17 = (String) enumeration.nextElement(); LogManager.log("RunMonitor", "Script monitor machine " + s1 + " output: " + s17); if (s17.startsWith(CommandLine.PERFEX_EXECSYNC_TIMEOUT)) { failMonitorRun(-1, "Error: Timeout"); return true; } if (s17.indexOf("not found") > 0 || s17.indexOf("Not Found") > 0 || s17.indexOf("denied") > 0 || s17.indexOf("Denied") > 0 || s17.indexOf("cannot execute") > 0 || s17.indexOf("such file or directory") > 0) { failMonitorRun(-1, s17); return true; } stringbuffer1.append(s17); stringbuffer1.append("\n"); if (s.length() > 0 && !TextUtils.isRegularExpression(s) && s17.indexOf(s) != -1) { long l4 = TextUtils.findLong(s17, "", ""); if (l4 != -1L) { as[0] = String.valueOf(l4); } } } if (TextUtils.isSubstituteExpression(s)) { s = TextUtils.substitute(s, this); } if (s.length() > 0 && TextUtils.isRegularExpression(s)) { String s18 = stringbuffer1.toString(); Perl5Util perl5util = new Perl5Util(); if (perl5util.match(s, s18)) { int i2 = perl5util.groups(); if (i2 > 0) { if (i2 == 1) { as = new String[i2]; as[0] = perl5util.group(0); } else { if (--i2 > maxNumberOfMatches) { i2 = maxNumberOfMatches; } as = new String[i2]; for (int j2 = 0; j2 < as.length && j2 < maxNumberOfMatches; j2++) { as[j2] = perl5util.group(j2 + 1); } } } } else { failMonitorRun(-1, "Content Match Error"); return true; } } } catch (Exception exception) { LogManager.log("RunMonitor", "Script monitor error: " + exception + " machine: " + s1); setProperty(pNoData, "n/a"); } LogManager.log("RunMonitor", "Script monitor exit: " + i + " machine: " + s1); setProperty(pScriptOutput, ""); if (as[0].trim().length() == 0) { as[0] = "n/a"; long l2 = getSettingAsLong("_scriptMonitorLinesToSave", 25); String s5 = ""; for (int k = 0; k < array.size() && (long) k < l2; k++) { s5 = s5 + array.get(k); s5 = s5 + "^"; } s5 = s5.replace('\r', ' '); s5 = s5.replace('\n', '^'); setProperty(pScriptOutput, s5); } long l3 = Platform.timeMillis() - l; String s6 = TextUtils.floatToString((float) l3 / 1000F, 2) + " sec"; if (stillActive()) { synchronized (this) { for (int i1 = 0; i1 < as.length; i1++) { setProperty(pMatchValue[i1], as[i1]); } setProperty(pStatus, i); if (i != 0) { setProperty(pNoData, "n/a"); } setProperty(pRoundTripTime, l3); setProperty(pMeasurement, getMeasurement(pRoundTripTime, l1)); if (s.length() > 0) { HashMap hashmap = getLabels(); StringBuffer stringbuffer = new StringBuffer(); for (int k1 = 0; k1 < as.length; k1++) { String s13 = getNameFromIndex(k1); String s15 = (String) hashmap.get(s13); if (s15 == null) { s15 = s13; } stringbuffer.append(s15 + "=" + as[k1] + (k1 >= as.length - 1 ? "" : ",")); } setProperty(pStateString, stringbuffer); } else { setProperty(pStateString, "exit: " + i + ", " + s6); } } } return true; }