Parent

Class/Module Index [+]

Quicksearch

PhusionPassenger::AdminTools::InstanceRegistry

Public Class Methods

new(paths = nil) click to toggle source
# File lib/phusion_passenger/admin_tools/instance_registry.rb, line 31
def initialize(paths = nil)
  @paths = [paths || default_paths].flatten
end

Public Instance Methods

find_by_name(name, options = {}) click to toggle source
# File lib/phusion_passenger/admin_tools/instance_registry.rb, line 69
def find_by_name(name, options = {})
  return list(options).find { |instance| instance.name == name }
end
find_by_name_prefix(name, options = {}) click to toggle source
# File lib/phusion_passenger/admin_tools/instance_registry.rb, line 73
def find_by_name_prefix(name, options = {})
  prefix = /^#{Regexp.escape name}/
  results = list(options).find_all { |instance| instance.name =~ prefix }
  if results.size <= 1
    return results.first
  else
    return :ambiguous
  end
end
list(options = {}) click to toggle source
# File lib/phusion_passenger/admin_tools/instance_registry.rb, line 35
def list(options = {})
  options = {
    :clean_stale_or_corrupted => true
  }.merge(options)

  instances = []

  @paths.each do |path|
    Dir["#{path}/passenger.*"].each do |dir|
      instance = Instance.new(dir)
      case instance.state
      when :good
        if instance.locked?
          instances << instance
        elsif options[:clean_stale_or_corrupted]
          cleanup(dir)
        end
      when :structure_version_unsupported
        next
      when :corrupted
        if !instance.locked? && options[:clean_stale_or_corrupted]
          cleanup(dir)
        end
      when :not_finalized
        if instance.stale? && options[:clean_stale_or_corrupted]
          cleanup(dir)
        end
      end
    end
  end

  instances
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.