aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-07-03 17:01:07 -0400
committerDan Prince <dprince@redhat.com>2015-07-03 17:16:07 -0400
commite260543f903eea0d14c2b7ddd5e1480d9042759d (patch)
tree81d5ff0f474e57b695f159b15a14361158ca266c
parentd8b609878f3fe90a417faae251925cf5a8e54a23 (diff)
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
-rw-r--r--manifests/noop.pp68
1 files changed, 68 insertions, 0 deletions
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}
+
+}