diff --git a/modules/openstack_project/manifests/base.pp b/modules/openstack_project/manifests/base.pp index a31d5e4562..adbfab9939 100644 --- a/modules/openstack_project/manifests/base.pp +++ b/modules/openstack_project/manifests/base.pp @@ -7,6 +7,7 @@ class openstack_project::base( if ($::operatingsystem == 'Ubuntu') { include apt } + include openstack_project::params include openstack_project::users include sudoers @@ -30,14 +31,8 @@ class openstack_project::base( } } - $packages = [ - 'puppet', - 'python-setuptools', - 'wget', - ] - - package { $packages: - ensure => present, + package { $::openstack_project::params::packages: + ensure => present } include pip @@ -48,8 +43,8 @@ class openstack_project::base( } if ($install_users) { - package { ['byobu', 'emacs23-nox']: - ensure => present, + package { $::openstack_project::params::user_packages: + ensure => present } realize ( diff --git a/modules/openstack_project/manifests/params.pp b/modules/openstack_project/manifests/params.pp new file mode 100644 index 0000000000..70240c14c7 --- /dev/null +++ b/modules/openstack_project/manifests/params.pp @@ -0,0 +1,19 @@ +# Class: openstack_project::params +# +# This class holds parameters that need to be +# accessed by other classes. +class openstack_project::params { + case $::osfamily { + 'Redhat': { + $packages = ['puppet', 'python-setuptools', 'wget'] + $user_packages = ['byobu', 'emacs-nox'] + } + 'Debian', 'Ubuntu': { + $packages = ['puppet', 'python-setuptools', 'wget'] + $user_packages = ['byobu', 'emacs23-nox'] + } + default: { + fail("Unsupported osfamily: ${::osfamily} The 'openstack_project' module only supports osfamily Ubuntu or Redhat(slaves only).") + } + } +}