--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/puppi/manifests/todo.pp Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,57 @@
+# Define puppi::todo
+#
+# This define creates a basic todo file that simply contains informations
+# on how to complete tasks that for time or other reasons could not be
+# entirely automated by Puppet.
+# The basic idea is to have a quick way to document and check if are completed
+# some specific operations that are required to bring a new, puppettized system
+# to full operative status.
+# This can be useful for cases hard to automate with Puppet:
+# - First setup and import of a database needed by an application (module)
+# - Installation of a legacy application that involves user interaction
+# - Run of any kind of setup/configuration/init command that can't be automated
+# It can also be used as a quick reminder on things done by hand and not
+# Puppettized for lack of time or skill.
+#
+# Use the command puppi todo to show the todo present in your node.
+# The exit status can be:
+# 0 - OK - The task to do has been accomplished because the command specified
+# as check_command returns true (exit status 0)
+# 1- WARNING - User hasn't specified a check_command to verify if the todo as
+# been accomplished, so it can't be notified if the todo has been done
+# 2- ERROR - The task to do has not been accomplished becuase the command
+# specified as check_command returns an error (exit status different from 0)
+#
+# == Usage:
+# puppi::todo { "cacti_db_install":
+# description => "Manual cacti db installation" ,
+# }
+#
+define puppi::todo (
+ $description = '',
+ $notes = '',
+ $check_command = '',
+ $run = '' ) {
+
+ require puppi
+ require puppi::params
+
+ $array_run = is_array($run) ? {
+ false => $run ? {
+ '' => [],
+ default => split($run, ','),
+ },
+ default => $run,
+ }
+
+ file { "${puppi::params::tododir}/${name}":
+ ensure => present,
+ mode => '0750',
+ owner => $puppi::params::configfile_owner,
+ group => $puppi::params::configfile_group,
+ require => Class['puppi'],
+ content => template('puppi/todo.erb'),
+ tag => 'puppi_todo',
+ }
+
+}