CHANGES
=======

2.2.2
-----

* Bump release version
* Allow requests 2.12.2+, as its not broken anymore

2.2.1
-----

* Bump version
* Change Operation calls to use the manager methods on client
* Add `exists` to `Container`, `Image`, and `Profile`
* Add NotFound exception in the case of 404

2.2
---

* Support more cryptography versions
* Fix coverage issues
* Allow multipart form uploads for images
* Update tests
* Rename Container.execute_with_result to Container.execute
* Bump to 2.2

2.1.3
-----

* Delete the integration test container on completion
* Fix unit test
* Add integration test for Client.authenticate
* Strip trailing slashes
* Default cert parameter to the certs that were generated by `lxc $command`
* Add Container.execute_with_result
* Prevent request 2.12+ for now
* Require pyOpenSSL for older Python releases
* Bump to 2.1.3

2.1.2
-----

* Remove the need for a mock-services branch test
* Fully deprecate the old api
* Remove unneeded debugging code
* Fix the ws4py connection handling for container execution
* Bump version
* Extract the migration data step of migration
* Add missing attributes to Network model
* Improve documentation with a new container example

2.1.1
-----

* Fix missing coverage
* Fix tests
* Add integration tests for container.publish
* Add documentation for the new Image.export API
* Return a file-like object from Image.export
* Update the apt cache in the integration test run before installing packages
* Make ws4py an optional library
* Update _APINode to have a cleaner interface
* Don't allow local connection clients to attempt a migration
* Bump to 2.1.1
* Add script to easily run the integration tests

2.1
---

* Remove the deprecated apis in preparation for pylxd 2.1
* Made Model.__dirty__ a set, not a list
* Fix other integration tests
* Fix start/stop integration test
* Bump version number
* Move the model tests to pylxd.tests.models
* Move pylxd.profile to pylxd.models.profile
* Move pylxd.operation to pylxd.models.operation
* Move pylxd.network to pylxd.models.network
* Move pylxd.image to pylxd.models.image
* Move pylxd.container to pylxd.models.container
* Move pylxd.certificate to pylxd.models.certificate
* Move pylxd.model to pylxd.models._model
* Add pylxd.models package

2.0.4
-----

* Warn but don't raise exception on unknown attributes
* Fix traceback when using when LXD 2.1
* Revert "Fix traceback when using when LXD 2.1"
* Fix traceback when using when LXD 2.1
* Doc update: howto change attributes of a container
* Add images.create_from_* tests
* Add image.create_from_simplestreams and image.create_from_url
* Make auto_update optional, fixes #165
* Add images.copy()
* Add a testcase for deleting aliases which are not in the current image
* Don't return self on image alias operations
* Add image aliases support
* Quote the path of unix endpoints
* Remove silly bit
* Third time's the charm
* Ugh. Missed the proper exception
* Add test for operation wait errors
* Also ignore sublime files
* Add the update_source attribute images, fixes #158
* Bump version to 2.0.4
* Add support for container and snapshot publish

2.0.3
-----

* Add the ability to get an image by its alias (fixes #152)
* Add new docs
* Fix lint
* Fix for 2.0.3
* Remove unneeded/useless exceptions
* Add more tests for model (and fix a bug)
* Keep a list of all dirty attributes
* Remove __dirty__; opt for attributes keeping track of state
* Make migration work
* Fix broken merge
* Add rename support to Profile (fixes #148)
* Convert tests to use async
* Only `wait` if the response is async
* Update deprecated API calls in tests
* Fix unit and integration tests
* Fix integration test issues
* Remove calls to `update`, opting for `save`
* Convert Snapshot to the model API
* Update Container to the model api
* Update Image to the model api
* Convert the Profile to the model api
* Update Certificate to use the model code
* Explore sorting the certificate issue
* Don't if. It's a standard PEM format
* Fix the cert handling
* Fix lint
* Fix tests
* Fix busybox.obfuscate (closes #143)
* `delete` and `save` are not allowed in networks
* sync should be covered by test coverage
* Add support for /1.0/networks
* Add the model
* Add coverage (why wasn't it already there?)
* Fix lint
* Remove deprecated codepaths from the integration tests
* Pin ws4py to not use 0.3.5
* Add explanatory note for the req-unixsockets version dependency
* Revert "Add integration test for HTTP_PROXY environment variable"
* Require latest version of requests-unixsocket
* Add integration test for HTTP_PROXY environment variable
* Remove stale comment
* Add stub for migration
* Add Authentication doc to index
* Add docs for how authentication works with LXD
* Move Client.authenticated to Client.trusted
* Fix lint
* Whitespace..
* Add support for certificate authentication
* Bump version

2.0.2
-----

* Add license
* Add test coverage for Operation
* Fix lint
* Oops. Forgot to remove references to Waitable
* Remove Waitable entirely
* Remove Waitable.get_operation
* Fix lint
* Use Operation
* Remove XXX comment
* Fix execute
* Unify the websocket url logic
* Add integration test
* Fix lint
* Add tests for websocket events
* Add documentation for websocket events support
* Add websocket events support
* Add more tests for container state
* Increase test coverage for pylxd.image
* Add image export support with accompanying tests
* Update client back to 100% coverage
* Fix lint
* More test coverage, specific to the patch
* Add test coverage (to satisfy codecov)
* Update client tests for more coverage
* Fix lint
* Fix the unit tests
* Add response assertions for lxd
* Fix container test to be able to run in parallel
* Fix lint
* Update mock_lxd to look more like lxd
* Fix profile integration tests
* Fix test_images integration tests
* Fix the container integration tests
* Update host cache based on feedback
* Cache LXD host info
* Add coverage exclusions
* Add a manager-esque FilesManager to namespace files
* Update the mock service to be more strict
* Don't run coverage on a method that raises an exception
* Refactor the manager protocol to be a little cleaner
* Use the new deprecated decorator
* Add documentation for the snapshots manager
* Don't worry about coverage in `deprecated`
* Change all internal instances of `Container.reload` to `Container.fetch`
* Fix pep8
* Add a deprecated decorator
* Fix pep8
* Update for future development
* Add Container.snapshots manager API
* Remove HACKING (it's unneeded)
* Add more changes based on a local build of the docs
* Add documentation for the other objects
* Update usage docs for containers
* Update installation doc
* Update skeleton copyright (not OpenStack Foundation)
* Update contributing document
* Update README.rst

2.0.1
-----

* Release of pylxd 2.0.1
* Remove `Profile.rename` code; add a test
* Add Image.fetch and impartial image state knowledge to Image
* Implement ObjectIncomplete exception on `Container.update`
* Implement fetch for Profile
* Add test for issue #110
* Add certificate handling for LXD over https
* Delete redundant tests
* Fix https connection
* Removed some duplicated logic
* Don't regress on test coverage
* Consolidate ContainerState into pylxd.container
* Use python 3.5
* Fix travis run
* Add coverage report to tox
* Small typo fixed
* Add some stinkin' badges
* Add codecov.io integration
* Fix pep8
* Add data to the exceptions, so they can be explored better
* Allow specification of devices in a profile
* Add new exceptions to Profile and Image
* Add CreateFailed exception to Container
* Raise NotFound when the container isn't found, rather than NameError
* Add `pylxd.client.Client` to `pylxd.Client`
* Add validation to the `pylxd.Client` creation
* Make architecture a string type
* status is a string now
* Documentation improvements
* Travis.yml update
* Remove module that breaks autodoc
* Update tests and code for issues found in updating example
* Update api example for PyLXD 2.0 API
* Add new pylxd unittests
* Add more coverage settings
* Fix the DEFAULT_TLS_VERSION holes
* Add tests for pylxd.client
* Fix a bug with LXD_DIR in the lxd client
* Update README to display instructions of installing
* Add basic API documentation
* Fix documentation
* No py34, just py3
* python3: Fix use of iteritems
* python3: Fix use of urllib quote
* Tag 2.0.0
* Container methods fixed for freeze, unfreeze and restart
* Fix six.PY34 into six.PY3
* Fix pep8
* Add host config API call
* Grab the certificate of the host
* Fix container migration

2.0.0b2
-------

* Bump to 2.0.0b2
* Fix formatting file for travis
* Add state function on container to return state with network. ex: container.state().network['eth0']
* Fix change "creation_date" to "created_at"

2.0.0b1
-------

* Bump version 2.0.0b
* Move pylxd.tests to pylxd.deprecated.tests
* Move pylxd.profiles pylxd.profile
* Move pylxd.profiles.LXDProfile to pylxd.deprecated.profiles
* Move pylxd.operation.LXDOperation to pylxd.deprecated.operation
* Move pylxd.image.LXDImage to pylxd.deprecated.image
* Move pylxd.network import pylxd.deprecated.network
* Move pylxd.hosts to pylxd.deprecated.hosts
* Move pylxd.exceptions to pylxd.deprecated.exceptions
* Move pylxd.utils to pylxd.deprecated.utils
* Move pylxd.connection import pylxd.deprecated.connection
* Move pylxd.certificate to pylxd.deprecated.certificate
* Move pylxd.container.LXDContainer to pylxd.deprecated.container
* Move base to deprecated
* API now raises a DeprecationWarning
* Move api to the deprecated module
* Add docstrings
* We support python 3 lol
* Head and shoulders
* Fixed the APINode tests
* Cleanup the convenience/wrapper classes in Client
* Move Operation to its final place
* Move Image to its final spot
* Move Profile to its final spot
* Move Container to its final spot
* Fix the integration tests
* Add tests and functionality for profiles
* Update the create_image use for multiple return values
* Add support for updating/deleting images
* Get the basic Images skeleton working
* Change the way that test objects are named
* Fully functional Container class
* Remove redundant tests
* Get the first of the integration tests working
* Fix integration tests
* Move _APINode
* Initial skeleton for 2.0 api
* Add more integration tests
* Add integration tests for containers
* Support python 3.4+
* Update requests to not conflict
* Ugh. So many things, but just remove openstack junk
* No pypy
* Upgrade pypy
* Update travis config
* Upgrade ostestr
* Blacklist with travis as well..
* Blacklist the integration tests
* Fix lint
* Add integration tests
* Add support for unix sockets and post
* Add better docs for APINode
* Add APINode class, with accompanying tests
* Add requests library to dependencies
* Update timeout usage
* Remove override of close() in WebSocketClient
* Start next release

0.19
----

* Bump to v0.19
* Remove get_ws() method stub with real websocket implementation
* Update requirements
* Detect SSL TLS version
* Add pyopenssl to requirements
* Refactor LXDConnection http requests
* Fix issue in LXDContainer.container_running() method
* faster behavior for determining if a container is defined
* update version to keep tox happy
* refer to the operation by its URL always

0.18
----

* Bump to 0.18
* Bump the version
* Automatically populate container_migrate metadata
* Use os-testr for test suite execution
* Update the docs, add travis status indicator
* Switch to using get_object in image_upload
* Container state
* Bump to 0.17
* fix pep8
* Fix tests for python34
* fix syntax typo
* fix operation_test
* Fixup failing container migration test
* Fixup test failures due to passing {} for default headers
* Revert "Use object rather than status."
* Ensure that an empty dict is passed by default
* Tidy all pep8 warnings and errors
* Revert from using eventlet directly, avoiding hard link to async framework
* Use correct octal literal (not hex)
* weak ordering of parameters in expected test results
* Revert "Return metadata for container_state"
* Add force attribue to test_container_actions
* Add missing dependency to requirements.txt on eventlet, fixup py3 syntax
* Ensure TLS 1.2 protocol is enforced when communicating with LXD over HTTPS
* Add container sync
* wire up local move
* Fix requirements
* Add container move local
* Add container_local_copy
* Fix bad merge
* Use eventlet green for httplib and socket
* switch to eventlet patcher
* fix typo
* add websocket stream
* Return metadata for container_state
* Add container_info
* Add websocket support
* Removed unnecessary file close
* Add .travis.yml
* Implement container file upload
* Use object rather than status
* Tag 0.16
* Fix more typos
* Fix typo
* Add image headers
* Container copy doesnt send criu
* Force the container action
* Update container migration
* fix up CONTRIBUTING.rst
* Add tests for info, config and migrate calls
* Fix typo
* Fix coveragerc
* Fix typo
* Add container_migrate
* Add container_info
* Fix spelling typo
* Add support for 'lxc info'
* tag 0.13
* Sync requirements
* Fix test_https_proxy_connection assertion
* Fix certificates list
* Refactor profiles tests to reduce copypasta
* Refactor operation tests to reduce copypasta
* Refactor network tests to reduce copypasta
* Refactor image alias tests to reduce copypasta
* Refactor host tests to reduce copypasta
* Refactor container tests to reduce copypasta
* Refactor certificate test to use LXDAPITestBase
* Fix image test rename
* Refactor image tests to reduce copypasta
* Use _once_ and add asserts to container tests
* Fix image size calculation in py3
* API.profile_rename is implemented, in fact
* Refactor image alias tests
* Fix LXDAlias.alias_{update,rename}
* Fix LXDAlias.alias_defined
* Refactor alias tests
* Add image export fail test and add a call assert
* Add file upload test
* Add failed image operations tests
* Fix image_{update,rename} calls
* Refactor image operations tests
* Drop image_defined function
* Fix get_image_size
* Add image info tests
* Refactor image date tests
* Refactor and improve image info test
* Fix LXDImage.image_defined
* Refactor base image tests
* Refactor and complete host test
* Add LXDConnection.get_ tests
* Add base connection tests
* Fix host_ping tests
* Introduce base exceptions.PyLXDException
* Fix test_container_run_command
* Use six.moves.urllib for urlencode
* Make operation tests timezone-aware
* Fix network list
* Add network tests
* Add operation tests
* Fix LXDProfile.profile_rename raise
* Add profile tests
* Add certificate API tests
* Add container_run_command test
* Fix typos in LXDContainer.container_snapshot_*
* Add container snapshots tests
* Fix LXDContainer.put_container_file() raise
* Add container file operations tests
* Fix LXDContainer.container_running
* Add container api tests
* Add annotated_data decorator
* Add missing alias tests
* Add missing image tests
* Improve api coverage
* Use absolute imports for py3 compatibility
* Use six.moves.http_client for py3 compatibility
* Fix PEP8 errors
* Fix test_image mocks to use get_object
* Fix test_image_alias fake data
* Fix test_image_upload_date for timezone difference
* tag 0.12
* Fi alias listing
* Fix contianer -> container
* Fix enviorn -> environ
* fix alias list
* Add more tests
* Remove functional tests
* Update tests
* Fix image_defined
* Add more hosts tests
* Add more host tests
* Add missing file
* Re-do unittests
* fix container status
* Add container_update
* Fix get_status
* Improve error checking
* Add alias existance
* raise more useful exception
* Add certificate unit tests
* Drop unused imports
* Fix typo
* Check for existance
* Fix image_defined
* Various fixes
* Update profile usage
* Fix up hosts
* Fix some bugs add lxd_version
* fix image export; allow image upload from blob
* add support for connecting to remote LXD hosts
* fix typo in run_command
* fix date parsing and typo
* Add exec support
* Add snapshot support
* Add support for contiainer_running
* container_defined
* Add container timeout
* Add container defined
* Fix typo in operations
* update requiremets.txt to fix a bug. Fixes #3
* remove oslo_utils and calculate the size directly. Fixes #4
* Fix get_status
* Changes the old print to the new print compatible with py2 and py3 and changes the error messages to reflect the actual error

0.1
---

* Add missing example
* Update Readme
* Add example and various fix ups for example
* wire up more containers
* Add version and container support
* fix typos
* Wire up certificates
* Fix up pep8 warnings
* Wire up profiles
* rename client to API
* wire up operation
* wire up network
* Wire up image alias
* Wire up images
* Wire up hosts
* Fix warnings and pep8 issues
* Refactor pylxd connection
* image updates
* fix typos
* add kernel and lxc version
* more refactoring
* more refactoring
* refactor hosts again
* fix typo
* add trust info
* break out host info
* start wiring up host_info
* fix exception handling
* more smarts for host_up
* Fix host ping
* fix typo
* wire up a bit harder
* Wire up ping
* Fix typo
* Fix hosts
* Add host_ping example
* Add skeleton
* Update connections info
* Initial commit
* Initial Cookiecutter Commit
