diff options
author | Ezra Zygmuntowicz <ez@engineyard.com> | 2008-10-08 14:19:52 -0700 |
---|---|---|
committer | Ezra Zygmuntowicz <ez@engineyard.com> | 2008-10-08 14:19:52 -0700 |
commit | c5d33c1298834ce40b8fbf344f281045771b5371 (patch) | |
tree | 1f0d4c7eab1eb379b544282a7ce48052acf719a5 /lib/chef/provider/remote_file.rb | |
parent | 3d14601aea23dee3899d097324875274da419d84 (diff) | |
download | chef-c5d33c1298834ce40b8fbf344f281045771b5371.tar.gz |
big refactor of the repo layout. move to a chef gem and a chef-server gem all with proper deps
Diffstat (limited to 'lib/chef/provider/remote_file.rb')
-rw-r--r-- | lib/chef/provider/remote_file.rb | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/lib/chef/provider/remote_file.rb b/lib/chef/provider/remote_file.rb deleted file mode 100644 index cc0812346e..0000000000 --- a/lib/chef/provider/remote_file.rb +++ /dev/null @@ -1,80 +0,0 @@ -# -# Author:: Adam Jacob (<adam@hjksolutions.com>) -# Copyright:: Copyright (c) 2008 HJK Solutions, LLC -# License:: Apache License, Version 2.0 -# -# 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 File.join(File.dirname(__FILE__), "file") -require 'uri' -require 'tempfile' -require 'net/https' - -class Chef - class Provider - class RemoteFile < Chef::Provider::File - - def action_create - Chef::Log.debug("Checking #{@new_resource} for changes") - do_remote_file(@new_resource.source, @current_resource.path) - end - - def do_remote_file(source, path) - r = Chef::REST.new(Chef::Config[:remotefile_url]) - - current_checksum = nil - current_checksum = self.checksum(path) if ::File.exists?(path) - - url = generate_url( - source, - "files", - { - :checksum => current_checksum - } - ) - - raw_file = nil - begin - raw_file = r.get_rest(url, true) - rescue Net::HTTPRetriableError => e - if e.response.kind_of?(Net::HTTPNotModified) - Chef::Log.debug("File #{path} is unchanged") - return false - else - raise e - end - end - - raw_file_checksum = self.checksum(raw_file.path) - - if ::File.exists?(path) - Chef::Log.debug("#{path} changed from #{current_checksum} to #{raw_file_checksum}") - Chef::Log.info("Updating file for #{@new_resource} at #{path}") - else - Chef::Log.info("Creating file for #{@new_resource} at #{path}") - end - - backup(path) - FileUtils.cp(raw_file.path, path) - @new_resource.updated = true - - set_owner if @new_resource.owner != nil - set_group if @new_resource.group != nil - set_mode if @new_resource.mode != nil - return true - end - - end - end -end
\ No newline at end of file |