From 1e21900fa94e0469cdf5444337fbe66a99e0177f Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Mon, 12 Sep 2011 12:36:34 +0200 Subject: verschiedene Korrekturen --- application/configs/application.ini.dist | 4 + application/controllers/EventController.php | 2 +- .../controllerWorker/ControllerWorker/Boot.java | 2 +- .../ControllerWorker/ControllerWorker.jar | Bin 0 -> 924682 bytes .../ControllerWorker/ControllerWorkerMain.java | 32 +++++++- .../ControllerWorker/PoolctrlRequest.java | 83 +++++++++++++++++++++ .../ControllerWorker/RunEvents.java | 70 ----------------- .../ControllerWorker/Shutdown.java | 2 +- .../ControllerWorker/SomePingWorker.java | 2 +- install.sh | 5 +- 10 files changed, 122 insertions(+), 80 deletions(-) create mode 100644 gearman/controllerWorker/ControllerWorker/ControllerWorker.jar create mode 100755 gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java delete mode 100755 gearman/controllerWorker/ControllerWorker/RunEvents.java diff --git a/application/configs/application.ini.dist b/application/configs/application.ini.dist index 3acfdbc..27b5ad5 100755 --- a/application/configs/application.ini.dist +++ b/application/configs/application.ini.dist @@ -32,6 +32,10 @@ pbs2.getperson = /resource/getperson/apikey/ pbs2.getmembership = /resource/getmembership/apikey/ pbs2.getgroup = /resource/getgroup/apikey/ pbs2.getrole = /resource/getrole/apikey/ +poolctrl.host = +poolctrl.runevent = /event/run/apikey/apikey1 +poolctrl.reportevent = /event/report/apikey/apikey1 + gearman.server.host = gearman.server.port = gearman.worker.waitTime = 120 diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php index 7b03341..0263d91 100755 --- a/application/controllers/EventController.php +++ b/application/controllers/EventController.php @@ -35,7 +35,6 @@ class EventController extends Zend_Controller_Action $apikey = $this->_request->getParam('apikey'); } if($apikey != ""){ - $this->acl = new Poolctrl_Acl($this->pbs2host, $this->config['pbs2']['checkright'] . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); $bootstrap = $this->getInvokeArg('bootstrap'); $this->config = $bootstrap->getOptions(); $this->pbs2host = $this->config['pbs2']['host']; @@ -47,6 +46,7 @@ class EventController extends Zend_Controller_Action $this->gearmanClient->addServer($this->gearmanServerHost); $this->eventMapper = new Application_Model_EventMapper(); $this->eventcategoryMapper = new Application_Model_EventcategoryMapper(); + $this->acl = new Poolctrl_Acl($this->pbs2host, $this->config['pbs2']['checkright'] . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); } else { header('HTTP/1.0 401 No apikey is set'); die(); diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java index 1811734..5c6866a 100755 --- a/gearman/controllerWorker/ControllerWorker/Boot.java +++ b/gearman/controllerWorker/ControllerWorker/Boot.java @@ -103,7 +103,7 @@ public class Boot extends Thread { timeLeft = 10; Thread.sleep(timeLeft); } catch (Exception e) { - logger.error(e.getStackTrace()); + logger.error(e.toString()); } } finished = true; diff --git a/gearman/controllerWorker/ControllerWorker/ControllerWorker.jar b/gearman/controllerWorker/ControllerWorker/ControllerWorker.jar new file mode 100644 index 0000000..5a1083f Binary files /dev/null and b/gearman/controllerWorker/ControllerWorker/ControllerWorker.jar differ diff --git a/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java b/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java index 1a090b2..d668cd2 100755 --- a/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java +++ b/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java @@ -1,13 +1,22 @@ package ControllerWorker; +import java.io.FileInputStream; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; + import org.gearman.common.GearmanJobServerConnection; import org.gearman.common.GearmanNIOJobServerConnection; import org.gearman.worker.GearmanWorker; import org.gearman.worker.GearmanWorkerImpl; import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Logger; public class ControllerWorkerMain { + private static final Logger logger = Logger + .getLogger(ControllerWorkerMain.class); + private static ResourceBundle iniFile; + public static void main(String[] args) { final GearmanJobServerConnection connection = new GearmanNIOJobServerConnection( "127.0.0.1", 4730); @@ -18,10 +27,25 @@ public class ControllerWorkerMain { worker.registerFunction(StatusWorker.class); worker.addServer(connection); BasicConfigurator.configure(); + iniFile = getIniFile("../../application/configs/application.ini"); + String runURL = "http://" + iniFile.getString("poolctrl.host") + + iniFile.getString("poolctrl.runevent"); + String reportURL = "http://" + iniFile.getString("poolctrl.host") + + iniFile.getString("poolctrl.runevent"); + long updatePeriod = Long.parseLong(iniFile + .getString("event.updatePeriod")) * 60L * 1000000000L; // nanoseconds + PoolctrlRequest poolctrlRequest; + poolctrlRequest = new PoolctrlRequest(runURL, reportURL, updatePeriod); + poolctrlRequest.run(); worker.work(); - RunEvents runEvents; - runEvents = new RunEvents( - "http://poolctrl.local/event/run/apikey/apikey1", 300000L); - runEvents.run(); + } + + private static PropertyResourceBundle getIniFile(String file) { + try { + return new PropertyResourceBundle(new FileInputStream(file)); + } catch (Exception e) { + logger.error(e.toString()); + return null; + } } } \ No newline at end of file diff --git a/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java b/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java new file mode 100755 index 0000000..086b88b --- /dev/null +++ b/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java @@ -0,0 +1,83 @@ +package ControllerWorker; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +import org.apache.log4j.Logger; + +public class PoolctrlRequest extends Thread { + private static final Logger logger = Logger.getLogger(PoolctrlRequest.class); + private URL runURL; + private URL reportURL; + private final long updatePeriod; + + public PoolctrlRequest(String runURL, String reportURL, long updatePeriod) { + try { + this.runURL = new URL(runURL); + this.reportURL = new URL(reportURL); + } catch (Exception e) { + logger.error(e.toString()); + } + this.updatePeriod = updatePeriod; + } + + public void run() { + workerLoop(); + } + + public void workerLoop() { + long beginTime; + long timeTaken; + long timeLeft; + while (true) { + try { + beginTime = System.nanoTime(); + update(); + timeTaken = System.nanoTime() - beginTime; + timeLeft = (updatePeriod - timeTaken) / 1000000; + if (timeLeft < 10) + timeLeft = 10; + Thread.sleep(timeLeft); + } catch (Exception e) { + logger.error(e.toString()); + } + } + } + + public void update() { + HttpURLConnection connection = null; + BufferedReader rd = null; + StringBuilder sb = null; + String line = null; + try { + connection = (HttpURLConnection) runURL.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoOutput(true); + connection.connect(); + rd = new BufferedReader(new InputStreamReader(connection + .getInputStream())); + sb = new StringBuilder(); + + while ((line = rd.readLine()) != null) { + sb.append(line + '\n'); + } + logger.info(sb.toString()); + connection = (HttpURLConnection) reportURL.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoOutput(true); + connection.connect(); + rd = new BufferedReader(new InputStreamReader(connection + .getInputStream())); + sb = new StringBuilder(); + + while ((line = rd.readLine()) != null) { + sb.append(line + '\n'); + } + logger.info(sb.toString()); + } catch (Exception e) { + logger.error(e.toString()); + } + } +} \ No newline at end of file diff --git a/gearman/controllerWorker/ControllerWorker/RunEvents.java b/gearman/controllerWorker/ControllerWorker/RunEvents.java deleted file mode 100755 index 18a040b..0000000 --- a/gearman/controllerWorker/ControllerWorker/RunEvents.java +++ /dev/null @@ -1,70 +0,0 @@ -package ControllerWorker; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.log4j.Logger; - -public class RunEvents extends Thread { - private static final Logger logger = Logger.getLogger(RunEvents.class); - private URL url; - private final long updatePeriod; - - public RunEvents(String url, long updatePeriod) { - try { - this.url = new URL(url); - } catch (Exception e) { - logger.error(e.getStackTrace()); - } - this.updatePeriod = updatePeriod; // updates per second - } - - public void run() { - workerLoop(); - } - - public void workerLoop() { - long beginTime; - long timeTaken; - long timeLeft; - while (true) { - try { - beginTime = System.nanoTime(); - update(); - timeTaken = System.nanoTime() - beginTime; - timeLeft = (updatePeriod - timeTaken) / 1000000; - if (timeLeft < 10) - timeLeft = 10; - Thread.sleep(timeLeft); - } catch (Exception e) { - logger.error(e.getStackTrace()); - } - } - } - - public void update() { - HttpURLConnection connection = null; - BufferedReader rd = null; - StringBuilder sb = null; - String line = null; - try { - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.setDoOutput(true); - connection.connect(); - rd = new BufferedReader(new InputStreamReader(connection - .getInputStream())); - sb = new StringBuilder(); - - while ((line = rd.readLine()) != null) { - sb.append(line + '\n'); - } - logger.info(sb.toString()); - } catch (Exception e) { - logger.error(e.getStackTrace()); - } - } -} \ No newline at end of file diff --git a/gearman/controllerWorker/ControllerWorker/Shutdown.java b/gearman/controllerWorker/ControllerWorker/Shutdown.java index ce17940..81a47ed 100755 --- a/gearman/controllerWorker/ControllerWorker/Shutdown.java +++ b/gearman/controllerWorker/ControllerWorker/Shutdown.java @@ -90,7 +90,7 @@ public class Shutdown extends Thread { timeLeft = 10; Thread.sleep(timeLeft); } catch (Exception e) { - logger.error(e.getStackTrace()); + logger.error(e.toString()); } } finished = true; diff --git a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java index 0f123c4..e085b26 100755 --- a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java +++ b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java @@ -77,7 +77,7 @@ public class SomePingWorker extends AbstractGearmanFunction { remove.add(j); } } catch (Exception e) { - logger.error(e.getStackTrace()); + logger.error(e.toString()); } } diff --git a/install.sh b/install.sh index 936321d..99d4a1a 100755 --- a/install.sh +++ b/install.sh @@ -15,6 +15,7 @@ echo "Copying to /var/www/" sourceDir=$(readlink -f $(dirname $(readlink -f $0))) echo -n "enter vhost name: " read vhost_name +sed -e "35s/\$/$vhost_name/" -i $targetDir/application/configs/application.ini targetDir="/var/www/$vhost_name" mkdir -p $targetDir cp -R $sourceDir/* $targetDir @@ -71,12 +72,12 @@ sed -e "21s/\$/$pbs2_host/" -i $targetDir/application/configs/application.ini echo -n "Please enter host of gearman server [localhost]: " read gearman_server_host [ "x" = "x$gearman_server_host" ] && gearman_server_host="localhost" -sed -e "35s/\$/$gearman_server_host/" -i $targetDir/application/configs/application.ini +sed -e "38s/\$/$gearman_server_host/" -i $targetDir/application/configs/application.ini echo -n "Please enter port of gearman server [4730]: " read gearman_server_port [ "x" = "x$gearman_server_port" ] && gearman_server_port="4730" -sed -e "36s/\$/$gearman_server_port/" -i $targetDir/application/configs/application.ini +sed -e "39s/\$/$gearman_server_port/" -i $targetDir/application/configs/application.ini echo "Create database and tables" cat $targetDir/setup/poolctrl.sql | sed -e "s,##poolctrl##,$db_name," > /tmp/poolctrl.sql -- cgit v1.2.3-55-g7522