Merge lp://qastaging/~heber013/utah/fix-provisioning-function into lp://qastaging/utah

Proposed by Heber Parrucci
Status: Merged
Merged at revision: 1130
Proposed branch: lp://qastaging/~heber013/utah/fix-provisioning-function
Merge into: lp://qastaging/utah
Diff against target: 277 lines (+78/-41)
3 files modified
conf/utah/default-vm.xml (+5/-2)
utah/provisioning/provisioning.py (+56/-37)
utah/provisioning/vm.py (+17/-2)
To merge this branch: bzr merge lp://qastaging/~heber013/utah/fix-provisioning-function
Reviewer Review Type Date Requested Status
Jean-Baptiste Lallement Approve
Paul Larson Pending
Review via email: mp+352837@code.qastaging.launchpad.net

This proposal supersedes a proposal from 2018-07-10.

Commit message

Fixing broken provisioning function due to initrd file extension change

Description of the change

Fixing broken provisioning function due to initrd file extension change

To post a comment you must log in.
Revision history for this message
Paul Larson (pwlars) wrote : Posted in a previous version of this proposal

Looks sane, +1 assuming it works for you

review: Approve
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote : Posted in a previous version of this proposal

I think the fix is incomplete. casper/initrd and the target directory initrd have the same name and utah fails with ENOTDIR

cat: write error: Broken pipe
Unhandled error in UTAH:
Traceback (most recent call last):
  File "/usr/bin/run_utah_tests.py", line 132, in <module>
    exitstatus = timeout(config.jobtimeout, run_utah_tests)
  File "/usr/lib/python2.7/dist-packages/utah/timeout.py", line 65, in timeout
    return command(*args, **kw)
  File "/usr/bin/run_utah_tests.py", line 121, in run_utah_tests
    exitstatus, locallogs = run_tests(args, _get_machine(args))
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 344, in run_tests
    exitstatus, remote_path = _run(machine, args.runlist, extraopts)
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 256, in _run
    return _install_and_run(machine, runlist_url, extraopts)
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 174, in _install_and_run
    machine.installclient()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 315, in installclient
    self.uploadfiles([deb], tmppath)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 202, in uploadfiles
    self.activecheck()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 364, in activecheck
    self.provisioncheck()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 247, in provisioncheck
    config.installtimeout, self._provision, provision_data)
  File "/usr/lib/python2.7/dist-packages/utah/timeout.py", line 75, in timeout
    retval = command(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 364, in _provision
    self._create(provision_data)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/vm.py", line 522, in _create
    self._copy_qemu_scripts(tmpdir=tmpdir)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 717, in _copy_qemu_scripts
    self.copy_qemu_scripts_to_path(initrd_work_dir)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 1010, in copy_qemu_scripts_to_path
    shutil.copy2(src, dst)
  File "/usr/lib/python2.7/shutil.py", line 130, in copy2
    copyfile(src, dst)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 20] Not a directory: '/var/lib/utah/vm/utah_vm_V0OnwPlGppPWxuFE/tmpcIvRKW/initrd/qemu-setup.py'

review: Needs Fixing
Revision history for this message
Heber Parrucci (heber013) wrote : Posted in a previous version of this proposal

I tried fixing _copy_qemu_scripts and some more errors. Now I am getting an error in the function _preseedcasper:

2018-08-06 17:17:13,086 root WARNING: Command (sed -i 1i/scripts/casper-bottom/utah\n[ -e /conf/param.conf ] && . /conf/param.conf /var/lib/utah/vm/utah-21-cosmic-amd64/tmp7jWHqv/initrd.d/scripts/casper-bottom/ORDER) failed with return code: 2

1130. By Heber Parrucci

Fixing issue when repacking initrd

1131. By Heber Parrucci

Fixing utah tests:
* Adding more memory to created VMs
* Adding video type qxl
* Adding retries when starting the VM with vm.create()

1132. By Heber Parrucci

Increasing wait period default value when starting the virtual machine

1133. By Heber Parrucci

Updating logic on first VM boot

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

Thanks for this patch.

It fixes the problem with desktop images but breaks server tests.

The error is:

INFO: logpath was already set by /etc/utah/config
2018-09-10 03:00:05,890 cleanup WARNING: OSError when changing directory permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865-cosmic-server-amd64/disk0.qcow2'
2018-09-10 03:00:05,890 cleanup WARNING: OSError when changing directory permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865-cosmic-server-amd64/tmpBBkVPS/initrd.gz'
2018-09-10 03:00:05,891 cleanup WARNING: OSError when changing directory permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865-cosmic-server-amd64/tmpBBkVPS/kernel'
2018-09-10 03:00:05,891 cleanup WARNING: OSError when changing directory permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865-cosmic-server-amd64/tmpBBkVPS/cosmic-server-amd64.iso'
Unhandled error in UTAH:
Traceback (most recent call last):
  File "/usr/bin/run_utah_tests.py", line 132, in <module>
    exitstatus = timeout(config.jobtimeout, run_utah_tests)
  File "/usr/lib/python2.7/dist-packages/utah/timeout.py", line 65, in timeout
    return command(*args, **kw)
  File "/usr/bin/run_utah_tests.py", line 121, in run_utah_tests
    exitstatus, locallogs = run_tests(args, _get_machine(args))
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 344, in run_tests
    exitstatus, remote_path = _run(machine, args.runlist, extraopts)
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 256, in _run
    return _install_and_run(machine, runlist_url, extraopts)
  File "/usr/lib/python2.7/dist-packages/utah/run.py", line 174, in _install_and_run
    machine.installclient()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py", line 316, in installclient
    self.uploadfiles([deb], tmppath)
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 202, in uploadfiles
    self.activecheck()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 366, in activecheck
    self._start()
  File "/usr/lib/python2.7/dist-packages/utah/provisioning/vm.py", line 570, in _start
    self.vm.create()
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1035, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Requested operation is not valid: domain is already running

+ RETCODE=4

review: Needs Fixing
1134. By Heber Parrucci

Fixing start vm function

Revision history for this message
Heber Parrucci (heber013) wrote :

> Thanks for this patch.
>
> It fixes the problem with desktop images but breaks server tests.
>
> The error is:
>
> INFO: logpath was already set by /etc/utah/config
> 2018-09-10 03:00:05,890 cleanup WARNING: OSError when changing directory
> permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865
> -cosmic-server-amd64/disk0.qcow2'
> 2018-09-10 03:00:05,890 cleanup WARNING: OSError when changing directory
> permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865
> -cosmic-server-amd64/tmpBBkVPS/initrd.gz'
> 2018-09-10 03:00:05,891 cleanup WARNING: OSError when changing directory
> permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865
> -cosmic-server-amd64/tmpBBkVPS/kernel'
> 2018-09-10 03:00:05,891 cleanup WARNING: OSError when changing directory
> permissions: [Errno 1] Operation not permitted: '/var/lib/utah/vm/utah-74865
> -cosmic-server-amd64/tmpBBkVPS/cosmic-server-amd64.iso'
> Unhandled error in UTAH:
> Traceback (most recent call last):
> File "/usr/bin/run_utah_tests.py", line 132, in <module>
> exitstatus = timeout(config.jobtimeout, run_utah_tests)
> File "/usr/lib/python2.7/dist-packages/utah/timeout.py", line 65, in timeout
> return command(*args, **kw)
> File "/usr/bin/run_utah_tests.py", line 121, in run_utah_tests
> exitstatus, locallogs = run_tests(args, _get_machine(args))
> File "/usr/lib/python2.7/dist-packages/utah/run.py", line 344, in run_tests
> exitstatus, remote_path = _run(machine, args.runlist, extraopts)
> File "/usr/lib/python2.7/dist-packages/utah/run.py", line 256, in _run
> return _install_and_run(machine, runlist_url, extraopts)
> File "/usr/lib/python2.7/dist-packages/utah/run.py", line 174, in
> _install_and_run
> machine.installclient()
> File "/usr/lib/python2.7/dist-packages/utah/provisioning/provisioning.py",
> line 316, in installclient
> self.uploadfiles([deb], tmppath)
> File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 202,
> in uploadfiles
> self.activecheck()
> File "/usr/lib/python2.7/dist-packages/utah/provisioning/ssh.py", line 366,
> in activecheck
> self._start()
> File "/usr/lib/python2.7/dist-packages/utah/provisioning/vm.py", line 570,
> in _start
> self.vm.create()
> File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1035, in create
> if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
> libvirtError: Requested operation is not valid: domain is already running
>
> + RETCODE=4

It should be fixed now. Thanks!

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

Thanks. Tested on Xenial with cosmic and bionic images of Desktop and server.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches