Cot

Latest version: v2.2.0

Safety actively analyzes 625178 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 8

2.0.1

---------------------

**Fixed**

- One unit test case,
COT.helpers.tests.test_helper.HelperGenericTest.test_download_and_expand_tgz,
was failing after 2.0.0 was released, due to its assumptions about the
contents of the master repo on GitHub no longer being valid. Fixed now.

2.0.0

---------------------

**Fixed**

- Fixed a case that could result in a RuntimeError being thrown when using
``cot edit-hardware`` to simultaneously create NICs and define a new
configuration profile (`64`_).
- Update minimum QEMU version preferred for creation of streamOptimized VMDK
files from 2.1.0 to 2.5.1, due to an incompatibility with VMware in VMDKs
produced by versions prior to 2.5.1 (`65`_).

- If ``vmdktool`` is not installed, but QEMU 2.1.0-2.5.0 is, then COT will
fall back to usinq ``qemu-img``, but will warn of this potential
incompatibility with ESXi.

- When ``cot info`` is invoked with multiple files as input, an error in
loading one file will no longer cause the entire command to abort;
COT will now log an error about the offending file and continue to the next.

**Added**

- COT commands now check the available disk space in the temporary working
directory against the temporary storage space the command estimates it
will require, and if there is likely to be a problem, warns the user
before continuing. (`63`_)
- Additionally COT commands that write out an updated OVF/OVA now check the
available disk space in the requested output location against the VM's
predicted output size, and if there is likely to be a problem, warns the
user before continuing.
- ``Helper`` classes can now opt to cache their output to avoid repeatedly
re-running the same command. Currently enabled for ``qemu-img info ...``
and ``isoinfo ...`` commands. (`62`_)
- New modules and APIs in support of the above:

- ``Command.working_dir_disk_space_required()`` instance method, to ask a
command to estimate how much temporary storage it will require. This
method is now automatically called from Command unit tests to validate
its accuracy.
- ``VMDescription.predicted_output_size()`` instance method, to ask a VM
to estimate how much disk space it will require when written out.
- ``COT.utilities`` module with functions ``available_bytes_at_path`` and
``tar_entry_size``.

**Removed**

- Discontinued support for Python 2.6 as it has been retired since 2013.
- Removed ``cot --debug`` alias for ``cot --verbose --verbose`` as it is
no longer correct after increased granularity of logging options,
as described below.

**Changed**

- With ``cot edit-hardware``, the platform hardware validation is no longer
a hard limit. Instead, if a value appears to be invalid, the user will be
warned about the validation failure and given the option to continue or
abort (`61`_).
``cot --force ...``, as usual, can be used to auto-continue without prompting.
- More granular logging levels (thanks to `verboselogs`_; COT now requires
version 1.6 of this package) and more self-consistency in message logging.
- Revised format of log messages generated by COT.
- Lots of API changes:

- All commands ('submodules') are now grouped as a sub-package
under ``COT.commands``. Most classes in this package have been renamed.
- Moved ``COT.ovf`` package to be a sub-package under ``COT.vm_description``.
- Moved UI and CLI classes into a ``COT.ui`` sub-package.
- Moved the ``to_string`` function from ``COT.data_validation`` to
``COT.utilities``.
- Function ``COT.deploy_esxi.get_object_from_connection`` is now method
``PyVmomiVMReconfigSpec.lookup_object``.
- Function ``COT.cli.formatter`` is now class
``COT.ui.cli.CLILoggingFormatter``.
- The functionality of classes ``VMContextManager`` and ``VMFactory`` has
been rolled into the core ``VMDescription`` class.
- COT.disks module:

- Function ``create_disk`` is now split into class methods
``DiskRepresentation.for_new_file`` (creates the disk file and returns a
corresponding ``DiskRepresentation`` instance) and
``DiskRepresentation.create_file`` (creates disk file only).
- Function ``convert_disk`` is now class method
``DiskRepresentation.convert_to``
- Function ``disk_representation_from_file`` is now
class method ``DiskRepresentation.from_file``
- The ``DiskRepresentation`` constructor now only takes the path to a file
as input - if you want to create a new file, use
``DiskRepresentation.for_new_file`` instead of calling the
constructor directly.

- COT.helpers module:

- Static method ``Helper.cp`` has been renamed to ``Helper.copy_file``.

- COT.ovf module:

- ``COT.ovf.ovf.byte_string`` has been moved and renamed to
``COT.utilities.pretty_bytes``.
- ``COT.ovf.ovf.byte_count`` has been moved and renamed to
``COT.vm_description.ovf.utilities.programmatic_bytes_to_int``.
- ``COT.ovf.ovf.factor_bytes`` has been moved and renamed to
``COT.vm_description.ovf.utilities.int_bytes_to_programmatic_units``.
- ``OVF.validate_and_update_file_references`` and
``OVF.validate_and_update_networks`` have been moved to private
functions and are no longer part of the public API of the OVF class.
- ``Hardware.update_existing_item_count_per_profile`` has been
moved to a private method.

- COT.platforms module:

- Class ``GenericPlatform`` is now ``Platform``.
- Function ``platform_from_product_class`` is now class method
``Platform.for_product_string`` and returns an instance
of a ``Platform`` class rather than the class object itself.
- Most ``Platform`` APIs are now instance methods instead of
class methods.
- Function ``COT.platforms.is_known_product_class`` has been removed.

1.9.1

---------------------

**Changed**

- Removed 32 GiB memory limitation on Cisco IOS XRv 9000 platform.

1.9.0

---------------------

**Added**

- Support for Python 3.6
- Support for `brew` package manager (`55`_).
- Support for Cisco Nexus 9000v (NX-OSv 9000) platform (`60`_).

**Fixed**

- Improved messaging when COT is unable to install a helper program (`57`_).

1.8.2

---------------------

**Fixed**

- Issue (`58`_) where various multi-value CLI options for the
``edit-hardware`` and ``inject-config`` commands did not append properly.
- Issue in which explicitly specified NIC names were being overwritten by
names auto-derived from network names when attempting to set both NIC name
and network names in a single ``cot edit-hardware`` call.
- ``cot edit-properties`` again accepts property values containing the characters
``+`` and ``=`` (`59`_).

**Added**

- COT can now detect the presence of an .ovf file in a TAR archive even if
the archive is not named ``*.ova*`` and even if the .ovf file is not the first
file in the archive as specified by the OVF specification. This allows
(read-only at present) handling of VirtualBox Vagrant .box files,
which are approximately equivalent to non-standards-compliant OVAs.

1.8.1

---------------------

**Fixed**

- Under Python versions older than 2.7.9, explicitly require ``pyOpenSSL`` and
``ndg-httpsclient`` to avoid issues like
``hostname 'people.freebsd.org' doesn't match 'wfe0.ysv.freebsd.org'``
when installing vmdktool.

Page 2 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.