From d409914d13b88541402fe871d70e3dff9d738455 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= <glen@pld-linux.org>
Date: Mon, 2 Sep 2013 15:24:11 +0100
Subject: [PATCH 1/2] Differentiate between vserver host and guest.
RWMJ: Update documentation and tests.
---
tests/test-linux-vserver.sh | 3 ++-
virt-what.in | 5 +++++
virt-what.pod | 12 ++++++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/tests/test-linux-vserver.sh b/tests/test-linux-vserver.sh
index 40d75a5..7988f81 100755
--- a/tests/test-linux-vserver.sh
+++ b/tests/test-linux-vserver.sh
@@ -19,7 +19,8 @@
root=tests/linux-vserver
output="$(./virt-what --test-root=$root 2>&1)"
-expected="linux_vserver"
+expected="linux_vserver
+linux_vserver-guest"
if [ "$output" != "$expected" ]; then
echo "$0: test failed because output did not match expected"
diff --git a/virt-what.in b/virt-what.in
index f12c95b..422f6d0 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -147,6 +147,11 @@ fi
# Check for Linux-VServer
if cat "${root}/proc/self/status" | grep -q "VxID: [0-9]*"; then
echo linux_vserver
+ if grep -q "VxID: 0$" "${root}/proc/self/status"; then
+ echo linux_vserver-host
+ else
+ echo linux_vserver-guest
+ fi
fi
# Check for UML.
diff --git a/virt-what.pod b/virt-what.pod
index 98cd4af..bff2998 100644
--- a/virt-what.pod
+++ b/virt-what.pod
@@ -62,10 +62,22 @@ Status: confirmed by RWMJ using a Fedora guest running in z/VM
=item B<linux_vserver>
+This is printed for backwards compatibility with older virt-what which
+could not distinguish between a Linux VServer container guest and
+host.
+
+=item B<linux_vserver-guest>
+
This process is running in a Linux VServer container.
Status: contributed by Barış Metin
+=item B<linux_vserver-host>
+
+This process is running as the Linux VServer host (VxID 0).
+
+Status: contributed by Barış Metin and Elan Ruusamäe
+
=item B<lxc>
This process is running in a Linux LXC container.
--
1.8.3.1