X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/2ec62d46e6d050fe6384df90a2869036662d1b51..faf8ae12e85eabb050b0f5eceb2cb67ad1de5261:/cookbooks/postgresql/providers/execute.rb diff --git a/cookbooks/postgresql/providers/execute.rb b/cookbooks/postgresql/providers/execute.rb new file mode 100644 index 000000000..2b7bd5ff9 --- /dev/null +++ b/cookbooks/postgresql/providers/execute.rb @@ -0,0 +1,42 @@ +# +# Cookbook Name:: postgresql +# Provider:: postgresql_execute +# +# 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. +# + +def load_current_resource + @pg = Chef::PostgreSQL.new(new_resource.cluster) + + @current_resource = Chef::Resource::PostgresqlExecute.new(new_resource.name) + @current_resource.cluster(new_resource.cluster) + @current_resource.database(new_resource.database) + @current_resource +end + +action :nothing do +end + +action :run do + options = { :database => new_resource.database, :user => new_resource.user, :group => new_resource.group } + + if ::File.exist?(new_resource.command) + @pg.execute(options.merge(:file => new_resource.command)) + else + @pg.execute(options.merge(:command => new_resource.command)) + end + + new_resource.updated_by_last_action(true) +end