From 62fdcbeaa5db9c2413a61f5f9a82d36835cb70bb Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Mon, 27 Oct 2014 14:05:44 +0100 Subject: controller: better connect with other utilities * controller/bin/dtf-controller.in (subcommand): Generate stdout and stderr files separately. (child_task): Generate '*.err' and '*.out' logs for subcommands. Call dtf-run-remote with --distro/--distro-version options. Call the dtf-result-stats finally and save its output to results.html. (main): Simple debugging info and comment adjusting. * controller/libexec/dtf-commit-results.in: Tak three arguments now. * controller/libexec/dtf-result-stats.in: Better read the 'tester/run' output. * controller/share/dtf-controller/ansible/playbooks/fedora.yml: Run the 'run --force' instead of 'run' on remote host. * controller/share/dtf-controller/results-stats-templates/html.tmpl React on exit_status 2. --- controller/libexec/dtf-commit-results.in | 9 +++++++-- controller/libexec/dtf-result-stats.in | 21 +++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) (limited to 'controller/libexec') diff --git a/controller/libexec/dtf-commit-results.in b/controller/libexec/dtf-commit-results.in index 6b33022..b1d5bf2 100644 --- a/controller/libexec/dtf-commit-results.in +++ b/controller/libexec/dtf-commit-results.in @@ -1,12 +1,15 @@ #!/bin/bash +## $ dtf-commit-results RESULTS SUBDIR [ DB ] + . "@sysconfdir@/dtf.sh" || exit 1 # argparse resultdir="$1" +subresultdir="$2" db="$DTF_DATABASE_DEFAULT" -test -n "$2" && db="$2" +test -n "$3" && db="$3" if test -z "$db" \ || test -z "$resultdir" \ @@ -16,4 +19,6 @@ then exit 1 fi -( cd "$resultdir" && tar -xf dtf.tar.gz && cp -r . "$db" ) +mkdir -p "$db/$subresultdir" || exit 1 + +( cd "$resultdir" && tar -xf dtf.tar.gz && cp -r . "$db/$subresultdir" ) diff --git a/controller/libexec/dtf-result-stats.in b/controller/libexec/dtf-result-stats.in index d4db46f..92fd45f 100644 --- a/controller/libexec/dtf-result-stats.in +++ b/controller/libexec/dtf-result-stats.in @@ -44,17 +44,26 @@ my $task_ids = {}; # go through *each* result directory my $olddir = getcwd; -for (`find "$workdir" -maxdepth 1 -type d`) { +for (`find "$workdir" -mindepth 1 -maxdepth 1 -type d | sort`) { chomp; chdir $_; my $run_results = {}; $run_results->{dirname} = basename($_); $run_results->{tasks} = {}; - $run_results->{exit_status} = 0; + + my $glob_result; + my $fdg; + if (not open $fdg, '<', "dtf/result.yml") { + $run_results->{exit_status} = 2; + } + else { + $run_results->{glob} = YAML::Syck::LoadFile($fdg); + $run_results->{exit_status} = $run_results->{glob}->{exit_status}; + } # go through each task - for (`find -maxdepth 1 -type f -name '*.result'`) { + for (`find dtf/tasks -type f -name '*.result'`) { chomp; (my $task_id = $_) =~ s/\.result$//; @@ -65,11 +74,7 @@ for (`find "$workdir" -maxdepth 1 -type d`) { open my $fd, '<', $yaml_file or die "can't open yaml file '$yaml_file'"; - my $config = YAML::Syck::LoadFile($fd); - if ($config->{exit_status} != 0) { - $run_results->{exit_status} = 1; - } - $run_results->{tasks}->{$task_id} = $config; + $run_results->{tasks}->{$task_id} = YAML::Syck::LoadFile($fd); } push @{$data}, $run_results; -- cgit