Module: CloudstackClient::LoadBalancerRule

Defined in:
lib/cloudstack_client/commands/load_balancer_rule.rb

Instance Method Summary collapse

Instance Method Details

#assign_to_load_balancer_rule(name, vm_names) ⇒ Object

Assigns virtual machine or a list of virtual machines to a load balancer rule.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cloudstack_client/commands/load_balancer_rule.rb', line 44

def assign_to_load_balancer_rule(name, vm_names)
  id = list_load_balancer_rules(name).first['id']

  vm_ids = vm_names.map do |vm|
    get_server(vm)['id']
  end

  params = {
      'command' => 'assignToLoadBalancerRule',
      'id' => id,
      'virtualmachineids' => vm_ids.join(',')
  }
  json = send_async_request(params)
end

#create_load_balancer_rule(name, publicip, private_port, public_port, options = {}) ⇒ Object

Creates a load balancing rule.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cloudstack_client/commands/load_balancer_rule.rb', line 26

def create_load_balancer_rule(name, publicip, private_port, public_port, options = {})
  params = {
      'command' => 'createLoadBalancerRule',
      'name' => name,
      'privateport' => private_port,
      'publicport' => public_port,
      'publicipid' => get_public_ip_address(publicip)['id']
  }
  params['algorithm'] = options[:algorithm] || 'roundrobin'
  params['openfirewall'] = options[:openfirewall] || true

  json = send_async_request(params)
  json['LoadBalancerRule']
end

#list_load_balancer_rules(options = {}) ⇒ Object

List loadbalancer rules



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/cloudstack_client/commands/load_balancer_rule.rb', line 8

def list_load_balancer_rules(options = {})    
  params = {
    'command' => 'listLoadBalancerRules',
  }
  params['name'] = options[:name] if options[:name]

  if options[:project_name]
    project = get_project(options[:project_name])
    params['projectid'] = project['id']
  end

  json = send_request(params)
  json['loadbalancerrule'] || []
end