Class: Manager

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/capistrano/container/manager.rb

Instance Method Summary collapse

Constructor Details

#initializeManager

Returns a new instance of Manager.



6
7
8
# File 'lib/capistrano/container/manager.rb', line 6

def initialize()
  @container = {}
end

Instance Method Details

#add(name, config) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/capistrano/container/manager.rb', line 10

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) ⇒ Object



28
29
30
31
32
# File 'lib/capistrano/container/manager.rb', line 28

def by_id(id)
  @container.each do |name, instance|
    return instance if instance.container_id == id
  end
end

#by_name(name) ⇒ Object



24
25
26
# File 'lib/capistrano/container/manager.rb', line 24

def by_name(name)
  @container[name.to_sym]
end

#by_roles(roles) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/capistrano/container/manager.rb', line 34

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) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/capistrano/container/manager.rb', line 48

def create_container_tasks(container)
  namespace :container do
    namespace container.name do
      Mixins.define_tasks(container)
    end
  end
end