All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Jackson <ian.jackson@eu.citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Robert Ho <robert.hu@intel.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: [OSSTEST PATCH 13/26] selecthost: Support nested hosts (guests which are also hosts)
Date: Fri, 25 Sep 2015 20:15:09 +0100	[thread overview]
Message-ID: <1443208522-24905-5-git-send-email-ian.jackson@eu.citrix.com> (raw)
In-Reply-To: <1443208522-24905-1-git-send-email-ian.jackson@eu.citrix.com>

We introduce a new syntax: instead of a hostname (which might appear
in a command line argument to a ts-* script and hence be passed to
selecthost, or which might be in a runvar), we now support
<hostspec>:<domname>.

Such `hosts' (let us refer to such a thing as an L1, although in
principle further nesting may be possible) are expected to be
dynamically created.  So they do not have flags and properties in the
configuration (or in an Executive instance's database).

The IP address is determined dynamically from the leases file.  If the
L1 is not running, then no IP address may be found.  This is not an
error.  Users of this facility will need to make sure that ts-*
scripts which are unaware of the L1's special status are only invoked
when it is known that the L1 is up and has obtained its IP address.

`Power cycling' the L1 will be done by VM control operations in the
L0; this will come in a subsequent patch.

`Serial access' to the L1 guest will likewise need to be done via the
console arrangements in L0.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
v14: New patch
---
 Osstest/TestSupport.pm |   37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 8f0122c..9b10602 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -801,6 +801,7 @@ sub power_state ($$) {
 
 #---------- host selection and properties ----------
 
+sub selecthost ($);
 sub selecthost ($) {
     my ($ident) = @_;
     # must be run outside transaction
@@ -815,8 +816,12 @@ sub selecthost ($) {
     # which means ignore <ident> except for logging purposes etc.
     # and use <hostspec>
     #
-    # <hostspec> uis <hostname> which means use that host (and all
+    # <hostspec> can be <hostname> which means use that host (and all
     # its flags and properties from the configuration and database)
+    # OR
+    # <hostspec> can be <parent_identspec>:<domname> meaning use the
+    # Xen domain name <domname> on the host specified by
+    # <parent_identspec>, which is an <identspec> as above.
 
     my $name;
     if ($ident =~ m/=/) {
@@ -832,6 +837,7 @@ sub selecthost ($) {
         Ident => $ident,
         Name => $name,
         TcpCheckPort => 22,
+        NestingLevel => 0,
         Info => [],
     };
     if (defined $job) {
@@ -839,6 +845,35 @@ sub selecthost ($) {
 					  $c{DebianSuite});
     }
 
+    #----- handle hosts which are themselves guests (nested) -----
+
+    if ($name =~ s/^(.*)://) {
+	my $parentname = $1;
+	my $parent = selecthost($parentname);
+	my $child = selectguest($name,$parent);
+	$child->{Ident} = $ho->{Ident};
+	$child->{Info} = [ "in", $parent->{Name}, @{ $parent->{Info} } ];
+	$child->{NestingLevel} = $parent->{NestingLevel}+1;
+
+	# $child->{Power} = 'guest';   todo
+	power_cycle_host_setup($child);
+
+	$child->{Properties}{Serial} = 'noop'; # todo
+	serial_host_setup($child);
+
+	my $msg = "L$child->{NestingLevel} host $child->{Ident}:";
+	$msg .= " guest $child->{Guest} (@{ $child->{Info} })";
+	$msg .= " $child->{Ether}";
+
+	my $err = guest_check_ip($child);
+	$msg .= " ".(defined $err ? "<no-ip> $err" : $child->{Ip});
+
+	logm($msg);
+
+	# all the rest of selecthost is wrong for this case
+	return $child;
+    }
+
     #----- calculation of the host's properties -----
 
     $ho->{Properties} = { };
-- 
1.7.10.4

  parent reply	other threads:[~2015-09-25 19:16 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-25 11:36 [OSSTEST PATCH v14 PART 1 0/9] Nested HVM preparation patches Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 1/9] Tcl: Provide lunappend Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 2/9] Debian grub2: Optimize and re-format submenu parsing Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 3/9] Debian grub2: Correct a mistake in Xen entry parsing pattern Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 4/9] Debian HVM guests: Comment out CDROM entry in HVM guest VM Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 5/9] Debian HVM guests: Honour guest disk and ram size runvars Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 6/9] Debian HVM guests: Honour enable_nestedhvm guest runvar Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 7/9] Host install: Break out host_install_postboot_complete Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 8/9] Host install: Break out target_core_dump_setup Ian Jackson
2015-09-25 11:37 ` [OSSTEST PATCH 9/9] Host install: Move target_core_dump_setup call Ian Jackson
2015-09-25 19:15 ` [OSSTEST PATCH v14 PART 2 10-26/26] Nested HVM testing Ian Jackson
2015-09-25 19:15   ` [OSSTEST PATCH 10/26] cs-adjust-flight: Add some missing doc comment info Ian Jackson
2015-09-28 10:00     ` Ian Campbell
2015-09-25 19:15   ` [OSSTEST PATCH 11/26] cs-adjust-flight: Allow adjusting "this" flight Ian Jackson
2015-09-28 10:01     ` Ian Campbell
2015-09-25 19:15   ` [OSSTEST PATCH 12/26] selecthost: Minor cleanups Ian Jackson
2015-09-28 10:01     ` Ian Campbell
2015-10-31  2:16       ` Hu, Robert
2015-09-25 19:15   ` Ian Jackson [this message]
2015-09-28 10:10     ` [OSSTEST PATCH 13/26] selecthost: Support nested hosts (guests which are also hosts) Ian Campbell
2015-09-25 19:15   ` [OSSTEST PATCH 14/26] Nested hosts: Provide PDU power method Ian Jackson
2015-09-28 10:11     ` Ian Campbell
2015-10-31  2:31       ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 15/26] DhcpWatch::leases: Fix a reporting message Ian Jackson
2015-09-28 10:12     ` Ian Campbell
2015-10-12  3:07     ` Hu, Robert
2015-08-28 15:07       ` [OSSTest Nested v12 00/21] Introduction of netsted HVM test job Robert Ho
2015-08-28 15:07         ` [OSSTest Nested v12 01/21] Optimize and re-format previous code of 'submenu' parsing Robert Ho
2015-09-10 16:16           ` Ian Jackson
2015-09-11  7:29             ` Ian Campbell
2015-09-25 10:29               ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 02/21] Correct a mistake in setboot_grup2() of Xen entry parsing pattern Robert Ho
2015-09-10 16:20           ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 03/21] Allow runvars to specify guest disk and ram size (turning previous values into defaults) Robert Ho
2015-09-10 16:21           ` Ian Jackson
2015-09-25 10:35             ` Ian Jackson
2015-10-10  7:00               ` Hu, Robert
2015-10-13 10:41                 ` [OSSTest Nested v12 03/21] Allow runvars to specify guest disk and ram size (turning previous values into defaults) [and 2 more messages] Ian Jackson
2015-10-15  9:29                   ` Hu, Robert
2015-08-28 15:07         ` [OSSTest Nested v12 04/21] Comment out CDROM entry in HVM guest VM Robert Ho
2015-09-10 16:22           ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 05/21] Honour $xopts{ExtraConfig} and use it to enable nestedhvm Robert Ho
2015-09-10 16:26           ` Ian Jackson
2015-09-25 10:51             ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 06/21] Add new function of 'host_install_postboot_complete' Robert Ho
2015-09-10 16:29           ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 07/21] Replace 'start osstest-confirm-booted' code by function Robert Ho
2015-09-10 16:31           ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 08/21] Add new script to customize nested test configuration Robert Ho
2015-08-28 15:07         ` [OSSTest Nested v12 09/21] Wrapper and use core_dump_setup() for nested host and normal host to setup coredump sysctl Robert Ho
2015-09-10 17:23           ` Ian Jackson
2015-09-11  8:43             ` Ian Campbell
2015-09-11 14:04               ` Ian Jackson
2015-08-28 15:07         ` [OSSTest Nested v12 10/21] Add test job for nest test case Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 11/21] Tcl: Provide lunappend Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 12/21] sg-run-job: Declare Tcl (for the benefit of Emacs) Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 13/21] sg-run-job: Break out per-host-prep and per-host-finish Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 14/21] sg-run-job: Provide infrastructure for layers of nesting Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 15/21] Integrate Ian J. code and small corrections Robert Ho
2015-09-10 17:25           ` Ian Jackson
2015-08-28 15:08         ` [OSSTest Nested v12 16/21] Add PDU power method for nested L1 and L2 guest Robert Ho
2015-09-25 16:35           ` Ian Jackson
2015-10-12  3:04             ` Hu, Robert
2015-10-12  8:50               ` Ian Campbell
2015-08-28 15:08         ` [OSSTest Nested v12 17/21] Compose the main recipe of nested test job Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 18/21] After Xen install, configure its xenbr0 interface as dhcp Robert Ho
2015-08-28 15:08         ` [OSSTest Nested v12 19/21] Selecthost uses dynamic IP address if the host is not configured static IP Robert Ho
2015-09-25 16:59           ` Ian Jackson
2015-10-12  3:05             ` Hu, Robert
2015-08-28 15:08         ` [OSSTest Nested v12 20/21] Don't lvextend if actually no more space to extend Robert Ho
2015-09-16 14:27           ` Ian Jackson
2015-09-22 15:56             ` Ian Campbell
2015-09-22 16:05               ` Ian Jackson
2015-08-28 15:08         ` [OSSTest Nested v12 21/21] await_tcp(): check_ip for each loop iteration Robert Ho
2015-09-16 14:35           ` Ian Jackson
2015-09-16 14:37         ` [OSSTest Nested v12 00/21] Introduction of netsted HVM test job Ian Jackson
2015-09-17  4:58           ` Hu, Robert
2015-09-17  9:59             ` Ian Jackson
2015-10-31  2:50       ` [OSSTEST PATCH 15/26] DhcpWatch::leases: Fix a reporting message Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 16/26] target_check_ip: Rename and improve from guest_check_ip Ian Jackson
2015-09-28 10:15     ` Ian Campbell
2015-10-31  3:03       ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 17/26] await_tcp(): Run check_ip on each loop iteration Ian Jackson
2015-09-28 10:15     ` Ian Campbell
2015-10-31  3:05       ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 18/26] LVM: Break out lv_create Ian Jackson
2015-09-28 10:17     ` Ian Campbell
2015-10-12  7:42     ` Hu, Robert
2015-10-12  8:49       ` Ian Campbell
2015-10-14  2:35     ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 19/26] Toolstack::xl: Provide block_attach method Ian Jackson
2015-09-28 10:18     ` Ian Campbell
2015-10-13 10:34     ` Hu, Robert
2015-10-13 12:51       ` Ian Jackson
2015-09-25 19:15   ` [OSSTEST PATCH 20/26] sg-run-job: Break out per-host-prep and per-host-finish Ian Jackson
2015-09-28 10:19     ` Ian Campbell
2015-10-31  4:04       ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 21/26] sg-run-job: Provide infrastructure for layers of nesting Ian Jackson
2015-09-28 10:20     ` Ian Campbell
2015-10-29  7:23     ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 22/26] Nested HVM: Provide ts-nested-setup to help make L1 usable as a host Ian Jackson
2015-09-28 10:29     ` Ian Campbell
2015-09-25 19:15   ` [OSSTEST PATCH 23/26] Nested HVM: Provide test-nested recipe Ian Jackson
2015-09-28 10:30     ` Ian Campbell
2015-10-29  5:44     ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 24/26] Nested HVM: Add test job to appropriate flights Ian Jackson
2015-09-28 10:32     ` Ian Campbell
2015-09-25 19:15   ` [OSSTEST PATCH 25/26] ts-xen-install: Properly handle hosts without a static IP address Ian Jackson
2015-09-28 10:33     ` Ian Campbell
2015-10-31  5:32       ` Hu, Robert
2015-09-25 19:15   ` [OSSTEST PATCH 26/26] ts-xen-install: networking: Rename `nodhcp' to `ensurebridge' Ian Jackson
2015-09-28 10:33     ` Ian Campbell
2015-10-15  9:39     ` Hu, Robert
2015-10-15  9:58     ` Hu, Robert
2015-10-22  2:32       ` Hu, Robert
2015-10-23  6:16         ` Hu, Robert
2015-10-23  8:14           ` Ian Campbell
2015-10-23 13:25             ` Hu, Robert
2015-10-23 13:37               ` Ian Campbell
2015-10-25  2:45                 ` Hu, Robert
2015-10-26  7:05                   ` Hu, Robert
2015-10-26  9:43                   ` Hu, Robert
2015-10-26 16:29                     ` Ian Jackson
2015-10-27  2:44                       ` Hu, Robert
2015-09-28 10:36   ` [OSSTEST PATCH v14 PART 2 10-26/26] Nested HVM testing Ian Campbell
2015-10-12  3:35   ` Hu, Robert
2015-10-12  8:04     ` Hu, Robert
2015-10-12  8:56       ` Ian Campbell
2015-10-12  9:34         ` Hu, Robert
2015-10-12 10:03           ` Ian Campbell
2015-10-12 10:23             ` Hu, Robert
2015-10-12 10:47               ` Ian Campbell
2015-10-13  2:29                 ` Hu, Robert
2015-10-12  8:54     ` Ian Campbell
2015-11-02  3:44   ` Hu, Robert
2015-11-02  6:24   ` Hu, Robert
2015-11-04 16:59 ` [OSSTEST PATCH v15] Nested HVM Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1443208522-24905-5-git-send-email-ian.jackson@eu.citrix.com \
    --to=ian.jackson@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=robert.hu@intel.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.