Hello community,

here is the log from the commit of package python-oslo.utils for 
openSUSE:Factory checked in at 2020-03-24 22:32:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.utils.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.utils"

Tue Mar 24 22:32:36 2020 rev:20 rq:786268 version:3.41.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes      
2020-03-17 13:09:41.849778334 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.utils.new.3160/python-oslo.utils.changes
    2020-03-24 22:32:37.565097683 +0100
@@ -1,0 +2,17 @@
+Wed Mar 18 20:56:50 UTC 2020 - [email protected]
+
+- update to version 3.41.5
+  - Fix regex to correctly recognize scientific notation with QemuImgInfo
+
+-------------------------------------------------------------------
+Tue Mar 17 19:18:18 UTC 2020 - [email protected]
+
+- update to version 3.41.4
+  - Update .gitreview for stable/train
+  - Support "qemu-img info" virtual size in QEMU 4.1 and later
+  - Make mask_password case insensitive, and add new patterns
+  - Verify the sanitize keys are lowered
+  - Make mask_dict_password case insensitive and add new patterns
+  - Update TOX/UPPER_CONSTRAINTS_FILE for stable/train
+
+-------------------------------------------------------------------

Old:
----
  oslo.utils-3.41.1.tar.gz

New:
----
  oslo.utils-3.41.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.aCCXIn/_old  2020-03-24 22:32:38.413098095 +0100
+++ /var/tmp/diff_new_pack.aCCXIn/_new  2020-03-24 22:32:38.417098097 +0100
@@ -17,13 +17,13 @@
 
 
 Name:           python-oslo.utils
-Version:        3.41.1
+Version:        3.41.5
 Release:        0
 Summary:        OpenStack Utils Library
 License:        Apache-2.0
 Group:          Development/Languages/Python
 URL:            https://launchpad.net/oslo.utils
-Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.41.1.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.41.5.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  python3-Babel
 BuildRequires:  python3-ddt
@@ -76,7 +76,7 @@
 Documentation for OpenStack utils library.
 
 %prep
-%autosetup -p1 -n oslo.utils-3.41.1
+%autosetup -p1 -n oslo.utils-3.41.5
 
 %py_req_cleanup
 
@@ -87,11 +87,12 @@
 %py3_install
 
 # generate html docs
-PBR_VERSION=3.41.1 %sphinx_build -b html doc/source doc/build/html
+PBR_VERSION=3.41.5 %sphinx_build -b html doc/source doc/build/html
 # remove the sphinx-build leftovers
 rm -rf doc/build/html/.{doctrees,buildinfo}
 
 %check
+# tests fail with python 3.8
 rm -v oslo_utils/tests/test_reflection.py
 python3 -m stestr.cli run
 

++++++ oslo.utils-3.41.1.tar.gz -> oslo.utils-3.41.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/AUTHORS 
new/oslo.utils-3.41.5/AUTHORS
--- old/oslo.utils-3.41.1/AUTHORS       2019-09-04 16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/AUTHORS       2020-03-04 02:02:34.000000000 +0100
@@ -32,6 +32,7 @@
 Costin Galan <[email protected]>
 Cyril Roelandt <[email protected]>
 Cyril Roelandt <[email protected]>
+Cédric Jeanneret <[email protected]>
 Dan Prince <[email protected]>
 Dan Smith <[email protected]>
 Dariusz Smigiel <[email protected]>
@@ -46,6 +47,7 @@
 Dolph Mathews <[email protected]>
 Doug Hellmann <[email protected]>
 Doug Hellmann <[email protected]>
+Dougal Matthews <[email protected]>
 Drew Varner <[email protected]>
 Elena Ezhova <[email protected]>
 Eoghan Glynn <[email protected]>
@@ -59,6 +61,7 @@
 Ghe Rivero <[email protected]>
 Guang Yee <[email protected]>
 Hanxi Liu <[email protected]>
+Hervé Beraud <[email protected]>
 Ian Wienand <[email protected]>
 Ihar Hrachyshka <[email protected]>
 Ildiko <[email protected]>
@@ -84,6 +87,7 @@
 Kenneth Giusti <[email protected]>
 Kevin Houdebert <[email protected]>
 Lucas Alvares Gomes <[email protected]>
+Mark Mielke <[email protected]>
 Matthew Booth <[email protected]>
 Mehdi Abaakouk <[email protected]>
 Michael Wilson <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/ChangeLog 
new/oslo.utils-3.41.5/ChangeLog
--- old/oslo.utils-3.41.1/ChangeLog     2019-09-04 16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/ChangeLog     2020-03-04 02:02:34.000000000 +0100
@@ -1,6 +1,29 @@
 CHANGES
 =======
 
+3.41.5
+------
+
+* Fix regex to correctly recognize scientific notation with QemuImgInfo
+
+3.41.4
+------
+
+* Verify the sanitize keys are lowered
+* Make mask\_dict\_password case insensitive and add new patterns
+
+3.41.3
+------
+
+* Make mask\_password case insensitive, and add new patterns
+
+3.41.2
+------
+
+* Support "qemu-img info" virtual size in QEMU 4.1 and later
+* Update TOX/UPPER\_CONSTRAINTS\_FILE for stable/train
+* Update .gitreview for stable/train
+
 3.41.1
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/PKG-INFO 
new/oslo.utils-3.41.5/PKG-INFO
--- old/oslo.utils-3.41.1/PKG-INFO      2019-09-04 16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/PKG-INFO      2020-03-04 02:02:35.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.utils
-Version: 3.41.1
+Version: 3.41.5
 Summary: Oslo Utility library
 Home-page: https://docs.openstack.org/oslo.utils/latest/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo.utils.egg-info/PKG-INFO 
new/oslo.utils-3.41.5/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-3.41.1/oslo.utils.egg-info/PKG-INFO  2019-09-04 
16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo.utils.egg-info/PKG-INFO  2020-03-04 
02:02:34.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.utils
-Version: 3.41.1
+Version: 3.41.5
 Summary: Oslo Utility library
 Home-page: https://docs.openstack.org/oslo.utils/latest/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo.utils.egg-info/SOURCES.txt 
new/oslo.utils-3.41.5/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-3.41.1/oslo.utils.egg-info/SOURCES.txt       2019-09-04 
16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo.utils.egg-info/SOURCES.txt       2020-03-04 
02:02:34.000000000 +0100
@@ -96,6 +96,9 @@
 oslo_utils/tests/fake/v2/dummpy.py
 releasenotes/notes/add-reno-350f5f34f794fb5e.yaml
 releasenotes/notes/bump-up-port-range-f774a16336158339.yaml
+releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
+releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
+releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
 releasenotes/source/conf.py
 releasenotes/source/index.rst
 releasenotes/source/newton.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo.utils.egg-info/pbr.json 
new/oslo.utils-3.41.5/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-3.41.1/oslo.utils.egg-info/pbr.json  2019-09-04 
16:26:49.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo.utils.egg-info/pbr.json  2020-03-04 
02:02:34.000000000 +0100
@@ -1 +1 @@
-{"git_version": "5ae7d21", "is_release": true}
\ No newline at end of file
+{"git_version": "85cd57d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo_utils/imageutils.py 
new/oslo.utils-3.41.5/oslo_utils/imageutils.py
--- old/oslo.utils-3.41.1/oslo_utils/imageutils.py      2019-09-04 
16:26:10.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo_utils/imageutils.py      2020-03-04 
02:01:40.000000000 +0100
@@ -44,7 +44,8 @@
     BACKING_FILE_RE = re.compile((r"^(.*?)\s*\(actual\s+path\s*:"
                                   r"\s+(.*?)\)\s*$"), re.I)
     TOP_LEVEL_RE = re.compile(r"^([\w\d\s\_\-]+):(.*)$")
-    SIZE_RE = re.compile(r"(\d*\.?\d+)(\w+)?(\s*\(\s*(\d+)\s+bytes\s*\))?",
+    SIZE_RE = re.compile(r"([0-9]+[eE][-+][0-9]+|\d*\.?\d+)"
+                         "\s*(\w+)?(\s*\(\s*(\d+)\s+bytes\s*\))?",
                          re.I)
 
     def __init__(self, cmd_output=None, format='human'):
@@ -100,13 +101,18 @@
         if not real_size:
             raise ValueError(_('Invalid input value "%s".') % details)
         magnitude = real_size.group(1)
+        if "e" in magnitude.lower():
+            magnitude = format(float(real_size.group(1)), '.0f')
         unit_of_measure = real_size.group(2)
         bytes_info = real_size.group(3)
         if bytes_info:
             return int(real_size.group(4))
         elif not unit_of_measure:
             return int(magnitude)
-        return strutils.string_to_bytes('%s%sB' % (magnitude, unit_of_measure),
+        # Allow abbreviated unit such as K to mean KB for compatibility.
+        if len(unit_of_measure) == 1 and unit_of_measure != 'B':
+            unit_of_measure += 'B'
+        return strutils.string_to_bytes('%s%s' % (magnitude, unit_of_measure),
                                         return_int=True)
 
     def _extract_details(self, root_cmd, root_details, lines_after):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo_utils/strutils.py 
new/oslo.utils-3.41.5/oslo_utils/strutils.py
--- old/oslo.utils-3.41.1/oslo_utils/strutils.py        2019-09-04 
16:26:10.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo_utils/strutils.py        2020-03-04 
02:01:40.000000000 +0100
@@ -54,12 +54,19 @@
 SLUGIFY_HYPHENATE_RE = re.compile(r"[-\s]+")
 
 
-# NOTE(flaper87): The following globals are used by `mask_password`
-_SANITIZE_KEYS = ['adminPass', 'admin_pass', 'password', 'admin_password',
+# NOTE(flaper87): The following globals are used by `mask_password` and
+#                 `mask_dict_password`. They must all be lowercase.
+_SANITIZE_KEYS = ['adminpass', 'admin_pass', 'password', 'admin_password',
                   'auth_token', 'new_pass', 'auth_password', 'secret_uuid',
                   'secret', 'sys_pswd', 'token', 'configdrive',
-                  'CHAPPASSWORD', 'encrypted_key', 'private_key',
-                  'encryption_key_id']
+                  'chappassword', 'encrypted_key', 'private_key',
+                  'encryption_key_id', 'fernetkey', 'sslkey', 'passphrase',
+                  'cephclusterfsid', 'octaviaheartbeatkey', 'rabbitcookie',
+                  'cephmanilaclientkey', 'pacemakerremoteauthkey',
+                  'designaterndckey', 'cephadminkey', 'heatauthencryptionkey',
+                  'cephclientkey', 'keystonecredential',
+                  'barbicansimplecryptokek', 'cephrgwkey', 'swifthashsuffix',
+                  'migrationsshkey', 'cephmdskey', 'cephmonkey']
 
 # NOTE(ldbragst): Let's build a list of regex objects using the list of
 # _SANITIZE_KEYS we already have. This way, we only have to add the new key
@@ -70,17 +77,18 @@
 
 # NOTE(amrith): Some regular expressions have only one parameter, some
 # have two parameters. Use different lists of patterns here.
-_FORMAT_PATTERNS_1 = [r'(%(key)s\s*[=]\s*)[^\s^\'^\"]+']
-_FORMAT_PATTERNS_2 = [r'(%(key)s\s*[=]\s*[\"\'])[^\"\']*([\"\'])',
-                      r'(%(key)s\s+[\"\'])[^\"\']*([\"\'])',
-                      r'([-]{2}%(key)s\s+)[^\'^\"^=^\s]+([\s]*)',
-                      r'(<%(key)s>)[^<]*(</%(key)s>)',
-                      r'([\"\']%(key)s[\"\']\s*:\s*[\"\'])[^\"\']*([\"\'])',
-                      r'([\'"][^"\']*%(key)s[\'"]\s*:\s*u?[\'"])[^\"\']*'
+_FORMAT_PATTERNS_1 = [r'(%(key)s[0-9]*\s*[=]\s*)[^\s^\'^\"]+']
+_FORMAT_PATTERNS_2 = [r'(%(key)s[0-9]*\s*[=]\s*[\"\'])[^\"\']*([\"\'])',
+                      r'(%(key)s[0-9]*\s+[\"\'])[^\"\']*([\"\'])',
+                      r'([-]{2}%(key)s[0-9]*\s+)[^\'^\"^=^\s]+([\s]*)',
+                      r'(<%(key)s[0-9]*>)[^<]*(</%(key)s[0-9]*>)',
+                      r'([\"\']%(key)s[0-9]*[\"\']\s*:\s*[\"\'])[^\"\']*'
+                      '([\"\'])',
+                      r'([\'"][^"\']*%(key)s[0-9]*[\'"]\s*:\s*u?[\'"])[^\"\']*'
                       '([\'"])',
-                      r'([\'"][^\'"]*%(key)s[\'"]\s*,\s*\'--?[A-z]+\'\s*,\s*u?'
-                      '[\'"])[^\"\']*([\'"])',
-                      r'(%(key)s\s*--?[A-z]+\s*)\S+(\s*)']
+                      r'([\'"][^\'"]*%(key)s[0-9]*[\'"]\s*,\s*\'--?[A-z]+'
+                      '\'\s*,\s*u?[\'"])[^\"\']*([\'"])',
+                      r'(%(key)s[0-9]*\s*--?[A-z]+\s*)\S+(\s*)']
 
 # NOTE(dhellmann): Keep a separate list of patterns by key so we only
 # need to apply the substitutions for keys we find using a quick "in"
@@ -90,11 +98,11 @@
     _SANITIZE_PATTERNS_2[key] = []
 
     for pattern in _FORMAT_PATTERNS_2:
-        reg_ex = re.compile(pattern % {'key': key}, re.DOTALL)
+        reg_ex = re.compile(pattern % {'key': key}, re.DOTALL | re.IGNORECASE)
         _SANITIZE_PATTERNS_2[key].append(reg_ex)
 
     for pattern in _FORMAT_PATTERNS_1:
-        reg_ex = re.compile(pattern % {'key': key}, re.DOTALL)
+        reg_ex = re.compile(pattern % {'key': key}, re.DOTALL | re.IGNORECASE)
         _SANITIZE_PATTERNS_1[key].append(reg_ex)
 
 
@@ -329,7 +337,7 @@
     # specified in _SANITIZE_KEYS, if not then just return the message since
     # we don't have to mask any passwords.
     for key in _SANITIZE_KEYS:
-        if key in message:
+        if key in message.lower():
             for pattern in _SANITIZE_PATTERNS_2[key]:
                 message = re.sub(pattern, substitute2, message)
             for pattern in _SANITIZE_PATTERNS_1[key]:
@@ -405,7 +413,7 @@
         k_matched = False
         if isinstance(k, six.string_types):
             for sani_key in _SANITIZE_KEYS:
-                if sani_key in k:
+                if sani_key in k.lower():
                     out[k] = secret
                     k_matched = True
                     break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.41.1/oslo_utils/tests/test_imageutils.py 
new/oslo.utils-3.41.5/oslo_utils/tests/test_imageutils.py
--- old/oslo.utils-3.41.1/oslo_utils/tests/test_imageutils.py   2019-09-04 
16:26:10.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo_utils/tests/test_imageutils.py   2020-03-04 
02:01:40.000000000 +0100
@@ -38,25 +38,39 @@
                                     exp_virtual_size=67108844)),
         ('64M_byte', dict(virtual_size='67108844',
                           exp_virtual_size=67108844)),
+        ('64_MiB_with_byte_hint', dict(virtual_size='64 MiB (67108844 bytes)',
+                                       exp_virtual_size=67108844)),
         ('4.4M', dict(virtual_size='4.4M',
                       exp_virtual_size=4613735)),
         ('4.4M_with_byte_hint', dict(virtual_size='4.4M (4592640 bytes)',
                                      exp_virtual_size=4592640)),
+        ('4.4_MiB_with_byte_hint', dict(virtual_size='4.4 MiB (4592640 bytes)',
+                                        exp_virtual_size=4592640)),
         ('2K', dict(virtual_size='2K',
                     exp_virtual_size=2048)),
         ('2K_with_byte_hint', dict(virtual_size='2K (2048 bytes)',
                                    exp_virtual_size=2048)),
+        ('2_KiB_with_byte_hint', dict(virtual_size='2 KiB (2048 bytes)',
+                                      exp_virtual_size=2048)),
     ]
 
     _disk_size = [
         ('96K', dict(disk_size='96K',
                      exp_disk_size=98304)),
+        ('96_KiB', dict(disk_size='96 KiB',
+                        exp_disk_size=98304)),
         ('96K_byte', dict(disk_size='98304',
                           exp_disk_size=98304)),
+        ('98304_B', dict(disk_size='98304 B',
+                         exp_disk_size=98304)),
         ('3.1G', dict(disk_size='3.1G',
                       exp_disk_size=3328599655)),
+        ('3.1_GiB', dict(disk_size='3.1 GiB',
+                         exp_disk_size=3328599655)),
         ('unavailable', dict(disk_size='unavailable',
                              exp_disk_size=0)),
+        ('1e+03 MiB', dict(disk_size='1e+03 MiB',
+                           exp_disk_size=1048576000)),
     ]
 
     _garbage_before_snapshot = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/oslo_utils/tests/test_strutils.py 
new/oslo.utils-3.41.5/oslo_utils/tests/test_strutils.py
--- old/oslo.utils-3.41.1/oslo_utils/tests/test_strutils.py     2019-09-04 
16:26:10.000000000 +0200
+++ new/oslo.utils-3.41.5/oslo_utils/tests/test_strutils.py     2020-03-04 
02:01:40.000000000 +0100
@@ -296,6 +296,12 @@
 
 class MaskPasswordTestCase(test_base.BaseTestCase):
 
+    def test_sanitize_keys(self):
+
+        lowered = [k.lower() for k in strutils._SANITIZE_KEYS]
+        message = "The _SANITIZE_KEYS must all be lowercase."
+        self.assertEqual(strutils._SANITIZE_KEYS, lowered, message)
+
     def test_json(self):
         # Test 'adminPass' w/o spaces
         payload = """{'adminPass':'TL0EfN33'}"""
@@ -353,6 +359,43 @@
         payload = """{ 'token' : 'token' }"""
         expected = """{ 'token' : '***' }"""
         self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'fernetkey'
+        payload = """{ 'fernetkey' : 'token' }"""
+        expected = """{ 'fernetkey' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'FernetKey'
+        payload = """{ 'FernetKey' : 'token' }"""
+        expected = """{ 'FernetKey' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'sslkey'
+        payload = """{ 'sslkey' : 'token' }"""
+        expected = """{ 'sslkey' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'SslKey'
+        payload = """{ 'SslKey' : 'token' }"""
+        expected = """{ 'SslKey' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'passphrase'
+        payload = """{ 'passphrase' : 'token' }"""
+        expected = """{ 'passphrase' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'PassPhrase'
+        payload = """{ 'PassPhrase' : 'token' }"""
+        expected = """{ 'PassPhrase' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Some real-life cases
+        # Test 'KeystoneFernetKey1'
+        payload = """{ 'KeystoneFernetKey1' : 'token' }"""
+        expected = """{ 'KeystoneFernetKey1' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'OctaviaCaKeyPassword'
+        payload = """{ 'OctaviaCaKeyPassword' : 'token' }"""
+        expected = """{ 'OctaviaCaKeyPassword' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'OctaviaCaKeyPassphrase'
+        payload = """{ 'OctaviaCaKeyPassphrase' : 'token' }"""
+        expected = """{ 'OctaviaCaKeyPassphrase' : '***' }"""
+        self.assertEqual(expected, strutils.mask_password(payload))
 
     def test_xml(self):
         # Test 'adminPass' w/o spaces
@@ -395,6 +438,10 @@
                      </password>"""
         expected = """<password>***</password>"""
         self.assertEqual(expected, strutils.mask_password(payload))
+        # Test 'Password1' - case-insensitive + number
+        payload = """<Password1>TL0EfN33</Password1>"""
+        expected = """<Password1>***</Password1>"""
+        self.assertEqual(expected, strutils.mask_password(payload))
 
     def test_xml_attribute(self):
         # Test 'adminPass' w/o spaces
@@ -676,6 +723,16 @@
         self.assertEqual(expected,
                          strutils.mask_dict_password(payload))
 
+        payload = {'passwords': {'KeystoneFernetKey1': 'c5FijjS'}}
+        expected = {'passwords': {'KeystoneFernetKey1': '***'}}
+        self.assertEqual(expected,
+                         strutils.mask_dict_password(payload))
+
+        payload = {'passwords': {'keystonecredential0': 'c5FijjS'}}
+        expected = {'passwords': {'keystonecredential0': '***'}}
+        self.assertEqual(expected,
+                         strutils.mask_dict_password(payload))
+
     def test_do_no_harm(self):
         payload = {}
         expected = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.41.1/releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
 
new/oslo.utils-3.41.5/releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
--- 
old/oslo.utils-3.41.1/releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.utils-3.41.5/releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
       2020-03-04 02:01:40.000000000 +0100
@@ -0,0 +1,5 @@
+---
+fixes:
+  - |
+    qemu 4.1.0 output shifts to scientific notation at 1000mb,
+    breaking oslo.utils. ``QemuImgInfo`` is now fixed to support this notation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.41.1/releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
 
new/oslo.utils-3.41.5/releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
--- 
old/oslo.utils-3.41.1/releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.utils-3.41.5/releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
  2020-03-04 02:01:40.000000000 +0100
@@ -0,0 +1,9 @@
+---
+security:
+  - |
+    This patch ensures that we mask sensitive data when masking dicts, even if
+    the case doesn't match. This means the behaviour of mask_password and
+    mask_dict_password is now the same.
+  - |
+    Additional password names were included from real world logs that contained
+    sensitive information.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.41.1/releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
 
new/oslo.utils-3.41.5/releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
--- 
old/oslo.utils-3.41.1/releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.utils-3.41.5/releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
       2020-03-04 02:01:40.000000000 +0100
@@ -0,0 +1,8 @@
+---
+security:
+  - This patch ensures we actually mask sensitive data, even if case doesn't
+    match the static entry we have in the patterns.
+  - It also ensures that some fancy names with a common base, but added
+    number are actually taken care of.
+fixes:
+  - https://bugs.launchpad.net/tripleo/+bug/1850843
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.41.1/tox.ini 
new/oslo.utils-3.41.5/tox.ini
--- old/oslo.utils-3.41.1/tox.ini       2019-09-04 16:26:10.000000000 +0200
+++ new/oslo.utils-3.41.5/tox.ini       2020-03-04 02:01:40.000000000 +0100
@@ -5,7 +5,7 @@
 [testenv]
 install_command = pip install {opts} {packages}
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
 commands = stestr run --slowest {posargs}


Reply via email to