Skip to content

Commit 46012fc

Browse files
committed
task/install: extra_system_packages at the top level can be a list
Commit fc5a319 ("task/install: allow both list and dicts for extra_system_packages") introduced a regression for job definitions where extra_system_packages at the top level (i.e. on the install task itself) is a list. For example overrides: install: ceph: flavor: default sha1: b7d57fefbec68934ae5e6e7d7c48ac09182397a5 extra_system_packages: - pv produces AssertionError on assert isinstance(b, dict) in deep_merge() when it's called from _override_extra_system_packages(). Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
1 parent 1968399 commit 46012fc

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

teuthology/task/install/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,9 @@ def _override_extra_system_packages(config, project, install_overrides):
427427
e = dict(deb=copy.deepcopy(extra), rpm=copy.deepcopy(extra))
428428
elif isinstance(extra, dict):
429429
e = copy.deepcopy(extra)
430+
431+
if isinstance(extra_overrides, list):
432+
extra_overrides = dict(deb=extra_overrides, rpm=extra_overrides)
430433
elif isinstance(extra, str):
431434
e = dict(deb=[extra], rpm=[extra])
432435

teuthology/test/task/test_install.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,28 @@ def test_rh_install_pkgs(self, m_get_pkg_version):
362362
'rpm': ['alpha', 'xerxes', 'yellow'],
363363
}
364364
],
365+
[
366+
{
367+
'tasks': [ { 'install': { 'clean': True, }, }, ],
368+
'overrides': {
369+
'install': {
370+
'ceph': {
371+
'extra_system_packages': {
372+
'deb': [],
373+
'rpm': ['xerxes', 'yellow'],
374+
},
375+
'flavor': 'default',
376+
'sha1': '0123456789abcdef0123456789abcdef01234567',
377+
},
378+
'extra_system_packages': ['alpha'],
379+
},
380+
},
381+
},
382+
{
383+
'deb': ['alpha'],
384+
'rpm': ['xerxes', 'yellow', 'alpha'],
385+
}
386+
],
365387
[
366388
{
367389
'tasks': [ { 'install': { 'clean': True, }, }, ],
@@ -383,6 +405,24 @@ def test_rh_install_pkgs(self, m_get_pkg_version):
383405
'rpm': ['xerxes', 'yellow'],
384406
}
385407
],
408+
[
409+
{
410+
'tasks': [ { 'install': { 'clean': True, }, }, ],
411+
'overrides': {
412+
'install': {
413+
'ceph': {
414+
'flavor': 'default',
415+
'sha1': '0123456789abcdef0123456789abcdef01234567',
416+
},
417+
'extra_system_packages': ['xerxes', 'yellow'],
418+
},
419+
},
420+
},
421+
{
422+
'deb': ['xerxes', 'yellow'],
423+
'rpm': ['xerxes', 'yellow'],
424+
}
425+
],
386426
[
387427
{
388428
'tasks': [ { 'install': { 'clean': True, }, }, ],

0 commit comments

Comments
 (0)