libvirt: mask InjectionInfo.admin_pass

Logging network information and the admin password
for guest instances is not ideal, so let's not do it.

Change-Id: I328ba88b128c6c125e65d850ed7a6e57049dc7e2
Closes-Bug: #1737207
(cherry picked from commit 6839630e86)
(cherry picked from commit 088bf6df8e)
(cherry picked from commit 13b598d371)
This commit is contained in:
Matt Riedemann 2017-12-08 16:02:44 -05:00
parent b9391f7563
commit 1291d45418
2 changed files with 16 additions and 2 deletions

View File

@ -10804,6 +10804,14 @@ class LibvirtConnTestCase(test.NoDBTestCase):
]
self.assertEqual(wantFiles, gotFiles)
def test_injection_info_is_sanitized(self):
info = get_injection_info(
network_info=mock.sentinel.network_info,
files=mock.sentinel.files,
admin_pass='verybadpass')
self.assertNotIn('verybadpass', str(info))
self.assertNotIn('verybadpass', repr(info))
@mock.patch(
'nova.virt.libvirt.driver.LibvirtDriver._build_device_metadata')
@mock.patch('nova.api.metadata.base.InstanceMetadata')

View File

@ -141,8 +141,14 @@ CONSOLE = "console=tty0 console=ttyS0"
GuestNumaConfig = collections.namedtuple(
'GuestNumaConfig', ['cpuset', 'cputune', 'numaconfig', 'numatune'])
InjectionInfo = collections.namedtuple(
'InjectionInfo', ['network_info', 'files', 'admin_pass'])
class InjectionInfo(collections.namedtuple(
'InjectionInfo', ['network_info', 'files', 'admin_pass'])):
__slots__ = ()
def __repr__(self):
return ('InjectionInfo(network_info=%r, files=%r, '
'admin_pass=<SANITIZED>)') % (self.network_info, self.files)
libvirt_volume_drivers = [
'iscsi=nova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver',