From 136786a86da02090fc3621eaa02563da67c3bfcc Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Mon, 24 Oct 2011 11:29:35 +0200 Subject: verschiedenes --- gearman/controllerWorker/ControllerWorker/Boot.java | 14 +++++++++++--- .../controllerWorker/ControllerWorker/BootState.java | 13 ++++++++++++- .../controllerWorker/ControllerWorker/BootWorker.java | 11 ++++++++--- .../controllerWorker/ControllerWorker/Shutdown.java | 18 +++++++++++++----- .../ControllerWorker/ShutdownState.java | 12 +++++++++++- .../ControllerWorker/ShutdownWorker.java | 8 ++++++-- .../ControllerWorker/StatusWorker.java | 6 ++++-- 7 files changed, 65 insertions(+), 17 deletions(-) (limited to 'gearman') 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 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 clients, String bootOS, - int updateRate, long waitTime, long scsavTime, + public Boot(String eventName, Boolean force, Vector clients, + String bootOS, int updateRate, long waitTime, long scsavTime, Vector psWhitelist, Vector 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 clients; private Boolean finished; private Boolean error; - public BootState(String eventName, Vector clients, String bootOS) { + public BootState(String eventName, Boolean force, Vector 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 jsonData = new LinkedHashMap(); 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 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 clients, int updateRate, - long waitTime, long scsavTime, Vector psWhitelist, - Vector psBlacklist, String gearmanServerAddress, - int gearmanServerPort) { + public Shutdown(String eventName, Boolean force, Vector clients, + int updateRate, long waitTime, long scsavTime, + Vector psWhitelist, Vector 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 clients; private Boolean finished; private Boolean error; - public ShutdownState(String eventName, Vector clients) { + public ShutdownState(String eventName, Boolean force, Vector 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 jsonData = new LinkedHashMap(); 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 clients = new Vector(); 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 clients = new Vector(); 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]; -- cgit v1.2.3-55-g7522