@@ -51,6 +51,29 @@ END
}
}
+sub set_property($$$$) {
+ my ($hd, $ho, $prop, $val) = @_;
+ my $rmq = $dbh_tests->prepare(<<END);
+ DELETE FROM resource_properties
+ WHERE restype='host' and resname=? AND name=?
+END
+ my $addq = $dbh_tests->prepare(<<END);
+ INSERT INTO resource_properties (restype,resname,name,val)
+ VALUES ('host', ?,?,?)
+END
+ my $blessing = intended_blessing();
+
+ die "Attempting to modify host props with blessing $blessing != real"
+ if $blessing ne "real";
+
+ db_retry($dbh_tests, [qw(resources)], sub {
+ $rmq->execute($ho->{Name}, $prop);
+ if (length $val) {
+ $addq->execute($ho->{Name}, $prop, $val);
+ }
+ });
+}
+
sub get_flags ($$) {
my ($hd, $ho) = @_;
@@ -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) = @_;
@@ -80,7 +80,7 @@ BEGIN {
get_target_property get_host_native_linux_console
hostnamepath hostnamepath_list set_runtime_hostflag
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
@@ -1183,6 +1183,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) = @_;
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é <roger.pau@citrix.com> --- 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(-)