Currently, we skip [4] test 'nested_classes_or_defines' during the 'fuel_syntax_check' in our CI. Because of this, we already have several modules [3] in the fuel-library wich can lead to the problems after upgrade to Puppet4. We should use this test during the CI, and refactor modules. It's recommended to keep one class definition per file and to follow the Module patterns [1] and Style Guide [2] when doing so. Also 'fuel_syntax_check' used in our CI works in 'reduced' warnings mode with many tests skipped, in this case, it will be good idea to use '--fail-on-warnings' option.
[1] http://docs.puppetlabs.com/learning/modules1.html
[2] http://docs.puppetlabs.com/guides/style_guide.html
[3] ./deployment/puppet/cobbler/manifests/packages.pp - WARNING: defined type defined inside a class on line 47
./deployment/puppet/cobbler/manifests/server_old.pp - WARNING: defined type defined inside a class on line 81
./deployment/puppet/cobbler/manifests/server_old.pp - WARNING: defined type defined inside a class on line 116
./deployment/puppet/cobbler/manifests/server_old.pp - WARNING: defined type defined inside a class on line 306
./deployment/puppet/cobbler/manifests/snippets.pp - WARNING: defined type defined inside a class on line 18
./deployment/puppet/nailgun/manifests/packages.pp - WARNING: defined type defined inside a class on line 5
./deployment/puppet/openstack/manifests/swift/storage_node.pp - WARNING: defined type defined inside a class on line 73
[4] https://github.com/openstack/fuel-library/blob/master/utils/jenkins/fuel_syntax_check.sh#L72
Fix proposed to branch: master /review. openstack. org/266546
Review: https:/