Diff for /FreeBSD/tinderbox2/webui/module/Attic/moduleBuildPorts.php between versions 1.1 and 1.1.2.1

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/moduleBuildPorts.php,v 1.14 2007/10/07 00:58:56 ade Exp $
   #
   
   require_once 'module/module.php';
   require_once 'module/modulePorts.php';
   
   class moduleBuildPorts extends module {
   
           function moduleBuildPorts() {
                   $this->module();
                   $this->modulePorts = new modulePorts();
           }
   
           function display_list_buildports( $build_name, $sort ) {
   
                   $build = $this->TinderboxDS->getBuildByName( $build_name );
                   $ports = $this->TinderboxDS->getPortsForBuild( $build, $sort );
                   $ports_tree = $this->TinderboxDS->getPortsTreeById( $build->getPortsTreeId() );
                   $jail = $this->TinderboxDS->getJailById( $build->getJailId() );
   
                   if( is_array( $ports ) && count( $ports ) > 0 ) {
                           $this->template_assign( 'data', $this->modulePorts->get_list_data( $build_name, $ports ) );
                           $this->template_assign( 'no_list', false );
                   } else {
                           $this->template_assign( 'no_list', true );
                   }
   
                   foreach( $this->TinderboxDS->getAllPortFailReasons() as $reason ) {
                           $port_fail_reasons[$reason->getTag()]['tag']   = htmlentities($reason->getTag());
                           $port_fail_reasons[$reason->getTag()]['descr'] = $reason->getDescr();
                           $port_fail_reasons[$reason->getTag()]['type']  = $reason->getType();
                           $port_fail_reasons[$reason->getTag()]['link']  = true;
                   }
   
                   foreach ( $ports as $port ) {
                           if ( $port->getLastFailedDep() != "" ) {
                                   $depreason = $port->getLastFailedDep();
                                   $port_fail_reasons[$depreason]['tag']   = htmlentities( $depreason );
                                   $port_fail_reasons[$depreason]['descr'] = htmlentities( "Port was not built since dependency $depreason failed." );
                                   $port_fail_reasons[$depreason]['type']  = 'COMMON';
                                   $port_fail_reasons[$depreason]['link']  = false;
   
                           }
                   }
   
                   $qs = array();
                   $qkvs = explode('&', $_SERVER['QUERY_STRING']);
                   foreach ($qkvs as $qkv) {
                           $kv = explode('=', $qkv);
                           $qs[$kv[0]] = $kv[1];
                   }
   
                   $this->template_assign( 'port_fail_reasons',      $port_fail_reasons );
                   $this->template_assign( 'maintainers',            $this->TinderboxDS->getAllMaintainers() );
                   $this->template_assign( 'build_description',      $build->getDescription() );
                   $this->template_assign( 'build_name',             $build_name );
                   $this->template_assign( 'jail_name',              $jail->getName() );
                   $this->template_assign( 'jail_tag',               $jail->getTag() );
                   $this->template_assign( 'jail_lastbuilt',         prettyDatetime( $jail->getLastBuilt() ) );
                   $this->template_assign( 'ports_tree_description', $ports_tree->getDescription() );
                   $this->template_assign( 'ports_tree_lastbuilt',   prettyDatetime( $ports_tree->getLastBuilt() ) );
                   $this->template_assign( 'local_time',             prettyDatetime( date( 'Y-m-d H:i:s' ) ) );
                   $this->template_assign( 'querystring',            $qs);
   
                   return $this->template_parse( 'list_buildports.tpl' );
           }
   
           function display_failed_buildports( $build_name, $maintainer, $all ) {
   
                   if( $build_name ) {
                           $build = $this->TinderboxDS->getBuildByName( $build_name );
                           $build_id = $build->getId();
                   } else {
                           $build_id = false;
                   }
   
                   if ($all) {
                           $ports = $this->TinderboxDS->getPortsByStatus( $build_id, $maintainer, '', 'SUCCESS' );
                   } else {
                           $ports = $this->TinderboxDS->getPortsByStatus( $build_id, $maintainer, 'FAIL', '' );
                   }
   
                   if( is_array( $ports ) && count( $ports ) > 0 ) {
                           $this->template_assign( 'data', $this->modulePorts->get_list_data( $build_name, $ports ) );
                           $this->template_assign( 'no_list', false );
                   } else {
                           $this->template_assign( 'no_list', true );
                   }
   
                   foreach( $this->TinderboxDS->getAllPortFailReasons() as $reason ) {
                           $port_fail_reasons[$reason->getTag()]['tag']   = htmlentities($reason->getTag());
                           $port_fail_reasons[$reason->getTag()]['descr'] = $reason->getDescr();
                           $port_fail_reasons[$reason->getTag()]['type']  = $reason->getType();
                           $port_fail_reasons[$reason->getTag()]['link']  = true;
                   }
   
                   foreach ( $ports as $port ) {
                           if ( $port->getLastFailedDep() != "" ) {
                                   $depreason = $port->getLastFailedDep();
                                   $port_fail_reasons[$depreason]['tag']   = htmlentities( $depreason );
                                   $port_fail_reasons[$depreason]['descr'] = htmlentities( "Port was not built since dependency $depreason failed." );
                                   $port_fail_reasons[$depreason]['type']  = 'COMMON';
                                   $port_fail_reasons[$depreason]['link']  = false;
                           }
                   }
   
                   $this->template_assign( 'port_fail_reasons',      $port_fail_reasons );
                   $this->template_assign( 'build_name', $build_name );
                   $this->template_assign( 'maintainer', $maintainer );
                   $this->template_assign( 'local_time', prettyDatetime( date( 'Y-m-d H:i:s' ) ) );
   
                   return $this->template_parse( 'failed_buildports.tpl' );
           }
   
           function display_latest_buildports( $build_name ) {
   
                   $current_builds = $this->display_current_buildports( $build_name );
   
                   if( $build_name ) {
                           $build = $this->TinderboxDS->getBuildByName( $build_name );
                           $build_id = $build->getId();
                   } else {
                           $build_id = false;
                   }
   
                   $ports = $this->TinderboxDS->getLatestPorts( $build_id, 20 );
   
                   if( is_array( $ports ) && count( $ports ) > 0 ) {
                           $this->template_assign( 'data', $this->modulePorts->get_list_data( $build_name, $ports ) );
                           $this->template_assign( 'no_list', false );
                   } else {
                           $this->template_assign( 'no_list', true );
                   }
   
                   foreach( $this->TinderboxDS->getAllPortFailReasons() as $reason ) {
                           $port_fail_reasons[$reason->getTag()]['tag']   = htmlentities($reason->getTag());
                           $port_fail_reasons[$reason->getTag()]['descr'] = $reason->getDescr();
                           $port_fail_reasons[$reason->getTag()]['type']  = $reason->getType();
                           $port_fail_reasons[$reason->getTag()]['link']  = true;
                   }
   
                   foreach ( $ports as $port ) {
                           if ( $port->getLastFailedDep() != "" ) {
                                   $depreason = $port->getLastFailedDep();
                                   $port_fail_reasons[$depreason]['tag']   = htmlentities( $depreason );
                                   $port_fail_reasons[$depreason]['descr'] = htmlentities( "Port was not built since dependency $depreason failed." );
                                   $port_fail_reasons[$depreason]['type']  = 'COMMON';
                                   $port_fail_reasons[$depreason]['link']  = false;
                           }
                   }
   
                   $this->template_assign( 'port_fail_reasons',      $port_fail_reasons );
                   $this->template_assign( 'current_builds',         $current_builds );
                   $this->template_assign( 'build_name',             $build_name );
                   $this->template_assign( 'local_time',             prettyDatetime( date( 'Y-m-d H:i:s' ) ) );
   
                   return $this->template_parse( 'latest_buildports.tpl' );
           }
   
           function display_current_buildports( $showbuild ) {
                   $activeBuilds = array();
                   $builds = $this->TinderboxDS->getBuilds();
                   if( $builds ) {
                           foreach( $builds as $build ) {
                                   if( empty( $showbuild ) || $build->getName() == $showbuild ) {
                                           if( $build->getBuildStatus() == 'PORTBUILD' ) {
                                                   $activeBuilds[] = $build;
                                           }
                                   }
                           }
                   }
   
                   if( sizeof( $activeBuilds ) > 0 ) {
                           $i = 0;
                           foreach( $activeBuilds as $build ) {
                                   if( $build->getBuildCurrentPort() )
                                           $data[$i]['port_current_version'] = $build->getBuildCurrentPort();
                                   else
                                           $data[$i]['port_current_version'] = preparing_next_build;
   
                                   $data[$i]['build_name'] = $build->getName();
                                   $data[$i]['build_last_updated'] = $build->getBuildLastUpdated();
                                   $data[$i]['build_eta'] = 'N/A';
                                   $currport = $this->TinderboxDS->getCurrentPortForBuild($build->getId());
                                   if (!is_null($currport)) {
                                           $bp = $this->TinderboxDS->getBuildPorts($currport->getId(), $build->getId());
                                           $as = explode(" ", $build->getBuildLastUpdated());
                                           $ymd = explode("-", $as[0]);
                                           $hms = explode(":", $as[1]);
                                           $then = mktime($hms[0], $hms[1], $hms[2], $ymd[1], $ymd[2], $ymd[0]);
                                           $diff = time() - $then;
                                           if ($bp->getLastRunDuration() - $diff >= 0)
                                                   $data[$i]['build_eta'] = $bp->getLastRunDuration() - $diff;
                                   }
                                   $i++;
                           }
                           $this->template_assign( 'data', $data );
                           $this->template_assign( 'no_list', false );
                   } else {
                           $this->template_assign( 'no_list', true );
                   }
   
                   $this->template_assign( 'build_name', $showbuild );
   
                   return $this->template_parse( 'current_buildports.tpl' );
           }
   }
   ?>

Removed from v.1.1  
changed lines
  Added in v.1.1.2.1