version 1.1, 2007/10/21 23:45:00
|
version 1.1.2.1, 2007/10/21 23:45:00
|
Line 0
|
Line 1
|
|
<?php |
|
#- |
|
# Copyright (c) 2005 Oliver Lehmann <oliver@FreeBSD.org> |
|
# All rights reserved. |
|
# |
|
# Redistribution and use in source and binary forms, with or without |
|
# modification, are permitted provided that the following conditions |
|
# are met: |
|
# 1. Redistributions of source code must retain the above copyright |
|
# notice, this list of conditions and the following disclaimer |
|
# 2. Redistributions in binary form must reproduce the above copyright |
|
# notice, this list of conditions and the following disclaimer in the |
|
# documentation and/or other materials provided with the distribution. |
|
# |
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
# SUCH DAMAGE. |
|
# |
|
# $MCom: portstools/tinderbox/webui/module/modulePorts.php,v 1.11 2007/06/09 22:09:12 marcus Exp $ |
|
# |
|
|
|
require_once 'module/module.php'; |
|
|
|
class modulePorts extends module { |
|
|
|
function modulePorts() { |
|
$this->module(); |
|
} |
|
|
|
function display_describe_port( $port_id ) { |
|
|
|
$ports = $this->TinderboxDS->getAllPortsByPortID( $port_id ); |
|
|
|
if( is_array( $ports ) && count( $ports ) > 0 ) { |
|
$this->template_assign( 'data', $this->get_list_data( '', $ports ) ); |
|
$this->template_assign( 'no_list', false ); |
|
} else { |
|
$this->template_assign( 'no_list', true ); |
|
} |
|
|
|
foreach( $ports as $port ) { |
|
$build = $this->TinderboxDS->getBuildById( $port->getBuildId() ); |
|
$ports_tree = $this->TinderboxDS->getPortsTreeForBuild( $build ); |
|
if( empty( $ports_tree_ids[$ports_tree->getId()] ) ) { |
|
$ports_tree_ids[$ports_tree->getId()] = 1; |
|
|
|
list( $cvsweb, $cvsweb_querystr ) = explode( '?', $ports_tree->getCVSwebURL(), 2 ); |
|
|
|
if ( $cvsweb_querystr ) { |
|
$cvsweb = rtrim( $cvsweb, '/' ); |
|
$cvsweb_querystr = '?' . $cvsweb_querystr; |
|
} |
|
|
|
$ports_trees_links[] = array( 'name' => $ports_tree->getName(), 'cvsweb' => $cvsweb, 'cvsweb_querystr' => $cvsweb_querystr ); |
|
} |
|
} |
|
|
|
$this->template_assign( 'port_comment', $ports[0]->getComment() ); |
|
$this->template_assign( 'port_dir', $ports[0]->getDirectory() ); |
|
$this->template_assign( 'port_maintainer', $ports[0]->getMaintainer() ); |
|
$this->template_assign( 'port_name', $ports[0]->getName() ); |
|
$this->template_assign( 'ports_trees_links', $ports_trees_links ); |
|
$this->template_assign( 'local_time', prettyDatetime( date( 'Y-m-d H:i:s' ) ) ); |
|
|
|
return $this->template_parse( 'describe_port.tpl' ); |
|
} |
|
|
|
function get_list_data( $build_name, $ports ) { |
|
global $loguri; |
|
global $errorloguri; |
|
global $pkguri; |
|
|
|
if( empty( $build_name ) ) { |
|
$different_builds = true; |
|
} else { |
|
$different_builds = false; |
|
$build = $this->TinderboxDS->getBuildByName( $build_name ); |
|
$package_suffix = $this->TinderboxDS->getPackageSuffix( $build->getJailId() ); |
|
} |
|
|
|
|
|
foreach( $ports as $port ) { |
|
if( $different_builds == true ) { |
|
$build = $this->TinderboxDS->getBuildById( $port->getBuildId() ); |
|
$package_suffix = $this->TinderboxDS->getPackageSuffix( $build->getJailId() ); |
|
$build_name = $build->getName(); |
|
} |
|
|
|
$port_id = $port->getId(); |
|
$port_last_built_version = $port->getLastBuiltVersion(); |
|
$port_logfilename = $port->getLogfileName(); |
|
$port_link_logfile = $loguri . '/' . $build_name . '/' . $port_logfilename; |
|
$port_link_package = $pkguri . '/' . $build_name . '/All/' . $port_last_built_version . $package_suffix; |
|
$port_last_run_duration = $port->getLastRunDuration(); |
|
$port_last_fail_reason = $port->getLastFailReason(); |
|
|
|
switch( $port->getLastStatus() ) { |
|
case 'SUCCESS': |
|
$status_field_class = 'port_success'; |
|
$status_field_letter = ' '; |
|
break; |
|
case 'LEFTOVERS': |
|
$status_field_class = 'port_leftovers'; |
|
$status_field_letter = 'L'; |
|
break; |
|
case 'BROKEN': |
|
$status_field_class = 'port_broken'; |
|
$status_field_letter = 'B'; |
|
$port_link_package = ''; |
|
break; |
|
case 'FAIL': |
|
$status_field_class = 'port_fail'; |
|
$status_field_letter = ' '; |
|
$port_link_logfile = $errorloguri . '/' . $build_name . '/' . $port_logfilename; |
|
$port_link_package = ''; |
|
break; |
|
case 'DEPEND': |
|
$status_field_class = 'port_depend'; |
|
$status_field_letter = ' '; |
|
$port_link_logfile = ''; |
|
$port_link_package = ''; |
|
$port_last_fail_reason = $port->getLastFailedDep(); |
|
break; |
|
case 'DUD': |
|
$status_field_class = 'port_dud'; |
|
$status_field_letter = 'D'; |
|
$port_link_logfile = ''; |
|
$port_link_package = ''; |
|
break; |
|
default: |
|
$status_field_class = 'port_default'; |
|
$status_field_letter = ' '; |
|
$port_link_logfile = ''; |
|
$port_link_package = ''; |
|
break; |
|
} |
|
|
|
$data[] = array( 'build_name' => $build_name, |
|
'port_directory' => $port->getDirectory(), |
|
'port_maintainer' => prettyEmail( $port->getMaintainer() ).' ', |
|
'port_id' => $port_id, |
|
'port_last_built_version' => $port_last_built_version, |
|
'port_last_built' => prettyDatetime( $port->getLastBuilt() ), |
|
'port_last_successful_built' => prettyDatetime( $port->getLastSuccessfulBuilt() ), |
|
'port_last_fail_reason' => htmlentities( $port_last_fail_reason ), |
|
'port_last_run_duration' => $port_last_run_duration, |
|
'port_link_logfile' => $port_link_logfile, |
|
'port_link_package' => $port_link_package, |
|
'status_field_class' => $status_field_class, |
|
'status_field_letter' => $status_field_letter ); |
|
} |
|
return $data; |
|
} |
|
} |
|
?> |