Summary:

SmokeStack is a web application with a REST based HTTP interface to help origanize and drive testing of OpenStack. SmokeStack is focused on integration using real packages (RPM, Deb, etc.) and config management (Puppet/Chef). The following core OpenStack services are currently supported: Nova, Keystone, Glance, Swift, Cinder, and Quantum.

SmokeStack is built using:

  • Rails 3.1
  • Resque: a redis backed job queue
  • A templated job runner. The default libvirt job runner uses Kytoon to spin up groups of servers in the cloud for smoke testing.
  • Packages to install software (currently supports Fedora)
  • Configuration management to install and configure everything (Puppet)


Features:

  • Currently supports Git and Bzr.
  • Ability to test custom branches on GitHub, Launchpad, Gerrit, etc.
  • Custom package builder branches.(For RPMs/Debs/etc.)
  • Specify a custom revision hash for each source code URL.
  • Captures stdout and stderr for each job.
  • Multiple configuration support. Libvirt/XenServer, MySQL/PostgreSQL, Qpid/Rabbit, etc. build your own and test with them right in the UI.


Rest API

  • GET /smoke_tests.json: get a list of existing smoke tests
  • POST /smoke_tests.json: create a new smoke test
  • POST /smoke_tests/1/run_jobs: run jobs for the selected smoke test.
  • DELETE /smoke_tests/1.json: destroy a smoke test
  • GET /jobs.json: get a list of jobs
  • GET /jobs/1.json: show information for a specific job
  • DELETE /jobs/1.json: destroy a job


Related projects:


Version: dev