summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapplication/configs/application.ini.dist2
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Boot.java189
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/BootWorker.java4
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Client.java9
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ClientState.java2
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Shutdown.java175
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ShutdownWorker.java4
-rwxr-xr-xgearman/killWorker.sh6
-rwxr-xr-x[-rw-r--r--]gearman/lsWorker.py6
-rwxr-xr-xgearman/worker.sh5
10 files changed, 282 insertions, 120 deletions
diff --git a/application/configs/application.ini.dist b/application/configs/application.ini.dist
index 14dbb70..e2d8b73 100755
--- a/application/configs/application.ini.dist
+++ b/application/configs/application.ini.dist
@@ -43,7 +43,7 @@ gearman.server.port =
gearman.worker.waitTime = 120
gearman.worker.scsavTime = 3600
gearman.worker.updateRate = 1
-gearman.worker.ps.blacklist = firefox-bin, chromium-browse, thunderbird-bi, evince, soffice.bin, eclipse
+gearman.worker.ps.blacklist = firefox-bin, chromium-browse, evolution-data, evolution-exch, evolution-alar, lxterminal, konsole, xfce4-terminal, thunderbird-bi, evince, gnome-terminal, vmplayer-daemon, vmware-vmx, vmware-unity-he, soffice.bin, acroread, eclipse
gearman.worker.ps.whitelist = gnome-screensav, Kscreensaver
event.updatePeriod = 5
event.lookbacktime = 1
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index a560c80..6731e28 100755
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -2,7 +2,9 @@ package ControllerWorker;
import java.io.IOException;
import java.lang.Thread;
+import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -32,9 +34,8 @@ public class Boot extends Thread {
private final int updateRate;
private long waitTime;
private long scsavTime;
- // private Vector<String> psWhitelist;
+ private Vector<String> psWhitelist;
private Vector<String> psBlacklist;
- private String scsavPID;
private final GearmanJobServerConnection gearmanConnection;
private GearmanClient gearmanClient;
@@ -42,16 +43,16 @@ public class Boot extends Thread {
private Boolean error;
public Boot(String eventName, Vector<Client> clients, String bootOS,
- int updateRate, long waitTime, long scsavTime, Vector<String> psWhitelist,
- Vector<String> psBlacklist, String gearmanServerAddress,
- int gearmanServerPort) {
+ int updateRate, long waitTime, long scsavTime,
+ Vector<String> psWhitelist, Vector<String> psBlacklist,
+ String gearmanServerAddress, int gearmanServerPort) {
this.eventName = eventName;
this.clients = clients;
this.bootOS = bootOS;
this.waitTime = waitTime * 1000;
this.scsavTime = scsavTime * 1000;
this.updateRate = updateRate; // updates per second
- // this.psWhitelist = psWhitelist;
+ this.psWhitelist = psWhitelist;
this.psBlacklist = psBlacklist;
gearmanConnection = new GearmanNIOJobServerConnection(
gearmanServerAddress, gearmanServerPort);
@@ -179,15 +180,15 @@ public class Boot extends Thread {
checkPsProgress(client);
break;
-
+
case USERPROCESSES_ARE_RUNNING:
ls(client);
-
+
break;
-
+
case CHECK_LS_PROGRESS:
checkLsProgress(client);
-
+
break;
case RESTART_CLIENT:
@@ -671,10 +672,9 @@ public class Boot extends Thread {
if (user.isEmpty()) {
logger.info(client.getIp()
+ " no user is logged in -CHECK PS-");
- /*
- * no user is logged in, doing restart
- * -----
- * didn´t work in test-pool, check ps
+ /*
+ * no user is logged in, doing restart ----- didn´t
+ * work in test-pool, check ps
*/
client.setState(ClientState.A_USER_IS_LOGGED_IN,
gearmanClient);
@@ -727,35 +727,62 @@ public class Boot extends Thread {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
JSONArray ps = (JSONArray) resultObj.get("ps");
- //int scsavPID = Integer.parseInt(resultObj.get("pid").toString());
- // boolean whitelistFound = false;
+ HashMap<String, HashMap<String, Integer>> psMap = new HashMap<String, HashMap<String, Integer>>();
+
+ for (Object obj : ps) {
+ HashMap<String, Integer> psEntry = new HashMap<String, Integer>();
+ JSONObject psLine = (JSONObject) obj;
+ String cmd = psLine.get("cmd").toString();
+ int pid = Integer.parseInt(psLine.get("pid")
+ .toString());
+ int ppid = Integer.parseInt(psLine.get("ppid")
+ .toString());
+ psEntry.put("pid", pid);
+ psEntry.put("ppid", ppid);
+ psMap.put(cmd, psEntry);
+ }
+
+ boolean whitelistFound = false;
boolean blacklistFound = false;
for (String blackEntry : psBlacklist) {
- if (ps.toString().contains(blackEntry)) {
+ if (psMap.containsKey(blackEntry)) {
blacklistFound = true;
+ break;
}
}
- /*
- * for (String whiteEntry : psWhitelist) { if
- * (ps.toString().contains(whiteEntry)) { whitelistFound
- * = true; } }
- */
+ for (String whiteEntry : psWhitelist) {
+ if (psMap.containsKey(whiteEntry)) {
+ HashMap<String, Integer> psEntry = psMap
+ .get(whiteEntry);
+ if (whiteEntry.equals("gnome-screensav")) {
+ if (psEntry.get("ppid") != 1) {
+ client.setScsavPID(psEntry.get("pid"));
+ whitelistFound = true;
+ break;
+ }
+ } else {
+ client.setScsavPID(psEntry.get("pid"));
+ whitelistFound = true;
+ break;
+ }
+ }
+ }
if (blacklistFound) {
- /*
- * if (whitelistFound) { logger.info(client.getIp()
- * + " is not working"); // is not working
- * status.put(client.getId(), 13);
- * client.removeClientJob(job); } else {
- */
- logger.info(client.getIp() + " is working");
- //client.setState(ClientState.USERPROCESSES_ARE_RUNNING,
- client.setState(ClientState.USER_IS_WORKING,
- gearmanClient);
+ if (whitelistFound) {
+ logger.info(client.getIp()
+ + " processes are running");
+ client.setState(
+ ClientState.USERPROCESSES_ARE_RUNNING,
+ gearmanClient);
+ } else {
+ logger.info(client.getIp() + " is working");
+ client.setState(ClientState.USER_IS_WORKING,
+ gearmanClient);
+ }
client.removeJob(psJob);
- // }
} else {
logger.info(client.getIp() + " is not working");
// user is not working, doing restart
@@ -774,11 +801,21 @@ public class Boot extends Thread {
client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(psJob);
}
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check if user is working.");
+ client
+ .setError("The check if a user is working has been failed.");
+ /*
+ * cannot check if user is working, go in errorState
+ */
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(psJob);
}
}
}
}
-
+
// screensaver check
private void ls(Client client) {
GearmanJob job = GearmanJobImpl.createJob("ls", client.getIp()
@@ -788,7 +825,7 @@ public class Boot extends Thread {
client.addJob(ClientJob.LSJOB, job);
logger.info("ls " + client.getIp());
}
-
+
private void checkLsProgress(Client client) throws Exception, IOException {
GearmanJob lsJob = client.getJob(ClientJob.LSJOB);
@@ -796,40 +833,76 @@ public class Boot extends Thread {
GearmanJobStatus jobStatus = gearmanClient.getJobStatus(lsJob);
if (!jobStatus.isKnown() && lsJob.isDone()) {
- GearmanJobResult psJobRes = lsJob.get();
- String result = ByteUtils.fromUTF8Bytes(psJobRes.getResults());
+ GearmanJobResult lsJobRes = lsJob.get();
+ String result = ByteUtils.fromUTF8Bytes(lsJobRes.getResults());
if (!result.isEmpty()) {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
-
- String clientScreenSaver = resultObj.get(scsavPID)
- .toString()
- + " " + resultObj.get("date").toString();
- /*
- //check screensaver has been running longer than 30min/1h
- if(clientScreenSaver < 30) {
- logger.info(client.getIp() + " screensaver has been running shorter than " + scsavTime/(1000*60) + " minutes.");
- client.setState(ClientState.USER_IS_WORKING, gearmanClient);
+ JSONArray ls = (JSONArray) resultObj.get("ls");
+ HashMap<String, Long> lsMap = new HashMap<String, Long>();
+
+ for (Object obj : ls) {
+ JSONObject lsLine = (JSONObject) obj;
+ String name = lsLine.get("name").toString();
+ SimpleDateFormat df = new SimpleDateFormat(
+ "y-M-d H:m");
+ Date date = df.parse(lsLine.get("date").toString()
+ + " " + lsLine.get("time").toString());
+ long timestamp = date.getTime();
+ lsMap.put(name, timestamp);
+ }
+
+ String scsavPID = Integer
+ .toString(client.getScsavPID());
+ long scsavTimestamp = lsMap.get(scsavPID);
+ Date date = new Date();
+ long currentTimestamp = date.getTime();
+ long beetweenTimestamp = currentTimestamp
+ - scsavTimestamp;
+
+ if (beetweenTimestamp < scsavTime) {
+ logger
+ .info(client.getIp()
+ + " screensaver has been running shorter than "
+ + scsavTime / (1000 * 60)
+ + " minutes, user is working.");
+ client.setState(ClientState.USER_IS_WORKING,
+ gearmanClient);
client.removeJob(lsJob);
} else {
- logger.info(client.getIp() + " screensaver has been running longer than " + scsavTime/(1000*60) + " minutes.");
- client.setState(ClientState.RESTART_CLIENT, gearmanClient);
+ logger
+ .info(client.getIp()
+ + " screensaver has been running longer than "
+ + scsavTime / (1000 * 60)
+ + " minutes, user is not working.");
+ client.setState(ClientState.RESTART_CLIENT,
+ gearmanClient);
client.removeJob(lsJob);
- }*/
+ }
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check 'ls -al' of /proc/");
+ client
+ .setError("The check for screensaver has been failed.");
+ // cannot check ls, go in errorState
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(lsJob);
}
- } else {
- logger.error(client.getIp() + " Cannot check 'ls -al' of /proc/");
- client
- .setError("The check for screensaver has been failed.");
- // cannot check ls, go in errorState
- client.setState(ClientState.BOOT_ERROR, gearmanClient);
- client.removeJob(lsJob);
- }
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check 'ls -al' of /proc/");
+ client
+ .setError("The check for screensaver has been failed.");
+ // cannot check ls, go in errorState
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(lsJob);
+ }
}
}
}
- //------------------
+
+ // ------------------
private void restart(Client client) {
GearmanJob job = GearmanJobImpl.createJob("restart", client.getIp()
diff --git a/gearman/controllerWorker/ControllerWorker/BootWorker.java b/gearman/controllerWorker/ControllerWorker/BootWorker.java
index a95f3a5..a9c538b 100755
--- a/gearman/controllerWorker/ControllerWorker/BootWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/BootWorker.java
@@ -56,10 +56,10 @@ public class BootWorker extends AbstractGearmanFunction {
.getString("gearman.worker.updateRate"));
String blacklist = ControllerWorkerMain.getApplication_ini().getString(
"gearman.worker.ps.blacklist");
- StringTokenizer blacklistTokenizer = new StringTokenizer(blacklist, ",");
+ StringTokenizer blacklistTokenizer = new StringTokenizer(blacklist, ", ");
String whitelist = ControllerWorkerMain.getApplication_ini().getString(
"gearman.worker.ps.whitelist");
- StringTokenizer whitelistTokenizer = new StringTokenizer(whitelist, ",");
+ StringTokenizer whitelistTokenizer = new StringTokenizer(whitelist, ", ");
Vector<String> psWhitelist = new Vector<String>();
Vector<String> psBlacklist = new Vector<String>();
while (whitelistTokenizer.hasMoreTokens()) {
diff --git a/gearman/controllerWorker/ControllerWorker/Client.java b/gearman/controllerWorker/ControllerWorker/Client.java
index 17d8bcc..c3fb95b 100755
--- a/gearman/controllerWorker/ControllerWorker/Client.java
+++ b/gearman/controllerWorker/ControllerWorker/Client.java
@@ -21,6 +21,7 @@ public class Client {
private String error;
private Boolean finished;
private int statusUpdateCount;
+ private int scsavPID;
public Client(JSONObject clientJsonObj, String type, String eventName) {
this.statusUpdateCount = 0;
@@ -36,6 +37,14 @@ public class Client {
jobs = new Vector<ClientJob>();
}
+ public int getScsavPID() {
+ return scsavPID;
+ }
+
+ public void setScsavPID(int scsavPID) {
+ this.scsavPID = scsavPID;
+ }
+
public GearmanJob getJob(int jobType) {
for (ClientJob job : jobs) {
if (job.getJobType() == jobType) {
diff --git a/gearman/controllerWorker/ControllerWorker/ClientState.java b/gearman/controllerWorker/ControllerWorker/ClientState.java
index 8b08922..27ffa5e 100755
--- a/gearman/controllerWorker/ControllerWorker/ClientState.java
+++ b/gearman/controllerWorker/ControllerWorker/ClientState.java
@@ -76,6 +76,8 @@ public enum ClientState {
return "[" + this.state + "] A user is logged in.";
case CHECK_PS_PROGRESS:
return "[" + this.state + "] The check if the user is working has been intialized.";
+ case USERPROCESSES_ARE_RUNNING:
+ return "[" + this.state + "] Processes from the blacklist and a screensaver process have been running.";
case CHECK_LS_PROGRESS:
return "[" + this.state + "] The check if the screensaver has been running longer than 60min has been intialized.";
case USER_IS_WORKING:
diff --git a/gearman/controllerWorker/ControllerWorker/Shutdown.java b/gearman/controllerWorker/ControllerWorker/Shutdown.java
index 0b7082e..32413ca 100755
--- a/gearman/controllerWorker/ControllerWorker/Shutdown.java
+++ b/gearman/controllerWorker/ControllerWorker/Shutdown.java
@@ -2,7 +2,9 @@ package ControllerWorker;
import java.io.IOException;
import java.lang.Thread;
+import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -31,9 +33,8 @@ public class Shutdown extends Thread {
private final int updateRate;
private long waitTime;
private long scsavTime;
- // private Vector<String> psWhitelist;
+ private Vector<String> psWhitelist;
private Vector<String> psBlacklist;
- private String scsavPID;
private final GearmanJobServerConnection gearmanConnection;
private GearmanClient gearmanClient;
@@ -49,7 +50,7 @@ public class Shutdown extends Thread {
this.updateRate = updateRate; // updates per second
this.waitTime = waitTime * 1000;
this.scsavTime = scsavTime * 1000;
- // this.psWhitelist = psWhitelist;
+ this.psWhitelist = psWhitelist;
this.psBlacklist = psBlacklist;
gearmanConnection = new GearmanNIOJobServerConnection(
gearmanServerAddress, gearmanServerPort);
@@ -164,15 +165,15 @@ public class Shutdown extends Thread {
checkPsProgress(client);
break;
-
+
case USERPROCESSES_ARE_RUNNING:
ls(client);
-
+
break;
-
+
case CHECK_LS_PROGRESS:
checkLsProgress(client);
-
+
break;
case USER_IS_WORKING:
@@ -483,37 +484,63 @@ public class Shutdown extends Thread {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
JSONArray ps = (JSONArray) resultObj.get("ps");
- //scsavPID = resultObj.get("pid").toString();
- // boolean whitelistFound = false;
+ HashMap<String, HashMap<String, Integer>> psMap = new HashMap<String, HashMap<String, Integer>>();
+
+ for (Object obj : ps) {
+ HashMap<String, Integer> psEntry = new HashMap<String, Integer>();
+ JSONObject psLine = (JSONObject) obj;
+ String cmd = psLine.get("cmd").toString();
+ int pid = Integer.parseInt(psLine.get("pid")
+ .toString());
+ int ppid = Integer.parseInt(psLine.get("ppid")
+ .toString());
+ psEntry.put("pid", pid);
+ psEntry.put("ppid", ppid);
+ psMap.put(cmd, psEntry);
+ }
+
+ boolean whitelistFound = false;
boolean blacklistFound = false;
for (String blackEntry : psBlacklist) {
- if (ps.toString().contains(blackEntry)) {
+ if (psMap.containsKey(blackEntry)) {
blacklistFound = true;
+ break;
}
}
- /*
- * for (String whiteEntry : psWhitelist) { if
- * (ps.toString().contains(whiteEntry)) { whitelistFound
- * = true; } }
- */
+ for (String whiteEntry : psWhitelist) {
+ if (psMap.containsKey(whiteEntry)) {
+ HashMap<String, Integer> psEntry = psMap
+ .get(whiteEntry);
+ if (whiteEntry.equals("gnome-screensav")) {
+ if (psEntry.get("ppid") != 1) {
+ client.setScsavPID(psEntry.get("pid"));
+ whitelistFound = true;
+ break;
+ }
+ } else {
+ client.setScsavPID(psEntry.get("pid"));
+ whitelistFound = true;
+ break;
+ }
+ }
+ }
if (blacklistFound) {
- /*
- * if (whitelistFound) { logger.info(client.getIp()
- * + " is not working"); // is not working
- * status.put(client.getId(), 4);
- * client.removeClientJob(job);
- *
- * } else {
- */
- logger.info(client.getIp() + " is working");
- //client.setState(ClientState.USERPROCESSES_ARE_RUNNING,
- client.setState(ClientState.USER_IS_WORKING,
- gearmanClient);
+ if (whitelistFound) {
+ logger.info(client.getIp()
+ + " processes are running");
+ client.setState(
+ ClientState.USERPROCESSES_ARE_RUNNING,
+ gearmanClient);
+ } else {
+ logger.info(client.getIp() + " is working");
+ // client.setState(ClientState.USERPROCESSES_ARE_RUNNING,
+ client.setState(ClientState.USER_IS_WORKING,
+ gearmanClient);
+ }
client.removeJob(psJob);
- // }
} else {
logger.info(client.getIp() + " is not working");
// is not working
@@ -533,11 +560,21 @@ public class Shutdown extends Thread {
gearmanClient);
client.removeJob(psJob);
}
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check if user is working.");
+ client
+ .setError("The check if a user is working has been failed.");
+ /*
+ * cannot check if user is working, go in errorState
+ */
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(psJob);
}
}
}
}
-
+
// screensaver check
private void ls(Client client) {
GearmanJob job = GearmanJobImpl.createJob("ls", client.getIp()
@@ -547,7 +584,7 @@ public class Shutdown extends Thread {
client.addJob(ClientJob.LSJOB, job);
logger.info("ls " + client.getIp());
}
-
+
private void checkLsProgress(Client client) throws Exception, IOException {
GearmanJob lsJob = client.getJob(ClientJob.LSJOB);
@@ -561,34 +598,70 @@ public class Shutdown extends Thread {
if (!result.isEmpty()) {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
- /*
- String clientScreenSaver = resultObj.get(scsavPID)
- .toString()
- + " " + resultObj.get("date").toString();
-
- //check screensaver has been running longer than 30min/1h
- if(clientScreenSaver < 30) {
- logger.info(client.getIp() + " screensaver has been running shorter than " + scsavTime/(1000*60) + " minutes.");
- client.setState(ClientState.USER_IS_WORKING, gearmanClient);
+ JSONArray ls = (JSONArray) resultObj.get("ls");
+ HashMap<String, Long> lsMap = new HashMap<String, Long>();
+
+ for (Object obj : ls) {
+ JSONObject lsLine = (JSONObject) obj;
+ String name = lsLine.get("name").toString();
+ SimpleDateFormat df = new SimpleDateFormat(
+ "y-M-d H:m");
+ Date date = df.parse(lsLine.get("date").toString()
+ + " " + lsLine.get("time").toString());
+ long timestamp = date.getTime();
+ lsMap.put(name, timestamp);
+ }
+
+ String scsavPID = Integer
+ .toString(client.getScsavPID());
+ long scsavTimestamp = lsMap.get(scsavPID);
+ Date date = new Date();
+ long currentTimestamp = date.getTime();
+ long beetweenTimestamp = currentTimestamp
+ - scsavTimestamp;
+
+ if (beetweenTimestamp < scsavTime) {
+ logger
+ .info(client.getIp()
+ + " screensaver has been running shorter than "
+ + scsavTime / (1000 * 60)
+ + " minutes, user is working.");
+ client.setState(ClientState.USER_IS_WORKING,
+ gearmanClient);
client.removeJob(lsJob);
} else {
- logger.info(client.getIp() + " screensaver has been running longer than " + scsavTime/(1000*60) + " minutes.");
- client.setState(ClientState.RESTART_CLIENT, gearmanClient);
+ logger
+ .info(client.getIp()
+ + " screensaver has been running longer than "
+ + scsavTime / (1000 * 60)
+ + " minutes, user is not working.");
+ client.setState(ClientState.RESTART_CLIENT,
+ gearmanClient);
client.removeJob(lsJob);
- }*/
+ }
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check 'ls -al' of /proc/");
+ client
+ .setError("The check for screensaver has been failed.");
+ // cannot check ls, go in errorState
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(lsJob);
}
- } else {
- logger.error(client.getIp() + " Cannot check 'ls -al' of /proc/");
- client
- .setError("The check for screensaver has been failed.");
- // cannot check ls, go in errorState
- client.setState(ClientState.BOOT_ERROR, gearmanClient);
- client.removeJob(lsJob);
- }
+ } else {
+ logger.error(client.getIp()
+ + " Cannot check 'ls -al' of /proc/");
+ client
+ .setError("The check for screensaver has been failed.");
+ // cannot check ls, go in errorState
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+ client.removeJob(lsJob);
+ }
}
}
}
- //------------------
+
+ // ------------------
public Boolean isFinished() {
return finished && !error;
diff --git a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
index 65ad5b9..d4b50fe 100755
--- a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
@@ -55,10 +55,10 @@ public class ShutdownWorker extends AbstractGearmanFunction {
.getApplication_ini().getString("gearman.worker.updateRate"));
String blacklist = ControllerWorkerMain.getApplication_ini().getString(
"gearman.worker.ps.blacklist");
- StringTokenizer blacklistTokenizer = new StringTokenizer(blacklist, ",");
+ StringTokenizer blacklistTokenizer = new StringTokenizer(blacklist, ", ");
String whitelist = ControllerWorkerMain.getApplication_ini().getString(
"gearman.worker.ps.whitelist");
- StringTokenizer whitelistTokenizer = new StringTokenizer(whitelist, ",");
+ StringTokenizer whitelistTokenizer = new StringTokenizer(whitelist, ", ");
Vector<String> psWhitelist = new Vector<String>();
Vector<String> psBlacklist = new Vector<String>();
while (whitelistTokenizer.hasMoreTokens()) {
diff --git a/gearman/killWorker.sh b/gearman/killWorker.sh
index 5e0d7ee..e8283aa 100755
--- a/gearman/killWorker.sh
+++ b/gearman/killWorker.sh
@@ -1,9 +1,9 @@
#!/bin/bash
pkill pingWorker.py
-pkill restartWorker.py
+pkill restartWorker.p
pkill whoWorker.py
pkill wolWorker.py
pkill osWorker.py
pkill psWorker.py
-pkill shutdownWorker.py
-
+pkill shutdownWorker.
+pkill lsWorker.py
diff --git a/gearman/lsWorker.py b/gearman/lsWorker.py
index 93c72e9..52fc857 100644..100755
--- a/gearman/lsWorker.py
+++ b/gearman/lsWorker.py
@@ -55,9 +55,9 @@ def lsWorker(worker, job):
if l == 0:
continue
rowentries = lines[l].split()
- if len(rowentries) == 14:
- (permissions, directories, owner, group, size, date, name) = rowentries
- data = {'permissions': permissions, 'directories': directories, 'owner': owner, 'group': group, 'size': size, 'date': date, 'name': name}
+ if len(rowentries) == 8:
+ (permissions, directories, owner, group, size, date, time, name) = rowentries
+ data = {'permissions': permissions, 'directories': directories, 'owner': owner, 'group': group, 'size': size, 'date': date, 'time': time, 'name': name}
ret['ls'].append(data)
print 'remote command successful.'
return json.dumps(ret) + "\n"
diff --git a/gearman/worker.sh b/gearman/worker.sh
index 7d355de..280a79a 100755
--- a/gearman/worker.sh
+++ b/gearman/worker.sh
@@ -34,4 +34,9 @@
./shutdownWorker.py >> shutdownWorker.log 2>&1 &
./shutdownWorker.py >> shutdownWorker.log 2>&1 &
./shutdownWorker.py >> shutdownWorker.log 2>&1 &
+./lsWorker.py >> lsWorker.log 2>&1 &
+./lsWorker.py >> lsWorker.log 2>&1 &
+./lsWorker.py >> lsWorker.log 2>&1 &
+./lsWorker.py >> lsWorker.log 2>&1 &
+./lsWorker.py >> lsWorker.log 2>&1 &
./controllerWorker.jar ../application/configs/application.ini controllerWorker.log &