CHANGES
=======

0.6.11
------


0.6.10
------

* Fix pyghmicons script crash on idle
* Added password file support

0.6.9
-----

* Correct pool usage count on failed login
* Correct console behavior when open session fails

0.6.8
-----

* Deregister timeout on broken

0.6.7
-----

* Correct ignoring socket when inappropriate

0.6.6
-----

* Fix coping with incoming packet in incomplete state

0.6.5
-----

* Fix unregister_keepalive when no keepalives registered
* Fix attribute error on particularly bad connections

0.6.4
-----

* Handle packet loss correctly in logout/logon

0.6.3
-----

* Avoid looping select() on sockets repeatedly
* Correct return value of set_bootdev
* Install scripts as well as library
* Remove references to custom keepalives on logout

0.6.2
-----

* Slow down to chunk-wise retrieval of SDR as needed
* Implement function to check SOL payload as keepalive
* Avoid zombie sessions corrupting living sessions
* Do not reuse a session that is not logged
* Break session objects on keepalive failures
* Use multiple sockets instead of one
* General cleanup of session
* Correct check for _sdr in command
* Clean up command.py
* Correct mistakes in constants
* Correct sensor offset for byte 5 state values
* Fix mass thread initialization of sessions
* Add sensor information from IPMI 2.0 rev 1.1
* Add optical and bios aliases for boot devices
* Auto degrade sessions to operator when admin is forbidden
* Add more missing sensor specific event information
* Add version change sensor information
* Gracefully flag unrecognized discrete sensor states
* Add discrete states for event log status sensors

0.5.9.3
-------

* Allow pyghmi to send break over IPMI SOL
* Switch from PyCrypto HMAC to standard python hmac
* Tolerate unicode strings as username and password
* Fix missing delay_xmit argument breaking power wait requests
* Fix race condition in requesting delays

0.5.9.1
-------

* Fix race condition on sending data

0.5.9
-----

* Fix large paste to SOL session
* Move previous fix out to command and console
* Fix session reuse stall for async usage
* Make pyghmi tolerate arbitrary threading models
* Do not count empty SOL data as keepalive data
* Use different timeout values for logon and retry
* Fix Console write race condition
* Reasonably relay IPMI errors to console handlers
* Allow special handling to preceed generic handler
* Fix exception if login times out
* Detect and notify Console users of disconnect
* Detect broken sessions
* Fix keepalive behavior on broken Sessions
* Add support for discrete sensors
* Add BMC bridge request extension
* Add 'get_health' to Command class
* Add 'get_sensor_data' to Command class
* Add support for retrieving SDR data
* Remove surviving 'callback' code
* Remove callback from session.py
* Add errors for activate session response codes
* Remove callback usage from console.py
* Fix some reentrant scenarios
* Have ipmi session objects reuse themselves
* Stop waiting on logout during atexit
* Change SOL code to not send empty data to caller

0.5.8
-----

* Use distinct exceptions for many cases
* Enhance filehandle registration
* Fix pyghmi behavior on BMC NACK

0.5.7
-----

* Update from requirements

0.5.6
-----

* Correct concatenation of string and int object

0.5.5
-----

* Expose wait_for_rsp class method via public classes

0.5.2
-----

* Fix mistake with external filehandle and solconnect

0.5.1
-----

* Change from poll(
* Have callback recognize any callable
* Add function to send sol data
* Add support for non standard ports
* Finalize rename to pyghmi
* Fix raw handling by ipmictl.py

0.5.0
-----

* Rework set_power handling of errors and noops
* Rename package from python-ipmi to pyghmi
* Change long timeout to select() from poll()
* Enhance wait behavior of set_power
* Rename to pyghmi
* Remove callback arguments from most functions
* Change session timer to monotonic when possible
* PEP8 compliance
* Add raw command to ipmictl
* Add session keepalive
* Add SOL support
* Add more constants to ipmi constant list
* Fix errors after git repo transition
* Correct spelling mistakes
* Rename _pack_payload to send_payload
* Fix all pep8 errors except E128 and E501
* Align to OpenStack Build Standards
* Added gitreview file
* fix setup to include the private parts of the project
* Reorganize pieces into 'private' to suggest to consumers the bits tehy need not think too hard about
* Change to setuptools
* Change requires to install_requires
* Attempt to indicate pycrypto dependency
* Reorganie things and add a setup.py for fun
* More style changes
* More cleanup, correct some syntax errors encountered trying to meet line length
* More style reworking
* Stylistic reworks
* More stylistic changes to ipmi_command.py
* Rename ipmi_syncexample to something less tounge twisting
* Rework docstrings
* Reorder imports
* Change one conditional to perhaps be a bit more readable
* Add name to TODOs that I put down
* Add LICENSE excerpt to each file
* Place project under Apache license 2.0
* Get acceptable copyright message in place
* Flesh out documentation
* Add sphinx 1.0 structure instead of older version
* Revert "Add sphinx doc generator bits"
* Add sphinx doc generator bits
* Add an example chunk of code showing how to code in a synchronous way to the python library
* Add set_power, with wait argument to not return until new state confirmed
* Add retry/timeout behavior to library
* Have get_power coded more similarly to get_bootdev
* Add boot device control functions
* Put IBM copyright into the files
* Add a convenience wrapper to do the higher layer simple commands
* Fix up error status situation
* Clean up ipmi_session a little bit
* Do some rewording
* Fix the integrity pad calculation (shame python doesn't have a 'use strict')
* Remove developer prints
* Fix decryption... mystery remains as to why logout and only logout seems to fail if aes is not enabled in ipmi 2.0 land.
* Have IPMI2 work for unencrypted, still sorting out decryption... encryption seems to work, but decrypting the response..
* Fix problem where the data from bmc was not being integrity checked in 1.5
* Fix problems with k1 and k2 key generation and HMAC on outgoing
* Almost working IPMI 2.0 support..... disable encryption to facilitate/narrow debug... currently integrity algorithm is apparantly failing to pass on *outgoing* packets, though RAKP4 incoming did pass
* More forcefully note the TODOs so people know when they hit them
* Python ipmi can now actually do commands using 1.5
* More work to make it get further on session establishment
* Milestone: can now receive and correctly parse get channel auth capabilities result
* Milestone: now able to craft valid Get channel authentication capabilities request and trigger response
* Get a lot closer to a working ipmi python implementation
* Break out constantns to a diff file
* More progress on perl to python port of ipmi
* Kick things off with a little bit of header data
