diff -r a2342f26c9de -r b0b56e0f8c7f dev/provisioning/modules/puppi/manifests/todo.pp --- /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', + } + +}