class Capistrano::Container::Manager

Public Class Methods

new() click to toggle source
# File lib/capistrano/container/manager.rb, line 8
def initialize()
  @container = {}
end

Public Instance Methods

add(name, config) click to toggle source
# File lib/capistrano/container/manager.rb, line 12
def add(name, config)
  @container[name.to_sym] = container = Instance.new(name, config)

  config[:server].map!{ |ip| server(ip) }

  config[:server].each do |server|
    server.add_roles [:container_host, container.container_role]
  end

  self.create_container_tasks(container)

  container
end
by_id(id) click to toggle source
# File lib/capistrano/container/manager.rb, line 30
def by_id(id)
  @container.each do |name, instance|
    return instance if instance.container_id == id
  end
end
by_name(name) click to toggle source
# File lib/capistrano/container/manager.rb, line 26
def by_name(name)
  @container[name.to_sym]
end
by_roles(roles) click to toggle source
# File lib/capistrano/container/manager.rb, line 36
def by_roles(roles)
  roles = Array(roles)

  return @container.values if roles.include? :all

  tmp = {}
  roles.each do |role|
    @container.each do |name, instance|
      tmp[name] = instance if instance.has_role? role
    end
  end
  tmp.values
end
create_container_tasks(container) click to toggle source
# File lib/capistrano/container/manager.rb, line 50
def create_container_tasks(container)
  namespace :container do
    namespace container.name do
      Mixins.define_tasks(container)
    end
  end
end