--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/puppi/manifests/project.pp Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,100 @@
+# Define puppi::project
+#
+# This define creates and configures a Puppi project
+# You must use different puppi::deploy and puppi::rollback defines
+# to to build up the commands list
+#
+define puppi::project (
+ $enable = true ) {
+
+ require puppi::params
+
+ $ensure = any2bool($enable) ? {
+ false => 'absent',
+ default => 'directory',
+ }
+
+ $ensurefile = bool2ensure($enable)
+
+ # Create Project subdirs
+ file {
+ "${puppi::params::projectsdir}/${name}":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true;
+
+ "${puppi::params::projectsdir}/${name}/check":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+
+ "${puppi::params::projectsdir}/${name}/rollback":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+
+ "${puppi::params::projectsdir}/${name}/deploy":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+
+ "${puppi::params::projectsdir}/${name}/initialize":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+
+ "${puppi::params::projectsdir}/${name}/configure":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+
+ "${puppi::params::projectsdir}/${name}/report":
+ ensure => $ensure,
+ mode => '0755',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ force => true,
+ recurse => true,
+ purge => true,
+ require => File["${puppi::params::projectsdir}/${name}"];
+ }
+
+ # Create Project configuration file
+ file {
+ "${puppi::params::projectsdir}/${name}/config":
+ ensure => $ensurefile,
+ content => template('puppi/project/config.erb'),
+ mode => '0644',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ require => File["${puppi::params::projectsdir}/${name}"];
+ }
+
+}