Skip to content
Lucas Meneghel Rodrigues edited this page May 7, 2012 · 2 revisions

Autotest 0.14.0

Autotest 0.14.0 is a new major release of autotest! The goal here is to provide the latest advances on autotest while providing a stable ground for groups and organizations looking for autotest, such as distro packagers and newcomers.

For the impatient

Download Area

Changes

API cleanup

Autotest 0.14.0 brings major new API changes over the previous 0.13.X series. For a long time, we wanted to clean up the API namespace of unneeded _lib prefixes to the autotest libraries. The main changes made were:

  • No more autotest/client/bin dir, so no more autotest_lib.client.bin namespace.
    Now all the main libs and entry points are at the top level client.
  • API: autotest_lib -> autotest
  • API: autotest.client.common_lib -> autotest.client.shared

As an example, here's how the imports on client/bin/job.py used to be on pre-0.14:

from autotest_lib.client.bin import client_logging_config
from autotest_lib.client.bin import utils, parallel, kernel, xen
from autotest_lib.client.bin import profilers, boottool, harness
from autotest_lib.client.bin import config, sysinfo, test, local_host
from autotest_lib.client.bin import partition as partition_lib
from autotest_lib.client.common_lib import base_job
from autotest_lib.client.common_lib import error, barrier, log, logging_manager
from autotest_lib.client.common_lib import base_packages, packages
from autotest_lib.client.common_lib import global_config
from autotest_lib.client.tools import html_report

And that's how it looks on 0.14.0:

from autotest.client import client_logging_config
from autotest.client import utils, parallel, kernel, xen
from autotest.client import profilers, boottool, harness
from autotest.client import config, sysinfo, test, local_host
from autotest.client import partition as partition_lib
from autotest.client.shared import base_job
from autotest.client.shared import error, barrier, log, logging_manager
from autotest.client.shared import base_packages, packages
from autotest.client.shared import global_config
from autotest.client.tools import html_report

The conversion should be mostly automatic for most users.

Entry names change

In order to ease discoverability on a system wide install, some widely used entry point names changed names. By entry point, we mean the autotest high level utility programs. Check out the name changes:

  1. client/bin/autotest -> client/autotest-local
  2. server/autoserv -> server/autotest-remote
  3. cli/atest -> cli/autotest-rpc-client
  4. scheduler/monitor_db.py -> scheduler/autotest-scheduler
  5. scheduler/monitor_db_babysitter.py -> scheduler/autotest-scheduler-watcher

Boottool

Autotest used a perl based tool to manage bootloader entries, but the tool did not support grub2. So when Fedora started to use grub2, we took the opportunity to rewrite the whole thing and ditch the perl based boot tool. As a side effect, now it supports installing kernels on newer Ubuntu too (and well, Opensuse and what else). It is based on the open source project grubby, the tool used by anaconda and therefore, Fedora and RHEL distros to manipulate boot entries.

Git history rewrite

The git repo history was rewritten to properly follow git authorship conventions. This effort reveals over 200 unique authors that did contribute to autotest during the last 6 years. May we have many years more with an active and healthy development community!

What's next?

With the series of cleanups and improvements, here are the next steps:

  • Port of the rpc server application to Django 1.4
  • Documentation improvements and API documentation generation.
  • Further cobbler-autotest integration
  • Separation of tests and core autotest code
  • Make the autotest test runner to be smarter, more tight in terms of output

You can also help, please join the mailing lists and happy hacking!

Clone this wiki locally