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