On 14.6.2013 16:19, Jan Cholasta wrote:

On 13.6.2013 14:16, Petr Viktorin wrote:
On 06/10/2013 04:48 PM, Petr Viktorin wrote:
On 05/31/2013 01:46 PM, Petr Viktorin wrote:
Apply on top of my patches 0227-0234.

These patches add an initial integration testing framework.

Patch 0230 adds a plugin for ordered test classes.
Nose orders methods within a test suite alphabetically, but we
want to run them in the order defined. This adds the @ordered decorator
that causes Nose to do just that, provided the plugin is loaded and
enabled, and that the methods are defined in the same file. The
ipa-run-tests wrapper is changed to enable the plugin.
In the future we may want to use this for unit tests as well. It might
also make sense to separate it from the FreeIPA project altogether.

Patch 0231 adds configuration for tests. This reads environment
variables like:
- MASTER (FQDN of initial server)
- REPLICA (space-separated FQDNs of replicas)
- CLIENT (space-separated FQDNs of clients),
- IPATEST_DIR (directory the tests use on the remote machines)
etc., and loads them into an easy-to use Python object.
A tool called ipa-test-config is provided that generates a full set of
environment variables for shell-based tests from these, either
global or
specific for a given host.
If environment variables don't work for us, alternate configuration
methods can be added in the future.

I think you forgot to add "%dir
%{python_sitelib}/ipatests/test_integration" to the spec file.

Is the "self = cls()" line at the beginning of Config.from_env()

+        self = cls()
+        env_normalize(env)
+        self = cls(test_dir=env.get('IPATEST_DIR') or '/root/ipatests',

Also typo in commit message: "Integration tests are be configured ..."

Patch 0232 adds an integration test framework.
This extends Host object available from the configuration with methods
to run commands and copy files on the remote host, and adds a base
for integration tests which can currently install and uninstall IPA
in a
"star" topology. (In the future, the install/uninstall code should also
be made available as a shell command.)
A simple test for user replication between two masters is provided.
Log files from the remote hosts can be marked for collection, but the
actual collection is left to a Nose plugin.
The base class uses the @ordered decorator mentioned above.

Patch 0233 improves on how commands are run on remote hosts.
In the previous patch, the process's stdin and stdout were combined
as a
quick hack to avoid the problem that if we first read stdout and then
stderr, then stderr's buffer can fill up and we'd deadlock (and the
other way around). With this patch the streams are read in parallel.
In the future this can be extended to calling whole commands in
(e.g. uninstalling IPA on all the hosts at once).

Patch 0234 adds log collection to the BeakerLib integration plugin.
This tars up the marked logs, downloads then, and calls rlFileSubmit on

Missing space in commit message: "... log files fromthe remote ..."


Attaching additional patches:

Patch 0237 configures logging in ipa-run-tests to forward messages from
the IPA logging machinery to a normal Python logger. This way the logs
are captured
The logs are also printed to stderr so that there's some activity on the
terminal after you run the utility.

Patch 0238 makes it possible to use RSA private SSH keys to log in to
the remote machines. The key is given in $IPA_ROOT_SSH_KEY, and used if
I've added this to the design page.

It seems that the code prefers password authentication over public key
authentication if both are configured. IMO it would be better if it did
the opposite.

Patch 0239 makes test setup change the hostname, /etc/hosts, and
/etc/resolv.conf to match the configured values. These should be
equivalent to the fixes in

In test teardown, the changes are undone.

I've rebased the patrchset and added small fixes for patches 0232 and

New patch 0240 contains a few fixes/improvements to the Host class that
were not trivial to rebase into previous patches.

The WIP patch adds a sketch of some of the tests for CA-less
(http://www.freeipa.org/page/V3/CA-less_install#Test_Plan). Please
comment if you can see where things can be improved for test authors!

Just a word of warning, there are still a few test cases I need to add
to the CA-less test plan.


Jan Cholasta

Freeipa-devel mailing list

Reply via email to