]> xenbits.xensource.com Git - people/liuw/osstest.git/commitdiff
mg-allocate: In planner mode, pre-check the arguments
authorIan Jackson <ian.jackson@eu.citrix.com>
Thu, 17 Dec 2015 13:29:40 +0000 (13:29 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 5 Jan 2016 17:46:12 +0000 (17:46 +0000)
Now, attempting to allocate a nonexistent host fails immediately with
a sensible message, rather than queueing up and then reporting the
message only later:

mariner:testing.git> OSSTEST_CONFIG=/u/iwj/.xen-osstest/config:local-config.test-database_iwj ./mg-allocate -U 1h spong
2015-12-17 17:05:14 Z pre-checking resources (dry run)...
2015-12-17 17:05:14 Z (precheck) task 196916 static iwj@mariner: iwj@mariner manual
*** no candidates for spong! ***
mariner:testing.git>

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
mg-allocate

index 54a7af37b1e7ca1ad7f1db3d8ea3a2290cf98a81..3730c23a9306f3c623cd8fc95c992c020ed34a09 100755 (executable)
@@ -238,7 +238,8 @@ sub loggot {
        foreach @got;
 }
 
-sub execute () {
+sub execute (;$) {
+    my ($dryrun) = @_;
     my @got;
     db_retry($dbh_tests, \@all_lock_tables, sub {
 
@@ -259,10 +260,15 @@ sub execute () {
             }
         }
 
+       if ($dryrun) {
+           db_retry_abort();
+           return;
+       }
         if (!$allok) {
             die "allocation/deallocation unsuccessful\n";
         }
     });
+    return if $dryrun;
     loggot(@got);
     logm("done.");
 }
@@ -388,6 +394,11 @@ while (@ARGV && $ARGV[0] =~ m/^[-0-9]/) {
 }
 
 if ($duration) {
+    {
+       logm("pre-checking resources (dry run)...");
+       local $Osstest::TestSupport::logm_prefix = $logm_prefix.' (precheck)';
+       execute(1);
+    };
     plan();
 } else {
     execute();