Change Log¶
All notable changes to the COT project will be documented in this file. This project adheres to Semantic Versioning.
1.7.4 - 2016-09-21¶
Newer versions of Sphinx have dropped support for Python 2.6 and 3.3, so I have updated COT’s installation requirements to use older Sphinx versions under these Python versions.
1.7.3 - 2016-09-06¶
Added
- When adding NICs to an OVF, if no
-nic-networks
are specified,cot edit-hardware
will now try to infer sequential naming of the Network elements and if successful, offer to create additional Networks as appropriate. (#18)
1.7.2 - 2016-08-17¶
Fixed
- Issue #52 - OVFItemDataError raised when adding NICs to CSR1000V OVA, or more generally when cloning an OVFItem whose ElementName references its Connection.
1.7.1 - 2016-08-12¶
Fixed
cot deploy ... --serial-connection
will create additional serial ports beyond those defined in the OVF, if requested. Previously it would ask the user for confirmation but not actually do anything about it. (#51)
1.7.0 - 2016-08-05¶
Added
- Support for Python 3.5
- Enhancements to
cot edit-properties
(#50):- Added
--user-configurable
option to set whether created/updated properties are marked as user-configurable in the OVF. - Added
--labels
and--descriptions
options to set/update the labels and descriptions associated with properties. - It’s now valid to set no default value for a property by
omitting the
=value
, as in-p property-with-no-value
, as well as the existing-p property-with-empty-value=
syntax to set an empty string as the value. - Users can now optionally specify the property type to enforce for each
property by using the delimiter
+type
, as in-p key=1+boolean
.
- Added
Changed
- Switched from statement coverage to branch coverage for better test analysis.
- Moved from Coveralls to Codecov for test coverage tracking, since Coveralls does not support branch coverage reporting.
Fixed
- When
cot edit-hardware
is used to create new NICs in an OVF that previously had none, and the user does not specify any corresponding Network entries, automatically create a ‘VM Network’ entry, because all NICs must be mapped to Networks for a valid OVF descriptor.
1.6.1 - 2016-07-07¶
Fixed
ValueMismatchError
exceptions are properly caught by the CLI wrapper so as to result in a graceful exit rather than a stack trace.cot remove-file
now errors if the user specifies both file-id and file-path, one of which matches a file in the OVF, but the other does not match this or any other file.- Better handling of exceptions and usage of
sudo
when installing helpers. - Manual pages are now correctly included in the distribution. Oops!
1.6.0 - 2016-06-30¶
Added
cot edit-product --product-class
option, to set or change the product class identifier (such ascom.cisco.csr1000v
).- Enabled additional code quality validation with Pylint, pep8-naming, and mccabe (#49).
Changed
Fixed
- COT now recognizes
AllocationUnits
values likemegabytes
. - COT no longer ignores the
AllocationUnits
value given for RAM. COT.ovf.byte_string()
now properly uses binary units (KiB
rather thankB
, etc.)
1.5.2 - 2016-06-17¶
Changed
- Development requirement changes: The package pep8 has been renamed to pycodestyle, and pep257 has been renamed to pydocstyle. Updated configuration and documentation to reflect these changes. Also, flake8-pep257 does not presently handle these changes, so replaced it as a dependency with the more up-to-date flake8-docstrings package.
1.5.1 - 2016-06-07¶
Added
cot edit-hardware --network-descriptions
option, to specify the descriptive string(s) associated with each network definition.
Fixed
- #48 - NIC type not set when adding NICs to an OVF that had none before.
- When updating NIC network mapping, COT now also updates any Description that references the network mapping.
1.5.0 - 2016-06-06¶
Added
- #47 - Added
cot remove-file
subcommand. - #43 - add
cot edit-properties --transport
option to set environment transport type(s) - iso, VMWare Tools, etc.cot info
now has a new “Environment” section that displays the transport type
- #45 - support for multiple values for
--nic-types
,--ide-subtypes
, and--scsi-subtypes
incot edit-hardware
. - COT now recognizes the Cisco IOS XRv 9000 platform identifier
com.cisco.ios-xrv9000
. - #21 - subcommand aliases (Python 3.x only):
cot edit-product
aliases:cot set-product
,cot set-version
cot edit-properties
aliases:cot set-properties
,cot edit-environment
,cot set-environment
cot info
alias:cot describe
cot inject-config
alias:cot add-bootstrap
cot remove-file
alias:cot delete-file
- Support for tab-completion of CLI parameters using argcomplete.
Changed
cot edit-hardware
options--nic-types
,--ide-subtypes
, and--scsi-subtypes
are now validated and canonicalized by COT, meaning that:cot edit-hardware --nic-type virtio-net-pci
is now a valid command and will correctly create an OVF withResourceSubType
virtio
(notvirtio-net-pci
)cot edit-hardware --ide-subtype foobar
will now fail with an error
cot info
is now more self-consistent in how it displays property keys. They are now always wrapped in<
>
, whereas previously this was only sometimes the case.cot info --verbose
now displays file and disk ID strings under the “Files and Disks” section.
1.4.2 - 2016-05-11¶
Added
- COT now supports
xorriso
as another alternative tomkisofs
andgenisoimage
Fixed
- #42 -
cot deploy esxi
error handling behavior needed to be updated for requests release 2.8. - #44 - test case failure seen when running pyVmomi 6.0.0.2016.4.
Changed
1.4.0 - 2015-09-01¶
Added
- #24 -
cot deploy esxi
now creates serial ports after deployment using pyVmomi library.- Serial port connectivity must be specified either via entries in the OVF
(which can be defined using
cot edit-hardware ... -S
) or at deployment time using the new-S
/--serial-connection
parameter tocot deploy
. - The syntax for serial port connectivity definition is based
on that of QEMU’s
--serial
CLI option. - Currently only “telnet”, “tcp”, and “device” connection types are supported.
- Serial port connectivity must be specified either via entries in the OVF
(which can be defined using
- #38 -
cot edit-product
can now set product and vendor information. - flake8 validation now includes pep257 to validate docstring compliance to PEP 257 as well.
- Added changelog file.
- Added
COT.file_reference
submodule in support of #39.
Changed
- Split ESXi-specific logic out of
COT.deploy
module and into newCOT.deploy_esxi
module. - UT for
COT.deploy_esxi
now requiresmock
(standard library in Python 3.x, install via pip on Python 2.x).
Fixed
- #39 - avoid unnecessary file copies to save time and disk space.
1.3.1 - 2015-04-09¶
Fixed
- #30 -
cot install-helpers
can now installfatdisk
andvmdktool
under Python 3.
1.3.0 - 2015-03-27¶
Added
- Installation of helper programs is now provided by a
cot install-helpers
subcommand rather than a separate script. - COT now has man pages (
man cot
,man cot-edit-hardware
, etc.) The man pages are also installed bycot install-helpers
. - Improved documentation of the CLI on readthedocs.org as well.
Changed
- Refactored
COT.helper_tools
module intoCOT.helpers
subpackage. This package has an API (COT.helpers.api
) for the rest of COT to access it; the helper-specific logic (qemu-img, fatdisk, etc.) is split into individual helper modules that are abstracted away by the API. - Similarly, logic from
COT.tests.helper_tools
has been refactored and enhanced underCOT.helpers.tests
. - Renamed all test code files from “foo.py” to “test_foo.py” to facilitate test case discovery.
- CLI help strings are dynamically rendered to ReST when docs are built, providing cleaner output for both readthedocs.org and the manpages.
Removed
- COT no longer supports Python 3.2.
cot_unittest
is no more - usetox
orunit2 discover
to run tests.- As noted above, the installation script
check_and_install_helpers.py
no longer exists - this functionality is now provided by theCOT.install_helpers
module.
1.2.2 - 2015-02-19¶
Added
- Documentation built with Sphinx and available at http://cot.readthedocs.org
Changed
- CLI adapts more intelligently to terminal width (fixes #28)
- Submodules now use Python properties instead of get_value/set_value methods.
1.2.1 - 2015-02-03¶
Added
- Now PEP 8 compliant - passes validation by flake8 code analysis.
- Very preliminary support for OVF 2.x format
- Now uses tox for easier test execution and coverage.py for code coverage analysis.
- Code coverage reporting with Coveralls.
Changed
- Now uses colorlog instead of
coloredlogs
for CLI log colorization, as this fits better with COT’s logging model. - Greatly improved unit test structure and code coverage, including tests for logging.
1.2.0 - 2015-01-16¶
Added
- Greatly improved logging (#26). COT now defaults to logging level INFO,
which provides relatively brief status updates to the user. You can also
run with
--quiet
to suppress INFO messages and only log WARNING and ERROR messages,--verbose
to see VERBOSE messages as well, or--debug
if you want to really get into the guts of what COT is doing. - Now integrated with Travis CI for automated builds and UT under all supported Python versions. This should greatly improve the stability of COT under less-common Python versions. (#12)
Changed
- The CLI for
cot deploy
has been revised somewhat based on user feedback. - A lot of restructuring of the underlying code to make things more modular and easier to test in isolation.
Fixed
- Various bugfixes for issues specific to Python 2.6 and 3.x - these environments should now be fully working again.
1.1.6 - 2015-01-05¶
Added
- Added THANKS file recognizing various non-code contributions to COT.
Fixed
1.1.5 - 2014-11-25¶
Fixed
- Fixed issue #17 (
cot edit-hardware
adding NICs makes an OVA that vCenter regards as invalid) - Removed several spurious WARNING messages
1.1.4 - 2014-11-12¶
Added
- COT can at least be installed and run under CentOS/Python2.6 now, although the automated unit tests will complain about the different XML output that 2.6 produces.
Changed
- Vastly improved installation workflow under Linuxes supporting
apt-get
oryum
- included helper script can automatically install all helper programs exceptovftool
. Fixes #9.
Fixed
1.1.3 - 2014-10-01¶
Added
cot edit-hardware
added--nic-names
option for assigning names to each NICcot info
now displays NIC names.
Fixed
- Improved installation documentation
- Some improvements to IOS XRv OVA support
1.1.2 - 2014-09-24¶
Added
- Take advantage of QEMU 2.1 finally supporting the
streamOptimized
VMDK sub-format. - Can now create new hardware items without an existing item of the same type (issue #4)
Changed
- Clearer documentation and logging messages (issue #8 and others)
- Now uses versioneer for automatic version numbering.
Fixed
- Fixed several Python 3 compatibility issues (issue #7 and others)
1.1.0 - 2014-07-29¶
Added
cot deploy esxi
subcommand by Kevin Keim (@kakeim), which usesovftool
to deploy an OVA to an ESXi vCenter server.
Changed
- Removed dependencies on
md5
/md5sum
/shasum
/sha1sum
in favor of Python’shashlib
module. - Nicer formatting of
cot info
output
Fixed
- Miscellaneous fixes and code cleanup.
1.0.0 - 2014-06-27¶
Initial public release.