lib/cap-rightscale/configuration/rightscale/cache.rb in cap-rightscale-0.4.6 vs lib/cap-rightscale/configuration/rightscale/cache.rb in cap-rightscale-0.5.0

- old
+ new

@@ -3,42 +3,40 @@ module Capistrano module RightScale class Cache include Singleton - attr_accessor :lifetime + attr_accessor :lifetime, :logger attr_reader :array, :array_instances, :deployment + def initialize - @lifetime = 86400 + @lifetime = Capistrano::RightScale::RS_DEFAULT_LIFETIME end def load_server_cache(role, prefix=nil) server_cache = self.instance_variable_get("@#{role}_cache") begin cache_files = Dir.glob("#{Dir.tmpdir}/cap-rightscale-#{ENV['USER']}-*/#{prefix}*#{role}.cache") if cache_files.size > 0 && !server_cache - c = Marshal.load(open(cache_files.first) {|f| f.read}) + c = Marshal.load(open(cache_files.first) {|f| f.read }) self.instance_variable_set("@#{role}_cache", c) end server_cache = self.instance_variable_get("@#{role}_cache") return [] unless server_cache # No cache entry # get servers - if Time.now - server_cache[role][:cache] > lifetime - server_list = [] - elsif server_cache[role][:servers] - server_list = server_cache[role][:servers] - else - server_list = [] + servers = server_cache[role][:servers].size > 0 ? server_cache[role][:servers] : [] + if lifetime > 0 && Time.now - server_cache[role][:cache] > lifetime + servers = [] end rescue => e return [] unless server_cache end - server_list + servers end def dump_server_cache(role, servers, prefix=nil) h = {role => {:servers => servers, :cache => Time.now}} obj_dump = Marshal.dump(h) @@ -53,12 +51,17 @@ cache_file = File.join(cache_dir, "#{prefix}-#{role}.cache") begin open(cache_file, "w") {|f| f.write(obj_dump)} rescue => e - STDERR.puts("#{e.class}: #{e.pretty_inspect}") - warn("Backtrace:\n#{e.backtrace.pretty_inspect}") + @logger.important("#{e.class}: #{e.pretty_inspect}") + @logger.trace("Backtrace:\n#{e.backtrace.pretty_inspect}") end + end + + private + def logger + @logger ||= Capistrano::Logger.new end end end end