From: Tom Hughes Date: Tue, 10 Feb 2015 23:00:29 +0000 (+0000) Subject: Convert ohai_plugin to an LWRP X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/c1f1e240baece8f3a3ee1d7139736e4a6a0f027e Convert ohai_plugin to an LWRP --- diff --git a/cookbooks/chef/.foodcritic b/cookbooks/chef/.foodcritic index e9a7c9233..3907cff00 100644 --- a/cookbooks/chef/.foodcritic +++ b/cookbooks/chef/.foodcritic @@ -1,2 +1 @@ ~FC001 -~FC015 diff --git a/cookbooks/chef/definitions/ohai_plugin.rb b/cookbooks/chef/definitions/ohai_plugin.rb deleted file mode 100644 index be7c18e34..000000000 --- a/cookbooks/chef/definitions/ohai_plugin.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# Cookbook Name:: chef -# Definition:: ohai_plugin -# -# Copyright 2012, 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 :ohai_plugin, :action => [:create, :delete] do - plugin_name = params[:name] - plugin_action = params[:action] - - if plugin_action.include?(:create) - ohai plugin_name do - action :nothing - end - - template "/etc/chef/ohai/#{plugin_name}.rb" do - source params[:template] - owner "root" - group "root" - mode 0644 - notifies :reload, "ohai[#{plugin_name}]" - end - elsif plugin_action.include?(:delete) - template "/etc/chef/ohai/#{plugin_name}.rb" do - action :delete - end - end -end diff --git a/cookbooks/chef/metadata.rb b/cookbooks/chef/metadata.rb index 4baffbf3c..83bb6013c 100644 --- a/cookbooks/chef/metadata.rb +++ b/cookbooks/chef/metadata.rb @@ -8,3 +8,4 @@ version "1.0.0" depends "apache" depends "apt" depends "git" +depends "ohai" diff --git a/cookbooks/chef/recipes/default.rb b/cookbooks/chef/recipes/default.rb index b8e81a3ed..a5c104215 100644 --- a/cookbooks/chef/recipes/default.rb +++ b/cookbooks/chef/recipes/default.rb @@ -109,7 +109,7 @@ template "/etc/chef/trusted_certs/verisign.pem" do mode 0644 end -directory "/etc/chef/ohai" do +directory node[:ohai][:plugin_dir] do owner "root" group "root" mode 0755 diff --git a/cookbooks/chef/templates/default/client.rb.erb b/cookbooks/chef/templates/default/client.rb.erb index 6c9113968..c276ed6c0 100644 --- a/cookbooks/chef/templates/default/client.rb.erb +++ b/cookbooks/chef/templates/default/client.rb.erb @@ -40,4 +40,4 @@ report_handlers << email_handler # Make our plugins visible to ohai -Ohai::Config[:plugin_path] << "/etc/chef/ohai" +Ohai::Config[:plugin_path] << "<%= node[:ohai][:plugin_dir] %>" diff --git a/cookbooks/ohai/README.md b/cookbooks/ohai/README.md new file mode 100644 index 000000000..205739199 --- /dev/null +++ b/cookbooks/ohai/README.md @@ -0,0 +1,34 @@ +Cookbook +======== +TODO: Enter the cookbook description here. + +e.g. +This cookbook makes your favorite breakfast sandwich. + +Requirements +------------ +TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. + +Attributes +---------- +TODO: List you cookbook attributes here. + +Usage +----- +TODO: Write usage instructions for each cookbook. + +Contributing +------------ +TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. + +e.g. +1. Fork the repository on Github +2. Create a named feature branch (like `add_component_x`) +3. Write your change +4. Write tests for your change (if applicable) +5. Run the tests, ensuring they all pass +6. Submit a Pull Request using Github + +License and Authors +------------------- +Authors: TODO: List authors diff --git a/cookbooks/ohai/attributes/default.rb b/cookbooks/ohai/attributes/default.rb new file mode 100644 index 000000000..851221282 --- /dev/null +++ b/cookbooks/ohai/attributes/default.rb @@ -0,0 +1,2 @@ +# Plugin directory +default[:ohai][:plugin_dir] = "/etc/chef/ohai" diff --git a/cookbooks/ohai/metadata.rb b/cookbooks/ohai/metadata.rb new file mode 100644 index 000000000..9706391fe --- /dev/null +++ b/cookbooks/ohai/metadata.rb @@ -0,0 +1,7 @@ +name "ohai" +maintainer "OpenStreetMap Administrators" +maintainer_email "admins@openstreetmap.org" +license "Apache 2.0" +description "Configures ohai" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "1.0.0" diff --git a/cookbooks/ohai/providers/plugin.rb b/cookbooks/ohai/providers/plugin.rb new file mode 100644 index 000000000..14d1070f5 --- /dev/null +++ b/cookbooks/ohai/providers/plugin.rb @@ -0,0 +1,48 @@ +# +# Cookbook Name:: ohai +# Provider:: ohai_plugin +# +# 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 + ohai new_resource.name do + action :nothing + end + + template plugin_path do + source new_resource.template + owner "root" + group "root" + mode 0644 + notifies :reload, "ohai[#{new_resource.name}]" + end +end + +action :delete do + template plugin_path do + action :delete + end +end + +def plugin_path + "/etc/chef/ohai/#{new_resource.name}.rb" +end diff --git a/cookbooks/ohai/resources/plugin.rb b/cookbooks/ohai/resources/plugin.rb new file mode 100644 index 000000000..4dcfaf68d --- /dev/null +++ b/cookbooks/ohai/resources/plugin.rb @@ -0,0 +1,24 @@ +# +# Cookbook Name:: ohai +# Resource:: ohai_plugin +# +# 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 :template, :kind_of => String, :required => true diff --git a/cookbooks/postgresql/metadata.rb b/cookbooks/postgresql/metadata.rb index feea0132c..87074a93b 100644 --- a/cookbooks/postgresql/metadata.rb +++ b/cookbooks/postgresql/metadata.rb @@ -5,7 +5,7 @@ license "Apache 2.0" description "Installs and configures postgresql" long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) version "1.0.0" -depends "chef" +depends "ohai" attribute "postgresql", :display_name => "PostgreSQL",