Sha256: ac7932a38b0f37929e4b3bd9e2ffad37d99ac3b44b477831b6480ed1046a1389

Contents?: true

Size: 1.52 KB

Versions: 60

Compression:

Stored size: 1.52 KB

Contents

module CloudstackClient

	module LoadBalancerRule

		##
    # List loadbalancer rules

    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

    ##
    # Creates a load balancing rule.

    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

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

    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

	end

end

Version data entries

60 entries across 60 versions & 3 rubygems

Version Path
cloudstack_client-0.9.7 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.6 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.5 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.3 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.2 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.1 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.9.0 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.8.0 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.7.1 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.7.0 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.6.4 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.6.3 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.6.2 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.6.0 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.6.1 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.5.0 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.4.4 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.4.3 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.4.2 lib/cloudstack_client/commands/load_balancer_rule.rb
cloudstack_client-0.4.1 lib/cloudstack_client/commands/load_balancer_rule.rb