CHANGES
=======

0.9.11
------

* Implemented automatic updates plugin
* Improve MIME multipart userdata handling
* Remove unnecessary print
* Adds Windows service CRUD methods
* Update the WinRM Listener plugin
* Adds plugin for setting SAN policy
* updates hacking requirement
* Adds userdata write file option
* Adds support for renaming the builtin account administrator
* Enables or disables TRIM delete notifications
* Adds Windows pagefiles plugin
* Adds real time clock support in NTP client
* Adds KMS and AVMA licensing automation
* Adds display idle timeout plugin
* Adds boot configuration plugins
* Initialize service var before the metadata discovery
* Adds two RDP settings plugins
* Fix win2k16 extend volume during specialize
* Adds Nano support for adding users to groups
* Improve the get metadata logic
* Refactor the CloudStack Metadata Service
* Respawns process with new service credentials
* Improve code coverage
* Bumps version to 0.9.11

0.9.10
------

* Resets service user password at each execution
* Fix docs build
* Handle [SSL: CERTIFICATE_VERIFY_FAILED] exception
* Add support for generating cloudbase-init configuration sample
* Restructure the config options from metadata services
* Fix misspelled classname in posix
* Sets the WinRM self signed start date in the past
* Fixes WinRM listener plugin x509 end time
* Fixes size numeric comparison in extend_volumes
* Bumps version to 0.9.10

0.9.9
-----

* Make the multithreaded coinitialize only on 64bit
* Updates project repo to openstack
* Update .gitreview for new namespace
* Remove extra (main) from the documentation
* Document the plugin stages feature
* Use the wide correspondent for the crypt function
* Ironic config drive support
* Move `test_mtu.py` file to its corresponding place
* Rename "physical_disk" utility into "disk"
* Move plugins factory on top plugins level
* Add tests for `set_network_adapter_mtu` in osutils
* Adds plugin execution stages
* Do not run slmgr.vbs on Nano Server
* Adds support for PowerShell on Nano Server
* Enumerate VDS queries using a common function
* Adds Windows Storage Manager API support
* Fixes Win32_OSVERSIONINFOEX_W field types
* Use floor division where floating point division was used
* Use LogSnatcher to catch the messages emitted by the loggers
* Add a new method `get_decoded_user_data` to the metadata services
* Replaces InitiateSystemShutdownW
* Use environment markers for platform-specific modules
* Normalize the payload to bytes before delegating to userdatautils
* Fixes check_os_version on Windows 10
* Replaces ADSI COM API calls with NetApi
* Fix py3 x64 crash thread related
* Move the logic from windows.setuserpassword back into common.setuserpassword
* Remove method which is not used anywhere in the project
* Fix every class that should be abstract
* Log any uncaught exception thrown by the service
* Add cloudbase-init Sphinx documentation
* Show the error code in network config
* Service triggers are available since 6.1, not 6.0
* Added userdata plugin for setting the hostname
* Move to the new oslo_config and oslo_log modules
* Check the latest version of cloudbaseinit
* Improves logging when exiting the plugins loop
* Change VFAT logging type to debug
* Fix mock_open issue in opennebula test
* Add support for changing the password at next logon
* Don't try to execute X509 certificates
* Add support for controlling the reboot from cloud-config plugins
* Remove duplicate LOG intit line in winrmlistener
* Remove explicit unnecessary variable init
* Remove unused parameter in setuserpassword plugin
* Remove unnecessary parantheses
* Get rid of all __all__
* Take care of return codes when executing scripts
* Log the current version of the product before configuring
* Normalize all metadata providers and plugins
* Fix metadata loading bug in OpenNebula service
* Read OpenNebula metadata as bytes
* Do not log user data content
* Improve WindowsUtils._get_ipv4_forward_table
* Adds stable MSI urls to README.rst
* Bumps version to 0.9.9

0.9.8
-----

* Fix improper EOL handling between the public keys
* Better ssh and x509 keys extraction
* Get rid of flake8 compatibility issues due to pbr
* Removed network "capability" with missing code
* Updates binaries location in README.rst
* Add a mapping between old plugin names and new plugin names
* Don't hard fail when a plugin can't be imported
* Fixes wrong Classifier License in setup.cfg
* Add support for IPv6 network configuration
* Escape the password for WinRM certificate XML
* Get credentials from metadata for WinRM auth plugin
* Fix GetAdapterAddresses flags bug
* Update the sethostname and ntp plugins path
* Small updates to the README
* Add temporarily tzlocal to requirements
* Add support for update password
* Provide more debugging info for obtaining the VFAT drive label
* Add support for change admin password
* Add support for update password
* Show the result of the mlabel when logging the mlabel failure
* Improve the test coverage by a couple of percents
* Fix DHCP options querying issues
* Add a new cloud-config plugin for setting the timezone
* Fix the names of assert methods belonging to a mock
* Refactor variable for processed network details
* Better static network configuration support
* Move remaining cloudconfigplugins test files to plugins.common
* Provide the error code in the Windows exception messages
* Check for the label of the volume from the VFAT filesystem
* Return the appropriate system path
* Replace the oauth library with oauthlib
* Ignore PyCharm settings/data
* Make sure that the configured user profile registry key exists
* Add support for VFAT ConfigDrive
* Increase the password limit
* Fix CloudStack problem with ssh public keys
* Move Windows specific bits for the CreateUser plugin
* Add a method for obtaining the maximum password length
* Don't generate a new password in SetUserPassword
* Add new test cases for setuserpassword
* Handle the choice of reboot of the instance in osutils.set_host_name
* Move Windows specific bits for NTP plugin to windows section
* Move non-Windows specific plugins to common
* Add testutils.ConfPatcher and use it in tests
* Support all the variants for writing files with cloudconfig
* Add support for multipart cloudconfig format
* Refactor cloudconfig plugin, in order to simplify enhancements
* Add support for EC2 config scripts
* Enable password set in case of rescued instances
* Global mass refactor
* Add support for multiple NTP hosts
* The MAAS metadata service is not loaded
* Don't change the trigger mode on older OSes
* Fix x64 architecture related issues
* Change the trigger modes to network availability for w32time
* Fixes README RST markup
* Updates the README file
* Fixes a password type conversion issue on Python 3
* Fixes encrypted random password length issue
* Renames module executil to execcmd
* Bumps version to 0.9.8

0.9.7
-----

* Adds ADSI based Windows user management
* Updates pbr requirements
* Remove deprecated static network config method
* Rewrite exec utilies to be generic
* Fixes Python34 bugs
* Fixes configplugin execution bug
* Use keyword argument for boolean flags
* Fixed userdata plugin return value for Python3
* Removes incorrect deprecation comments
* Add test for the mtu plugin
* Add support for OpenNebula meta-data
* Add support for specific network configuration
* Fix support for CloudStack metadata
* Fixes encoding issue
* Fixes unicode logging decoding issue
* Add support for yaml user-data
* Fixed ctypes/wintypes issue
* Add support for CloudStack metadata
* Fixes winrm access denied bug for Windows versions 6.0 and 6.1
* Adds .gireview file
* Fixes requirements on Linux
* Fixed serial port logging
* Added CloudbaseInitException class
* Adds fix for heat directory bug
* Added tests for utils/windows modules
* Adds tests for utils/windows/network.py
* Fixed assertEqual order in tests
* Fixed various flake8 errors
* Adds tox.ini
* Fixed various pep8 errors
* Fixed osconfigdrive test errors
* Modified osconfigdrive/test_windows.py to work on Linux
* Use bytearray.fromhex instead of binascii.unhexlify
* Adds a serial logging wrapper for unicode strings
* Replaces s.unicode with six.text_type
* Fixes issue with serial port logging availability
* Fixed platform specific import error on Windows
* Modified osutils/test_windows.py to work on Linux
* Fixed test_log.py import error
* Modified test_x509.py to work on Linux
* Fixes import issue in test_winrmconfig.py
* Minor PEP8 cleanup
* Modified test_winrmconfig.py to work on Linux
* Minor PEP8 refactoring
* Fixes various tests for Python 3.x support
* Moves _W32TIME_SERVICE to the module scope
* Adds Python 3.x support in setup.cfg
* Refactoring of test_windows.py
* Minor PEP8 fixes
* Test module patching refactoring
* Adds Python 3.x support to userdata script
* Adds Python 3.x support for map calls
* Fixes Python 3.x support in test_winrmconfig
* Removes redundat flag in Win32 netwok call
* Uses six.StringIO for Python 3.x support
* Replaces reload() and __builtin__ for Python 3.x
* Adds Python 3.x support in utils network module
* Adds Python 3.x support in DHCP module
* Adds Python 3.x support in metadata services
* Fixes PEP8 errors in unicode management
* Adds module for Python 3.x unicode compatibility
* Fixes minor PEP8 errors
* Replaces _winreg module with six.moves.winreg
* Removed print statements from test files
* Fixes numeric literals for Python 3.x
* Adds Python 3.x compatible exception handling
* Updates Oslo modules
* Adds a try catch for user logon session creation
* Adds bind retry option for DHCP client
* Fixes issue in get_dhcp_hosts_in_use
* Fixes bug in obaining DHCP server address
* Adds cloudbaseinit.utils.windows.network module
* Added tests for LocalScriptsPlugin
* Refactored tests for ShellScriptPlugin
* Update README.rst
* Adds the LocalScriptsPlugin plugin
* Refactoring of ShellScriptPlugin part handler
* Adds Windows MTU plugin
* Adds mac address as return value in get_dhcp_hosts_in_use
* Fixes DHCP request test
* Fixes mac address format bug in DHCP data request
* Fixed a few pep8 nits
* If the hostname ends with '-', replace the '-' with '0'
* Adds tests for NTP and DHCP configuration
* Fix pep8/flake8 errors, remove unrelated code
* Updated conf opt names and updated descriptions
* Add flag to turn on routed metadata
* Adds NTP configuration based on DHCP
* Added tests for the new licensing plugin
* Revert "Added tests for windows configdrive module"
* Logs license info always in licensing plugin
* Adds Windows licensing plugin
* Added tests for windows config drive
* Replaces WMI physical diskw enum with API calls
* Added tests for windows configdrive module
* Adds bsdtar ISO9660 RAW HDD extraction support
* Removed static values from plugins tests
* Fixes regression: reboot only if hostname is set
* Improves transient issues tolerance in EC2Service
* Adds a debug message in check_url
* Adds a retry mechanism for check_url
* Checks the exit code when adding a static route
* Adds route only if metadata url is not accessible
* Fixes minor PEP8 issue
* Updated unit tests
* Executes Powershell as sysnative by default
* Minor refactoring for constant
* Adds support for gzipped userdata content
* Adds user_data support for MaaS metadata service
* Adds configdrive factory test configdrive load test
* Fixes return code bug for powershell scripts
* Unit test refactoring
* Reintroduces EC2 metadata service
* Test refactoring
* Removes Windows dependencies in metadata services
* Adds missing CONF.import_opt in SSH keys plugin
* Adds missing CONF.import_opt in password plugin
* Moves winrmconfig from plugins to utils.windows
* Fixes set_static_network_config parameters
* Replaces usages of "locals()"
* Removes unused imports
* Refactoring factory methods in functions
* ConfigDrive metadata service refactoring
* Refactoring for Windows related utilities location
* Adds support for multiple instances
* Adds comtypes to the requirements
* Adds support for MaaS metadata
* Removing temporarily ec2service
* Metadata service refactoring
* Added tests for the log utils module
* Adds six and Babel to the requirements
* Changes log level for sysprep completion message
* Updates oslo-incubator files to the current master
* Move setup to pbr usage
* Updates oslo-incubator files
* Move to oslo.config
* Adds additional serial port logging config
* Removes unnecessary pass statement
* Fixes bug in winrm cert auth plugin for user_data
* Adds pyserial to the requirements
* Normalize line endings
* Adds serial port logging support
* Modified test for heat handler plugin
* Adds support for additional Heat configurations
* Fixes get_network_adapters issue on Windows 2003
* Changed the tests for hostname plugin
* Adds option to truncate host name to Netbios len
* Modiffied tests for refactored userdata handling
* Additional userdata refactoring
* Fixes bug in managing userdata script return value
* Updates version to 0.9.5
* User_data plugin refactoring
* Added unit tests using mock
* Update README.rst
* Update version to 0.9.4
* Adds support for PEM certificte in user_data
* Remove newlines from PEM header and footer constants
* Adds WinRM certificate auth plugin
* Adds plugins shared_data support
* Adds WinRM Listener plugin
* Raises NotImplemetedError in osutils base class methods
* Adds firewall rules support
* Support admin_pass field for admin password
* Fixes bug in SetUserPassword plugin return value
* Implements Windows OS version check with Win32 API
* Improves metadata exception logging
* Replace WMI class with Win32 APIs for routing
* Fixes issue with setting admin_pass password
* Update version to 0.9.3
* Fixes SSH key format issue
* Adds stop_service_on_exit option
* Replaces WMI with Win32 API in host rename
* Adds allow_reboot option
* Reboot immediately if a reboot is required
* Updates version to 0.9.2
* Fixes issue with the admin_pass usage
* Fixes issue in random password complexity
* Minor refactoring in shell.py
* Adds LICENSE file
* Filter network adapters to require a MAC address
* When UserDataPlugin doesn't find the user_data file, it has to throw NotExistingMetadataException
* Adds plugin platform and min os version check
* Fixes bug related to password complexity limits
* Pep8 and assorted cleanups on multi-part userdata
* Fixes bug in waiting for sysprep completion
* Adds ConfigDrive support for Windows XP
* 1. Changed UserDataPlugin class to handle multipart user data 2. Added PluginSet class which dynamically loads all available plugins in userdata-plugins subfolder 3. Added standard plugins to handle typical content types in multipart data
* Checks for SYSNATIVE folder presence
* Changes as requested for pep8 + others
* Added ability to execute native powershell scripts
* Creating user or setting password for existing user
* Check for admin_pass in "meta"
* Adds SetUserPassword plugin
* Adds SetUserPassword plugin
* Adds SetUserPassword plugin
* Fixes return values and exceptions in some plugins
* Adds workaround for routing 169.254.x.x addresses
* Logging improvements
* Individual plugin execution completion
* Fixes bug in ConfigDriveService initialization
* Adds extend volume plugin files
* Adds plugin to automatically extend volumes
* Avoid stopping the service in case of reboot
* Adds clean service shutdown on Windows
* Minor refactorings
* Adds check for sysprep completion
* pylint and pep8
* 1. Extended a list of EC2 values 2. Added proper handling of non-existent EC2 values 3. Added proper ssh-key handling
* Moved HttpService up due to post password support
* Added retry_count option
* Added can_post_password
* Minor refactoring in exception handling
* Refactoring
* Bug fixes
* Utils refactoring
* Bug fix
* Added support for post metadata encrypted password
* Fix to set Powershell's ExecutionPolicy in session
* Support for Windows 2003 and 2003 R2
* Fix on Windows network adapter selection
* Added a new class for EC2 metadata retrieve. EC2Service added after HttpService in the factory. Updated get_meta_data method to handle not only string with json but key-value dicts
* OpenStack logging imports
* HTTP metadata service support
* Added check on reboot
* Fixed bug in network adapter management
* Python requirements added
* Fixes an import bug
* Initial commit
