aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/provider/package/norpm.rb36
-rw-r--r--manifests/package_provider.pp39
2 files changed, 75 insertions, 0 deletions
diff --git a/lib/puppet/provider/package/norpm.rb b/lib/puppet/provider/package/norpm.rb
new file mode 100644
index 0000000..1616e57
--- /dev/null
+++ b/lib/puppet/provider/package/norpm.rb
@@ -0,0 +1,36 @@
+# 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.
+require 'puppet/provider/package'
+
+Puppet::Type.type(:package).provide :norpm, :source => :rpm, :parent => :rpm do
+ desc "RPM packaging provider that does not install anything."
+
+ def latest
+ @resource.fail "'latest' is unsupported by this provider."
+ end
+
+ def install
+ true
+ end
+
+ def uninstall
+ true
+ end
+
+ def update
+ true
+ end
+
+end
diff --git a/manifests/package_provider.pp b/manifests/package_provider.pp
new file mode 100644
index 0000000..173ae61
--- /dev/null
+++ b/manifests/package_provider.pp
@@ -0,0 +1,39 @@
+# 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::packages
+#
+# A class that effectively disables distro package installation.
+#
+# === Parameters:
+#
+# [*disable_package_install*]
+# Defaults to false. Set to true to disable package installation.
+class tripleo::package_provider (
+ $disable_package_install = false,
+) {
+
+ if $disable_package_install {
+ case $::osfamily {
+ 'RedHat': {
+ Package { provider => 'norpm' }
+ }
+ default: {
+ warning('tripleo::packages does not support this distribution.')
+ }
+ }
+ }
+
+}