agent/src/jetbrains/buildServer/swabra/processes/WmicProcessDetailsProvider.java (23 lines of code) (raw):
package jetbrains.buildServer.swabra.processes;
import jetbrains.buildServer.ExecResult;
import org.apache.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @User Victory.Bedrosova
* 3/25/14.
*/
public class WmicProcessDetailsProvider {
private static final Logger LOG = Logger.getLogger(LockedFileResolver.class);
/**
* Returns "wmic process <pid>" command output for the specified process id or null in case such command failed or returned no result
* @param pid process to get details for
* @return see above
*/
@Nullable
public String getProcessDetails(@NotNull Long pid) {
try {
final ExecResult result = ProcessExecutor.runWmicProcess(pid);
final String stdout = result.getStdout();
LOG.debug("wmic output:\n" + stdout);
return noDetailsAvailable(stdout) ? null : stdout;
} catch (Exception e) {
LOG.warn(e.getMessage(), e);
return null;
}
}
private boolean noDetailsAvailable(final String stdout) {
return stdout.contains("No Instance(s) Available.") || stdout.contains("ERROR");
}
}