From: Tom Hughes Date: Sat, 14 Feb 2015 12:16:39 +0000 (+0000) Subject: Convert squid_fragment to an LWRP X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/26a141f3581baada51b09427d0a9b4576c12b16f Convert squid_fragment to an LWRP --- diff --git a/cookbooks/squid/definitions/squid_fragment.rb b/cookbooks/squid/definitions/squid_fragment.rb deleted file mode 100644 index 32426df18..000000000 --- a/cookbooks/squid/definitions/squid_fragment.rb +++ /dev/null @@ -1,39 +0,0 @@ -# -# Cookbook Name:: squid -# Definition:: squid_fragment -# -# Copyright 2011, OpenStreetMap Foundation -# -# 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. -# - -define :squid_fragment, :action => [:create], :variables => {} do - name = params[:name] - site_action = params[:action] - - if site_action.include?(:create) - template "/etc/squid/squid.conf.d/#{name}.conf" do - source params[:template] - owner "root" - group "root" - mode 0644 - variables params[:variables] - notifies :create, "template[/etc/squid/squid.conf]" - end - elsif site_action.include?(:delete) - template "/etc/squid/squid.conf.d/#{name}.conf" do - action :delete - notifies :create, "template[/etc/squid/squid.conf]" - end - end -end diff --git a/cookbooks/squid/providers/fragment.rb b/cookbooks/squid/providers/fragment.rb new file mode 100644 index 000000000..022dd120b --- /dev/null +++ b/cookbooks/squid/providers/fragment.rb @@ -0,0 +1,44 @@ +# +# Cookbook Name:: squid +# Provider:: squid_fragment +# +# Copyright 2015, OpenStreetMap Foundation +# +# 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. +# + +def whyrun_supported? + true +end + +use_inline_resources + +action :create do + template fragment_path do + source new_resource.template + owner "root" + group "root" + mode 0644 + variables new_resource.variables + end +end + +action :delete do + file fragment_path do + action :delete + end +end + +def fragment_path + "/etc/squid/squid.conf.d/#{new_resource.name}.conf" +end diff --git a/cookbooks/squid/resources/fragment.rb b/cookbooks/squid/resources/fragment.rb new file mode 100644 index 000000000..60e2a8282 --- /dev/null +++ b/cookbooks/squid/resources/fragment.rb @@ -0,0 +1,30 @@ +# +# Cookbook Name:: squid +# Resource:: squid_fragment +# +# Copyright 2015, OpenStreetMap Foundation +# +# 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. +# + +actions :create, :delete +default_action :create + +attribute :name, :kind_of => String, :name_attribute => true +attribute :directory, :kind_of => String +attribute :template, :kind_of => String, :required => true +attribute :variables, :kind_of => Hash, :default => {} + +def after_created + notifies :create, "template[/etc/squid/squid.conf]" +end