From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH OSSTEST v2 10/20] standalone: Introduce "HostGroups" for use in OSSTEST_CONFIG Date: Wed, 29 Oct 2014 10:41:32 +0000 Message-ID: <1414579302-6692-10-git-send-email-ian.campbell@citrix.com> References: <1414579268.29975.13.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1414579268.29975.13.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com Cc: Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org This saves repeating identical HostProp and HostFlags for sets of identical machines. e.g. HostGroupProp_cubietruck_LinuxSerialConsole ttyS0 HostGroupProp_cubietruck_Build_Make_Flags -j12 HostGroupProp_cubietruck_XenSerialConsole dtuart HostGroupProp_cubietruck_XenDTUARTPath /soc@01c00000/serial@01c28000 HostGroupFlags_cubietruck suite-wheezy,equiv-cubietruck,need-kernel-deb-armmp,no-di-kernel,need-uboot-bootscr HostGroup_braque cubietruck HostProp_braque_Fqdn braque.uk.xensource.com HostGroup_picaso cubietruck HostProp_picaso_Fqdn picaso.uk.xensource.com HostGroup_metzinger cubietruck HostProp_metzinger metzinger.uk.xensource.com HostGroup_gleizes cubietruck HostProp_gleizes_Fqdn gleizes.uk.xensource.com Signed-off-by: Ian Campbell --- v2: Set HostGroup props after DB Clarify docs --- Osstest/HostDB/Static.pm | 2 ++ Osstest/TestSupport.pm | 19 ++++++++++++++++++- README | 22 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/Osstest/HostDB/Static.pm b/Osstest/HostDB/Static.pm index e786761..076da62 100644 --- a/Osstest/HostDB/Static.pm +++ b/Osstest/HostDB/Static.pm @@ -58,6 +58,8 @@ sub get_flags ($$) { #method }; $process->('HostFlags'); + $process->("HostGroupFlags_$ho->{Properties}{HostGroup}") + if $ho->{Properties}{HostGroup}; $process->("HostFlags_$ho->{Name}"); return $flags; diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index d66708e..a1c2947 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -766,7 +766,15 @@ sub selecthost ($) { $ho->{Properties}{$pn} = $val; }; - # First, we use the config file's general properites as defaults + # First, set the prop group if any. + foreach my $k (keys %c) { + next unless $k =~ m/^HostGroup_([-a-z0-9]+)$/; + next unless $1 eq $name; + $setprop->("HostGroup", $c{$k}); + logm("Host $name is in HostGroup $ho->{Properties}{HostGroup}"); + } + + # Next, we use the config file's general properites as defaults foreach my $k (keys %c) { next unless $k =~ m/^HostProp_([A-Z].*)$/; $setprop->($1, $c{$k}); @@ -775,6 +783,15 @@ sub selecthost ($) { # Then we read in the HostDB's properties $mhostdb->get_properties($name, $ho->{Properties}); + # Next, we set any HostGroup based properties + if ( $ho->{Properties}{HostGroup} ) { + foreach my $k (keys %c) { + next unless $k =~ m/^HostGroupProp_([-a-z0-9]+)_(.*)$/; + next unless $1 eq $ho->{Properties}{HostGroup}; + $setprop->($2, $c{$k}); + } + } + # Finally, we override any host-specific properties from the config foreach my $k (keys %c) { next unless $k =~ m/^HostProp_([-a-z0-9]+)_(.*)$/; diff --git a/README b/README index 5c5f347..5ba695d 100644 --- a/README +++ b/README @@ -333,6 +333,28 @@ HostProp__TftpScope Defines the Tftp scope (i.e. subnet) where this host resides. See "TftpFoo_ and TftpFoo" below. +HostFlags_ + Defines a set of flags for the host. Flags is a list separated by + whitespace, comma or semi-colon. A flag can be unset by prepending + a !. Only used in standalone mode. + +HostGroup_ + Defines a group of similar hosts of which is a + member. This can then be used with HostGroupProp and HostGroupFlags + +HostGroupProps__ + Equivalent to writing HostProp__ for every testbox + which declares HostGroup__. Allows setting a set of + common properties for a group of similar machines. These settings + take precedence over the database provided settings, but are + themselves overridden by host-specific properties. + +HostGroupFlags_ + Equivalent to writing HostFlags_ for every testbox which + declares HostGroup__. Allows setting a set of + common flags for a group of similar machines. These flags are + merged with the host specific flags. Only used in standalone mode. + DebianPreseed Text to add to the debian-installer preseed file. Optional but you will need to set some NTP servers here if your firewall -- 2.1.1