class ProfitBricks::Loadbalancer

Loadbalancer class

Public Class Methods

create(datacenter_id, options = {}) click to toggle source

Create a new loadbalancer.

Parameters

  • options<Hash>:

    • name<String> - Optional, name of the loadbalancer

    • ip<String> - Optional, IPv4 address of the loadbalancer

    • dhcp<Boolean> - Optional, Indicates if the loadbalancer will reserve an IP using DHCP

Returns

  • id<String> - Universally unique identifer of resource

  • type<String> - Resource type

  • href<String> - Resource URL representation

  • metadata<Hash>:

    • lastModifiedDate

    • lastModifiedBy

    • createdDate

    • createdBy

    • state

    • etag

  • properties<Hash>:

    • name<String>

    • ip<String>

    • dhcp<Boolean>

# File lib/profitbricks/loadbalancer.rb, line 96
def create(datacenter_id, options = {})
  response = ProfitBricks.request(
    method: :post,
    path: "/datacenters/#{datacenter_id}/loadbalancers",
    expects: 202,
    body: { properties: options }.to_json
  )
  add_parent_identities(response)
  instantiate_objects(response)
end
get(datacenter_id, loadbalancer_id) click to toggle source

Retrieve a loadbalancer under a datacenter.

# File lib/profitbricks/loadbalancer.rb, line 119
def get(datacenter_id, loadbalancer_id)
  response = ProfitBricks.request(
    method: :get,
    path: "/datacenters/#{datacenter_id}/loadbalancers/#{loadbalancer_id}",
    expects: 200
  )
  add_parent_identities(response)
  instantiate_objects(response)
end
list(datacenter_id) click to toggle source

List all loadbalancers under a datacenter.

# File lib/profitbricks/loadbalancer.rb, line 108
def list(datacenter_id)
  response = ProfitBricks.request(
    method: :get,
    path: "/datacenters/#{datacenter_id}/loadbalancers",
    expects: 200
  )
  add_parent_identities(response)
  instantiate_objects(response)
end

Public Instance Methods

associate_balanced_nic(nic_id) click to toggle source
# File lib/profitbricks/loadbalancer.rb, line 39
def associate_balanced_nic(nic_id)
  response = ProfitBricks.request(
    method: :post,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}/balancednics",
    expects: 202,
    body: { id: nic_id }.to_json
  )
  self.class.instantiate_objects(response)
end
Also aliased as: associate_nic
associate_nic(nic_id)
delete() click to toggle source

Delete the loadbalancer.

# File lib/profitbricks/loadbalancer.rb, line 5
def delete
  response = ProfitBricks.request(
    method: :delete,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}",
    expects: 202
  )
  self.requestId = response[:requestId]
  self
end
get_balanced_nic(nic_id) click to toggle source
# File lib/profitbricks/loadbalancer.rb, line 49
def get_balanced_nic(nic_id)
  response = ProfitBricks.request(
    method: :get,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}/balancednics/#{nic_id}",
    expects: 200
  )
  self.class.instantiate_objects(response)
end
list_balanced_nics() click to toggle source
# File lib/profitbricks/loadbalancer.rb, line 30
def list_balanced_nics
  response = ProfitBricks.request(
    method: :get,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}/balancednics",
    expects: 200
  )
  self.class.instantiate_objects(response)
end
Also aliased as: list_nics
list_nics()
Alias for: list_balanced_nics
remove_balanced_nic(nic_id) click to toggle source
# File lib/profitbricks/loadbalancer.rb, line 58
def remove_balanced_nic(nic_id)
  ProfitBricks.request(
    method: :delete,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}/balancednics/#{nic_id}",
    expects: 202
  )
end
Also aliased as: remove_nic
remove_nic(nic_id)
Alias for: remove_balanced_nic
update(options = {}) click to toggle source

Update the loadbalancer.

# File lib/profitbricks/loadbalancer.rb, line 16
def update(options = {})
  response = ProfitBricks.request(
    method: :patch,
    path: "/datacenters/#{datacenterId}/loadbalancers/#{id}",
    expects: 202,
    body: options.to_json
  )
  if response
    self.requestId = response['requestId']
    @properties = @properties.merge(response['properties'])
  end
  self
end