summaryrefslogtreecommitdiffstats
path: root/gearman
diff options
context:
space:
mode:
authorBjörn Geiger2011-08-23 13:06:13 +0200
committerBjörn Geiger2011-08-23 13:06:13 +0200
commit7ca240490d0ba6b2da2dd0939fc2659069f2c7a1 (patch)
treeffc6170a2fddb142232106352fdc2c877d463b99 /gearman
parentBlack und Whitelist wird nun übergeben (diff)
downloadpoolctrl-7ca240490d0ba6b2da2dd0939fc2659069f2c7a1.tar.gz
poolctrl-7ca240490d0ba6b2da2dd0939fc2659069f2c7a1.tar.xz
poolctrl-7ca240490d0ba6b2da2dd0939fc2659069f2c7a1.zip
blacklist und whitelist wird nun vom worker bearbeitet
Diffstat (limited to 'gearman')
-rw-r--r--gearman/controllerWorker/ControllerWorker/Boot.java42
-rw-r--r--gearman/controllerWorker/ControllerWorker/BootWorker.java16
-rw-r--r--gearman/controllerWorker/ControllerWorker/Shutdown.java72
-rw-r--r--gearman/controllerWorker/ControllerWorker/ShutdownWorker.java17
4 files changed, 104 insertions, 43 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
diff --git a/gearman/controllerWorker/ControllerWorker/BootWorker.java b/gearman/controllerWorker/ControllerWorker/BootWorker.java
index e14e380..22d1e91 100644
--- a/gearman/controllerWorker/ControllerWorker/BootWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/BootWorker.java
@@ -41,7 +41,21 @@ public class BootWorker extends AbstractGearmanFunction {
clients.add(clientMap);
}
- Boot boot = new Boot(host, port, clients, updateRate, waitTime, eventOS);
+ JSONArray whitelist = (JSONArray) jsonObject.get("whitelist");
+ JSONArray blacklist = (JSONArray) jsonObject.get("blacklist");
+ Vector<String> psWhitelist = new Vector<String>();
+ Vector<String> psBlacklist = new Vector<String>();
+
+ for (Object whiteEntry : whitelist) {
+ psWhitelist.add(whiteEntry.toString());
+ }
+
+ for (Object blackEntry : blacklist) {
+ psBlacklist.add(blackEntry.toString());
+ }
+
+ Boot boot = new Boot(host, port, clients, updateRate, waitTime,
+ eventOS, psWhitelist, psBlacklist);
StatusWorker.BOOTTHREADS.put(event, boot);
boot.start();
System.out.println("Booting started");
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
diff --git a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
index 73c659a..5bbc165 100644
--- a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
@@ -40,8 +40,21 @@ public class ShutdownWorker extends AbstractGearmanFunction {
clients.add(clientMap);
}
- Shutdown shutdown = new Shutdown(host, port, clients,
- updateRate, waitTime);
+ JSONArray whitelist = (JSONArray) jsonObject.get("whitelist");
+ JSONArray blacklist = (JSONArray) jsonObject.get("blacklist");
+ Vector<String> psWhitelist = new Vector<String>();
+ Vector<String> psBlacklist = new Vector<String>();
+
+ for (Object whiteEntry : whitelist) {
+ psWhitelist.add(whiteEntry.toString());
+ }
+
+ for (Object blackEntry : blacklist) {
+ psBlacklist.add(blackEntry.toString());
+ }
+
+ Shutdown shutdown = new Shutdown(host, port, clients, updateRate,
+ waitTime, psWhitelist, psBlacklist);
StatusWorker.SHUTDOWNTHREADS.put(event, shutdown);
shutdown.start();
System.out.println("Shutdown started");