[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