Class: Pot::Deployment

Inherits:
Object
  • Object
show all
Defined in:
lib/pot/deployment.rb

Defined Under Namespace

Classes: UndefinedInstance, UndefinedPolicy

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Deployment

Returns a new instance of Deployment.



16
17
18
# File 'lib/pot/deployment.rb', line 16

def initialize(options = {})
  @options = options
end

Instance Method Details

#deploy_packages_to_instances(package_names, instance_names) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/pot/deployment.rb', line 33

def deploy_packages_to_instances(package_names, instance_names)
  package_tree = Pot::Bundle.new(package_names)
  instances = find_instances(instance_names)
  deploy_to_instances(instances) do |actor|
    package_tree.list.each do |package|
      package.process(actor)
    end
  end
end

#deploy_policies_to_instances(police_names, instance_names) ⇒ Object



27
28
29
30
31
# File 'lib/pot/deployment.rb', line 27

def deploy_policies_to_instances(police_names, instance_names)
  policies = find_policies(police_names)
  instances = find_instances(instance_names)
  deploy_policies_to_instances_internal(policies, instances)
end

#deploy_roles(roles) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/pot/deployment.rb', line 43

def deploy_roles(roles)
  roles = roles.map(&:to_sym)
  instances = []
  Pot::Role::REGISTER.each do |role_name, instance|
    instances << instance if roles.include?(role_name)
  end
  policies = []
  Pot::Policy::REGISTER.each do |policy_name, policy|
    policy_roles = [policy.roles].flatten
    policies << policy unless (policy_roles & roles).empty?
  end
  deploy_policies_to_instances_internal(policies, instances)
end

#execute_on_instances(commands, instance_name) ⇒ Object



20
21
22
23
24
25
# File 'lib/pot/deployment.rb', line 20

def execute_on_instances(commands, instance_name)
  instances = find_instances(instance_names)
  deploy_to_instances(instances) do |actor|
    actor.execute(commands)
  end
end