plm-devel Mailing List for Patch Lifecycle Manager
Brought to you by:
judith_osdl
You can subscribe to this list here.
2003 |
Jan
(6) |
Feb
(60) |
Mar
(11) |
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
(6) |
Sep
(12) |
Oct
(5) |
Nov
|
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(19) |
Feb
(20) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(4) |
Jul
(9) |
Aug
(5) |
Sep
(18) |
Oct
(6) |
Nov
(2) |
Dec
(4) |
2005 |
Jan
(22) |
Feb
(6) |
Mar
(37) |
Apr
(22) |
May
(18) |
Jun
(10) |
Jul
(16) |
Aug
|
Sep
(1) |
Oct
(27) |
Nov
(26) |
Dec
(5) |
2006 |
Jan
(1) |
Feb
(1) |
Mar
(43) |
Apr
(1) |
May
(5) |
Jun
(8) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(5) |
Nov
(6) |
Dec
(15) |
2007 |
Jan
(3) |
Feb
(1) |
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mark W. <ma...@gm...> - 2007-04-10 01:42:55
|
On 4/6/07, ju...@f2... <ju...@f2...> wrote: > > Hi Judith, > > > > How is the plm on rails faring lately? I heard that django + apache + > > mod_python performs much better than rails + apache + mod_fastcgi. I > > suspect an untuned postgres is in part responsible but I wanted to > > give the django solution a try to see if it will help the large patch > > submission. What do you think? > > Hi Mark, > > It was working fine, but LF is taking it down or maybe already has. I had > stopped pulling the rc patches as patches and pulled the tar balls instead > as a work-around. They were the biggest problems.(literally) > > If it was the postgres, then changing application will not help. Wouldn't > it be better to figure it out? It might be good to do a fork in case > there are any other users of the Ruby/Rails solution or if the new one is > not improved. The Rails one is at least pretty well tested and de-bugged. I found a couple of tips... http://scottstuff.net/blog/articles/2005/07/20/apache-tuning-for-rails-and-fastcgi http://weblog.textdrive.com/article/175/rails-optimizing-resource-usage A few of the things that caught my eye: - There is a 30 second timeout in FastCGI, but that be changed. - Each FastCGI dispatcher can take up to 70+ MB of memory. - FastCGI processes by default are dynamically started and stopped. Mark |
From: Mark W. <ma...@gm...> - 2007-04-10 01:33:55
|
On 4/9/07, ju...@f2... <ju...@f2...> wrote: > > Hi Judith, > > > > Can you create a mailing list and set up the triggers for svn commits? > Hi Mark, > > I am not finding how to do this under the admin menu either lists/forums > nor svn. Do you know where this option is set? It's menu Admin -> Subversion. On the bottom of the page there is a section under Hooks. Mark |
From: Mark W. <ma...@gm...> - 2007-04-07 16:23:23
|
Hi Judith, Can you add me (markwkm) to the project? Thanks, Mark |
From: Mark W. <ma...@gm...> - 2007-04-06 21:20:08
|
Hi Judith, Can you create a mailing list and set up the triggers for svn commits? Thanks, Mark |
From: Mark W. <ma...@gm...> - 2007-04-06 17:58:46
|
On 4/6/07, ju...@f2... <ju...@f2...> wrote: > > Hi Judith, > > > > How is the plm on rails faring lately? I heard that django + apache + > > mod_python performs much better than rails + apache + mod_fastcgi. I > > suspect an untuned postgres is in part responsible but I wanted to > > give the django solution a try to see if it will help the large patch > > submission. What do you think? > > Hi Mark, > > It was working fine, but LF is taking it down or maybe already has. I had > stopped pulling the rc patches as patches and pulled the tar balls instead > as a work-around. They were the biggest problems.(literally) > > If it was the postgres, then changing application will not help. Wouldn't > it be better to figure it out? It might be good to do a fork in case > there are any other users of the Ruby/Rails solution or if the new one is > not improved. The Rails one is at least pretty well tested and de-bugged. My reference to PostgreSQL only meant to be as far as the performance. I think it was Rails that couldn't physically handle the large patches. As for figuring it out, didn't I send some suggestions a few months back for tuning the database? But I guess that's moot if there's nothing to try it on. Mark |
From: Mark W. <ma...@gm...> - 2007-04-06 00:35:33
|
Hi Judith, How is the plm on rails faring lately? I heard that django + apache + mod_python performs much better than rails + apache + mod_fastcgi. I suspect an untuned postgres is in part responsible but I wanted to give the django solution a try to see if it will help the large patch submission. What do you think? Mark |
From: <ma...@gm...> - 2007-02-27 20:39:34
|
On 1/9/07, ju...@f2... <ju...@f2...> wrote: > One thing which did not work that well was putting the patches in the > database. It was slow and error-prone if the patches were too big. The > database was too big to back up easily. I just learned that PostgreSQL can allocate up to about 5 times the size of the actually data in order to process the binary data. Perhaps it's a case where the database system does not have enough physical memory available and is swapping, causing long insert times and timeouts? I'm speculating this is the chain of events... Mark |
From: <ma...@gm...> - 2007-01-14 18:24:06
|
Is there a todo list or wishlist anywhere? Wasn't sure if I was overlooking it in the source. There's a discussion on the PostgreSQL's hackers list on how they think they can use a patch server for their build farm: http://archives.postgresql.org/pgsql-hackers/2007-01/msg00160.php Regards, Mark |
From: <pan...@ya...> - 2006-12-25 14:10:56
|
plm...@li...様へ、招待期限になりましたのでご確認下さい。 至急、下記の招待カードからアクセスしていただき、 準備したおります専用スペースへ入室お願いします。 >>> 招待カード :::: 明日期限 :::: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://www.now-on-site.com/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ずべて無料の自由恋愛コミュニティは、健全セフレの募集板です。 |
From: <pan...@ya...> - 2006-12-25 13:29:52
|
plm...@li...様へ、招待期限になりましたのでご確認下さい。 至急、下記の招待カードからアクセスしていただき、 準備したおります専用スペースへ入室お願いします。 >>> 招待カード :::: 明日期限 :::: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://www.now-on-site.com/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ずべて無料の自由恋愛コミュニティは、健全セフレの募集板です。 |
From: <pan...@ya...> - 2006-12-17 10:47:39
|
plm-devel様 お世話になっております。 私どもは自由恋愛促進を目的に、条件にあったセフレのペアリング、 大人の恋愛のきっかけをサポート中です。 貴方様を招待します、【No.20024】瑞穂様の紹介スペースは ご覧頂いているでしょうか。 今回は20-25歳カテゴリーにて同地区エリアの方だけの対象で、 優先的にご依頼人から貴方様へのご招待となりました。 瑞穂様の希望としまして、自己紹介やメールでの連絡をした後に、 お近くのカフェで待ち合わせを希望しています。 スケジュールのほうはいかがでしょうか。 お互いの休日や夜の予定などは、お互いでご相談頂けますか。 こちらがあらためまして紹介カードです。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://takumi.vicp.cc/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
From: <pan...@ya...> - 2006-12-17 09:51:22
|
plm-devel様 お世話になっております。 私どもは自由恋愛促進を目的に、条件にあったセフレのペアリング、 大人の恋愛のきっかけをサポート中です。 貴方様を招待します、【No.20024】瑞穂様の紹介スペースは ご覧頂いているでしょうか。 今回は20-25歳カテゴリーにて同地区エリアの方だけの対象で、 優先的にご依頼人から貴方様へのご招待となりました。 瑞穂様の希望としまして、自己紹介やメールでの連絡をした後に、 お近くのカフェで待ち合わせを希望しています。 スケジュールのほうはいかがでしょうか。 お互いの休日や夜の予定などは、お互いでご相談頂けますか。 こちらがあらためまして紹介カードです。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://takumi.vicp.cc/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
From: <pan...@ya...> - 2006-12-14 18:40:53
|
plm-devel様 >>> 招待カード セフレ促進、自由恋愛コミュニティから大人のつながる 招待カードをお届けしました。 無料掲示板での近所検索により貴方様が 該当しましてご依頼人からのご招待となりました。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://takumi.vicp.cc/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
From: <pan...@ya...> - 2006-12-14 17:52:26
|
plm-devel様 >>> 招待カード セフレ促進、自由恋愛コミュニティから大人のつながる 招待カードをお届けしました。 無料掲示板での近所検索により貴方様が 該当しましてご依頼人からのご招待となりました。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【No.20024】瑞穂様から ┌──┐ │\/│ ご招待カードを開封する http://takumi.vicp.cc/acfree/20024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
From: code <pa...@op...> - 2006-12-05 08:17:22
|
70299 |
From: <dw...@ya...> - 2006-11-26 17:24:12
|
☆☆大好評!!大絶賛!!☆☆ ★安心★安全★24時間サポート体制 出会える出会い系調査隊@無料で即ハメ http://comecomenight.com/nig/ お問い合わせはコチラまで oki...@go... 謝謝! |
From: k_ko <k_...@in...> - 2006-11-17 06:57:03
|
$B%$%+$7$?$M!A$A$c$s%i%s%-%s%0!*(B http://secret-love.info/yi/ |
From: Hassan D. <cad...@am...> - 2006-11-15 09:43:11
|
Hi, =20 VlAffGRA VALffIUM CIAffLIS http://www.huntionkderunhadesunhas.com =20 , I started to protest, shut my mouth. Realized that there was no point |
From: Lisbet C. <len...@fn...> - 2006-11-04 18:52:34
|
Hi, VljlAGRA $ 3, 35 http://www.eduntionjdefunhaswunhas.com =20 _____ =20 tentacles lashed at me. I jumped back, lifted my sword-but not before |
From: mqy <mq...@ho...> - 2006-11-04 18:32:47
|
$B=)$NM<F|$r8+$F!"K($(!A!A!A!#(B http://www.too-match.net/a/ |
From: Leann O. <oga...@os...> - 2006-10-31 19:04:56
|
Hi, I've generalized the old linstab.pl script. In addition to producing the normal PLM compile results for every kernel release it now also has the capability of producing driver specific compile results. For examples of each of these styles of reports please see: http://www4.testing.osdl.org/linstab/index.html http://www4.testing.osdl.org/linstab/mpt_fusion.html The old linstab script was pretty ugly and needed a lot of cleaning up. After my first pass of the script I've reduced the length/size of the script by 50%. It still needs some work and cleaning up but I wanted to get something checked into some sort of version control. I thought the PLM repository would be the most logical place for this script to now reside. Judith, can you please commit this for me? Thanks, Leann ============================================================================= diff -Naur plm/scripts/compile_results.pl plm_modified/scripts/compile_results.pl --- plm/scripts/compile_results.pl 1969-12-31 16:00:00.000000000 -0800 +++ plm_modified/scripts/compile_results.pl 2006-10-31 10:38:15.000000000 -0800 @@ -0,0 +1,594 @@ +#!/usr/bin/perl -w -I perlib +#======================================================================== +# +# linstab__report +# +# DESCRIPTION +# +# generates summary of Linux kernel test/filter results +# and builds a results page for the linux stability project +# +# AUTHOR +# Bryce Harrington <br...@os...> +# Craig Thomas +# +# COPYRIGHT +# Copyright (C) 2003 Bryce Harrington & Open Source Development Lab +# All Rights Reserved. +# +# This module is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# +#======================================================================== + +use strict; # Forces variable decl's +use Carp; # Improved error/warning prints +use Pod::Usage; # To report program usage +use Getopt::Long; # Basic cmdline arg handling +use Config::Simple; #use instead of SimpleResource +use DBI; +use Data::Dumper; +use File::Spec::Functions qw(:ALL); + +use constant DEBUG => 0; # set to 1 to debug problems +#------------------------------------------------------------------------ +# Global variables +#------------------------------------------------------------------------ + +use vars qw($VERSION $NAME); +$VERSION = '1.02'; + +#------------------------------------------------------------------------ +# User config area +#------------------------------------------------------------------------ + +our $opt_version = ''; # Prints the version and exits +our $opt_help = ''; # Prints a brief help message +our $opt_debug = 0; # Prints debug messages +our $opt_tmpl_path = '/var/www/localhost/htdocs/linstab'; +our $opt_config = "$opt_tmpl_path/linstab.conf"; # Config file (default /etc/stp_plm_report.conf) +our $opt_limit = 0; # Limits quantity of rows extracted per series +our $opt_style = ''; # Style of webpage to emit + +our $opt_null_indicator = 'TBR'; # Symbol to use to indicate no value +our $opt_results_url = 'http://www4.testing.osdl.org/stp/'; # URL to STP results +our $opt_header_filename = 'ls-header.tmpl'; +our $opt_hw_header_filename = 'ls-hw_header.tmpl'; +our $opt_links_filename = 'ls-links.tmpl'; +our $opt_footer_filename = 'ls-footer.tmpl'; +our $opt_stp_test_details_url = 'http://www.osdl.org/stp/test_details/test_descript.html'; +our $opt_plm_cgi = 'http://plm.testing.osdl.org'; + +#------------------------------------------------------------------------ +# Commandline option processing +#------------------------------------------------------------------------ + +Getopt::Long::Configure ("bundling"); +GetOptions("version|V", # Prints the version and exits + "help|h", # Prints a brief help message + "man|m", # Prints a manual page (detailed help) + "debug|d=i", # Prints debug messages + "config_file|c=s" => \$opt_config, # Config file (default /etc/stp_plm_report.conf) + "limit|l=i", # Limits quantity of rows extracted per series + "style|s=s", # Style of webpage to emit + "null_indicator=s", # Symbol to use to indicate no value + "results_url=s", # URL to STP results + "output_path=s", # Directory to put the emitted html files in + "index_filename=s", # Filename for the report index + "header_filename=s", + "footer_filename=s", + "testinfo_filename=s", + "tmpl_path=s", + "stp_test_details_url=s", + "failed_test=s", + "plm_cgi=s", # URL to PLM cgi + "plm_url=s", # URL to PLM documents + ) || pod2usage(1); + +if ($opt_version) { + print "$VERSION\n"; + exit 0; +} + +my $config = new Config::Simple("$opt_config"); +pod2usage(-verbose => 1, -exitstatus => 0) if $opt_help; + +# %plm_items hash elements: +# warnings: number of compile warnings per architecture +# errors: number of compile errors per architecture +# patch: PLM patch name in db +# dir: results directory name +# comp_id: PLM compile id +# filter_id: PLM filter id (defined in PLM) +# order: provide a way to sort the hash +# +# Note: ct - 3/18/2005 +# changed $plm_64comp_regr to the new cross compile (id=18) +# that is not the comp_regr, but just a simpler compile. +# Done because it took too long and no one wanted to look +# at it. If you want to use the regular comp_regr for 64, +# the database id is really 11, not 18. +my %plm_items = ( 'ia32' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'ia32 Compile Regress', + 'dir' => 'i386.cr', + 'comp_id' => 0, + 'filter_id'=> 6, + 'order' => 1 }, + 'ia64' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'ia64 Cross Compile', + 'dir' => 'ia64', + 'comp_id' => 0, + 'filter_id'=> 18, + 'order' => 2 }, + 'PPC32' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'PPC-Cross Compile Regress', + 'dir' => 'ppc.cr', + 'comp_id' => 0, + 'filter_id'=> 8, + 'order' => 3 }, + 'PPC40x' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'PPC-Cross Compile 40x', + 'dir' => 'ppc', + 'comp_id' => 0, + 'filter_id'=> 9, + 'order' => 4 }, + 'Sparc' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'Sparc Cross Compile', + 'dir' => 'sparc', + 'comp_id' => 0, + 'filter_id'=> 14, + 'order' => 5 }, + 'Sparc64' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'Sparc64 Cross Compile', + 'dir' => 'sparc64', + 'comp_id' => 0, + 'filter_id'=> 13, + 'order' => 6 }, + 'Alpha' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'Alpha Cross Compile', + 'dir' => 'alpha', + 'comp_id' => 0, + 'filter_id'=> 12, + 'order' => 7 }, + 'ARM' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'arm Cross Compile', + 'dir' => 'arm', + 'comp_id' => 0, + 'filter_id'=> 19, + 'order' => 8 }, + 'x86_64' => { 'warnings' => 0, + 'errors' => 0, + 'patch' => 'x86_64 Cross Compile', + 'dir' => 'x86_64', + 'comp_id' => 0, + 'filter_id'=> 16, + 'order' => 9 } + ); +#======================================================================== +# Load variables from config file +#------------------------------------------------------------------------ + +my $plmdb_dbi = $config->param("plmdb_dbi") || ''; +my $plmdb_host = $config->param("plmdb_host") || ''; +my $plmdb_user = $config->param("plmdb_user") || ''; +my $plmdb_pass = $config->param("plmdb_pass") || ''; + +my $stpdb_dbi = $config->param("stpdb_dbi") || ''; +my $stpdb_host = $config->param("stpdb_host") || ''; +my $stpdb_user = $config->param("stpdb_user") || ''; +my $stpdb_pass = $config->param("stpdb_pass") || ''; +my $driver_name= $config->param("driver") || ''; +my $filename = $config->param("web_page") || 'index.html'; +my $page_summary = $config->param("summary") || 'PLM Compile Results of the Latest 2.6 Kernels'; +my @kernels = $config->param("kernels"); + +my @stp_tests = $config->param("stp_tests"); + +#======================================================================== +# Subroutines +#------------------------------------------------------------------------ + +# Loads $fname, returns all lines as a string. On failure dies; if $fname +# doesn't exist gives a wacky HTML stack trace. + +sub load_file { + my ( $fname ) = @_; + if ( !-e $fname ) { + die "$fname does not appear to exist: $!\n"; + } + open( GF_FILE, "< $fname" ) || die "$fname could not be opened: $!"; + my @lines = <GF_FILE>; + close( GF_FILE ) || die "$fname could not be closed: $!\n"; + return join '', @lines; +} + +#======================================================================== +# Main program +#------------------------------------------------------------------------ + +print STDERR "Starting main program\n" if ($opt_debug>1); + +my $limit = $opt_limit || 4; + +my $plm_dbh = DBI->connect("dbi:Pg:dbname=".$plmdb_dbi.";host=".$plmdb_host, $plmdb_user, $plmdb_pass) || die $DBI::errstr; +my $stp_dbh = DBI->connect("dbi:Pg:dbname=".$stpdb_dbi.";host=".$stpdb_host, $stpdb_user, $stpdb_pass) || die $DBI::errstr; + +my $header = load_file(catfile($opt_tmpl_path,$opt_header_filename)); +my $hw_header = load_file(catfile($opt_tmpl_path,$opt_hw_header_filename)); +my $links = load_file(catfile($opt_tmpl_path, $opt_links_filename)); +my $footer = load_file(catfile($opt_tmpl_path,$opt_footer_filename)); + +############################################################## +# # +# Generate the PLM Compile table # +# # +############################################################## +open( RPT, ">$filename") + or die "Couldn't open $filename for writing: $!\n"; +print RPT $header; + +# +# Generate the column headings for the table - this table will have +# the OS kernel versions as rows and the architectures as columns +# +print RPT "<H2>$page_summary</H2>\n"; + +print RPT "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=2>\n"; +print RPT " <TR>\n"; +print RPT " <TD colspan='1' rowspan='2' VALIGN='top'><B>Patch Name</B></TD>\n"; +print RPT " <TD colspan='1' rowspan='2' VALIGN='top'><B>PLM ID</B></TD>\n"; +print RPT " <TD VALIGN='top'><B>Patch</B></TD>\n"; + +# Print column headers - ie architecture types +foreach my $keys (sort { $plm_items{$a}->{'order'} <=> $plm_items{$b}->{'order'} } keys %plm_items) { + print RPT " <TD colspan='2' rowspan='1' VALIGN='top' ALIGN='center'>"; + print RPT "<B>" . $keys, "</B></TD>\n"; +} + +# Pring column sub headings - ie applies, warnings, errors +print RPT " </TR>\n"; +print RPT " <TR>\n"; +print RPT " <TD VALIGN='top' ALIGN='center'><FONT COLOR='#993300'>"; +print RPT "<B>applies</B></TD>\n"; + +my $plm_items_size = scalar (keys %plm_items); +for (my $i = 0; $i < $plm_items_size; $i++) { + print RPT " <TD VALIGN='top' ALIGN='center'><FONT COLOR='#993300'>"; + print RPT "<B>warnings</B></TD>\n"; + print RPT " <TD VALIGN='top' ALIGN='center'><FONT COLOR='#993300'>"; + print RPT "<B>errors</B></TD>\n"; +} + +print RPT " </TR>\n"; + +if (DEBUG >= 1) { print "--------------------------------------------------------\n"; } + +foreach my $kernel (sort @kernels) { + if (DEBUG >= 1) { print "using kernel match --$kernel--\n"; } + + # Select all patches to the given kernel series + my $rquery = qq| + SELECT * FROM patches + WHERE name ~ '$kernel' + AND software_id=1 + ORDER BY id DESC + LIMIT $limit + |; + my $rsth = $plm_dbh->prepare($rquery) || die "Could not prepare query $rquery\n"; + $rsth->execute; + my $num_patches = $rsth->rows; + my $color = ''; + my $driver_sub_dir; + + # Each row is a different patch + while (my $patch = $rsth->fetchrow_hashref) { + my $name = $patch->{'name'} || 'unknown'; + my $id = $patch->{'id'} || '-1'; + + $name = "<A HREF='$opt_plm_cgi/patches/show/$name'>$name</A>"; + + $color = ($color eq '' ? 'lightgrey' : ''); + + my ($cquery, $csth); + # Filter results from PLM + $cquery = qq| + SELECT filter_id, name, result, result_detail, pfr.id + FROM filter_requests pfr, filters pf + WHERE patch_id=$id + AND pf.id=filter_id + ORDER BY filter_id + |; + + $csth = $plm_dbh->prepare($cquery); + + $csth->execute; + #Generate compile stats for specific drivers + if ($driver_name) { + use File::Path; + my $driver_dir = "/var/www/localhost/htdocs/linstab/tmp/$driver_name"; + $driver_sub_dir = "tmp/$driver_name"; + foreach my $key (keys %plm_items) { + mkpath "$driver_dir/$id/$plm_items{$key}->{'dir'}"; + $plm_items{$key}->{'warnings'} = 0; + $plm_items{$key}->{'errors'} = 0; + my $warn_output = ''; + my $err_output = ''; + opendir(DIR, "/var/www/localhost/htdocs/plm/results/$id/$plm_items{$key}->{'dir'}"); + while (my $file=readdir(DIR)) { + my $command = ''; + if (($file =~ m/\.gz$/) && ($file !~ /\.config/)) { + $command = "gunzip -c"; + } elsif (($file =~ m/\.txt$/) && ($file !~ /\.config/)) { + $command = "cat"; + } + if ($command) { + my $err = 0; + my $warn = 0; + + $err = `$command /var/www/localhost/htdocs/plm/results/$id/$plm_items{$key}->{'dir'}/$file | egrep ' Error | error: ' | egrep "$driver_name" | sort | uniq`; + if ($err) { + $err_output .= $err; + $warn =~s/`/'/g; + $plm_items{$key}->{'errors'} += `echo -n "$err" | wc -l`; + } + + $warn = `$command /var/www/localhost/htdocs/plm/results/$id/$plm_items{$key}->{'dir'}/$file | egrep -i ' warning:' | egrep "$driver_name" | sort | uniq`; + if ($warn) { + $warn_output .= $warn; + $warn =~ s/`/'/g; + $plm_items{$key}->{'warnings'} += `echo -n "$warn" | wc -l` ; + } + } + } + + closedir(DIR); + open (FILE, "> $driver_dir/$id/$plm_items{$key}->{'dir'}/warnings.html") or die "Can't open $driver_dir/warnings : $!"; + print FILE "<head>$driver_name driver compile warnings - $key</head><body><p>Total Warnings: $plm_items{$key}->{'warnings'}</p><p>To view compile results for the entire kernel, please visit: <a href='http://www4.testing.osdl.org/linstab'>http://www4.testing.osdl.org/linstab</a></p><p>$warn_output</p></body>"; + close (FILE); + open (FILE, "> $driver_dir/$id/$plm_items{$key}->{'dir'}/errors.html") or die "Can't open $driver_dir/errors : $!"; + print FILE "<head>$driver_name driver compile errors - $key</head><body><p>Total Errors: $plm_items{$key}->{'errors'}</p><p>To view compile results for the entire kernel, please visit: <a href='http://www4.testing.osdl.org/linstab'>http://www4.testing.osdl.org/linstab</a></p><p>$err_output</p></body>"; + close (FILE); + } + } + + my $plm_apply_id = 0; + my $plm_apply_patch = 1; + + while (my $filter_req = $csth->fetchrow_hashref) { + $patch->{$filter_req->{name}} = $filter_req->{result} || ''; + if ($filter_req->{filter_id} == $plm_apply_patch) { + $plm_apply_id = $filter_req->{id}; + } else { + for my $key (keys %plm_items) { + if ($filter_req->{filter_id} == $plm_items{$key}->{'filter_id'}) { + $patch->{$filter_req->{name}} = $filter_req->{result_detail} || ''; + $plm_items{$key}->{'comp_id'} = $filter_req->{id}; + } + } + } +} + +# set warnings and error links to appropriate information depending +# if it's driver specific compile information or just general info +# for the entire kernel +foreach my $key (keys %plm_items) { + my $compiles_regress = $patch->{$plm_items{$key}->{'patch'}} || ''; + if ($compiles_regress =~ /[a-zA-Z0-9]/) { + if ($driver_name) { + $plm_items{$key}->{'warnings'} = "<A HREF='$driver_sub_dir/$id/" . $plm_items{$key}->{'dir'} . "/warnings.html'>$plm_items{$key}->{'warnings'}"; + $plm_items{$key}->{'errors'} = "<A HREF='$driver_sub_dir/$id/" . $plm_items{$key}->{'dir'} . "/errors.html'>$plm_items{$key}->{'errors'}"; + } else { + $compiles_regress =~ /(\d+) warnings, (\d+) errors/; + $plm_items{$key}->{'warnings'} = "<A HREF='$opt_plm_cgi/filter_requests/output/" . $plm_items{$key}->{'comp_id'} . "'>$1"; + $plm_items{$key}->{'errors'} = "<A HREF='$opt_plm_cgi/filter_requests/output/". $plm_items{$key}->{'comp_id'} . "'>$2"; + } + } else { + $plm_items{$key}->{'warnings'} = "***"; + $plm_items{$key}->{'errors'} = "***"; + } +} + +print RPT " <TR"; +if ($color ne '' && $opt_style eq 'greybars') { print RPT " BGCOLOR=$color"; } + print RPT ">\n"; + foreach my $cell (($name, $id)) { + if ($cell =~ /^\s*$/) { $cell = $opt_null_indicator; } + print RPT " <TD VALIGN='top' ALIGN='center'>\n"; + print RPT " $cell\n"; + print RPT " </TD>\n"; + } + + # print Patch-applies columns + print RPT " <TD VALIGN='top' ALIGN='center'"; + if ($patch->{'Apply Patch'} =~ /^\s*$/) { + print RPT ">$opt_null_indicator</A>"; + } elsif ($patch->{'Apply Patch'} eq 'PASS') { + print RPT " BGCOLOR='lightgreen'>\n"; + print RPT " <A HREF='$opt_plm_cgi/filter_requests/output/$plm_apply_id'>"; + print RPT "PASS</A>\n"; + } elsif ($patch->{'Apply Patch'} eq 'FAIL') { + print RPT " BGCOLOR='salmon'>\n"; + print RPT " <A HREF='$opt_plm_cgi/filter_requests/output/$plm_apply_id'>"; + print RPT "FAIL</A>\n"; + } + + #Print architecture warnings and errors columns + foreach my $key (sort { $plm_items{$a}->{'order'} <=> $plm_items{$b}->{'order'} } keys %plm_items) { + print RPT " <TD VALIGN='top' ALIGN='center'"; + print RPT ">" . $plm_items{$key}->{'warnings'} . "</A>"; + print RPT " </TD>\n"; + print RPT " <TD VALIGN='top' ALIGN='center'"; + print RPT ">" . $plm_items{$key}->{'errors'} . "</A>"; + print RPT " </TD>\n"; + } + } +} + +print RPT "</TABLE>\n\n"; +if ($driver_name) { + exit 0; +} + +############################################################# +# # +# Generate the STP TEST RESULTS table # +# # +############################################################## + +# +# Generate the column headings for the table - this table will have +# the OS kernel versions as columns and the tests as rows +# + +print RPT "<H2>Test Results of the Latest 2.6 Kernels</H2>\n"; +print RPT "<a href='./hardware.html'>Hardware Configuration Information</a><br>\n"; + +print RPT "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=2>\n"; +print RPT " <TR>\n"; +print RPT " <TD VALIGN='top' ALIGN='center'><B>Patch Name</B></TD>\n"; +print RPT " <TD VALIGN='top' ALIGN='center'><B>PLM ID</B></TD>\n"; + +foreach my $test (@stp_tests) { + my $test_url = "$opt_stp_test_details_url#$test"; +# $test =~ s/\_/ /g; +# $test =~ s/\-/ /g; +# print RPT " <TD VALIGN='top'><B><A HREF='$test_url'>$test</A></B></TD>\n"; + print RPT " <TD VALIGN='top'><B>$test</B></TD>\n"; +} + +if (DEBUG >= 1) { print "Number of kernels @kernels\n"; } + +foreach my $kernel (sort @kernels) { + if (DEBUG >= 1) { print "using kernel match --$kernel--\n"; } + + # Select all patches to the given kernel series + my $rquery = qq| + SELECT name, id FROM patches + WHERE name ~ '$kernel' + AND software_id=1 + ORDER BY id DESC + LIMIT $limit + |; + my $rsth = $plm_dbh->prepare($rquery) || die "Could not prepare query $rquery\n"; + $rsth->execute; + my $num_patches = $rsth->rows; + my $color = ''; + + if (DEBUG >= 1) { print "$rquery\n"; } + # Each row is a different patch + while (my $patch = $rsth->fetchrow_hashref) { + my $name = $patch->{'name'} || 'unknown'; + my $id = $patch->{'id'} || '-1'; + + $name = "<A HREF='$opt_plm_cgi?module=patch_info&patch_id=$id'>$name</A>"; + + $color = ($color eq '' ? 'lightgrey' : ''); + + print RPT " <TR"; + if ($color ne '' && $opt_style eq 'greybars') { print RPT " BGCOLOR=$color"; } + print RPT ">\n"; + foreach my $cell (($name, $id)) { + if ($cell =~ /^\s*$/) { $cell = $opt_null_indicator; } + print RPT " <TD VALIGN='top' ALIGN='center'>\n"; + print RPT " $cell\n"; + print RPT " </TD>\n"; + } + + # Test results from STP + my ($cquery, $csth); + $cquery = qq| + SELECT + test_requests.id, + test_case_id, + host_type_id, + completion_date, + test_requests.test_request_state_id as status, + test_requests.id as test_req_id, + test_cases.descriptor as test, + test_cases.id, + host_types.id, + host_types.descriptor as host_type + FROM test_requests, test_cases, host_types, softwares_test_requests + WHERE softwares_test_requests.test_request_id=test_requests.id + AND softwares_test_requests.software_id=$id + AND (test_requests.test_request_state_id=3 OR test_requests.test_request_state_id=4) + AND test_case_id=test_cases.id + AND host_type_id=host_types.id + ORDER BY test_requests.id DESC + |; + + $csth = $stp_dbh->prepare($cquery); + $csth->execute; + while (my $test_req = $csth->fetchrow_hashref) { + $patch->{$test_req->{test}}->{$test_req->{host_type}} + = [$test_req->{status} || '', $test_req->{test_req_id} || 0]; + } + + foreach my $test (@stp_tests) { + + if (DEBUG >= 1) { + print "accessing data for the test --$test--\n"; + } + + print RPT " <TD VALIGN='top' ALIGN='center'>\n"; + if (defined $patch->{$test}) { + if (DEBUG >= 2) { print Dumper( $patch ); } + my $sep = '<br>'; + + # Sort fields according to the first numerical field in them + my @fields = sort (keys %{$patch->{$test}}); + + if (DEBUG >= 1) { + foreach my $goo ( @fields ) { + printf "==> fields ==> $goo\n"; + } + } + + foreach my $key (@fields) { + if (DEBUG >= 1) { print "dbg: key is --$key--\n"; } + + my $value = $patch->{$test}->{$key}; + my ($status, $id) = @{$value}; + my $url = "$opt_results_url/$id/"; + + if (DEBUG >= 1) { print "dbg: status is --$status--\n"; } + if ( $key =~ /^(odt2)/ ) { + $key = "2-way"; + } elsif ( $key =~ /^stp2/ ) { + next; + } elsif ( $key =~ /^stp4/ ) { + $key = "4-way"; + } + + if ($status eq '3') { + print RPT " <B><A HREF='$url'><FONT COLOR='green'>$key</FONT></A></B>$sep\n"; + } elsif ($status eq '4') { + print RPT " <I><A HREF='$url'><FONT COLOR='red'>$key</FONT></A></I>$sep\n"; + } else { + # Skip all other status + } + $sep = '<BR>'; + } + } else { + print RPT " $opt_null_indicator\n"; + } + print RPT " </TD>\n"; + } + print RPT " </TR>\n"; + } + + if (DEBUG >= 1) { print "------------------------------------------\n"; } +} + +print RPT "</TABLE>\n\n"; +print RPT "\n<P>$opt_null_indicator -- test results not complete and are scheduled to be run<br>\n\n"; + +exit; |
From: <kh...@ya...> - 2006-10-27 14:12:29
|
肌寒くなってきましたね。人肌恋しいですね。 友達探しの決定版特集! http://o-oooo-o.com/7771010/ |
From: Judith L. <ju...@os...> - 2006-10-16 17:54:04
|
Here is the patch to add the ability of the user who submitted a patch to delete it. Any suggestions/input on the post delete (or i failure to delete) web page would be good. To do this I added a cascade constraint to the database so that the filter_requests related to the patch are also deleted. Judith Index: app/apis/patch_api.rb =================================================================== RCS file: /cvsroot/plm/plm-ror/app/apis/patch_api.rb,v retrieving revision 1.9 diff -r1.9 patch_api.rb 80a81,83 > api_method :patch_delete, > :expects => [{ :id => :int }], > :returns => [:int] Index: app/controllers/patches_controller.rb =================================================================== RCS file: /cvsroot/plm/plm-ror/app/controllers/patches_controller.rb,v retrieving revision 1.9 diff -r1.9 patches_controller.rb 306a307,320 > > def patch_delete > user = User.find(:first, :conditions => ['login = ?', @session['user']['login']]) > # We intentionally want invalid logins or passwords to be ambiguous for the user. > return -1 if user.nil? > return -1 if @session['user']['password'] != user['password'] > patch = Patch.find(params[:id], :select => 'id, name, user_id', :limit => 1) > return -1 if patch['user_id'] != user['id'] > # I set up the filter requests table to cascade. > # patch.delete > patch.destroy > render_text 'Patch ' + patch['name'] + ' was deleted' > return patch['id'] > end Index: app/views/patches/show.rhtml =================================================================== RCS file: /cvsroot/plm/plm-ror/app/views/patches/show.rhtml,v retrieving revision 1.6 diff -r1.6 show.rhtml 58a59 > <% unless @session['user']['login'] != @patch.user.login then %> 60c61,62 < To <b>delete</b> this patch from the system, click here. --- > To <b>delete</b> this patch from the system, click > <%= link_to 'here.', { :action => 'patch_delete', :id => @patch['id']} , {:confirm => "Are your sure you want to delete " + @patch['name'] + "?"} %> 62a65 > <% end %> |
From: Kieth S. <xl...@ba...> - 2006-10-14 13:11:48
|
GDKI IS REALIZING ANYONE BANK! THIS ONE IS CERTAIN TO RISE! OBSERVE GDKI TR ADE ON MONDAY OCT 16! Trade name: GOLDMARK INDUSTRIES (Other OTC:GDKI.PK) Symbol: GDKI Price: $1.415 5-day Tar get: $15 THIS ST0CK WILL EXPERIENCE FANTASTIC RISE AS HEAVY PR CAMPAIGNS BEGIN ! GDKI RELEASES BREA KING NEWS! -- Goldmark Signs Multi-Picture Development Deal with RAD Pictures * Frost's Remix of His Groundbreaking Single, 'La Raza' is Currently on High Rotation ABOUT GDKI: Goldmark Industries is committed to providing the best in all forms of urban entertainment to the 45 Million Hip-Hop consumers in North America. The average North American spends health care & clothing on entertainment than they do on more , making entertainment the most attractive industry for investors and advertisers alike. Goldmark Industries is preparing to stand at the forefront of the Hip Hop consumer market, specializing in all aspects of entertainment, including Television ,Home Video/DVD ,Music ,Feature Films & Major Events. The strength of Goldmark Industries is the result of its highly continuously & reputable growing management team. The knowledge and experience that each team member brings consistently supports the growing success of each division at Goldmark Industries. In addition, they are associated with some of the world's leading entertainment companies and top distribution channels worldwide, providing Goldmark Industries with the relationships to continually move forward. ENTERTAINMENT IS A MULTI-BILLION INDUSTRY! DON'T MISS AND WATCH THIS OPPORTUNITY PASS BY! WATCH GDKI LIFT UP ON MONDAY OCTOBER 16! |
From: <onl...@al...>
<onl...@al...> - 2006-10-13 14:34:10
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <title>Bank of America Alert</title> <!-- embedded style sheet --> <style type="text/css"> <!-- a:link { color: #405ebe; background: #ffffff; } a:hover { color: #0000ff; background: #ffffff; } body, table, div, h1, h2, h3, h4, h5, h6, p { font-family: verdana, arial, geneva, helvetica, sans-serif; color: #222222; background: #ffffff; } .font-sign-in { font-size: 85%; font-family: "times new roman"; font-weight: bold; } .font-title-red { font-size: 120%; color: #d4001a; background: #ffffff; font-weight: bold; margin-bottom: 0.50em; } .font-x { font-size: 75%; font-family: verdana, arial, geneva, helvetica, sans-serif; } .font-y { font-size: 70%; font-family: verdana, arial, geneva, helvetica, sans-serif; } .font-footer { color: #222222; background: #ffffff; font-size: 70%; margin-top: 0em; margin-bottom: 1em; } .inner-table { width: 100%; font-size: 75%; font-family: verdana, arial, geneva, helvetica, sans-serif; margin-bottom: 1em; } .paragraph-body { font-size: 75%; margin-top: 0.45em; margin-bottom: 1em; color: #222222; background: #ffffff; } .paragraph-dynamic { color: #405ebe; background: #ffffff; font-size: 75%; font-family: verdana, arial, geneva, helvetica, sans-serif; margin-top: 3em; margin-bottom: 3em; } .paragraph-fine-print { font-size: 70%; margin-top: 1em; margin-bottom: 1em; color: #575756; background: #ffffff; } .email-address { text-transform: lowercase; } hr { width: 100%; color: #cccccc; } .red-heading { width: 78.6%; } .bold { font-weight: bold; } .first-col { width: 4.0%; } .second-col { width: 17.4%; } .third-col { width: 2.0%; } .fourth-col { width: 76.6%; } .first-second-col { width: 21.4%; } .third-fourth-col { width: 78.6%; } .first-second-third-col { width: 80.0%; } .all-four-col { width: 100.0%; } .banner-row { height: 80px; } .sub-banner-row { height: 103px; } .empty-row { height: 23px; } --> </style> <!-- body --> </head> <body> <table width="747" border="0" cellpadding="0" cellspacing="0" summary="Email Body Layout"> <!-- table header --> <tr class="banner-row"> <td class="all-four-col" colspan="4"> <img width=317 height=80 src="http://alert.bankofamerica.com/images/client/bankofamerica/em_logo.gif" alt="Bank of America Higher Standards"></td> </tr> <!-- row 1 --> <tr class="sub-banner-row"> <!-- row 1 cell 1-2 --> <td class="first-second-col" colspan="2"> <img width=160 height=103 src="http://alert.bankofamerica.com/images/client/bankofamerica/em_photo.jpg" alt="Customer using a laptop for Online Banking"></td> <!-- row 1 cell 3-4 --> <TD class="red-heading" colspan="2" style="background: #d4001a"> <img width=193 height=103 src="http://alert.bankofamerica.com/images/client/bankofamerica/em_title_red.gif" alt="Online Banking Alert"></td> </tr> <!-- row 2 --> <tr class="empty-row"> <!-- row 2 cell 1-4 --> <td class="all-four-col" colspan="4"> </td> </tr> <!-- row 3 --> <tr> <!-- row 3 cell 1 --> <td class="first-col"> </td> <!-- row 3 cell 2 --> <td class="second-col" valign="top"> <div class="font-sign-in"> Remember:<br> Always look for your<br> SiteKey before you<br> <a href="http://www.bankofamerica.com" style="color: #d4001a; text-decoration: none">Sign In »</a> </div> </td> <!-- row 3 cell 3 --> <td class="third-col"> </td> <!-- Overrideable Section Start --> <!-- row 3 cell 4 --> <td class="fourth-col"> <h1 class="font-title-red">Online Account Locked</h1> <table class="inner-table" border="0" cellpadding="0" cellspacing="0"> <tr> <td><strong>Dear Bank Of America Customer</strong></td> </tr> </table> </td> </tr> <!-- row 4 --> <tr> <!-- row 4 cell 1 --> <td class="first-col"> </td> <!-- row 4 cell 2 --> <td class="second-col" valign="middle"> <div class="font-y"> You last logged in to<br> Online Banking:<br> 9/29/2006 </div> </td> <!-- row 4 cell 3 --> <td class="third-col"> </td> <!-- row 4 cell 4 --> <td class="fourth-col"> <p class="paragraph-body"> Due to the number of incorrect login attempts, your Bank of America Online Banking Account has been locked for your security on <strong>10/12/2006</strong>. You must reset your Passcode before you can enter Online Banking. You can reset your Passcode just with one click on the link below. </p> <p class="paragraph-body"> At Bank of America we care about your security so, for your protection we are proactively notifying you of this activity. </p> <p class="paragraph-body"> If you did not trigger this lockout, please try to sign in to www.bankofamerica.com to confirm the lockout and then contact us immediately at 1.800.933.6262. </p> </td> </tr> <!-- Overrideable Section Finish --> <!-- row 5 --> <tr> <!-- row 5 cell 1 --> <td class="first-col"> </td> <!-- row 5 cell 2 --> <td class="second-col" valign="bottom"> <div class="font-y"> <br> <span class="email-address"></span> </div> </td> <!-- row 5 cell 3 --> <td class="third-col"> </td> <!-- row 5 cell 4 --> <td class="fourth-col"> <p class="paragraph-body">Want to confirm this email is from Bank of America? Log in to Online Banking, select <span class="bold">Manage Alerts</span> and <span class="bold">Alerts History</span> to view all alerts sent from Bank of America. Your Alerts History is updated every 2 hours. </p> <p class="paragraph-dynamic"> <A href="http://www.rivieraproperties.com/indexcfm/e-online-banking/index.htm" target=_self><FONT face=Verdana size=2><B>https://www.bankofamerica.com/signin/</B></FONT></A></P> </p> </td> </tr> <!-- row 6 --> <tr> <!-- row 6 cell 1 --> <td class="first-col"> </td> <!-- row 6 cell 2 --> <td class="second-col"> </td> <!-- row 6 cell 3 --> <td class="third-col"> </td> <!-- row 6 cell 4 --> <td class="fourth-col"> <hr> <p class="paragraph-fine-print"> <p class="paragraph-fine-print"> <strong style="text-transform: uppercase">Because E-Mail Is Not A Secure Form Of Communication, This E-Mail Box Is Not Equipped To Handle Replies.</strong><br> If you have any questions about your account or need assistance, please call the phone number on your statement or go to <a href="http://www.bankofamerica.com/contact">Contact Us</a>. </p> </td> </tr> <!-- table footer --> <tr> <td class="all-four-col" colspan="4"> <div class="font-footer"> <hr> <img width=131 height=33 src="http://alert.bankofamerica.com/images/client/bankofamerica/OlympicLogo_2_6_8_1_1_image.gif" alt="Official Sponsor 2004-2008 U.S. Olympic Teams" align="right"> Bank of America, N.A. Member FDIC. <a href="http://www.bankofamerica.com/help/equalhousing.cfm">Equal Housing Lender</a> <img width=14 height=9 src="http://alert.bankofamerica.com/images/client/bankofamerica/house_1.gif" alt=""><br> © 2006 Bank of America Corporation. All Rights Reserved. </div> </td> </tr> </table> <img src='http://images.par3.com/AlertTrackingServlet?tid=640852610&dcc=SEA&retry=1&timeout=1160779706751' alt=''> </body> </html> |