summaryrefslogtreecommitdiff
path: root/puppet/lib/puppet/parser/functions/create_resources_hash_from.rb
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/lib/puppet/parser/functions/create_resources_hash_from.rb')
-rw-r--r--puppet/lib/puppet/parser/functions/create_resources_hash_from.rb116
1 files changed, 0 insertions, 116 deletions
diff --git a/puppet/lib/puppet/parser/functions/create_resources_hash_from.rb b/puppet/lib/puppet/parser/functions/create_resources_hash_from.rb
deleted file mode 100644
index 47d0df9c..00000000
--- a/puppet/lib/puppet/parser/functions/create_resources_hash_from.rb
+++ /dev/null
@@ -1,116 +0,0 @@
-#
-# create_resources_hash_from.rb
-#
-# 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.
-#
-
-module Puppet::Parser::Functions
- newfunction(:create_resources_hash_from, :type => :rvalue, :doc => <<-EOS
-Given:
- A formatted string (to use as the resource name)
- An array to loop through (because puppet cannot loop)
- A hash defining the parameters for a resource
- And optionally an hash of parameter names to add to the resource and an
- associated formatted string that should be configured with the current
- element of the loop array
-
-This function will return a hash of hashes that can be used with the
-create_resources function.
-
-*Examples:*
- $allowed_hosts = ['10.0.0.0/8', '192.168.0.0/24']
- $resource_name = "100 allow %s to apache on ports 80"
- $my_resource_hash = {
- 'proto' => 'tcp',
- 'action' => 'accept',
- 'dport' => 80
- }
- $dynamic_parameters = {
- 'source' => '%s'
- }
-
- $created_resource_hash = create_resources_hash_from($resource_name, $allowed_hosts, $my_resource_hash, $dynamic_parameters)
-
-$created_resource_hash would equal:
- {
- '100 allow 10.0.0.0/8 to apache on ports 80' => {
- 'proto' => 'tcp',
- 'action' => 'accept',
- 'dport' => 80,
- 'source' => '10.0.0.0/8'
- },
- '100 allow 192.168.0.0/24 to apache on ports 80' => {
- 'proto' => 'tcp',
- 'action' => 'accept',
- 'dport' => 80,
- 'source' => '192.168.0.0/24'
- }
- }
-
-$created_resource_hash could then be used with create_resources
-
- create_resources(firewall, $created_resource_hash)
-
-To create a bunch of resources in a way that would only otherwise be possible
-with a loop of some description.
- EOS
- ) do |arguments|
-
- raise Puppet::ParseError, "create_resources_hash_from(): Wrong number of arguments " +
- "given (#{arguments.size} for 3 or 4)" if arguments.size < 3 or arguments.size > 4
-
- formatted_string = arguments[0]
-
- unless formatted_string.is_a?(String)
- raise(Puppet::ParseError, 'create_resources_hash_from(): first argument must be a string')
- end
-
- loop_array = arguments[1]
-
- unless loop_array.is_a?(Array)
- raise(Puppet::ParseError, 'create_resources_hash_from(): second argument must be an array')
- end
-
- resource_hash = arguments[2]
- unless resource_hash.is_a?(Hash)
- raise(Puppet::ParseError, 'create_resources_hash_from(): third argument must be a hash')
- end
-
- if arguments.size == 4
- dynamic_parameters = arguments[3]
- unless dynamic_parameters.is_a?(Hash)
- raise(Puppet::ParseError, 'create_resources_hash_from(): fourth argument must be a hash')
- end
- end
-
- result = {}
-
- loop_array.each do |i|
- my_resource_hash = resource_hash.clone
- if dynamic_parameters
- dynamic_parameters.each do |param, value|
- if my_resource_hash.member?(param)
- raise(Puppet::ParseError, "create_resources_hash_from(): dynamic_parameter '#{param}' already exists in resource hash")
- end
- my_resource_hash[param] = sprintf(value,[i])
- end
- end
- result[sprintf(formatted_string,[i])] = my_resource_hash
- end
-
- result
- end
-end
-
-# vim: set ts=2 sw=2 et :
-# encoding: utf-8