Empty bndl list arguments such as annotations, tags and roles need to be treated as None in bndl_utils.load_bundle_args_into_conf. This was the case for annotations and tags, but not for roles.
The PR is changes the roles logic so that empty lists are treated as None.
In other words, without fixing this bug, the roles of each loaded bundle during conduct load is overridden to an empty roles list in case no additional bundle configuration has been provided. This is because without this fix the bndl_utils.load_bundle_args_into_conf function always created a bundle configuration overlay with empty roles, considering that the defaults roles argument of bndl is [], which got invoked during a conduct load and therefore overriding the roles of bundle itself.
Empty
bndl
list arguments such as annotations, tags and roles need to be treated as None inbndl_utils.load_bundle_args_into_conf
. This was the case for annotations and tags, but not for roles.The PR is changes the roles logic so that empty lists are treated as None.
Fixes the sbt-conductr build issues on Travis: https://travis-ci.org/typesafehub/sbt-conductr/builds/246078520#L1980-L2019
In other words, without fixing this bug, the roles of each loaded bundle during
conduct load
is overridden to an empty roles list in case no additional bundle configuration has been provided. This is because without this fix thebndl_utils.load_bundle_args_into_conf
function always created a bundle configuration overlay with empty roles, considering that the defaults roles argument ofbndl
is[]
, which got invoked during aconduct load
and therefore overriding the roles of bundle itself.The original bug got introduced by PR https://github.com/typesafehub/conductr-cli/pull/503.
Unit tests have been added to check that bndl arguments with an empty list are not added to the bundle configuration file.