dev/provisioning/modules/puppi/manifests/project.pp
changeset 28 b0b56e0f8c7f
--- /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}"];
+  }
+
+}