CHANGES
=======

0.3.21
------

* Switch to a restructuredtext README file
* Include the function name on internal errors
* Add in default transaction isolation levels
* Allow the mysql mode to be more than just TRADITIONAL
* Make the runner a runtime provided property
* Rename inject_task_args to inject_atom_args
* Rename the graph analyzer to analyzer
* Provide the compilation object instead of just a part of it
* Ensure cachedproperty descriptor picks up docstrings

0.3
---

* Warn about internal helper/utility usage
* Rename to atom from task
* Invert the conductor stop() returned result
* Move flattening to the action engine compiler
* Increase the level of usefulness of the dispatching logging
* Avoid forcing engine_conf to a dict
* Allow for two ways to find a flow detail in a job for a conductor
* Add docs related to the new conductor feature
* Add docstring describing the inject instance variable
* Finish factoring apart the graph_action module
* Update sphinx pin from global requirements
* Fix docstring list format
* Allow indent text to be passed in
* Factor out the on_failure to a mixin type
* Use a name property setter instead of a set_name method
* Adds a single threaded flow conductor
* add the ability to inject arguments into tasks at task creation
* Synced jsonutils from oslo-incubator
* Remove wording issue (track does not make sense here)
* Fix case of taskflow in docs
* Put the job external wiki link in a note section
* Rework atom documentation
* Add doc link to examples
* Rework the overview of the notification mechanism
* Standardize on the same capitalization pattern
* Regenerate engine-state sequence diagram
* Add source of engine-state sequence diagram
* Add kwarg check_pending argument to fake lock
* Add a example which uses the run_iter function in a for loop
* Fix error string interpolation
* Rename t_storage to atom_storage
* Create and use a new compilation module
* Add engine state diagram
* Add tests for the misc.cachedproperty descriptor
* Complete the cachedproperty descriptor protocol
* Don't create fake LogBook when we can not fetch one
* Use futures wait() when possible
* Use /taskflow/flush-test in the flush function
* Add a reset nodes function
* Default the impl_memory conf to none
* Fix spelling mistake
* Add a helper tool which clears zookeeper test dirs
* Add a zookeeper jobboard integration test
* Cleanup zookeeper integration testing
* Use a more stable flush method
* Remove the _clear method and do not reset the job_watcher
* Allow command and connection retry configuration
* Check documentation for simple style requirements
* Add an example which uses the run iteration functionality
* Implement run iterations
* Put provides and requires code to basic Flow
* Allow the watcher to re-register if the session is lost
* Add a new wait() method that waits for jobs to arrive
* Add a cachedproperty descriptor
* Add an example for the job board feature
* Engine _cls postfix is not correct
* Pass executor via kwargs instead of config
* Allow the WBE to use a preexisting executor
* Tweaks to object hiearchy diagrams
* Adjust doc linking
* Medium-level docs on engines
* Add docs for the worker based engine (WBE)
* Updated from global requirements
* Move from generator to iterator for iterjobs
* Add a jobboard fetching context manager
* Wrap the failure to load in the not found exception
* Update jobboard docs
* Synced jsonutils from oslo-incubator
* Remove persistence wiki page link
* Load engines with defined args and provided kwargs
* Integrate urlparse for configuration augmentation
* Fix "occured" -> "occurred"
* Documentation tune-ups
* Fix spelling error
* Add a resumption strategy doc
* Docs and cleanups for test_examples runner
* Skip loading (and failing to load) lock files
* Add a persistence backend fetching context manager
* Add a example that activates a future when a result is ready
* Fix documentation spelling errors
* Add a job consideration doc
* Add last_modified & created_on attributes to jobs
* Allow jobboard event notification
* Use sequencing when posting jobs
* Add a directed graph type (new types module)
* Add persistence docs + adjustments
* Updated from global requirements
* Stings -> Strings
* Be better at failure tolerance
* Ensure example abandons job when it fails
* Add docs for jobs and jobboards
* Get persistence backend via kwargs instead of conf
* Allow fetching jobboard implementations
* Reuse already defined variable
* More keywords & classifier topics
* Allow transient values to be stored in storage
* Doc adjustments
* Move the daemon thread helper function
* Create a periodic worker helper class
* Fix not found being raised when iterating
* Allow for only iterating over the most 'fresh' jobs
* Updated from global requirements
* Update oslo-incubator to 46f2b697b6aacc67
* import run_cross_tests.sh from incubator
* Exception in worker queue thread
* Avoid holding the state lock while notifying

0.2
---

* Allow atoms to save their own state/result
* Use correct exception in the timing listener
* Add a engine preparation stage
* Decrease extraneous logging
* Handle retry last_results/last_failure better
* Improve documentation for engines
* Worker executor adjustments
* Revert "Move taskflow.utils.misc.Failure to its own module"
* Move taskflow.utils.misc.Failure to its own module
* Leave the execution_graph as none until compiled
* Move state link to developer docs
* Raise error if atom asked to schedule with unknown intention
* Removed unused TIMED_OUT state
* Rework documentation of notifications
* Test retry fails on revert
* Exception when scheduling task with invalid state
* Fix race in worker-based executor result processing
* Set logbook/flowdetail/atomdetail meta to empty dict
* Move 'inputs and outputs' to developers docs
* tests: Discover absence of zookeeper faster
* Fix spelling mistake
* Should be greater or equal to zero and not greater than
* Persistence cleanup part one
* Run worker-based engine tests faster
* SQLAlchemy requirements put in order
* Add timeout to WaitForOneFromTask
* Use same code to reset flow and parts of it
* Optimize dependency links in flattening
* Adjust the exception hierachy
* docs: Links to methods on arguments and results page
* Add __repr__ method to Atom
* Flattening improvements
* tests: Fix WaitForOneFromTask constructor parameter introspection
* Rework graph flow unit tests
* Rewrite assertion for same elements in sequences
* Unit tests for unordered flow
* Linear flow: mark links and rework unit tests
* Drop indexing operator from linear flow
* Drop obsolete test_unordered_flow
* Iteration over links in flow interface
* Add a timeout object that can be interrupted
* Avoid shutting down of a passed executor
* Add more tests for resumption with retry
* Improve logging for proxy publish
* Small documentation fix
* Improve proxy publish method
* Add Retry to developers documentation
* Move flow states to developers documentation
* Remove extraneous vim configuration comments
* Make schedule a proper method of GraphAction
* Simplify graph analyzer interface
* Test storage with memory and sqlite backends
* Fix few minor spelling errors
* Fix executor requests publishing bug
* Flow smart revert with retry controller
* Add atom intentions for tasks and retries
* [WBE] Collect information from workers
* Add tox environment for pypy
* docs: Add inheritance diagram to exceptions documentation
* Adjust logging levels and usage to follow standards
* Introduce message types for WBE protocol
* Add retry action to execute retries
* Extend logbook and storage to work with retry
* Add retry to execution graph
* Add retry to Flow patterns
* Add base class for Retry
* Update request `expired` property docsting
* docs: Add page describing atom arguments and results
* docs: Improve BaseTask method docstrings
* Remove extra quote symbol
* docs: Relative links improvements
* docs: Ingore 'taskflow.' prefix when sorting module index
* Update comment + six.text_type instead of str for name
* Avoid calling callbacks while holding locks
* Rename remote task to request
* Rework proxy publish functionality
* Updated from global requirements
* Use message.requeue instead of message.reject
* Lock test tweaks
* Move endpoint subclass finding to reflection util
* Correct LOG.warning in persistence utils
* Introduce remote tasks cache for worker-executor
* Worker-based engine clean-ups
* A few worker-engine cleanups
* Add a delay before releasing the lock
* Allow connection string to be just backend name
* Get rid of openstack.common.py3kcompat
* Clean-up several comments in reflection.py
* Fix try_clean not getting the job_path
* Updated from global requirements
* Rename uuid to topic
* Fixups for threads_count usage and logging
* Use the stop watch utility instead of custom timing
* Unify usage of storage error exception type
* Add zookeeper job/jobboard impl
* Updated from global requirements
* Removed copyright from empty files
* Remove extraneous vim configuration comments
* Use six.text_type() instead of str() in sqlalchemy backend
* Fix dummy lock missing pending_writers method
* Move some common/to be shared kazoo utils to kazoo_utils
* Switch to using the type checking decode_json
* Fix few spelling and grammar errors
* Fixed spelling error
* Run action-engine tests with worker-based engine
* Message-oriented worker-based flow with kombu
* Check atom doesn't provide and return same values
* Fix command for pylint tox env
* Remove locale overrides form tox template
* Reduce test and optional requirements to global requirements
* Rework sphinx documentation
* Remove extraneous vim configuration comments
* Sync with global requirements
* Instead of doing set diffing just partition when state checking
* Add ZooKeeper backend to examples
* Storage protects lower level backend against thread safety
* Remove tox locale overrides
* Update .gitreview after repo rename
* Small storage tests clean-up
* Support building wheels (PEP-427)

0.1.3
-----

* Add validate() base method
* Fix deadlock on waiting for pending_writers to be empty
* Rename self._zk to self._client
* Use listener instead of AutoSuspendTask in test_suspend_flow
* Use test utils in test_suspend_flow
* Use reader/writer locks in storage
* Allow the usage of a passed in sqlalchemy engine
* Be really careful with non-ascii data in exceptions/failures
* Run zookeeper tests if localhost has a compat. zookeeper server
* Add optional-requirements.txt
* Move kazoo to testenv requirements
* Unpin testtools version and bump subunit to >=0.0.18
* Remove use of str() in utils.misc.Failure
* Be more resilent around import/detection/setup errors
* Some zookeeper persistence improvements/adjustments
* Add a validate method to dir and memory backends
* Update oslo copy to oslo commit 39e1c5c5f39204
* Update oslo.lock from incubator commit 3c125e66d183
* Refactor task/flow flattening
* Engine tests refactoring
* Tests: don't pass 'values' to task constructor
* Test fetching backends via entry points
* Pin testtools to 0.9.34 in test requirements
* Ensure we register the new zookeeper backend as an entrypoint
* Implement ZooKeeper as persistence storage backend
* Use addCleanup instead of tearDown in test_sql_persistence
* Retain the same api for all helpers
* Update execute/revert comments
* Added more unit tests for Task and FunctorTask
* Doc strings and comments clean-up
* List examples function doesn't accept arguments
* Tests: Persistence test mixin fix
* Test using mysql + postgres if available
* Clean-up and improve async-utils tests
* Use already defined PENDING variable
* Add utilities for working with binary data
* Cleanup engine base class
* Engine cleanups
* Update atom comments
* Put full set of requirements to py26, py27 and py33 envs
* Add base class Atom for all flow units
* Add more requirements to cover tox environment
* Put SQLAlchemy requirements on single line
* Proper exception raised from check_task_transition
* Fix function name typo in persistence utils
* Use the same way of assert isinstance in all tests
* Minor cleanup in test_examples
* Add possibility to create Failure from exception
* Exceptions cleanup
* Alter is_locked() helper comment
* Add a setup.cfg keywords to describe taskflow
* Use the released toxgen tool instead of our copy

0.1.2
-----

* Move autobinding to task base class
* Assert functor task revert/execute are callable
* Use the six callback checker
* Add envs for different sqlalchemy versions
* Refactor task handler binding
* Move six to the right location
* Use constants for the execution event strings
* Added htmlcov folder to .gitignore
* Reduce visibility of task_action
* Change internal data store of LogBook from list to dict
* Misc minor fixes to taskflow/examples
* Add connection_proxy param
* Ignore doc build files
* Fix spelling errors
* Switch to just using tox
* Enable H202 warning for flake8
* Check tasks should not provide same values
* Allow max_backoff and use count instead of attempts
* Skip invariant checking and adding when nothing provided
* Avoid not_done naming conflict
* Add stronger checking of backend configuration
* Raise type error instead of silencing it
* Move the container fetcher function to utils
* Explicitly list the valid transitions to RESUMING state
* Name the graph property the same as in engine
* Bind outside of the try block
* Graph action refactoring
* Add make_completed_future to async_utils
* Update oslo-incubator copy to oslo-incubator commit 8b2b0b743
* Ensure that mysql traditional mode is enabled
* Move async utils to own file
* Update requirements from opentack/requirements
* Code cleanup for eventlet_utils.wait_fo_any
* Refactor engine internals
* Add wait_for_any method to eventlet utils
* Introduce TaskExecutor
* Run some engine tests with eventlet if it's available
* Do not create TaskAction for each task
* Storage: use names instead of uuids in interface
* Add tests for metadata updates
* Fix sqlalchemy 0.8 issues
* Fix minor python3 incompatibility
* Speed up FlowDetail.find
* Fix misspellings
* Raise exception when trying to run empty flow
* Use update_task_metadata in set_task_progress
* Capture task duration
* Fix another instance of callback comparison
* Don't forget to return self
* Fixes how instances methods are not deregistered
* Targeted graph flow pattern
* All classes should explicitly inherit object class
* Initial commit of sphinx related files
* Improve is_valid_attribute_name utility function
* Coverage calculation improvements
* Fix up python 3.3 incompatabilities

0.1.1
-----

* Pass flow failures to task's revert method
* Storage: add methods to get all flow failures
* Pbr requirement went missing
* Update code to comply with hacking 0.8.0
* Don't reset tasks to PENDING state while reverting
* Let pbr determine version automatically
* Be more careful when passing result to revert()

0.1
---

* Support for optional task arguments
* Do not erase task progress details
* Storage: restore injected data on resumption
* Inherit the greenpool default size
* Add debug logging showing what is flattened
* Remove incorrect comment
* Unit tests refactoring
* Use py3kcompat.urlutils from oslo instead of six.urllib_parse
* Update oslo and bring py3kcompat in
* Support several output formats in state_graph tool
* Remove task_action state checks
* Wrapped exception doc/intro comment updates
* Doc/intro updates for simple_linear_listening
* Add docs/intro to simple_linear example
* Update intro/comments for reverting_linear example
* Add docs explaining what/how resume_volume_create works
* A few resuming from backend comment adjustments
* Add an introduction to explain resume_many example
* Increase persistence example comments
* Boost graph flow example comments
* Also allow "_" to be valid identifier
* Remove uuid from taskflow.flow.Flow
* A few additional example boot_vm comments + tweaks
* Add a resuming booting vm example
* Add task state verification
* Beef up storage comments
* Removed unused utilities
* Helpers to save flow factory in metadata
* Storage: add flow name and uuid properties
* Create logbook if not provided for create_flow_details
* Prepare for 0.1 release
* Comment additions for exponential backoff
* Beef up the action engine comments
* Pattern comment additions/adjustments
* Add more comments to flow/task
* Save with the same connection
* Add a persistence util logbook formatting function
* Rename get_graph() -> execution_graph
* Continue adding docs to examples
* Add more comments that explain example & usage
* Add more comments that explain example & usage
* Add more comments that explain example & usage
* Add more comments that explain example & usage
* Fix several python3 incompatibilities
* Python3 compatibility for utils.reflection
* No module name for builtin type and exception names
* Fix python3 compatibility issues in examples
* Fix print statements for python 2/3
* Add a mini-cinder volume create with resumption
* Update oslo copy and bring over versionutils
* Move toward python 3/2 compatible metaclass
* Add a secondary booting vm example
* Resumption from backend for action engine
* A few wording/spelling adjustments
* Create a green executor & green future
* Add a simple mini-billing stack example
* Add a example which uses a sqlite persistence layer
* Add state to dot->svg tool
* Add a set of useful listeners
* Remove decorators and move to utils
* Add reasons as to why the edges were created
* Fix entrypoints being updated/created by update.py
* Validate each flow state change
* Update state sequence for failed flows
* Flow utils and adding comments
* Bump requirements to the latest
* Add a inspect sanity check and note about bound methods
* Some small exception cleanups
* Check for duplicate task names on flattening
* Correctly save task versions
* Allow access by index
* Fix importing of module files
* Wrapping and serializing failures
* Simpler API to load flows into engines
* Avoid setting object variables
* A few adjustments to the progress code
* Cleanup unused states
* Remove d2to dependency
* Warn if multiple providers found
* Memory persistence backend improvements
* Create database from models for SQLite
* Don't allow mutating operations on the underlying graph
* Add graph density
* Suspend single and multi threaded engines
* Remove old tests for unexisted flow types
* Boot fake vm example fixed
* Export graph to dot util
* Remove unused utility classes
* Remove black list of graph flow
* Task decorator was removed and examples updated
* Remove weakref usage
* Add basic sanity tests for unordered flow
* Clean up job/jobboard code
* Add a directory/filesystem based persistence layer
* Remove the older (not used) resumption mechanism
* Reintegrate parallel action
* Add a flow flattening util
* Allow to specify default provides at task definition
* Graph flow, sequential graph action
* Task progress
* Verify provides and requires
* Remap the emails of the committers
* Use executors instead of pools
* Fix linked exception forming
* Remove threaded and distributed flows
* Add check that task provides all results it should
* Use six string types instead of basestring
* Remove usage of oslo.db and oslo.config
* Move toward using a backend+connection model
* Add provides and requires properties to Flow
* Fixed crash when running the engine
* Remove the common config since its not needed
* Allow the lock decorator to take a list
* Allow provides to be a set and results to be a dictionary
* Allow engines to be copied + blacklist broken flows
* Add link to why we have to make this factory due to late binding
* Use the lock decorator and close/join the thread pool
* Engine, task, linear_flow unification
* Combine multiple exceptions into a linked one
* Converted some examples to use patterns/engines
* MultiThreaded engine and parallel action
* State management for engines
* Action engine: save task results
* Initial implementation of action-based engine
* Further updates to update.py
* Split utils module
* Rename Task.__call__ to Task.execute
* Reader/writer no longer used
* Rename "revert_with" => "revert" and "execute_with" to "execute"
* Notify on task reversion
* Have runner keep the exception
* Use distutil version classes
* Add features to task.Task
* Add get_required_callable_args utility function
* Add get_callable_name utility function
* Require uuid + move functor_task to task.py
* Check examples when running tests
* Use the same root test class
* LazyPluggable is no longer used
* Add a locally running threaded flow
* Change namings in functor_task and add docs to its __init__
* Rework the persistence layer
* Do not have the runner modify the uuid
* Refactor decorators
* Nicer way to make task out of any callable
* Use oslo's sqlalchemy layer
* File movements
* Added Backend API Database Implementation
* Added Memory Persistence API and Generic Datatypes
* Resync the latest oslo code
* Remove openstack.common.exception usage
* Forgot to move this one to the right folder
* Add a new simple calculator example
* Quiet the provider linking
* Deep-copy not always possible
* Add a example which simulates booting a vm
* Add a more complicated graph example
* Move examples under the source tree
* Adjust a bunch of hacking violations
* Fix typos in test_linear_flow.py and simple_linear_listening.py
* Fix minor code style
* Fix two minor bugs in docs/examples
* Show file modifications and fix dirpath based on config file
* Add a way to use taskflow until library stabilized
* Provide the length of the flows
* Parents should be frozen after creation
* Allow graph dependencies to be manually provided
* Add helper reset internals function
* Move to using pbr
* Unify creation/usage of uuids
* Use the runner interface as the best task lookup
* Ensure we document and complete correct removal
* Pass runners instead of task objects/uuids
* Move how resuming is done to be disconnected from jobs/flows
* Clear out before connecting
* Make connection/validation of tasks be after they are added
* Add helper to do notification
* Store results by add() uuid instead of in array format
* Integrate better locking and a runner helper class
* Cleaning up various components
* Move some of the ordered flow helper classes to utils
* Allow instance methods to be wrapped and unwrapped correctly
* Add a start of a few simple examples
* Update readme to point to links
* Fix most of the hacking rules
* Fix all flake8 E* and F* errors
* Fix the current flake8 errors
* Don't keep the state/version in the task name
* Dinky change to trigger jenkins so I can cleanup
* Add the task to the accumulator before running
* Add .settings and .venv into .gitignore
* Fix tests for python 2.6
* Add the ability to soft_reset a workflow
* Add a .gitreview file so that git-review works
* Ensure we have an exception and capture the exc_info
* Update how graph results are fetched when they are optional
* Allow for optional task requirements
* We were not notifying when errors occured so fix that
* Bring over the nova get_wrapped_function helper and use it
* Allow for passing in the metadata when creating a task detail entry
* Update how the version task functor attribute is found
* Remove more tabs incidents
* Removed test noise and formatted for pep8
* Continue work on decorator usage
* Ensure we pickup the packages
* Fixed pep8 formatting... Finally
* Add flow disassociation and adjust the assocate path
* Add a setup.cfg and populate it with a default set of nosetests options
* Fix spacing
* Add a better task name algorithm
* Add a major/minor version
* Add a get many attr/s and join helper functions
* Reduce test noise
* Fix a few unit tests due to changes
* Ensure we handle functor names and resetting correctly
* Remove safe_attr
* Modifying db tests
* Removing .pyc
* Fixing .py in .gitignore
* Update db api test
* DB api test cases and revisions
* Allow for turning off auto-extract and add a test
* Use a function to filter args and add comments
* Use update instead of overwrite
* Move decorators to new file and update to use better wraps()
* Continue work with decorator usage
* Update with adding a provides and requires decorator for standalone function usage
* Instead of apply use __call__
* Add comment to why we accumulate before notifying task listeners
* Use a default sqlite backing using a taskflow file
* Add a basic rollback accumlator test
* Use rollback accumulator and remove requires()/provides() from being functions
* Allow (or disallow) multiple providers of items
* Clean the lines in a seperate function
* Resync with oslo-incubator
* Remove uuid since we are now using uuidutils
* Remove error code not found in strict version of pylint
* Include more dev testing packages + matching versions
* Update dependencies for new db/distributed backends
* Move some of the functions to use there openstack/common counterparts
* More import fixups
* Patch up the imports
* Fix syntax error
* Rename cause -> exception and make exception optional
* Allow any of the previous tasks to satisfy requirements
* Ensure we change the self and parents states correctly
* Always have a name provided
* Cleaning up files/extraneous files/fixing relations
* More pylint cleanups
* Make more tests for linear and shuffle test utils to common file
* Only do differences on set objects
* Ensure we fetch the appropriate inputs for the running task
* Have the linear workflow verify the tasks inputs
* Specify that task provides/requires must be an immutable set
* Clean Up for DB changes
* db api defined
* Fleshing out sqlalchemy api
* Almost done with sqlalchemy api
* Fix state check
* Fix flow exception wording
* Ensure job is pending before we associate and run
* More pylint cleanups
* Ensure we associate with parent flows as well
* Add a nice run() method to the job class that will run a flow
* Massive pylint cleanup
* deleting .swp files
* deleting .swp files
* cleaning for initial pull request
* Add a few more graph ordering test cases
* Update automatic naming and arg checks
* Update order calls and connect call
* Move flow failure to flow file and correctly catch ordering failure
* Just kidding - really fixing relations this time
* Fixing table relations
* Allow job id to be passed in
* Check who is being connected to and ensure > 0 connectors
* Move the await function to utils
* Graph tests and adjustments releated to
* Add graph flow tests
* Fix name changes missed
* Enable extraction of what a functor requires from its args
* Called flow now, not workflow
* Second pass at models
* More tests
* Simplify existence checks
* More pythonic functions and workflow -> flow renaming
* Added more utils, added model for workflow
* Spelling errors and stuff
* adding parentheses to read method
* Implemented basic sqlalchemy session class
* Setting up Configs and SQLAlchemy/DB backend
* Fix the import
* Use a different logger method if tolerant vs not tolerant
* More function comments
* Add a bunch of linear workflow tests
* Allow resuming stage to be interrupted
* Fix the missing context variable
* Moving over celery/distributed workflows
* Update description wording
* Pep fix
* Instead of using notify member functions, just use functors
* More wording fixes
* Add the ability to alter the task failure reconcilation
* Correctly run the tasks after partial resumption
* Another wording fix
* Spelling fix
* Allow the functor task to take a name and provide it a default
* Updated functor task comments
* Move some of the useful helpers and functions to other files
* Add the ability to associate a workflow with a job
* Move the useful functor wrapping task from test to wrappers file
* Add a thread posting/claiming example and rework tests to use it
* After adding reposting/unclaiming reflect those changes here
* Add a nicer string name that shows what the class name is
* Adjust some of the states jobs and workflows could be in
* Add a more useful name that shows this is a task
* Remove impl of erasing which doesn't do much and allow for job reposting
* Various reworkings
* Rename logbook contents
* Get a memory test example working
* Add a pylintrc file to be used with pylint
* Rework the logbook to be chapter/page based
* Move ordered workflow to its own file
* Increase the number of comments
* Start adding in a more generic DAG based workflow
* Remove dict_provider dependency
* Rework due to code comments
* Begin adding testing functionality
* Fill in the majority of the memory job
* Rework how we should be using lists instead of ordereddicts for optimal usage
* Add a context manager to the useful read/writer lock
* Ensure that the task has a name
* Add a running state which can be used to know when a workflow is running
* Rename the date created field
* Add some search functionality and adjust the await() function params
* Remove and add a few new exceptions
* Shrink down the exposed methods
* Remove the promise object for now
* Add RESUMING
* Fix spelling
* Continue on getting ready for the memory impl. to be useful
* On python <= 2.6 we need to import ordereddict
* Remove a few other references to nova
* Add in openstack common and remove patch references
* Move simplification over
* Continue moving here
* Update README.md
* Update readme
* Move the code over for now
* Initial commit
