summaryrefslogtreecommitdiffstats
path: root/gearman
diff options
context:
space:
mode:
authorBjörn Geiger2011-10-24 11:29:35 +0200
committerBjörn Geiger2011-10-24 11:29:35 +0200
commit136786a86da02090fc3621eaa02563da67c3bfcc (patch)
tree4bf5eb87a8ff002ced16b7a8dc2a8262f5a43a77 /gearman
parentminor (diff)
downloadpoolctrl-136786a86da02090fc3621eaa02563da67c3bfcc.tar.gz
poolctrl-136786a86da02090fc3621eaa02563da67c3bfcc.tar.xz
poolctrl-136786a86da02090fc3621eaa02563da67c3bfcc.zip
verschiedenes
Diffstat (limited to 'gearman')
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Boot.java14
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/BootState.java13
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/BootWorker.java11
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/Shutdown.java18
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ShutdownState.java12
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ShutdownWorker.java8
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/StatusWorker.java6
7 files changed, 65 insertions, 17 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index 6731e28..594f5de 100755
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -29,6 +29,7 @@ public class Boot extends Thread {
private static final Logger logger = ControllerWorkerMain.getLogger();
private String eventName;
+ private Boolean force;
private Vector<Client> clients;
private String bootOS;
private final int updateRate;
@@ -42,11 +43,12 @@ public class Boot extends Thread {
private Boolean finished;
private Boolean error;
- public Boot(String eventName, Vector<Client> clients, String bootOS,
- int updateRate, long waitTime, long scsavTime,
+ public Boot(String eventName, Boolean force, Vector<Client> clients,
+ String bootOS, int updateRate, long waitTime, long scsavTime,
Vector<String> psWhitelist, Vector<String> psBlacklist,
String gearmanServerAddress, int gearmanServerPort) {
this.eventName = eventName;
+ this.force = force;
this.clients = clients;
this.bootOS = bootOS;
this.waitTime = waitTime * 1000;
@@ -172,7 +174,13 @@ public class Boot extends Thread {
break;
case A_USER_IS_LOGGED_IN:
- ps(client);
+ if (force) {
+ logger.info(client.getIp() + " force is enabled");
+ // is not working
+ client.setState(ClientState.RESTART_CLIENT, gearmanClient);
+ } else {
+ ps(client);
+ }
break;
diff --git a/gearman/controllerWorker/ControllerWorker/BootState.java b/gearman/controllerWorker/ControllerWorker/BootState.java
index 91c1f7a..0026b53 100755
--- a/gearman/controllerWorker/ControllerWorker/BootState.java
+++ b/gearman/controllerWorker/ControllerWorker/BootState.java
@@ -4,13 +4,16 @@ import java.util.Vector;
public class BootState {
private String eventName;
+ private Boolean force;
private String bootOS;
private Vector<Client> clients;
private Boolean finished;
private Boolean error;
- public BootState(String eventName, Vector<Client> clients, String bootOS) {
+ public BootState(String eventName, Boolean force, Vector<Client> clients,
+ String bootOS) {
this.eventName = eventName;
+ this.force = force;
this.clients = clients;
this.bootOS = bootOS;
finished = false;
@@ -37,6 +40,14 @@ public class BootState {
return bootOS;
}
+ public Boolean getForce() {
+ return force;
+ }
+
+ public void setForce(Boolean force) {
+ this.force = force;
+ }
+
public void finish() {
this.finished = true;
}
diff --git a/gearman/controllerWorker/ControllerWorker/BootWorker.java b/gearman/controllerWorker/ControllerWorker/BootWorker.java
index afcf9d6..17b2920 100755
--- a/gearman/controllerWorker/ControllerWorker/BootWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/BootWorker.java
@@ -46,6 +46,10 @@ public class BootWorker extends AbstractGearmanFunction {
if (jsonObject.get("clients") != null) {
jsonClients = (JSONArray) jsonObject.get("clients");
}
+ Boolean force = false;
+ if (jsonObject.get("force") != null) {
+ force = Boolean.valueOf(jsonObject.get("force").toString());
+ }
String res;
if (!event.isEmpty() && !eventOS.isEmpty() && !jsonClients.isEmpty()) {
for (Object clientObj : jsonClients) {
@@ -85,15 +89,16 @@ public class BootWorker extends AbstractGearmanFunction {
psBlacklist.add(blackEntry);
}
- Boot boot = new Boot(event, clients, eventOS, updateRate, waitTime,
- scsavTime, psWhitelist, psBlacklist, gearmanServerHost,
- gearmanServerPort);
+ Boot boot = new Boot(event, force, clients, eventOS, updateRate,
+ waitTime, scsavTime, psWhitelist, psBlacklist,
+ gearmanServerHost, gearmanServerPort);
GearmanJobServerConnection gearmanConnection = new GearmanNIOJobServerConnection(
gearmanServerHost, gearmanServerPort);
GearmanClient gearmanClient = new GearmanClientImpl();
gearmanClient.addJobServer(gearmanConnection);
LinkedHashMap<String, Object> jsonData = new LinkedHashMap<String, Object>();
jsonData.put("eventName", event);
+ jsonData.put("force", force);
jsonData.put("type", "createBootState");
jsonData.put("eventOS", eventOS);
jsonData.put("clients", jsonClients);
diff --git a/gearman/controllerWorker/ControllerWorker/Shutdown.java b/gearman/controllerWorker/ControllerWorker/Shutdown.java
index 32413ca..68deb6c 100755
--- a/gearman/controllerWorker/ControllerWorker/Shutdown.java
+++ b/gearman/controllerWorker/ControllerWorker/Shutdown.java
@@ -29,6 +29,7 @@ public class Shutdown extends Thread {
private static final Logger logger = ControllerWorkerMain.getLogger();
private String eventName;
+ private Boolean force;
private Vector<Client> clients;
private final int updateRate;
private long waitTime;
@@ -41,11 +42,12 @@ public class Shutdown extends Thread {
private Boolean finished;
private Boolean error;
- public Shutdown(String eventName, Vector<Client> clients, int updateRate,
- long waitTime, long scsavTime, Vector<String> psWhitelist,
- Vector<String> psBlacklist, String gearmanServerAddress,
- int gearmanServerPort) {
+ public Shutdown(String eventName, Boolean force, Vector<Client> clients,
+ int updateRate, long waitTime, long scsavTime,
+ Vector<String> psWhitelist, Vector<String> psBlacklist,
+ String gearmanServerAddress, int gearmanServerPort) {
this.eventName = eventName;
+ this.force = force;
this.clients = clients;
this.updateRate = updateRate; // updates per second
this.waitTime = waitTime * 1000;
@@ -157,7 +159,13 @@ public class Shutdown extends Thread {
break;
case USER_IS_LOGGED_IN:
- ps(client);
+ if (force) {
+ logger.info(client.getIp() + " force is enabled");
+ // is not working
+ client.setState(ClientState.SHUTDOWN_CLIENT, gearmanClient);
+ } else {
+ ps(client);
+ }
break;
diff --git a/gearman/controllerWorker/ControllerWorker/ShutdownState.java b/gearman/controllerWorker/ControllerWorker/ShutdownState.java
index cf3aa8e..9accfa1 100755
--- a/gearman/controllerWorker/ControllerWorker/ShutdownState.java
+++ b/gearman/controllerWorker/ControllerWorker/ShutdownState.java
@@ -4,12 +4,14 @@ import java.util.Vector;
public class ShutdownState {
private String eventName;
+ private Boolean force;
private Vector<Client> clients;
private Boolean finished;
private Boolean error;
- public ShutdownState(String eventName, Vector<Client> clients) {
+ public ShutdownState(String eventName, Boolean force, Vector<Client> clients) {
this.eventName = eventName;
+ this.force = force;
this.clients = clients;
finished = false;
error = false;
@@ -31,6 +33,14 @@ public class ShutdownState {
return eventName;
}
+ public Boolean getForce() {
+ return force;
+ }
+
+ public void setForce(Boolean force) {
+ this.force = force;
+ }
+
public void finish() {
this.finished = true;
}
diff --git a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
index 39eefa8..9bea9fc 100755
--- a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
@@ -42,7 +42,10 @@ public class ShutdownWorker extends AbstractGearmanFunction {
if (jsonObject.get("clients") != null) {
jsonClients = (JSONArray) jsonObject.get("clients");
}
-
+ Boolean force = false;
+ if (jsonObject.get("force") != null) {
+ force = Boolean.valueOf(jsonObject.get("force").toString());
+ }
String res;
if (!event.isEmpty() && !jsonClients.isEmpty()) {
for (Object clientObj : jsonClients) {
@@ -82,7 +85,7 @@ public class ShutdownWorker extends AbstractGearmanFunction {
psBlacklist.add(blackEntry);
}
- Shutdown shutdown = new Shutdown(event, clients, updateRate,
+ Shutdown shutdown = new Shutdown(event, force, clients, updateRate,
waitTime, scsavTime, psWhitelist, psBlacklist,
gearmanServerHost, gearmanServerPort);
GearmanJobServerConnection gearmanConnection = new GearmanNIOJobServerConnection(
@@ -91,6 +94,7 @@ public class ShutdownWorker extends AbstractGearmanFunction {
gearmanClient.addJobServer(gearmanConnection);
LinkedHashMap<String, Object> jsonData = new LinkedHashMap<String, Object>();
jsonData.put("eventName", event);
+ jsonData.put("force", force);
jsonData.put("type", "createShutdownState");
jsonData.put("clients", jsonClients);
String dataString = JSONValue.toJSONString(jsonData);
diff --git a/gearman/controllerWorker/ControllerWorker/StatusWorker.java b/gearman/controllerWorker/ControllerWorker/StatusWorker.java
index 4700dbe..47a4b5c 100755
--- a/gearman/controllerWorker/ControllerWorker/StatusWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/StatusWorker.java
@@ -231,6 +231,7 @@ public class StatusWorker extends AbstractGearmanFunction {
private GearmanJobResult createBootState(JSONObject jsonObject) {
String event = jsonObject.get("eventName").toString();
String eventOS = jsonObject.get("eventOS").toString();
+ Boolean force = Boolean.valueOf(jsonObject.get("force").toString());
JSONArray jsonArray = (JSONArray) jsonObject.get("clients");
Vector<Client> clients = new Vector<Client>();
for (Object clientObj : jsonArray) {
@@ -238,7 +239,7 @@ public class StatusWorker extends AbstractGearmanFunction {
Client client = new Client(clientJsonObj, "boot", event);
clients.add(client);
}
- BootState boot = new BootState(event, clients, eventOS);
+ BootState boot = new BootState(event, force, clients, eventOS);
BOOTSTATES.put(event, boot);
String jsonResult = "{boot state successfully created}";
byte[] warnings = new byte[0];
@@ -253,6 +254,7 @@ public class StatusWorker extends AbstractGearmanFunction {
private GearmanJobResult createShutdownState(JSONObject jsonObject) {
String event = jsonObject.get("eventName").toString();
+ Boolean force = Boolean.valueOf(jsonObject.get("force").toString());
JSONArray jsonArray = (JSONArray) jsonObject.get("clients");
Vector<Client> clients = new Vector<Client>();
for (Object clientObj : jsonArray) {
@@ -260,7 +262,7 @@ public class StatusWorker extends AbstractGearmanFunction {
Client client = new Client(clientJsonObj, "shutdown", event);
clients.add(client);
}
- ShutdownState shutdown = new ShutdownState(event, clients);
+ ShutdownState shutdown = new ShutdownState(event, force, clients);
SHUTDOWNSTATES.put(event, shutdown);
String jsonResult = "{shutdown state successfully created}";
byte[] warnings = new byte[0];