summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/Boot.java
diff options
context:
space:
mode:
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/Boot.java')
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Boot.java112
1 files changed, 73 insertions, 39 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index 6a71890..17a017f 100755
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -3,6 +3,7 @@ package ControllerWorker;
import java.io.IOException;
import java.lang.Thread;
import java.util.Date;
+import java.util.LinkedHashMap;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -81,11 +82,20 @@ public class Boot extends Thread {
}
}
finished = true;
+ LinkedHashMap<String, Object> jsonData = new LinkedHashMap<String, Object>();
+ jsonData.put("eventName", eventName);
+ jsonData.put("type", "finishBootState");
if (error) {
logger.error("Booting of " + eventName + " failed");
+ jsonData.put("error", true);
} else {
logger.info("Booting of " + eventName + " finished");
+ jsonData.put("error", false);
}
+ String dataString = JSONValue.toJSONString(jsonData);
+ GearmanJob job = GearmanJobImpl.createJob("status", dataString
+ .getBytes(), "status" + eventName);
+ gearmanClient.submit(job);
}
/*
@@ -199,7 +209,8 @@ public class Boot extends Thread {
logger.error(client.getIp() + " User has been working");
client.setError("The user has been working.");
// user has been working, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
+
break;
case CLIENT_IS_DOWN:
@@ -264,7 +275,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
.getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_PING_PROGRESS);
+ client.setState(ClientState.CHECK_PING_PROGRESS, gearmanClient);
client.addJob(ClientJob.PINGJOB, job);
logger.info("ping " + client.getIp());
}
@@ -284,11 +295,13 @@ public class Boot extends Thread {
String alive = resultObj.get("alive").toString();
if (alive.equals("true")) {
logger.info(client.getIp() + " alive");
- client.setState(ClientState.CLIENT_IS_ALIVE);
+ client.setState(ClientState.CLIENT_IS_ALIVE,
+ gearmanClient);
client.removeJob(pingJob);
} else if (alive.equals("false")) {
logger.info(client.getIp() + " not alive");
- client.setState(ClientState.CLIENT_NOT_ALIVE);
+ client.setState(ClientState.CLIENT_NOT_ALIVE,
+ gearmanClient);
client.removeJob(pingJob);
}
} else {
@@ -296,7 +309,7 @@ public class Boot extends Thread {
+ " Cannot send the ping message.");
client
.setError("Sending the ping message has been failed.");
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(pingJob);
}
}
@@ -308,7 +321,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
.getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_PING_WOL_PROGRESS);
+ client.setState(ClientState.CHECK_PING_WOL_PROGRESS, gearmanClient);
client.addJob(ClientJob.PINGJOB, job);
logger.info("ping " + client.getIp());
}
@@ -339,11 +352,13 @@ public class Boot extends Thread {
logger.info(client.getIp()
+ " is alive after WoL");
// alive, go in successState
- client.setState(ClientState.BOOT_SUCCESS);
+ client.setState(ClientState.BOOT_SUCCESS,
+ gearmanClient);
client.removeJob(pingJobWoL);
} else if (alive.equals("false")) {
logger.info("ping again " + client.getIp());
- client.setState(ClientState.PING_WOL_AGAIN);
+ client.setState(ClientState.PING_WOL_AGAIN,
+ gearmanClient);
client.removeJob(pingJobWoL);
}
} else {
@@ -356,7 +371,8 @@ public class Boot extends Thread {
* sending the ping after wake on LAN message has
* been failed, go to errorState
*/
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR,
+ gearmanClient);
client.removeJob(pingJobWoL);
}
}
@@ -365,7 +381,7 @@ public class Boot extends Thread {
logger.error(client.getIp() + " is not alive after WoL");
client.setError("The wake on LAN has been failed.");
// not alive, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(pingJobWoL);
}
}
@@ -375,7 +391,8 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
.getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_PING_RESTART_SHUTDOWN_PROGRESS);
+ client.setState(ClientState.CHECK_PING_RESTART_SHUTDOWN_PROGRESS,
+ gearmanClient);
client.addJob(ClientJob.PINGJOB, job);
logger.info("ping " + client.getIp());
}
@@ -407,12 +424,15 @@ public class Boot extends Thread {
logger.info(client.getIp() + " is still alive");
// still alive, ping again
client
- .setState(ClientState.PING_RESTART_SHUTDOWN_AGAIN);
+ .setState(
+ ClientState.PING_RESTART_SHUTDOWN_AGAIN,
+ gearmanClient);
client.removeJob(pingJobRestartShutdown);
} else if (alive.equals("false")) {
logger.info(client.getIp() + " is down");
// not alive, ping again
- client.setState(ClientState.CLIENT_IS_DOWN);
+ client.setState(ClientState.CLIENT_IS_DOWN,
+ gearmanClient);
client.removeJob(pingJobRestartShutdown);
}
} else {
@@ -425,7 +445,8 @@ public class Boot extends Thread {
* sending the ping after restart message has been
* failed
*/
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR,
+ gearmanClient);
client.removeJob(pingJobRestartShutdown);
}
}
@@ -434,7 +455,7 @@ public class Boot extends Thread {
logger.error(client.getIp() + " shutdown failed");
client.setError("The shutdown has been failed.");
// still alive, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(pingJobRestartShutdown);
}
}
@@ -444,7 +465,8 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
.getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_PING_RESTART_BOOT_PROGRESS);
+ client.setState(ClientState.CHECK_PING_RESTART_BOOT_PROGRESS,
+ gearmanClient);
client.addJob(ClientJob.PINGJOB, job);
logger.info("ping " + client.getIp());
}
@@ -477,13 +499,15 @@ public class Boot extends Thread {
logger.info(client.getIp()
+ " is alive after restart");
// alive, go to success state
- client.setState(ClientState.BOOT_SUCCESS);
+ client.setState(ClientState.BOOT_SUCCESS,
+ gearmanClient);
client.removeJob(pingJobRestartBoot);
} else if (alive.equals("false")) {
logger.info("ping again " + client.getIp());
// not alive, ping again
- client
- .setState(ClientState.PING_RESTART_BOOT_AGAIN);
+ client.setState(
+ ClientState.PING_RESTART_BOOT_AGAIN,
+ gearmanClient);
client.removeJob(pingJobRestartBoot);
}
} else {
@@ -496,7 +520,8 @@ public class Boot extends Thread {
* sending the ping after shutdown message has been
* failed
*/
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR,
+ gearmanClient);
}
}
}
@@ -504,7 +529,7 @@ public class Boot extends Thread {
logger.error(client.getIp() + " is not alive after reboot");
client.setError("The reboot has been failed.");
// not alive, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(pingJobRestartBoot);
}
}
@@ -514,7 +539,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("wol", client.getMac()
.getBytes(), "wol" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_WAKE_ON_LAN_PROGRESS);
+ client.setState(ClientState.CHECK_WAKE_ON_LAN_PROGRESS, gearmanClient);
client.addJob(ClientJob.WOLJOB, job);
logger.info("wake on lan " + client.getMac());
}
@@ -531,14 +556,15 @@ public class Boot extends Thread {
String result = ByteUtils.fromUTF8Bytes(wolJobRes.getResults());
if (result.equals("Magic packet send.")) {
logger.info(client.getMac() + " Magic packet sent.");
- client.setState(ClientState.MAGIC_PACKET_SENT);
+ client.setState(ClientState.MAGIC_PACKET_SENT,
+ gearmanClient);
client.removeJob(wolJob);
} else {
logger.error(client.getIp() + " Cannot send magic packet.");
client
.setError("Sending the magic packet has been failed.");
// cannot send magic packet, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(wolJob);
}
}
@@ -549,7 +575,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("os", client.getIp()
.getBytes(), "os" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_CHECKOS_PROGRESS);
+ client.setState(ClientState.CHECK_CHECKOS_PROGRESS, gearmanClient);
client.addJob(ClientJob.OSJOB, job);
logger.info("check OS " + client.getIp());
}
@@ -579,11 +605,14 @@ public class Boot extends Thread {
if (description.equals(bootOS)) {
logger.info(client.getIp() + " right OS");
// right os, go to successState
- client.setState(ClientState.BOOT_SUCCESS);
+ client.setState(ClientState.BOOT_SUCCESS,
+ gearmanClient);
client.removeJob(osJob);
} else {
logger.info(client.getIp() + " wrong OS");
- client.setState(ClientState.WRONG_OS);
+ client
+ .setState(ClientState.WRONG_OS,
+ gearmanClient);
client.removeJob(osJob);
}
} else {
@@ -591,7 +620,7 @@ public class Boot extends Thread {
client
.setError("The check for correct operating system has been failed.");
// cannot check os, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(osJob);
}
}
@@ -603,7 +632,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("who", client.getIp()
.getBytes(), "who" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_WHO_PROGRESS);
+ client.setState(ClientState.CHECK_WHO_PROGRESS, gearmanClient);
client.addJob(ClientJob.WHOJOB, job);
logger.info("who " + client.getIp());
}
@@ -636,13 +665,15 @@ public class Boot extends Thread {
// no user is logged in, doing restart
// -----
// didnĀ“t work in test-pool, check ps
- client.setState(ClientState.A_USER_IS_LOGGED_IN);
+ client.setState(ClientState.A_USER_IS_LOGGED_IN,
+ gearmanClient);
client.removeJob(whoJob);
} else {
logger
.info(client.getIp()
+ " a user is logged in");
- client.setState(ClientState.A_USER_IS_LOGGED_IN);
+ client.setState(ClientState.A_USER_IS_LOGGED_IN,
+ gearmanClient);
client.removeJob(whoJob);
}
} else {
@@ -654,7 +685,7 @@ public class Boot extends Thread {
* cannot check if a user is logged in, go in errorState
*/
// client
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(whoJob);
}
}
@@ -666,7 +697,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("ps", client.getIp()
.getBytes(), "ps" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_PS_PROGRESS);
+ client.setState(ClientState.CHECK_PS_PROGRESS, gearmanClient);
client.addJob(ClientJob.PSJOB, job);
logger.info("ps " + client.getIp());
}
@@ -708,12 +739,14 @@ public class Boot extends Thread {
* client.removeClientJob(job); } else {
*/
logger.info(client.getIp() + " is working");
- client.setState(ClientState.USER_IS_WORKING);
+ client.setState(ClientState.USER_IS_WORKING,
+ gearmanClient);
client.removeJob(psJob);
// }
} else {
// user is not working, doing restart
- client.setState(ClientState.RESTART_CLIENT);
+ client.setState(ClientState.RESTART_CLIENT,
+ gearmanClient);
client.removeJob(psJob);
}
} else {
@@ -724,7 +757,7 @@ public class Boot extends Thread {
/*
* cannot check if user is working, go in errorState
*/
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(psJob);
}
}
@@ -736,7 +769,7 @@ public class Boot extends Thread {
GearmanJob job = GearmanJobImpl.createJob("restart", client.getIp()
.getBytes(), "restart" + client.getId());
gearmanClient.submit(job);
- client.setState(ClientState.CHECK_RESTART_PROGRESS);
+ client.setState(ClientState.CHECK_RESTART_PROGRESS, gearmanClient);
client.addJob(ClientJob.RESTARTJOB, job);
logger.info("restart " + client.getIp());
}
@@ -755,7 +788,8 @@ public class Boot extends Thread {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
logger.info(client.getIp() + " Restart command sent");
- client.setState(ClientState.RESTART_COMMAND_SENT);
+ client.setState(ClientState.RESTART_COMMAND_SENT,
+ gearmanClient);
client.removeJob(restartJob);
} else {
logger.error(client.getIp()
@@ -763,7 +797,7 @@ public class Boot extends Thread {
client
.setError("Sending the restart command has been failed.");
// cannot send restart command, go in errorState
- client.setState(ClientState.BOOT_ERROR);
+ client.setState(ClientState.BOOT_ERROR, gearmanClient);
client.removeJob(restartJob);
}
}