7 echo "Starting the Apex iso verify."
8 echo "--------------------------------------------------------"
11 source $BUILD_DIRECTORY/../opnfv.properties
13 if ! rpm -q virt-install > /dev/null; then
14 sudo yum -y install virt-install
17 # define a clean function
18 rm_apex_iso_verify () {
19 if sudo virsh list --all | grep apex-iso-verify | grep running; then
20 sudo virsh destroy apex-iso-verify
22 if sudo virsh list --all | grep apex-iso-verify; then
23 sudo virsh undefine apex-iso-verify
27 # Make sure a pre-existing iso-verify isn't there
30 # run an install from the iso
31 # This streams a serial console to tcp port 3737 on localhost
32 sudo virt-install -n apex-iso-verify -r 4096 --vcpus 4 --os-variant=rhel7 \
33 --accelerate -v --noautoconsole --nographics \
34 --disk path=/var/lib/libvirt/images/apex-iso-verify.qcow2,size=30,format=qcow2 \
35 -l $BUILD_DIRECTORY/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso \
36 --extra-args 'console=ttyS0 console=ttyS0,115200n8 serial inst.ks=file:/iso-verify.ks inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64:/' \
37 --initrd-inject $BUILD_DIRECTORY/../ci/iso-verify.ks \
38 --serial tcp,host=:3737,protocol=raw
40 # Attach to tcpport 3737 and echo the output to stdout
41 # watch for a 5 min time out, a power off message or a tcp disconnect
47 from time import sleep
56 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
57 s.connect((TCP_IP, TCP_PORT))
59 print "Failed to connect to the iso-verofy vm's serial console"
60 print "this probably means that the VM failed to start"
64 data = s.recv(BUFFER_SIZE)
66 while time() - activity < 300:
71 data = s.recv(BUFFER_SIZE)
72 sys.stdout.write(data)
73 if 'Powering off' in data:
76 except socket.error, e:
77 # for now assuming that the connection was closed
78 # which is good, means the vm finished installing
79 # printing the error output just in case we need to debug
80 print "VM console connection lost: %s" % msg
84 if time() - activity > 300:
85 print "failing due to console inactivity"
91 # save the python return code for after cleanup
97 # Exit with the RC of the Python job
101 echo "--------------------------------------------------------"