Class: Capistrano::RightScale::Cache
- Inherits:
-
Object
- Object
- Capistrano::RightScale::Cache
- Includes:
- Singleton
- Defined in:
- lib/cap-rightscale/configuration/rightscale/cache.rb
Instance Attribute Summary collapse
-
#array ⇒ Object
readonly
Returns the value of attribute array.
-
#array_instances ⇒ Object
readonly
Returns the value of attribute array_instances.
-
#deployment ⇒ Object
readonly
Returns the value of attribute deployment.
-
#lifetime ⇒ Object
Returns the value of attribute lifetime.
-
#logger ⇒ Object
writeonly
Sets the attribute logger.
Instance Method Summary collapse
- #dump_server_cache(role, servers, prefix = nil) ⇒ Object
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
- #load_server_cache(role, prefix = nil) ⇒ Object
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
11 12 13 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 11 def initialize @lifetime = Capistrano::RightScale::RS_DEFAULT_LIFETIME end |
Instance Attribute Details
#array ⇒ Object (readonly)
Returns the value of attribute array.
9 10 11 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 9 def array @array end |
#array_instances ⇒ Object (readonly)
Returns the value of attribute array_instances.
9 10 11 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 9 def array_instances @array_instances end |
#deployment ⇒ Object (readonly)
Returns the value of attribute deployment.
9 10 11 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 9 def deployment @deployment end |
#lifetime ⇒ Object
Returns the value of attribute lifetime.
8 9 10 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 8 def lifetime @lifetime end |
#logger=(value) ⇒ Object
Sets the attribute logger
8 9 10 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 8 def logger=(value) @logger = value end |
Instance Method Details
#dump_server_cache(role, servers, prefix = nil) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 40 def dump_server_cache(role, servers, prefix=nil) h = {role => {:servers => servers, :cache => Time.now}} obj_dump = Marshal.dump(h) # Get cache directory cache_dir = Dir.glob("#{Dir.tmpdir}/cap-rightscale-#{ENV['USER']}-*").first if cache_dir.nil? RSUtils.mk_rs_cache_dir cache_dir = Dir.glob("#{Dir.tmpdir}/cap-rightscale-#{ENV['USER']}-*").first exit if cache_dir.nil? end cache_file = File.join(cache_dir, "#{prefix}-#{role}.cache") begin open(cache_file, "w") {|f| f.write(obj_dump)} rescue => e @logger.important("#{e.class}: #{e.pretty_inspect}") @logger.trace("Backtrace:\n#{e.backtrace.pretty_inspect}") end end |
#load_server_cache(role, prefix = nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/cap-rightscale/configuration/rightscale/cache.rb', line 15 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 }) 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 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 servers end |