* [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log
@ 2011-06-28 9:44 Qingtang Zhou
2011-06-28 9:45 ` [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file Qingtang Zhou
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Qingtang Zhou @ 2011-06-28 9:44 UTC (permalink / raw)
To: autotest; +Cc: kvm
Anaconda log will help us to analyse failure of installation.
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
---
client/tests/kvm/unattended/Fedora-10.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-11.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-12.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-13.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-14.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-8.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/Fedora-9.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/RHEL-3-series.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/RHEL-4-series.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/RHEL-5-series.ks | 35 ++++++++++++++++++++++++++
client/tests/kvm/unattended/RHEL-6-series.ks | 35 ++++++++++++++++++++++++++
11 files changed, 385 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/unattended/Fedora-10.ks b/client/tests/kvm/unattended/Fedora-10.ks
index 081d41a..49bdfbb 100644
--- a/client/tests/kvm/unattended/Fedora-10.ks
+++ b/client/tests/kvm/unattended/Fedora-10.ks
@@ -24,6 +24,41 @@ poweroff
@development-tools
ntpdate
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-11.ks b/client/tests/kvm/unattended/Fedora-11.ks
index c339220..17c5721 100644
--- a/client/tests/kvm/unattended/Fedora-11.ks
+++ b/client/tests/kvm/unattended/Fedora-11.ks
@@ -24,6 +24,41 @@ autopart
ntpdate
%end
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-12.ks b/client/tests/kvm/unattended/Fedora-12.ks
index c339220..17c5721 100644
--- a/client/tests/kvm/unattended/Fedora-12.ks
+++ b/client/tests/kvm/unattended/Fedora-12.ks
@@ -24,6 +24,41 @@ autopart
ntpdate
%end
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-13.ks b/client/tests/kvm/unattended/Fedora-13.ks
index c339220..17c5721 100644
--- a/client/tests/kvm/unattended/Fedora-13.ks
+++ b/client/tests/kvm/unattended/Fedora-13.ks
@@ -24,6 +24,41 @@ autopart
ntpdate
%end
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-14.ks b/client/tests/kvm/unattended/Fedora-14.ks
index e1323cd..f9fa144 100644
--- a/client/tests/kvm/unattended/Fedora-14.ks
+++ b/client/tests/kvm/unattended/Fedora-14.ks
@@ -25,6 +25,41 @@ ntpdate
dmidecode
%end
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-8.ks b/client/tests/kvm/unattended/Fedora-8.ks
index 9403191..1f45699 100644
--- a/client/tests/kvm/unattended/Fedora-8.ks
+++ b/client/tests/kvm/unattended/Fedora-8.ks
@@ -23,6 +23,41 @@ reboot
@development-tools
ntpdate
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/Fedora-9.ks b/client/tests/kvm/unattended/Fedora-9.ks
index a7d5399..a325657 100644
--- a/client/tests/kvm/unattended/Fedora-9.ks
+++ b/client/tests/kvm/unattended/Fedora-9.ks
@@ -24,6 +24,41 @@ poweroff
@development-tools
ntpdate
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/RHEL-3-series.ks b/client/tests/kvm/unattended/RHEL-3-series.ks
index 0c6d334..5012000 100644
--- a/client/tests/kvm/unattended/RHEL-3-series.ks
+++ b/client/tests/kvm/unattended/RHEL-3-series.ks
@@ -23,6 +23,41 @@ skipx
@ development-tools
ntp
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('/sbin/ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up')
diff --git a/client/tests/kvm/unattended/RHEL-4-series.ks b/client/tests/kvm/unattended/RHEL-4-series.ks
index 83ae918..9760f57 100644
--- a/client/tests/kvm/unattended/RHEL-4-series.ks
+++ b/client/tests/kvm/unattended/RHEL-4-series.ks
@@ -23,6 +23,41 @@ poweroff
@ development-tools
ntp
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/RHEL-5-series.ks b/client/tests/kvm/unattended/RHEL-5-series.ks
index 7ffd19f..cbfb171 100644
--- a/client/tests/kvm/unattended/RHEL-5-series.ks
+++ b/client/tests/kvm/unattended/RHEL-5-series.ks
@@ -25,6 +25,41 @@ kexec-tools
watchdog
ntp
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
diff --git a/client/tests/kvm/unattended/RHEL-6-series.ks b/client/tests/kvm/unattended/RHEL-6-series.ks
index 166c499..4b0629a 100644
--- a/client/tests/kvm/unattended/RHEL-6-series.ks
+++ b/client/tests/kvm/unattended/RHEL-6-series.ks
@@ -28,6 +28,41 @@ NetworkManager
ntpdate
watchdog
+%pre --interpreter /usr/bin/python
+import socket, os, sys
+
+try:
+ pid = os.fork()
+except OSError, e:
+ sys.exit(1)
+
+if pid > 0:
+ sys.exit(0)
+
+f = open("/tmp/anaconda.log", 'r')
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+
+os.close(sys.stderr.fileno())
+os.close(sys.stdout.fileno())
+
+sock.bind(('', 12322))
+sock.listen(1)
+
+buf = ""
+while True:
+ client, addr = sock.accept()
+ o = f.readlines(1024)
+ o = "".join(o)
+ if buf or o:
+ client.send(o)
+ data = client.recv(64)
+ if "ok" in data:
+ buf = ""
+ else:
+ buf += o
+ client.close()
+%end
+
%post --interpreter /usr/bin/python
import socket, os
os.system('dhclient')
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file
2011-06-28 9:44 [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Qingtang Zhou
@ 2011-06-28 9:45 ` Qingtang Zhou
2011-07-05 15:56 ` Lucas Meneghel Rodrigues
2011-06-28 9:45 ` [PATCH 3/3] KVM Test: Add get anaconda log config in config file Qingtang Zhou
2011-07-05 15:54 ` [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Lucas Meneghel Rodrigues
2 siblings, 1 reply; 6+ messages in thread
From: Qingtang Zhou @ 2011-06-28 9:45 UTC (permalink / raw)
To: autotest; +Cc: kvm
This patch will save guest's anaconda log to 'anaconda.log' in debug directory.
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
---
client/tests/kvm/tests/unattended_install.py | 31 ++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests/unattended_install.py b/client/tests/kvm/tests/unattended_install.py
index 50a8c7a..d631404 100644
--- a/client/tests/kvm/tests/unattended_install.py
+++ b/client/tests/kvm/tests/unattended_install.py
@@ -494,6 +494,28 @@ class UnattendedInstallConfig(object):
raise ValueError("Unexpected installation method %s" %
self.medium)
+def _get_anaconda_log(vm, log_file):
+ port = int(vm.params.get("guest_port_unattended_install")) - 1
+ port = vm.get_port(port)
+
+ anaconda_logfile = open(log_file, 'w')
+
+ while True:
+ client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ try:
+ client.connect((vm.get_address(), port))
+ install_log = client.recv(10240)
+ if install_log != "":
+ anaconda_logfile.write(install_log)
+ anaconda_logfile.flush()
+ client.send("ok %s\n" % str(time.time()))
+ except (socket.error, virt_vm.VMAddressError):
+ pass
+ finally:
+ client.close()
+ time.sleep(1)
+
+ anaconda_logfile.close()
@error.context_aware
def run_unattended_install(test, params, env):
@@ -524,6 +546,13 @@ def run_unattended_install(test, params, env):
"(%d min)", install_timeout, install_timeout/60)
error.context("waiting for installation to finish")
+ get_anaconda_log = params.get("get_anaconda_log") == "yes"
+ if get_anaconda_log:
+ log_file = os.path.join(test.debugdir, "anaconda.log")
+ bg = virt_utils.Thread(_get_anaconda_log,
+ kwargs={"vm": vm, "log_file": log_file})
+ bg.start()
+
start_time = time.time()
while (time.time() - start_time) < install_timeout:
try:
@@ -539,6 +568,8 @@ def run_unattended_install(test, params, env):
try:
client.connect((vm.get_address(), port))
if client.recv(1024) == "done":
+ if get_anaconda_log:
+ bg.join()
break
except (socket.error, virt_vm.VMAddressError):
pass
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] KVM Test: Add get anaconda log config in config file
2011-06-28 9:44 [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Qingtang Zhou
2011-06-28 9:45 ` [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file Qingtang Zhou
@ 2011-06-28 9:45 ` Qingtang Zhou
2011-07-05 15:54 ` [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Lucas Meneghel Rodrigues
2 siblings, 0 replies; 6+ messages in thread
From: Qingtang Zhou @ 2011-06-28 9:45 UTC (permalink / raw)
To: autotest; +Cc: kvm
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
---
client/tests/kvm/tests_base.cfg.sample | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index 4db011d..0fefa3b 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -1208,6 +1208,7 @@ variants:
# hold your kickstart file
#extra_params += " --append 'ks=floppy nicdelay=60 console=ttyS0,115200 console=tty0'"
extra_params += " --append 'ks=cdrom nicdelay=60 console=ttyS0,115200 console=tty0'"
+ get_anaconda_log = yes
variants:
- 8.32:
@@ -1724,6 +1725,7 @@ variants:
# hold your kickstart file
#extra_params += " --append 'ks=floppy nicdelay=60 console=ttyS0,115200 console=tty0'"
extra_params += " --append 'ks=cdrom nicdelay=60 console=ttyS0,115200 console=tty0'"
+ get_anaconda_log = yes
variants:
- 3.9.i386:
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log
2011-06-28 9:44 [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Qingtang Zhou
2011-06-28 9:45 ` [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file Qingtang Zhou
2011-06-28 9:45 ` [PATCH 3/3] KVM Test: Add get anaconda log config in config file Qingtang Zhou
@ 2011-07-05 15:54 ` Lucas Meneghel Rodrigues
2011-07-07 5:50 ` Qingtang Zhou
2 siblings, 1 reply; 6+ messages in thread
From: Lucas Meneghel Rodrigues @ 2011-07-05 15:54 UTC (permalink / raw)
To: Qingtang Zhou; +Cc: autotest, kvm
On Tue, 2011-06-28 at 17:44 +0800, Qingtang Zhou wrote:
> Anaconda log will help us to analyse failure of installation.
Hi Qingtang, I have verified the code, have a couple of comments on one
of the patches. We have a problem though:
I did test it in my laptop, with both the default atbr0 bridge and
virbr0, and the side effect of the patchset is that the guest can't
signal the host the installation has ended. I can't commit the patchset
in this state, since it brings a major regression. I spend some time
looking and thinking about it, but the problem is not immediately
apparent.
So, would you take the time to fix my comments and test on a setup,
using the default autotest bridge, figure out the problem and send me an
updated version? I need to work on other stuff, but if you have any
problems let me know.
Cheers,
Lucas
>
> Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
> ---
> client/tests/kvm/unattended/Fedora-10.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-11.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-12.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-13.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-14.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-8.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/Fedora-9.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/RHEL-3-series.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/RHEL-4-series.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/RHEL-5-series.ks | 35 ++++++++++++++++++++++++++
> client/tests/kvm/unattended/RHEL-6-series.ks | 35 ++++++++++++++++++++++++++
> 11 files changed, 385 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/unattended/Fedora-10.ks b/client/tests/kvm/unattended/Fedora-10.ks
> index 081d41a..49bdfbb 100644
> --- a/client/tests/kvm/unattended/Fedora-10.ks
> +++ b/client/tests/kvm/unattended/Fedora-10.ks
> @@ -24,6 +24,41 @@ poweroff
> @development-tools
> ntpdate
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-11.ks b/client/tests/kvm/unattended/Fedora-11.ks
> index c339220..17c5721 100644
> --- a/client/tests/kvm/unattended/Fedora-11.ks
> +++ b/client/tests/kvm/unattended/Fedora-11.ks
> @@ -24,6 +24,41 @@ autopart
> ntpdate
> %end
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-12.ks b/client/tests/kvm/unattended/Fedora-12.ks
> index c339220..17c5721 100644
> --- a/client/tests/kvm/unattended/Fedora-12.ks
> +++ b/client/tests/kvm/unattended/Fedora-12.ks
> @@ -24,6 +24,41 @@ autopart
> ntpdate
> %end
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-13.ks b/client/tests/kvm/unattended/Fedora-13.ks
> index c339220..17c5721 100644
> --- a/client/tests/kvm/unattended/Fedora-13.ks
> +++ b/client/tests/kvm/unattended/Fedora-13.ks
> @@ -24,6 +24,41 @@ autopart
> ntpdate
> %end
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-14.ks b/client/tests/kvm/unattended/Fedora-14.ks
> index e1323cd..f9fa144 100644
> --- a/client/tests/kvm/unattended/Fedora-14.ks
> +++ b/client/tests/kvm/unattended/Fedora-14.ks
> @@ -25,6 +25,41 @@ ntpdate
> dmidecode
> %end
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-8.ks b/client/tests/kvm/unattended/Fedora-8.ks
> index 9403191..1f45699 100644
> --- a/client/tests/kvm/unattended/Fedora-8.ks
> +++ b/client/tests/kvm/unattended/Fedora-8.ks
> @@ -23,6 +23,41 @@ reboot
> @development-tools
> ntpdate
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/Fedora-9.ks b/client/tests/kvm/unattended/Fedora-9.ks
> index a7d5399..a325657 100644
> --- a/client/tests/kvm/unattended/Fedora-9.ks
> +++ b/client/tests/kvm/unattended/Fedora-9.ks
> @@ -24,6 +24,41 @@ poweroff
> @development-tools
> ntpdate
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/RHEL-3-series.ks b/client/tests/kvm/unattended/RHEL-3-series.ks
> index 0c6d334..5012000 100644
> --- a/client/tests/kvm/unattended/RHEL-3-series.ks
> +++ b/client/tests/kvm/unattended/RHEL-3-series.ks
> @@ -23,6 +23,41 @@ skipx
> @ development-tools
> ntp
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('/sbin/ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up')
> diff --git a/client/tests/kvm/unattended/RHEL-4-series.ks b/client/tests/kvm/unattended/RHEL-4-series.ks
> index 83ae918..9760f57 100644
> --- a/client/tests/kvm/unattended/RHEL-4-series.ks
> +++ b/client/tests/kvm/unattended/RHEL-4-series.ks
> @@ -23,6 +23,41 @@ poweroff
> @ development-tools
> ntp
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/RHEL-5-series.ks b/client/tests/kvm/unattended/RHEL-5-series.ks
> index 7ffd19f..cbfb171 100644
> --- a/client/tests/kvm/unattended/RHEL-5-series.ks
> +++ b/client/tests/kvm/unattended/RHEL-5-series.ks
> @@ -25,6 +25,41 @@ kexec-tools
> watchdog
> ntp
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
> diff --git a/client/tests/kvm/unattended/RHEL-6-series.ks b/client/tests/kvm/unattended/RHEL-6-series.ks
> index 166c499..4b0629a 100644
> --- a/client/tests/kvm/unattended/RHEL-6-series.ks
> +++ b/client/tests/kvm/unattended/RHEL-6-series.ks
> @@ -28,6 +28,41 @@ NetworkManager
> ntpdate
> watchdog
>
> +%pre --interpreter /usr/bin/python
> +import socket, os, sys
> +
> +try:
> + pid = os.fork()
> +except OSError, e:
> + sys.exit(1)
> +
> +if pid > 0:
> + sys.exit(0)
> +
> +f = open("/tmp/anaconda.log", 'r')
> +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +
> +os.close(sys.stderr.fileno())
> +os.close(sys.stdout.fileno())
> +
> +sock.bind(('', 12322))
> +sock.listen(1)
> +
> +buf = ""
> +while True:
> + client, addr = sock.accept()
> + o = f.readlines(1024)
> + o = "".join(o)
> + if buf or o:
> + client.send(o)
> + data = client.recv(64)
> + if "ok" in data:
> + buf = ""
> + else:
> + buf += o
> + client.close()
> +%end
> +
> %post --interpreter /usr/bin/python
> import socket, os
> os.system('dhclient')
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file
2011-06-28 9:45 ` [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file Qingtang Zhou
@ 2011-07-05 15:56 ` Lucas Meneghel Rodrigues
0 siblings, 0 replies; 6+ messages in thread
From: Lucas Meneghel Rodrigues @ 2011-07-05 15:56 UTC (permalink / raw)
To: Qingtang Zhou; +Cc: autotest, kvm
On Tue, 2011-06-28 at 17:45 +0800, Qingtang Zhou wrote:
> This patch will save guest's anaconda log to 'anaconda.log' in debug directory.
>
> Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
> ---
> client/tests/kvm/tests/unattended_install.py | 31 ++++++++++++++++++++++++++
> 1 files changed, 31 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/tests/unattended_install.py b/client/tests/kvm/tests/unattended_install.py
> index 50a8c7a..d631404 100644
> --- a/client/tests/kvm/tests/unattended_install.py
> +++ b/client/tests/kvm/tests/unattended_install.py
> @@ -494,6 +494,28 @@ class UnattendedInstallConfig(object):
> raise ValueError("Unexpected installation method %s" %
> self.medium)
>
> +def _get_anaconda_log(vm, log_file):
> + port = int(vm.params.get("guest_port_unattended_install")) - 1
> + port = vm.get_port(port)
> +
> + anaconda_logfile = open(log_file, 'w')
> +
> + while True:
> + client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> + try:
> + client.connect((vm.get_address(), port))
> + install_log = client.recv(10240)
> + if install_log != "":
> + anaconda_logfile.write(install_log)
> + anaconda_logfile.flush()
> + client.send("ok %s\n" % str(time.time()))
> + except (socket.error, virt_vm.VMAddressError):
> + pass
> + finally:
> + client.close()
> + time.sleep(1)
^ Here we have a try/except/finally block, which is illegal in py 2.4.
This needs to be fixed.
> + anaconda_logfile.close()
>
> @error.context_aware
> def run_unattended_install(test, params, env):
> @@ -524,6 +546,13 @@ def run_unattended_install(test, params, env):
> "(%d min)", install_timeout, install_timeout/60)
> error.context("waiting for installation to finish")
>
> + get_anaconda_log = params.get("get_anaconda_log") == "yes"
^ In case get_anaconda_log is not defined for that specific variant,
better to make it default to 'no', so it'd be something like:
get_anaconda_log = params.get("get_anaconda_log", "no") == "yes"
> + if get_anaconda_log:
> + log_file = os.path.join(test.debugdir, "anaconda.log")
> + bg = virt_utils.Thread(_get_anaconda_log,
> + kwargs={"vm": vm, "log_file": log_file})
> + bg.start()
> +
> start_time = time.time()
> while (time.time() - start_time) < install_timeout:
> try:
> @@ -539,6 +568,8 @@ def run_unattended_install(test, params, env):
> try:
> client.connect((vm.get_address(), port))
> if client.recv(1024) == "done":
> + if get_anaconda_log:
> + bg.join()
> break
> except (socket.error, virt_vm.VMAddressError):
> pass
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log
2011-07-05 15:54 ` [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Lucas Meneghel Rodrigues
@ 2011-07-07 5:50 ` Qingtang Zhou
0 siblings, 0 replies; 6+ messages in thread
From: Qingtang Zhou @ 2011-07-07 5:50 UTC (permalink / raw)
To: Lucas Meneghel Rodrigues; +Cc: autotest, kvm
* On 2011-07-05 12:54:34 -0300, Lucas Meneghel Rodrigues (lmr@redhat.com) wrote:
> On Tue, 2011-06-28 at 17:44 +0800, Qingtang Zhou wrote:
> > Anaconda log will help us to analyse failure of installation.
>
> Hi Qingtang, I have verified the code, have a couple of comments on one
> of the patches. We have a problem though:
>
> I did test it in my laptop, with both the default atbr0 bridge and
> virbr0, and the side effect of the patchset is that the guest can't
> signal the host the installation has ended. I can't commit the patchset
> in this state, since it brings a major regression. I spend some time
> looking and thinking about it, but the problem is not immediately
> apparent.
>
> So, would you take the time to fix my comments and test on a setup,
> using the default autotest bridge, figure out the problem and send me an
> updated version? I need to work on other stuff, but if you have any
> problems let me know.
Oh, ok, I will test my code with this 2 kinds of bridge.
>
> Cheers,
>
> Lucas
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-07-07 5:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-28 9:44 [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Qingtang Zhou
2011-06-28 9:45 ` [PATCH 2/3] KVM-Test: unattended_install.py: Get anaconda log and save it to log file Qingtang Zhou
2011-07-05 15:56 ` Lucas Meneghel Rodrigues
2011-06-28 9:45 ` [PATCH 3/3] KVM Test: Add get anaconda log config in config file Qingtang Zhou
2011-07-05 15:54 ` [Autotest] [PATCH 1/3] KVM-Test: kickstart script: Add pre-installation script for dumping anaconda log Lucas Meneghel Rodrigues
2011-07-07 5:50 ` Qingtang Zhou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox