From 9481ea98defe70b6ab11a789cea00aee0b7462ed Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Mon, 23 Oct 2017 10:57:00 +0100 Subject: [PATCH] HostDB: introduce set_property MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit And provide a helper in TestSupport to use it. This allows osstest to set host properties from test script themselves (instead of using the mg-hosts clu). Note that the setting of host properties is limited to flights with intended blessing real, and it will fail for any other blessing. Signed-off-by: Roger Pau Monné Acked-by: Ian Jackson --- Changes since v12: - Use intended blessing in the error message. Changes since v2: - Die if attempting to modify a host prop with intended blessing != real. --- Osstest/HostDB/Executive.pm | 23 +++++++++++++++++++++++ Osstest/HostDB/Static.pm | 7 +++++++ Osstest/TestSupport.pm | 8 +++++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Osstest/HostDB/Executive.pm b/Osstest/HostDB/Executive.pm index 300178b..d42250f 100644 --- a/Osstest/HostDB/Executive.pm +++ b/Osstest/HostDB/Executive.pm @@ -51,6 +51,29 @@ END } } +sub set_property($$$$) { + my ($hd, $ho, $prop, $val) = @_; + my $rmq = $dbh_tests->prepare(<prepare(<execute($ho->{Name}, $prop); + if (length $val) { + $addq->execute($ho->{Name}, $prop, $val); + } + }); +} + sub get_flags ($$) { my ($hd, $ho) = @_; diff --git a/Osstest/HostDB/Static.pm b/Osstest/HostDB/Static.pm index 60f5d3c..3191c56 100644 --- a/Osstest/HostDB/Static.pm +++ b/Osstest/HostDB/Static.pm @@ -40,6 +40,13 @@ sub get_properties ($$$) { #method my ($hd, $name, $hp) = @_; } +sub set_property($$$$) { + my ($hd, $ho, $prop, $val) = @_; + + die + "Cannot set property in standalone mode for $ho->{Name} $prop = $val\n"; +} + sub get_flags ($$) { #method my ($hd, $ho) = @_; diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index bdfabc8..4ca19d4 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -80,7 +80,7 @@ BEGIN { get_target_property get_host_native_linux_console hostnamepath hostnamepath_list power_state power_cycle power_cycle_sleep - serial_fetch_logs + serial_fetch_logs set_host_property propname_massage propname_check get_stashed open_unique_stashfile compress_stashed @@ -1150,6 +1150,12 @@ sub get_host_property ($$;$) { return defined($val) ? $val : $defval; } +sub set_host_property ($$$) { + my ($ho,$prop,$val) = @_; + + $mhostdb->set_property($ho, $prop, $val); +} + sub get_target_property ($$;$); sub get_target_property ($$;$) { my ($ho, $prop, $defval) = @_; -- 2.39.5