CHANGES

3.25.0

  • Remove log translations

3.24.0

  • Use Sphinx 1.5 warning-is-error
  • Updated from global requirements

3.23.0

  • Updated from global requirements
  • [Fix gate]Update test requirement
  • Add missing documentation for secretutils
  • Updated from global requirements
  • Updated from global requirements
  • Update reno for stable/ocata

3.22.0

  • Remove references to Python 3.4
  • Added the token ‘encrypted_key’ to mask_password list
  • Add Constraints support

3.21.0

  • Allow ‘get_all_class_names’ to pass kwargs

3.20.0

  • Add toggle ‘dashed’ to ‘generate_uuid’ function
  • Show team and repo badges on README

3.19.0

  • Updated from global requirements
  • Improve eventlet check when selecting Event backend
  • Updated from global requirements

3.18.0

  • Add option to not truncate built-ins
  • Create dictutils and add ‘flatten_dict_to_keypairs’
  • Updated from global requirements
  • Add reno for release notes management
  • Allow scoped ipv6 addresses
  • Trivial fixes to the usage doc
  • Add threading<->eventlet compatible Event
  • Updated from global requirements
  • [TrivialFix] Replace ‘assertEqual(None, ...)’ with ‘assertIsNone(...)’

3.17.0

  • Add method is_valid_mac
  • Add __ne__ built-in function
  • Make method import_versioned_module work
  • Change assertTrue(isinstance()) by optimal assert
  • doc: Fix docstring of method bool_from_string
  • Change assertTrue(isinstance()) by optimal assert
  • Add method is_valid_boolstr
  • Add method is_valid_ipv6_cidr
  • Updated from global requirements
  • Updated from global requirements
  • Add missing specs_matcher documentation
  • Update homepage with developer documentation page
  • Updated from global requirements
  • Updated from global requirements
  • Add utils for validating and splitting quotes
  • Updated from global requirements
  • Extend specs matcher to support “>” and “<”
  • Remove discover from test-requirements

3.16.0

  • Fix mask_dict_password for non string/dict type key in dict
  • Restore <all-in> operator
  • More unit tests for specs matcher
  • Imported Translations from Zanata
  • Add Python 3.5 classifier and venv
  • Use an actual well defined parser for spec matching
  • Remove unused LOG to keep code clean
  • Updated from global requirements

3.15.0

  • Add basic docstrings to stopwatch has_started/stopped methods
  • Make mask_dict_password consistent with mask_password
  • Updated from global requirements
  • improve tests for mask_password and mask_dict_password
  • Simplify boolean expression in executils.py

3.14.0

  • Support json format output from qemu command
  • Fix flake8 issues
  • Use is_valid_ipv4 in get_ipv6_addr_by_EUI64
  • Imported Translations from Zanata

3.13.0

  • Allow assigning “0” to port

3.12.0

  • Updated from global requirements
  • Fix method split_path’s docstring ‘versionadded’
  • Updated from global requirements
  • Updated from global requirements
  • Avoid catching generic exception
  • Remove method total_seconds in timeuitls
  • Fix is_valid_cidr raises TypeError

3.11.0

  • Trivial: ignore openstack/common in flake8 exclude list
  • Move method split_path into oslo.utils

3.10.0

  • Imported Translations from Zanata
  • Updated from global requirements
  • Move nova extra_specs_ops to oslo.utils

3.9.0

  • Imported Translations from Zanata
  • Provide single step check if eventlet is monkey_patched
  • Add method is_valid_cidr to netutils
  • Updated from global requirements
  • Updated from global requirements
  • Add importutils.import_any method
  • Add excutils.exception_filter
  • Explicitly exclude tests from bandit scan
  • Add CHAPPASSWORD to list of sanitize keys
  • Enable bandit in gate
  • Updated from global requirements

3.7.0

  • Add method check_string_length
  • Add missing versionchanged for configdrive

3.6.0

3.5.0

  • Updated from global requirements
  • Imported Translations from Zanata
  • Remove bandit.yaml in favor of defaults
  • Updated from global requirements
  • Narrow mock for getfilesystemencoding
  • Update translation setup
  • Revert “Use assertTrue/False instead of assertEqual(T/F)”
  • Updated from global requirements
  • Updated from global requirements
  • Add excutils.save_and_reraise_exception force_reraise + capture
  • Add encodeutils.to_utf8() function
  • Create secretutils and include ‘constant_time_compare’ function
  • Fix coverage
  • Imported Translations from Zanata
  • Updated from global requirements

3.4.0

  • Updated from global requirements
  • Use assertTrue/False instead of assertEqual(T/F)
  • Add a mechanism to mask passwords in dictionaries
  • Add “configdrive” to the list of keys used by mask_password()
  • assertIsNone(val) instead of assertEqual(None,val)

3.3.0

  • Fix DeprecationWarning when call method delta_seconds
  • fix fnmatch.filter in non-posix system
  • fix fileutils ut code random failure
  • Add missing doc index for imageutils and fnmatch
  • re-implement thread safe fnmatch
  • Fix the bug of can’t get the desired image info

3.2.0

  • Revert “Move netifaces to extras”
  • Remove Babel from requirements

3.1.0

  • Remove duplicated profiles section from bandit.yaml
  • Allow get_class_name to accept bound method and class method
  • deprecate timeutils.total_seconds()
  • Move imageutils from oslo-incubator to oslo.utils
  • add comment explaining why we don’t want extra values passed to mask_password
  • networkutils: drop python 2.6 support
  • Remove ‘MANIFEST.in’
  • Move netifaces to extras

3.0.0

  • Add a bandit target to tox.ini
  • Updated from global requirements
  • Remove python 2.6 classifier
  • Fix wrong bug tracking link
  • Remove python 2.6 and cleanup tox.ini
  • Refactor Port number validation
  • Add useful ‘time_it’ decorator

2.8.0

  • Fix get_class_name() on Python 3
  • Added ICMP ‘type’ and ‘code’ checking capability to ‘netutils’ module
  • Updated from global requirements
  • Imported Translations from Zanata
  • comment in write_to_tempfile
  • Use versionadded and versionchanged in doc

2.7.0

  • Expose function signature fetching function
  • Allow ‘forever_retry_uncaught_exceptions’ to take in different defaults
  • Write document for each unit of oslo_utils.utils
  • Fix usage of “deprecated” markup in docstrings
  • Just use ‘exception_to_unicode’ to handle exception to string
  • Add ‘secret’ to sensitive keys

2.6.0

  • Fix coverage configuration and execution
  • Use a stopwatch in ‘forever_retry_uncaught_exceptions’
  • No need for Oslo Incubator Sync
  • Make forever_retry_uncaught_exceptions handle its own failures
  • Ensure stopwatch __enter__, __exit__ are in docs
  • Add some timeutils stop watch examples
  • Imported Translations from Zanata
  • Move ‘history’ -> release notes section
  • Fix bad acting classes and ‘is_bound_method’ check
  • Change ignore-errors to ignore_errors
  • Updated from global requirements
  • If ‘bool_from_string’ provided a boolean just return it
  • Imported Translations from Zanata
  • only capture the ImportError when importing
  • Add ‘token’ to list of fields to be santized by mask_password

2.5.0

  • Updated from global requirements
  • Imported Translations from Transifex
  • Updated from global requirements
  • Updated from global requirements

2.4.0

2.3.0

  • Updated from global requirements
  • Update docstring on stop watch to reflect monotonic lib. usage
  • Updated from global requirements
  • flake8 - remove unused rules
  • Bump monotonic to 0.3 to remove exception catching on import
  • Provide a common exception caused by base class
  • Imported Translations from Transifex
  • Allow access to reflection ‘get_members’
  • Updated from global requirements

2.2.0

  • Imported Translations from Transifex
  • Updated from global requirements

2.1.0

  • Imported Translations from Transifex
  • Updated from global requirements
  • Adding checking around the monotonic import

2.0.0

  • Updated from global requirements
  • Updated from global requirements
  • Add oslo.config to test requirements
  • Remove oslo namespace package
  • Updated from global requirements

1.9.0

  • Updated from global requirements
  • versionutils: add version convert helper methods
  • Imported Translations from Transifex
  • Add write_to_tempfile back to fileutils
  • Use monotonic library to avoid finding monotonic time function
  • Fix exception_to_unicode() for oslo_i18n Message

1.8.0

  • Add fileutils to oslo_utils
  • Updated from global requirements
  • Add tox target to find missing requirements

1.7.0

  • Updated from global requirements
  • Updated from global requirements
  • Switch badges from ‘pypip.in’ to ‘shields.io’
  • timeutils: fix newer/older comparison with TZ aware datetime
  • Replace parse_strtime with parse_isotime in older/newer

1.6.0

  • Add pytz to requirements
  • Deprecate strtime
  • Imported Translations from Transifex
  • timeutils: utcnow() can return a value with a timezone
  • Add ‘raise_with_cause’ chaining helper to excutils
  • timeutils: deprecate isotime()
  • timeutils: make marshall timezone aware
  • Advertise support for Python3.4 / Remove support for Python 3.3
  • Updated from global requirements
  • Add exception_to_unicode() function
  • Remove run_cross_tests.sh
  • Imported Translations from Transifex
  • Move versionutils into place and remove deprecation tools
  • Denote monotonic import ordering + usage

1.5.0

  • Add liberty release name to versionutils
  • Expose opts entry point for version_utils
  • Switch from oslo.config to oslo_config
  • Remove oslo.log code and clean up versionutils API
  • Remove code that moved to oslo.i18n
  • Enhance versionutils.deprecated to work with classes
  • Add Kilo release name to versionutils
  • Allow deprecated decorator to specify no plan for removal
  • Uncap library requirements for liberty
  • Add JUNO as a target to versionutils module
  • Add missing reflection + uuidutils docs
  • timeutils: avoid passing leap second to datetime
  • Add pypi download + version badges
  • Cleanup README.rst and setup.cfg
  • pep8: fixed multiple violations
  • Use oslotest instead of common test module
  • Use hacking import_exceptions for gettextutils._
  • fixed typos
  • Fix violations of H302:import only modules
  • Adds decorator to deprecate functions and methods
  • Remove vim header
  • Add versionutils for version compatibility checks
  • Update hacking setting
  • Updated from global requirements
  • Imported Translations from Transifex
  • Clean up TestIsIPv6Enabled
  • Fix test_netutils: stop patches
  • Add a new string to the list of masked patterns
  • Provide common fetch_current_thread_functor function
  • Imported Translations from Transifex

1.4.0

  • Add a stopwatch + split for duration(s)
  • Allow providing a logger to save_and_reraise_exception
  • Updated from global requirements
  • Utility API to generate EUI-64 IPv6 address

1.3.0

  • Add a eventlet utils helper module
  • Add microsecond support to iso8601_from_timestamp
  • add dependency warning to requirements.txt
  • Updated from global requirements
  • Update Oslo imports to remove namespace package
  • Add TimeFixture
  • Add microsecond support to timeutils.utcnow_ts()
  • Make setup.cfg packages include oslo.utils

1.2.1

  • Return LOCALHOST if no default interface
  • fix link to bug tracker in README

1.2.0

  • Improve performance of strutils.mask_password
  • Move files out of the namespace package
  • Add method is_valid_port in netutils
  • Support non-lowercase uuids in is_uuid_like
  • Add ‘secret_uuid’ in _SANITIZE_KEYS for strutils
  • Imported Translations from Transifex
  • Workflow documentation is now in infra-manual

1.1.0

  • Improve error reporting in _get_my_ipv4_address()
  • Add get_my_ip()
  • Updated from global requirements
  • Add ‘auth_password’ in _SANITIZE_KEYS for strutils
  • Updated from global requirements
  • Activate pep8 check that _ is imported
  • Add uuidutils to oslo.utils
  • Add pbr to installation requirements
  • Updated from global requirements
  • Add is_int_like() function
  • Hide auth_token and new_pass
  • Imported Translations from Transifex
  • Add history/changelog to docs
  • Imported Translations from Transifex
  • Support building wheels (PEP-427)
  • Imported Translations from Transifex
  • Improve docstrings for IP verification functions
  • Imported Translations from Transifex
  • Add ip address validation
  • Fix how it appears we need to use mock_anything to avoid ‘self’ errors
  • Updated from global requirements
  • Move over a reflection module that taskflow uses
  • Make safe_encode func case-insensitive
  • Enable mask_password to handle byte code strings
  • Updated from global requirements

1.0.0

  • Imported Translations from Transifex
  • Add the ability to extract the query params from a urlsplit
  • Work toward Python 3.4 support and testing
  • warn against sorting requirements
  • Remove unused dependency on oslo.config
  • Updated from global requirements
  • Just use int(BOOL) to convert to 1 or 0
  • Re-enable _import* hidden methods in import_utils

0.2.0

  • Make strutils.mask_password more secure
  • New public API for mask_password ported from incubator
  • Imported Translations from Transifex

0.1.1

  • Make return type from urlsplit private
  • Add API docs and clean up other docs
  • Make the i18n integration module private
  • Cleaning up index.rst file
  • export only try_import in __all__
  • Switch to oslo.i18n and remove any dependency on oslo-incubator
  • Move units into oslo.utils
  • Switch to standard python logging
  • Setup for translation
  • Split strutils into 2 different modules
  • Rename network_utils into netutils
  • get pep8 working
  • Get the tox tests working
  • exported from oslo-incubator by graduate.sh
  • Fixed a new pep8 error and a small typo
  • Set pbr ‘warnerrors’ option for doc build
  • fixed typos found by RETF rules
  • Use moxstubout and mockpatch from oslotest
  • Remove ValueError when accessing sys.modules
  • Enable configuring tcp keepalive
  • Avoid raising index error when no host
  • Remove str() from LOG.* and exceptions
  • Remove import workaround of SplitResult
  • Use oslotest instead of common test module
  • Partial fix of test_strutils.py on Python 3
  • Fix safe_encode(): return bytes on Python 3
  • urlsplit issues with IPv6 addresses in python26
  • save_and_reraise_exception: make logging respect the reraise parameter
  • strutils: Allow safe_{encode,decode} to take bytes as input
  • Fix import order in test_excutils
  • Update oslo log messages with translation domains
  • Implements SI/IEC unit system conversion to bytes
  • Add basic Python 3 tests
  • py3kcompat: remove
  • Deleted duplicated method in cliutils
  • strutils bool_from_string, allow specified default
  • Utilizes assertIsNone and assertIsNotNone
  • Fix spelling errors in comments
  • Use hacking import_exceptions for gettextutils._
  • Correct invalid docstrings
  • Fix a bug in safe_encode where it returns a bytes object in py3
  • Fix typo in parameter documentation (timeutils)
  • Avoid TypeError in is_older_than, is_newer_than
  • Remove vim header
  • Use py3kcompat urlutils functions instead of urlparse
  • Add helper method total_seconds in timeutils.py
  • Do not name variables as builtins
  • Use six.text_type instead of unicode function in tests
  • Fix typos in oslo
  • Adjust import order according to PEP8 imports rule
  • python3: use six.text_types for unicode()
  • Don’t shadow str
  • Fix timeutils.set_override_time not defaulting to current wall time
  • Fix misused assertTrue in unit tests
  • Optimize timeutils.utcnow_ts()
  • excutils: replace unicode by six.u
  • excutils: use six.reraise to re-raise
  • Replace using tests.utils part2
  • Bump hacking to 0.7.0
  • Replace using tests.utils with openstack.common.test
  • BaseException.message is deprecated since Python 2.6
  • Enable H302 hacking check
  • Add conditional exception reraise
  • python3: Add python3 compatibility
  • Make AMQP based RPC consumer threads more robust
  • Add network_utils.urlsplit
  • Remove useless logging in networks_utils
  • python3: Fix traceback while running python3
  • Refactors to_bytes
  • Add slugify to strutils
  • Enable hacking H404 test
  • Added common code into fileutils and strutils
  • Enable hacking H402 test
  • Enable hacking H403 test
  • Enable hacking H201 test
  • Add ‘t’, ‘y’, and strict to bool_from_string
  • Handle ints passed to boolean_from_string
  • Removes leading zeros on integers in test_timeutils
  • Convert unicode strings for python3 portability
  • Do not import openstack.common.log in strutils
  • Improve Python 3.x compatibility
  • Replaces standard logging with common logging
  • Removes unused imports in the tests module
  • Fix Copyright Headers - Rename LLC to Foundation
  • support ISO 8601 micro-second precision
  • Decode / Encode string utils for openstack
  • timeutils: considers that now is soon
  • Replace direct use of testtools BaseTestCase
  • Use testtools as test base class
  • Import timeutils.is_soon from keystoneclient
  • UTC ISO8601 from timestamp
  • Implement importutils.try_import
  • Use basestring instead of str for type check
  • Make time comparison functions accept strings
  • Fix timezone handling in timeutils tests
  • Rename utils.py to strutils.py
  • Provide i18n to those messages without _()
  • Make project pyflakes clean
  • Account for tasks duration in LoopingCall delay
  • Convenience wrapper for datetime.timedelta.total_seconds()
  • Added is_newer_than function
  • Extracted parse_host_port into network_utils
  • Normalize_time() always return naive object
  • Use pep8 v1.3.3
  • Don’t trap then re-raise ImportError
  • Fix spelling typos
  • Support for marshalling datetime while preserving microseconds
  • Remove unused imports
  • fix bug lp:1019348,update openstack-common to support pep8 1.3
  • Use strtime() in to_primitive() for datetime objs
  • Improve exception from importutils.import_class()
  • Update common code to support pep 1.3. bug 1014216
  • add import_object_ns function
  • add more realistic unit tests for importutils
  • Fix utcnow_ts to return UTC timestamp
  • Add nova time util functions to timeutils
  • Replace datetime.utcnow with timeutils.utcnow
  • Remove common.exception from common.importutils
  • Add save_and_reraise_exception()
  • Update exception from importutils.import_class()
  • Change behavior in utils.import_object()
  • Create openstack.common.timeutils
  • Initial skeleton project