class Chef::Provider::Deploy::Revision

Public Instance Methods

action_deploy() click to toggle source
Calls superclass method Chef::Provider::Deploy#action_deploy
# File lib/chef/provider/deploy/revision.rb, line 35
def action_deploy
  validate_release_history!
  super
end
all_releases() click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 31
def all_releases
  sorted_releases
end
cleanup!() click to toggle source
Calls superclass method Chef::Provider::Deploy#cleanup!
# File lib/chef/provider/deploy/revision.rb, line 40
def cleanup!
  super

  known_releases = sorted_releases

  Dir["#{new_resource.deploy_to}/releases/*"].each do |release_dir|
    unless known_releases.include?(release_dir)
      converge_by("Remove unknown release in #{release_dir}") do
        FileUtils.rm_rf(release_dir)
      end
    end
  end
end

Protected Instance Methods

release_created(release) click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 56
def release_created(release)
  sorted_releases {|r| r.delete(release); r << release }
end
release_deleted(release) click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 60
def release_deleted(release)
  sorted_releases { |r| r.delete(release)}
end
release_slug() click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 64
def release_slug
  scm_provider.revision_slug
end

Private Instance Methods

load_cache() click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 91
def load_cache
  begin
    Chef::JSONCompat.from_json(Chef::FileCache.load("revision-deploys/#{new_resource.name}"))
  rescue Chef::Exceptions::FileNotFound
    sorted_releases_from_filesystem
  end
end
save_cache(cache) click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 99
def save_cache(cache)
  Chef::FileCache.store("revision-deploys/#{new_resource.name}", cache.to_json)
  cache
end
sorted_releases() { |cache| ... } click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 70
def sorted_releases
  cache = load_cache
  if block_given?
    yield cache
    save_cache(cache)
  end
  cache
end
sorted_releases_from_filesystem() click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 87
def sorted_releases_from_filesystem
  Dir.glob(new_resource.deploy_to + "/releases/*").sort_by { |d| ::File.ctime(d) }
end
validate_release_history!() click to toggle source
# File lib/chef/provider/deploy/revision.rb, line 79
def validate_release_history!
  sorted_releases do |release_list|
    release_list.each do |path|
      release_list.delete(path) unless ::File.exist?(path)
    end
  end
end