summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/Boot.java
diff options
context:
space:
mode:
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/Boot.java')
-rw-r--r--gearman/controllerWorker/ControllerWorker/Boot.java42
1 files changed, 23 insertions, 19 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index af8c28c..db30c89 100644
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -48,6 +48,8 @@ public class Boot extends Thread {
private HashMap<Integer, Long> pingWolTime;
private HashMap<Integer, Long> pingRestartShutdownTime;
private HashMap<Integer, Long> pingRestartBootTime;
+ private Vector<String> psWhitelist;
+ private Vector<String> psBlacklist;
private Vector<HashMap<String, String>> clients;
@@ -56,7 +58,8 @@ public class Boot extends Thread {
public Boot(String serverAddress, int port,
Vector<HashMap<String, String>> clients, int updateRate,
- long waitTime, String bootOS) {
+ long waitTime, String bootOS, Vector<String> psWhitelist,
+ Vector<String> psBlacklist) {
this.pingJobs = new HashMap<Integer, GearmanJob>();
this.pingWoLJobs = new HashMap<Integer, GearmanJob>();
this.wolJobs = new HashMap<Integer, GearmanJob>();
@@ -71,6 +74,8 @@ public class Boot extends Thread {
this.pingWolTime = new HashMap<Integer, Long>();
this.pingRestartShutdownTime = new HashMap<Integer, Long>();
this.pingRestartBootTime = new HashMap<Integer, Long>();
+ this.psWhitelist = psWhitelist;
+ this.psBlacklist = psBlacklist;
this.updateRate = updateRate; // updates per second
this.updatePeriod = 1000000000L / this.updateRate; // nanoseconds
this.gearmanConnection = new GearmanNIOJobServerConnection(
@@ -445,28 +450,27 @@ public class Boot extends Thread {
.parse(result);
if (!resultObj.containsKey("err")) {
JSONArray ps = (JSONArray) resultObj.get("ps");
- boolean isWorking = true;
-
- //LOGIC_TESTS
- /*System.out.println("######");
- System.out.println("######");
- System.out.println("firefox: " + ps.toString().contains("firefox-bin")); // browser firefox
- System.out.println("chromium: " + ps.toString().contains("chromium-browse")); // browser chromium
- System.out.println("email: " + ps.toString().contains("thunderbird-bi")); // email
- System.out.println("pdf-viewer: " + ps.toString().contains("evince")); // pdf-viewer
- System.out.println("office: " + ps.toString().contains("soffice.bin")); // office
- System.out.println("eclipse: " + ps.toString().contains("eclipse")); // eclipse
- System.out.println("######");
- System.out.println("gnome screensaver: " + ps.toString().contains("gnome-screensav")); // gnome screensaver
- System.out.println("kde screensaver: " + ps.toString().contains("Kscreensaver")); // kde screensaver
- System.out.println("######");*/
-
- if (ps.toString().contains("firefox.bin") || ps.toString().contains("chromium-browse") || ps.toString().contains("thunderbird-bi") || ps.toString().contains("evince") || ps.toString().contains("soffice.bin") || ps.toString().contains("eclipse")) {
+ boolean whitelistFound = false;
+ boolean blacklistFound = false;
+
+ for (String blackEntry : psBlacklist) {
+ if (ps.toString().contains(blackEntry)) {
+ blacklistFound = true;
+ }
+ }
+
+ for (String whiteEntry : psWhitelist) {
+ if (ps.toString().contains(whiteEntry)) {
+ whitelistFound = true;
+ }
+ }
+
+ if (blacklistFound) {
System.out.println(ipAddress
+ " is working");
status.put(clientID, 18); // is working
psJobs.remove(clientID);
- } else if (ps.toString().contains("gnome-screensav") || ps.toString().contains("Kscreensaver")) {
+ } else if (whitelistFound) {
System.out.println(ipAddress
+ " is not working");
status.put(clientID, 13); // is not working