[evolvis-commits] r17362: Merged from upstream 5.1

mirabilos at evolvis.org mirabilos at evolvis.org
Fri Jul 8 15:04:02 CEST 2011


Author: mirabilos
Date: 2011-07-08 15:04:02 +0200 (Fri, 08 Jul 2011)
New Revision: 17362

Added:
   trunk/gforge_base/evolvisforge-5.1/src/common/include/forge_events.php
   trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-restart.sh
   trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-server.pl
Modified:
   trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/ErrorManager.php
   trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/WikiDB/backend.php
   trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/themes/fusionforge/themeinfo.php
   trunk/gforge_base/evolvisforge-5.1/tests/scripts/start_lxc.sh
Log:
Merged from upstream 5.1

Added: trunk/gforge_base/evolvisforge-5.1/src/common/include/forge_events.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/include/forge_events.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/include/forge_events.php	2011-07-08 13:04:02 UTC (rev 17362)
@@ -0,0 +1,62 @@
+<?php
+
+abstract class ForgeEvent extends Plugin {
+	function ForgeEvent () {
+		$this->Plugin() ;
+		$this->name = "event" ;
+		$this->text = "event" ;
+		$this->hooks[] = 'group_approve';
+		$this->hooks[] = 'scm_admin_update';
+		$this->hooks[] = 'site_admin_option_hook';
+	}
+
+	abstract function trigger_job($name);
+
+	function group_approve($params) {
+		return $this->trigger_job('create_scm_repos');
+	}
+
+	function scm_admin_update($params) {
+		return $this->trigger_job('create_scm_repos');
+	}
+
+	function site_admin_option_hook($params) {
+		$action = getStringFromRequest('action');
+		echo '<li><a name="jobs"></a>'.util_make_link('/admin/?action=listjobs#jobs', _('Jobs'))."\n";
+		if ($action == 'listjobs') {
+			echo '<ul>';
+			echo '<li>'.util_make_link('/admin/?action=runjobs&job=create_scm_repos#jobs', _('Create SCM Repositories')).'</li>'."\n";
+			echo '<li>'.util_make_link('/admin/?action=runjobs&job=scm_update#jobs', _('Upgrade Forge Software')).'</li>'."\n";
+			echo '</ul>';
+		}
+		echo '</li>';
+		if ($action == 'runjobs') {
+			$job = getStringFromRequest('job');
+			$job = util_ensure_value_in_set($job, array('create_scm_repos', 'scm_update'));
+			$this->trigger_job($job);
+		}
+		echo '<li><a name="version"></a>'.util_make_link('/admin/?action=version#version', _('Version'))."\n";
+		if ($action == 'version') {
+			echo '<pre>';
+			if (is_dir("/opt/acosforge/.svn")) {
+				system("cd /opt/acosforge; svn info --config-dir /tmp 2>&1");
+			}
+			if (is_dir("/opt/acosforge/.git")) {
+				system("cd /opt/acosforge; git svn info 2>&1");
+			}
+			echo '</pre>'."\n";
+		}
+		echo '</li>';
+	}
+}
+
+class PgForgeEvent extends ForgeEvent {
+	function trigger_job($name) {
+		return db_query_params("NOTIFY $name", array());
+	}
+}
+
+register_plugin (new PgForgeEvent) ;
+
+$pm = plugin_manager_get_object() ;
+$pm->SetupHooks () ;

Added: trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-restart.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-restart.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-restart.sh	2011-07-08 13:04:02 UTC (rev 17362)
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ $(ps ax | grep -v grep | grep "job-server.pl" | wc -l) -eq 0 ]
+then
+        echo "job-server.pl Service not running, relauching."
+        nohup `dirname $0`/job-server.pl &
+fi


Property changes on: trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-restart.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-server.pl
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-server.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-server.pl	2011-07-08 13:04:02 UTC (rev 17362)
@@ -0,0 +1,54 @@
+#!/usr/bin/perl -w
+
+# Taken from an example script to use DBD::Pg to listen for async notifications
+# by andrew at supernews.net, but don't bother emailing me about it;
+# try #PostgreSQL on irc.freenode.net but read all the relevent
+# manpages first.
+
+use DBI;
+
+my $database_name;
+my $database_user;
+my $database_password;
+
+my $forge_get_config = "/opt/gforge/utils/forge_get_config";
+my $jobs_dir         = "/opt/gforge/cronjobs";
+
+chomp($database_name = `$forge_get_config database_name`);
+chomp($database_user = `$forge_get_config database_user`);
+chomp($database_password = `$forge_get_config database_password`);
+
+my $dbh = DBI->connect("dbi:Pg:dbname=$database_name", $database_user, $database_password,
+		       { RaiseError => 1, AutoCommit => 1 });
+
+$dbh->do("LISTEN create_scm_repos;");
+$dbh->do("LISTEN scm_update;");
+
+$sth=$dbh->prepare("INSERT INTO cron_history (rundate,job,output) values (?, ?, ?)");
+
+while (1)
+{
+    my $notifies = $dbh->func('pg_notifies');
+    if (!$notifies)
+    {
+		# No notifications received. So sleep waiting for data on the backend connection.
+		my $fd = $dbh->func('getfd');
+		my $rfds = '';
+		vec($rfds,$fd,1) = 1;
+		my $n = select($rfds, undef, undef, 30);
+
+		$notifies = $dbh->func('pg_notifies');
+    }
+    while ($notifies)
+    {
+		# the result from pg_notifies is a ref to a two-element array,
+		# with the notification name and the sender's backend PID.
+		my ($n,$p) = @$notifies;
+		$output = "Running: $jobs_dir/$n.php $p\n";
+		$output .= `$jobs_dir/$n.php 2>&1`;
+
+		$sth->execute(time(),903,$output);
+
+		$notifies = $dbh->func('pg_notifies');
+    }
+}


Property changes on: trunk/gforge_base/evolvisforge-5.1/src/cronjobs/job-server.pl
___________________________________________________________________
Added: svn:executable
   + *

Modified: trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/ErrorManager.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/ErrorManager.php	2011-07-08 13:03:56 UTC (rev 17361)
+++ trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/ErrorManager.php	2011-07-08 13:04:02 UTC (rev 17362)
@@ -55,7 +55,7 @@
         $this->_postpone_mask = 0;
         $this->_postponed_errors = array();
 
-        // set_error_handler('ErrorManager_errorHandler');
+        set_error_handler('ErrorManager_errorHandler');
     }
 
     /**

Modified: trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/WikiDB/backend.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/WikiDB/backend.php	2011-07-08 13:03:56 UTC (rev 17361)
+++ trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/lib/WikiDB/backend.php	2011-07-08 13:04:02 UTC (rev 17362)
@@ -1,5 +1,5 @@
 <?php
-// $Id: backend.php 8071 2011-05-18 14:56:14Z vargenau $
+// $Id: backend.php 8080 2011-05-19 19:14:34Z vargenau $
 /*
  * Copyright 2004-2010 Reini Urban
  *
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
+ * with PhpWiki; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 

Modified: trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/themes/fusionforge/themeinfo.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/themes/fusionforge/themeinfo.php	2011-07-08 13:03:56 UTC (rev 17361)
+++ trunk/gforge_base/evolvisforge-5.1/src/plugins/wiki/www/themes/fusionforge/themeinfo.php	2011-07-08 13:04:02 UTC (rev 17362)
@@ -6,7 +6,7 @@
     exit;
 }
 
-// $Id: themeinfo.php 8078 2011-05-18 16:44:31Z vargenau $;
+// $Id: themeinfo.php 8081 2011-05-19 19:27:35Z vargenau $;
 
 require_once('lib/WikiTheme.php');
 require_once('themes/wikilens/themeinfo.php');

Modified: trunk/gforge_base/evolvisforge-5.1/tests/scripts/start_lxc.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/tests/scripts/start_lxc.sh	2011-07-08 13:03:56 UTC (rev 17361)
+++ trunk/gforge_base/evolvisforge-5.1/tests/scripts/start_lxc.sh	2011-07-08 13:04:02 UTC (rev 17362)
@@ -88,7 +88,7 @@
 
 ssh -o 'StrictHostKeyChecking=no' "root@$HOST" uname -a
 ret=$?
-for loop in 1 2 3 4 5 6 7 8 9
+for loop in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 do
 
 	if [ $ret -ne 0 ];then



More information about the evolvis-commits mailing list