charmrunner provides reusable components and utilities for juju charm testing.
There are several different use cases for testing from jenkins waterfall views, to gating publishing to a repository based on test results.
In order to accomodate different running scenarios, the tools are presented as a set of cli tools.
All the tools operate against the default juju environment.
Runner
Provides the main entry point into charm testing. It will generate and run a test and record the result and environment information:
juju-graph-runner -r repository -w working_dir -s series -t testrecord.zip < charm_name >
Planner
For a given charm change calculate a series of test plans against a repository of all charms:
juju-planner -r repository -s precise -d plans_dir < charm_name >
Snapshot
Snapshot and restore an environment, akin to a bzr shelve. Primary purpose it to be able to clear out services from an environment so the environment can be reused across tests.
Operates on a service granularity, destroying and removing old services not present in before the last snapshot in a pop:
juju-snapshot snapshot -f pristine.json
juju deploy --repository=examples local:mysql
juju-snapshot restore -f pristine.json
- Clean an environment for reuse, via deleting services.
- Resets provider storage of any uploaded charms.
- Removes any charm state from zookeeper.
Loader
Load a test plan's services and relations into an environment:
juju-load -r repository mediawiki.plan
Watch
Verification for a service coming up correctly, waits for a given service and all its relations to reach a completed steady state or any reach a failure state:
juju-watch < service_name >
Exit code 1 if the wait failed, stderr with more details. Exit 0 if succesful.
Test Records
Create an archive of all the unit logs, zookeeper data, status, and test runner logs:
juju-record -f testrecord.zip
What is new in this release:
- use sftp to fetch remote unit logs (juju-recorder is now provider independent)
- update watcher to work with new status output
What is new in version 0.2.4:
- Standalone zk dump script, use an error handling wrapper snapshot teardown.
Requirements:
- Python
Comments not found