CHANGES
=======

4.0.0.0rc1
----------

* In-tree backports (2)

4.0.0.0b3
---------

* Add image cache to nova-powervm
* Experimental: File I/O Volume Driver Implementation
* Force immediate on failure
* Fix power off timings
* Fix hostname & initiator for volume drivers
* Mock data cleanup 1
* Migration scenario, SR-IOV vif contains source physical ports
* Update to match latest global-requirements
* Change namespace to nova.virt.powervm_ext
* Switch to synchronous power on
* Add missing copyright statement
* Set MTU for the tap device

4.0.0.0b2
---------

* Retry up to 3 times on disk create
* Remove the PowerVM Live Migration Object
* Add delay queue for events
* Update hv_type and vm_mode to new location
* Document compute_driver setting in usage docs
* Update to new confirm_migration signature
* Change arch to fields.Architecture
* Fix iscsi attach issues
* Object upload in swift occasionally fails with 'TypeError'
* ProvisionRequest does not distinguish event source
* Add tox_install.sh for pypowervm upper-constraints workaround
* Fix rollback op's search call
* Clean up of OVS port on source host post migration
* Refactor events into own class
* Use upper constraints
* Remove self.instance from ConfigDrivePowerVM log
* Fix method signature vif invocation
* Better error handling of QP errors
* Add instance to many log events
* Support segregated function for upload
* Translation files for supported languages
* Create snapshot of VM
* Change devstack pypowervm branch to develop
* Pre-allocate trunk adapter on target host
* Fix code for new pep8 rules
* Rebase on set_vnic_backdevs(redundancy)
* Send custom vif plug/unplug event
* Change get_vea_slot to get_vnet_slot to account for vNIC
* HttpError=>VirtualInterface(Unp|P)lugException
* PlugVifs only provides CNAs
* Translation files for supported languages
* Back vNICs with only link-up phys ports
* Add UT for vif.plug and unplug

3.0.0.0rc1
----------

* Fix vif type for network info
* Build vfc mappings for migration with vios slot collocation
* Remove iSCSI volume
* Blueprint for nova-powervm SR-IOV VIFs
* Create/update vNICs properly on Plug
* More Specific Error Messages on get-vnc-console

3.0.0.0b3
---------

* Add iscsi support
* Report many claimable pseudo-VFs
* Do a comprehensive scrub on driver start
* Support just waiting for created vif events
* Consume VF capacity from the right place
* devref usage: n-cpu must run from pvm_admin group
* Get VLAN from Neutron PowerVM VIF Binding
* VIF driver implementation for SR-IOV
* Wrap console failure message
* Plug updated VIFs
* Move LPAR scrub tasks from build_map to Create task
* Deploy of a VM occasionally fails due to invalid keystone token
* Added revert to delete LPAR from destination host on failed rebuild
* Change in Http Error condition check from String to Int
* Scrub storage-less VSCSI mappings in destroy
* Handle deletion of tap device from bridge
* Fix package setup configuration
* Rebase on pypowervm.tasks.hdisk refactor

3.0.0.0b2
---------

* Refactor: cleanup_live_migration_destination_check
* Adds supports_device_tagging to capabilities
* Add support_attach_interface to capabilities
* Provide logs for each task start
* Save/restore VM's maximum number of virtual slots
* Add VeNCrypt (TLS/x509) Security VNC config
* Handle stale system metadata (physical WWPNs)
* Remove delete vopt if nothing to delete
* Driver cleanup work
* Save valid udid on pre_live_migration of vscsi volumes using multi VIOS
* Refactor validate vopt media repo to pypowervm
* Some VM deploys fail from expired keystone token
* Allow the mgmt partition to be VIOS or LPAR
* Remove vios module - use pypowervm.tasks.partition
* Update the requirements to be in line with global
* Update the PHYP vSwitch for Neutron Agents
* Blueprint for OVS and LB agent support
* Create trunk on target of LPM
* Initial LB VIF Type
* Support override migration flags
* Add try/except clause around _wait_for_active_vioses
* Update to handle extra devs on recreate
* Fix get_active_vioses

3.0.0.0b1
---------

* Use an instance cache in NovaEventHandler
* Cap amqp requirement
* Raise an exception if no active VIOSes in build_tx_feed_task
* Fix package reference in version code
* hdisk discovery in disconnect if no Storage XAG
* Reuse existing connection
* Smart save in SwiftSlotManager
* Add nova-powervm spec dir and template
* get_active_vioses should not use host UUID
* Wait for more than just one VIOS on start up
* Scrub before RebuildSlotMap
* InvalidHostForRebuildNotEnoughVIOS mock needs additional param
* vif.unplug is invoked with a missing argument during rollback
* Fix e.msg and use six
* Revert "Generate new wwpns on target host during evacuate"
* Add LUA to remote restart/rebuild VSCSI mappings
* Check instance.host on NPIV disconnect
* Revert "Generate only one pair of wwpns when instance has multiple block devices"
* Correct Translation files permissions
* First get to swift may fail
* Remove excessive exceptions in NVRAM/SlotStore
* Added code for deleting orphan trunks
* Support tot_data for metrics
* Translation files for supported languages
* Revert "Removing workaround"
* Do not clean NVRAM unless destroy is on same host
* Allow re-mapping of client slots to volumes
* Rebase: crt_lu_linked_clone => crt_lu
* Check for active vios during compute start
* Support new conf refactor from Nova
* Document PowerVM driver functions in support matrix doc
* Allow compute driver to load correctly
* Generate only one pair of wwpns when instance has multiple block devices
* Add retry to rename func
* Fix revert migration if flavor deleted
* Add req to pycrypto to fix import errors
* Shim compute driver in nova.virt namespace
* Increase scope of stopable states
* Log warning for failed deletion of NVRAM
* Allow multiple session connection attempts
* Raise exception when NVRAM store is not reachable
* Generate new wwpns on target host during evacuate
* Additional debug around power off
* Support roll back of VIF at task level
* Update Power States to new values
* Rebase on Tiers (2 of ?)
* Rebase on parent_type/parent_uuid=>parent
* Rebase on Tiers (1 of ?)
* Add live migrate flow framework to vifs
* Exploit pypowervm's get_or_upload_image_lu
* Add unplug VIF if plug fails
* Log HttpError in destroy before converting
* Enable simplified remote restart by default for the vm

2.0.0.0rc1
----------

* Expand error trapping in coordinated LU upload
* Unplug VIF during or after VM deletion causes error
* Removing workaround
* Cache instance overhead
* Conductor changes to register nova-powervm objects
* Fix a couple readme typos
* Increase SCSI bus scan timeout from 10s to 5min
* Use kwargs instead of dict for raised PowerVMAPIFailed
* Use any media repository if it exists
* Include debug of mgmt partition uuid on driver
* Decouple pypowervm calls from test_media
* Use local partition, not management partition
* General readme updates
* Security in swift conf options

2.0.0.0b3
---------

* Enable SRR Capability for an LPAR
* Use NVRAM data on VM operations
* Coordinated LU upload 2: marker LUs
* Use LiveMigrateData object
* Implmement NVRAM store and manager
* Rebase on deprecated VIOS.xags
* Decouple pypowervm calls from test_host
* Updating the requirements
* Add config options for turning on/off rmc vif
* Work around docs build fail: downgrade setuptools
* Coordinated LU upload from multiple hosts
* Use real uuid on test image
* Add in OVS VIF Driver Framework
* Rebase on LogicalUnit.name @property setter
* Decouple pypowervm calls from test_driver
* Proper error message in case LPAR Build Exception
* hacking: check for deprecated os.open()
* Move to nova.conf importing pattern
* Replace deprecated library function os.popen() with subprocess
* Sanitize PowerVM partition name
* pep8 error resolved
* Add vif driver framework
* Update requirements level
* Emit instance life cycle events
* Port over pretty_tox.sh from Nova
* Update nova vnc config options location
* use uppercase 'S' in word "OpenStack"
* Fix spell typos
* Add more information on local.conf files
* Initial seed of hacking rules
* Don't remove the hdisk if multiattach
* Support the nova evacuate spawn semantic
* Add checksum to image LU identification
* Update tox.ini flake8 rules
* Do not error if NovaLink not installed
* Cleanup driver UTs
* pypowervm log level to INFO in local.conf samples
* Add minor authentication to vnc console
* Convert to use nova.objects.ImageMeta
* Enable oslo-config-generator to generate a sample
* Better config option validation and testing
* Centralize config options for PowerVM
* Nova PowerVM changes for Remote VNC Console
* Handle task state update when expected is None
* Conduct vsp hard shutdown when deleting an active VM
* Use fixtures MockPatch in fixtures
* Convert destroy exceptions to Nova exceptions
* Raise Nova exception on power off error
* Drop JSON decoding for supported_instances
* Support resize and cold migration
* Implements estimate_instance_overhead()
* Check the destination host is capable for IBMi VM LPM
* Change LOG.warn to LOG.warning
* Disable installing pypowervm by default
* Overhaul the DevStack plugins README file
* Disable ceilometer services in devstack compute template
* Refactor 'detach vopt' to use detach_storage
* Don't remove vOpt mapping on live migrate
* Disable ceilometer-acompute in control node example
* Fix README whitespace, update README
* Add nova-powervm devstack multi-node support
* Provide synchronization during the Vopt creation
* Shorten default devstack instance name template
* Change pypowervm repo location
* Clean up hdisks after failed live migration
* Raise error if bad WWPNs used on connect
* Update the setup.cfg to point to python 3.4
* Properly wrap unplug errors
* Convert exceptions to MigrationPreCheckError
* Provide locking around NPIV wwpns method
* Scrub orphan mappings pre-migration on source
* Switch to develop branch for pypowervm
* VFC Migration mapping string vios reversal
* Provide reversal of vioses for migration
* Fix devstack README formatting
* Add base devstack plugins support
* Rebase on pypowervm slot_number => lpar_slot_num
* Add nova-powervm translation domain
* Translation updated files for drop2
* Asynchronous PowerOn (spawn, rescue, unrescue)
* Add/Remove the volume BDMs during resize
* Clear out NPIV metadata on reschedule
* Cleanup hdisk on source post live migration
* Initial wwpn only valid if no existing WWPNs
* Change repository from stackforge to openstack

1.0.0rc1
--------

* Update .gitreview for new namespace
* Reduce checks for migration wwpn in npiv
* Do not map to management partition for NPIV
* Abort disconnect if invalid udid
* Increase logging in NPIV port mappings
* Gather physical port on target server
* Provide minimum VIOS connection on vSCSI volumes
* Update settings during deploying an IBMi VM
* Broader find_vios commands
* Allow '+' in processor compatibility modes
* Dev-ref update
* Switch from single key to key-per wwpn pairing
* Rescue boots to SMS
* Check if vios_w returned from find_vios
* Pass CONF proc weight to LPAR builder
* Parallel discovery in VSCSI (dis)connect_volume
* Translation files for other languages
* Remove data files
* Ensure LiveMigrationFailed exception is raised
* Additional UT for pre_live_migration
* Comprehensive storage scrub in pre_live_migration
* Check instance exists on detach_volume
* Check if vios_w returned from find_vios_for_vfc_wwpns is None
* Support PowerVM attribute 'powervm:processor_compatibility'
* Initial Live Migration Port Mapping Support
* Add migrate abort and migrate recover support
* Rebase: add_lpar_storage_scrub_tasks takes [ids]
* Update hypervisor version
* Translation changes
* Update MGMT switch name
* Rebase HttpError exception initializer
* Do not fail on revert of vol attach/detach
* PowerVM Driver Unit Test Clean Up
* Add instance check to attach/detach flow
* Ignore empty NPIV fabrics on disconnect
* Enable multi host live migration with NPIV Volumes
* Reuse existing wwwpns for live migration multi vol
* Using good_discovery from the pypowervm module
* Initial NPIV Live Migration Support
* Add migrating task state to NPIV wwpns call
* Add close vterm to live_migrate
* Update find_maps lpar_id as key value
* Add babel config
* Rediscover hdisk if connection info refreshed
* Add instance save on volume attach
* Expand vSCSI volume connector tests for Dual VIO
* Scrub stale LPAR storage from spawn
* Accomodate discover_hdisk generic scrub
* Live migration fixes
* Add pre-LPM method in the volume driver
* Remove PyPowerVM fixture; use pypowervm AdapterFx
* Scrub stale LPAR storage II: connect_volume
* Remove nova specific checks on NIC operations
* Change volume UDID key in the connection info
* Reduce log noise for instances not found
* Utilize tx_mgr in cfg drive
* Remove parallel engine from spawn flow
* Optimize the XAG query
* Correct logging for volume disconnect
* Support dynamic documentation versioning using pbr
* Expand scope of power off states
* Update documentation framework, add base devref details
* Add initial support for creating IBMi VM
* Remove local funcs in npiv.py as able
* Remove n_spawn call the thread out the live migration
* Update live migration validation check
* Fix cluster search logic
* Add dlt media to tx_mgr
* Ensure LPM'd VMs don't obscure Host CPU stats
* Add proper failure on disk create revert
* Provide per volume unique task flow names
* Increase the XAGs on the VIOS reset
* Change VNC terminal invocation
* Provide unique names on taskflow operations
* Call pypowervm LPAR Wrapper validation on deploy
* Return CPU frequency as int vs. float
* Add vOpt media to the FeedTask
* Support disconnect on rollback
* Refactor of vscsi attach/detach loops
* Move the NPIV Mgmt Mapping into FeedTask
* Support parallel IO next steps
* Initial code for live migration
* Use VIOS wwpns mapped target wwpns and luns
* Fixing the log levels
* Minor spelling/consistency updates
* Extendable Nova PowerVM Volume adapters
* Use LOG.info instead LOG.log in media.py
* Fix py34 issues
* Fix target initiators to be per VIOS
* Initial parallel-ization for PowerVM Spawn
* Rebase on rm_ssp_storage
* Fix instance_exists uuid
* Accomodate disappearance of nova.storage
* Swap to mgmt VIF being 'static link local'
* Remove WWPN pre-mapping generation
* Delete VDisks, VOpts via pypowervm's rm_vg_storage
* Rebase rename pypowervm.tasks.wwpn to vfc_mapper
* Add vio_retry helper to adapter
* Remove content from functionally-empty __init__s
* Remove the UUID Cache
* Use PowerVM restart option for instance reboot
* Refactor LPAR builder code into common location
* Refactor to _is_booted_from_volume
* Unable to find PFC Ports on vSCSI volume attach
* Fix the super class for the NPIV volume adapter
* Update vSCSI Discovery to support multiple VIOSes
* Properly handle root BDM VMs in destroy
* NPIV wwpns returned are not in correct format
* Move disk UUID to BDM
* Add CPU frequency to host stats
* Set PowerVM uuid to OpenStack uuid
* Raise VirtualInterfacePlugException
* Implement Host Statistics for PowerVM
* Rebase the requirements levels
* NPIV connector changes to use powervm config group
* Snapshot container_format typo
* Limit length of File object names
* Change root block device check to check instance block devices
* Move PowerVM driver options into a group
* Remove lpar create revert method
* Implement snapshot
* Task for disconnecting and removing instance disk
* Task for connecting and discovering instance disk
* Task for streaming disk to glance
* New 'image' module with glance upload and metadata
* Add/remove disk retry/timeout
* New Task module for image management
* Rebase: move nova VNC conf opts to 'vnc' group
* Consolidate exceptions and extend NovaException
* Remove block device from the management partition
* Change set_override() calls to use flags() instead
* Move VM state check post VIF required check
* Change local disk tests to use flags()
* Add a mapped device to the management partition
* Don't wait for VIF events if no creates needed
* Include unplug vifs and driver attach
* NPIV Port login-logout changes
* Add VIF plug verification to deploy
* Init UUIDCache in test_instance_exists
* Optimizations for SCSI mappings
* Get the management partition at driver init
* Rebase on pypowervm scsi_mapper VIOS returns
* Add support for driver method 'instance_exists()'
* Fixes for Python 3
* Create module for management LPAR utilities
* Fix xag param in read call from instance_disk_iter
* (Un)map instance boot disk to Management Partition
* Support mgmt network creation
* Disk Driver: instance_disk_iter
* SSP: Only consider this host's VIOSes
* Get management partition (vm.get_mgmt_partition)
* Support short names for vdisks
* Conform to OpenStack log/exception I18N guidelines
* Update LPAR feed to exclude mgmt partition
* Sanitize config ISO name
* Update vscsi mapping to not include adapter
* Expect a single host; remove CONF.pvm_host_mtms
* Add support for PowerVM Console
* Add check for vios from another cluster node
* Adopt EntryWrapper.create()
* Support media repo creation
* Remove adapter params from pypowervm calls
* Switch to pypowervm standard auth model
* Add xags argument to get_active_vioses
* Remove traits from Response, add adapter to bld()s
* Always call hdisk removal from vscsi volume driver
* Use the active WWPNs for connections
* Optimize the VIOS specification in driver
* Fix destroy of a LPAR that is missing on the host
* Add the 'traits' parameter to pypowervm Response
* Move vif plug forward in spawn
* Fix vm delete when vterm is open
* Add uptime to driver
* Provide PowerVMDriver.reboot
* Update vscsi to support hdisk removal
* LPAR-specific SSP ops target VIOSes on same host
* Add xags=STORAGE to physical wwpn query
* Rebase on pypowervm Enums
* Add storage XAG to npiv
* Remove POWERVM_ATTRS from vm.py
* Rebase on pypowervm.base_partition
* Eliminate warnings in powervm driver
* Add vscsi disconnect volume support
* Add shared storage driver methods
* Update nova-powervm for new mapping logic
* Update call to DefaultStandardize()
* Implement LPAR.search in vm.UUIDCache
* Rebase on pypowervm making xag default to None
* Rebase on pypowervm XAGEnum and entities refactor
* Enhance VIOS logic to localdisk flow
* SSP Disk Driver: disconnect_image_disk
* RMC NIC on each VM
* SSP Disk Driver: delete_disks
* SSP Disk Driver: connect_disk
* Multi Fabric NPIV
* create_disk_from_image with linked clone
* Implement get_host_ip_addr
* Implement disk.ssp.create_disk_from_image
* Cluster config for SSP disk driver
* DiskTypeEnum
* Add multi vios support to connect volume
* Change crt_lpar to return an lpar wrapper
* Rebase: pypowervm.tasks.upload_lv => .storage
* Remove lpar name from uuid cache upon delete
* Add support for lpar availability priority
* Migrate for scsi_mapper support
* Migrate media to support multi VIOS
* Use pypowervm LPARBuilder
* Add NPIV conf options to init file
* Initial multi-VIOS enablement
* Minor update to vscsi
* Accomodate rename of pypowervm.jobs to .tasks
* Add vscsi connect_volume support
* Change to use new wrapper update method
* Enhance NPIV connections for attach/detach volume
* Set SSP name when no SSP configured
* Initial attach/detach volume support
* Add wwpns to system_metadata for NPIV
* NPIV Volume Connection
* Change PowerVM version to an int
* Rebase on pypowervm search (moved) & refresh (new)
* SSPDiskAdapter loads "the" SSP if no ssp_name
* Fix oslo imports to new paths - ssp followon
* SSPDiskAdapter.capacity and capacity_used
* SSP storage driver: _fetch_ssp_wrap()
* Rename volume driver to volume adapter
* Move WWPN generation into volume connector
* Fix oslo imports to new paths
* Add additional storage fixtures
* Initial SSP/NPIV drivers
* Provide Cinder rollback mechanism on taskflows
* Add unit test for localdisk connect_disk
* Task Flow integration with volume driver
* Rename the blockdev to disk driver
* Initial cinder volume connector integration
* Accomodate pypowervm restructures
* Implement instance unrescue
* Implement instance rescue
* Update CNAs to new path
* Initial refactoring for Volume Driver
* Refactor to use oslo.log library
* Use pypowervm fixture in vm UT
* Use pypowervm fixture for media UT
* Use pypowervm fixture for local disk UT
* Create fixtures for pypowervm and compute driver
* Provide independent disk size from image
* Update mtms_str to invoke as property
* Add support for host local disk sizes
* Change to add vterm support to delete lpar path
* Add retry decorator to resize
* Update the parameter doc on MTMS
* Update spawn to call plug_vifs
* Update the MTMS information to use pypowervm
* Provides VIF plugging for the instances
* Add support for resizing the boot disk
* Updating nova to reflect new path to volume groups
* Change to TaskFlow classes
* Add UT for resize operation
* Prepare for ability to set PowerVM uuid value
* Integrate destroy baseline into driver
* Rebase for pypowervm/nova changes
* Initial implementation of resize VM
* Update Nova to take into account property lists
* HEAD cleanup of repository before open sourcing
* Fixes for the task flow scsi mapping
* Provide primitives for vopt deletion
* Fix power on and off spawn tasks
* Convert local fakes to nova objects
* Implement config drive build/attach on spawn
* Fixes for pypowervm wrappers moving to @propertys
* Convert spawn over to TaskFlow
* Update the README.rst and properties
* Change to remove fake processing from driver
* Update nova-powervm to use new pypowervm path
* Changes needed for the pypowervm refactor
* Transfer image and connect to instance on spawn
* Default proc weight added to create lpar
* Add operation logger
* Implement get_available_nodes
* Initial drop for lpar destroy
* Initial lpar create for the spawn operation
* Implement Power On / Off of instance
* Fake PowerVM Driver as Simulation Baseline
* Add support for get_info() and list_instances()
* Add support for reporting host resources
* Rebase for driver spawn method signature change
* Resolve concurrency issue with Tox
* Adding sonar property file
* Import python-powervm into nova-powervm
* Get 'cover' working and remove pypy
* Initial scaffold of PowerVM virt driver
* Fixed RST bugs in README.rst
* Migrate to nova_powervm folder
* Updated Python Versions
* Initial Load of Nova PowerVM Project
* Initial empty repository
