summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/Shutdown.java
diff options
context:
space:
mode:
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/Shutdown.java')
-rw-r--r--gearman/controllerWorker/ControllerWorker/Shutdown.java72
1 files changed, 51 insertions, 21 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Shutdown.java b/gearman/controllerWorker/ControllerWorker/Shutdown.java
index 15ec623..e9adf0d 100644
--- a/gearman/controllerWorker/ControllerWorker/Shutdown.java
+++ b/gearman/controllerWorker/ControllerWorker/Shutdown.java
@@ -41,6 +41,8 @@ public class Shutdown extends Thread {
private HashMap<Integer, Integer> status;
private HashMap<Integer, String> errors;
private HashMap<Integer, Long> pingShutdownTime;
+ private Vector<String> psWhitelist;
+ private Vector<String> psBlacklist;
private Vector<HashMap<String, String>> clients;
@@ -49,7 +51,8 @@ public class Shutdown extends Thread {
public Shutdown(String serverAddress, int port,
Vector<HashMap<String, String>> clients, int updateRate,
- long waitTime) {
+ long waitTime, Vector<String> psWhitelist,
+ Vector<String> psBlacklist) {
this.pingJobs = new HashMap<Integer, GearmanJob>();
this.whoJobs = new HashMap<Integer, GearmanJob>();
this.doShutdownJobs = new HashMap<Integer, GearmanJob>();
@@ -58,6 +61,8 @@ public class Shutdown extends Thread {
this.status = new HashMap<Integer, Integer>();
this.errors = new HashMap<Integer, String>();
this.pingShutdownTime = 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(
@@ -379,30 +384,55 @@ public class Shutdown extends Thread {
JSONObject resultObj = (JSONObject) JSONValue
.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")) {
+ JSONArray ps = (JSONArray) resultObj.get("ps");
+ 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;
+ }
+ }
+
+ // 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 (blacklistFound) {
System.out.println(ipAddress
+ " is working");
status.put(clientID, 11); // 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, 4); // is not working