Wrap 'classes' parameter as a list in config_dict object

This change fixes a type mismatch bug introduced in [1]. A python list
is expected but a python str is provided instead.

[1] https://review.opendev.org/c/starlingx/config/+/893566

This type mismatch will result in the 'deadlock' prevention logic to
never be invoked. In [2] below, the 'if classes' branch is never entered:

[2] 85a548ffcc/sysinv/sysinv/sysinv/sysinv/conductor/manager.py (L13481)

Test plan:

PASS: Run 'sudo chage -M 999 sysadmin; sudo chage -M 888 sysadmin;
      sudo chage -M 777 sysadmin'. Notice 'out of config alarm' in
      'fm alarm-list'. Verify that it clears up after about 5 min.
PASS: Verify in i_user db table and /etc/shadow that it correctly
      contains the last password age, 777 in this case.

Note: In a managed subcloud, the value in /etc/shadow file will
be changed again in about 20 min to sync with the sysadmin password
and age in the system controller.

Closes-Bug: 2034446

Signed-off-by: Rei Oliveira <Reinildes.JoseMateusOliveira@windriver.com>
Change-Id: I24d9807e9eb2d94e026be7b8f3448a6cd42fcdd6
This commit is contained in:
Rei Oliveira 2024-04-03 19:20:06 -03:00
parent eff4e08e44
commit 5d853423ef
1 changed files with 1 additions and 1 deletions

View File

@ -9562,7 +9562,7 @@ class ConductorManager(service.PeriodicService):
config_dict = {
"personalities": personalities,
"classes": self.PUPPET_RUNTIME_CLASS_USERS,
"classes": [self.PUPPET_RUNTIME_CLASS_USERS],
puppet_common.REPORT_STATUS_CFG:
puppet_common.REPORT_USER_CONFIG,
}