[openstack-dev] [Ironic] Functional testing, dependencies, etc

Devananda van der Veen devananda.vdv at gmail.com
Sat Feb 1 21:47:40 UTC 2014


Hi all,

I've got a few updates to share on the status of functional testing of
Ironic.

Firstly, early last week, Ironic's tempest tests were added to our check
and gate pipeline, and non-voting checks were added to devstack and tempest
pipelines as well. These tests start the Ironic services in devstack, and
then exercise CRUD actions via our python client. The current tempest tests
exercise our integration with Keystone, and the integration of our internal
components (ir-api, ir-cond, mysql/pgsql, rabbit).

Since the project plans include integration with Glance, Keystone, Nova,
and Neutron, we initially enabled all of those in our devstack-gate
environment. However, due to the unpredictable nature of Neutron's test
suite, our gate was blocked as soon as it was enabled, and on Tuesday I
disabled Neutron in our devstack-gate runs.

This is not ideal. Ironic's PXE deployment driver depends on Neutron to
control the DHCP BOOT [4] option for nodes, so to do automated functional
testing of a PXE deployment, we will need to re-enable Neutron in
devstack-gate. We still have work to do before we are ready for end-to-end
deploy testing, so I'm hoping Neutron becomes a bit more stable by then.
I'm not thrilled about the prospects if it is not.

Our Nova driver [1] hasn't landed yet, and probably needs further
refinement before the Nova folks will be ready to land it, but it *is*
functional. Late in the week, Lucas and Chris each did an end-to-end
deployment with it!

So, today, we're not functionally testing Nova with an "ironic" virt driver
[2] -- even though Nova is enabled and tested by devstack-gate in Ironic's
pipeline. This was an oversight in my review of our devstack-gate tests:
we're currently gating on Nova using the libvirt driver. It's unrelated to
Ironic and I don't believe it should be exercised in Ironic's test suite.
Furthermore, we tripped a bug in the libvirt driver by doing file injection
with libguestfs. This has, once again, broken Ironic's gate.

I've proposed a temporary solution [3] that will cause libvirt to be tested
using configdrive in our pipe, as it is in all other projects except
Neutron. A better solution will be to not gate Ironic on the libvirt driver
at all.

The path forward that I see is:
- changes to land in devstack and tempest to create a suitable environment
for functional testing (eg, creating VMs and enrolling them with Ironic),
- the Nova "ironic" driver to be landed, with adequate unit tests, but no
integration tests,
- we set up an experimental devstack-gate pipe to load that Nova driver and
do integration tests between Ironic and Nova, Glance, and Neutron,
- iteratively fix bugs in devstack, ironic, our nova driver, and if
necessary, neutron, until this can become part of our gate.

In the meantime, I don't see a point in those services being enabled and
tested in our check or gate pipelines.


Regards,
Devananda


[1] https://review.openstack.org/5132
[2] https://review.openstack.org/70348
[3] https://review.openstack.org/70544
[4]
http://docs.openstack.org/api/openstack-network/2.0/content/extra-dhc-opt-ext-update.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140201/ecc87e6f/attachment.html>


More information about the OpenStack-dev mailing list