From e260543f903eea0d14c2b7ddd5e1480d9042759d Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Fri, 3 Jul 2015 17:01:07 -0400 Subject: Add class to set noop on various puppet resources This patch adds a new tripleo::noop class that can be used to help switch all resources of a given type to noop mode. The class does this via Puppet resource collectors to enable the noop metaparam on all resources of the specified type. When a resource is in noop mode no action will get taken (however puppet stdout will log information about what would happen if noop were removed). The motivation for this patch is to be able to do something like this and run puppet to configure select resources (like only config files): class {'tripleo::noop': file => false } It is important to note that when tripleo::noop is used all common resources default to noop mode. This could be used alongside docker containers to provide a mechanism to pre-configure all related config files for a set of docker containers ahead of time. Change-Id: I67f9dbbf33a2d6bcee5005ae0b6b1aa7091039ad --- manifests/noop.pp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 manifests/noop.pp diff --git a/manifests/noop.pp b/manifests/noop.pp new file mode 100644 index 0000000..53da9b9 --- /dev/null +++ b/manifests/noop.pp @@ -0,0 +1,68 @@ +# Copyright 2015 Red Hat, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# == Class: tripleo::noop +# +# Enable noop mode for various Puppet resource types via collectors. +# +# === Parameters: +# [*package*] +# Whether Package resources should be noop. +# Defaults to true +# +# [*file*] +# Whether File resources should be noop. +# Defaults to true +# +# [*service*] +# Whether Service resources should be noop. +# Defaults to true +# +# [*exec*] +# Whether Exec resources should be noop. +# Defaults to true +# +# [*user*] +# Whether User resources should be noop. +# Defaults to true +# +# [*group*] +# Whether Group resources should be noop. +# Defaults to true +# +# [*cron*] +# Whether Cron resources should be noop. +# Defaults to true +# +# +class tripleo::noop ( + $package = true, + $file = true, + $service = true, + $exec = true, + $user = true, + $group = true, + $cron = true, +) { + + Package <| |> { noop => $package} + File <| |> { noop => $file} + Service <| |> { noop => $service} + Exec <| |> { noop => $exec} + User <| |> { noop => $user} + Group <| |> { noop => $group} + Cron <| |> { noop => $cron} + +} -- cgit 1.2.3-korg