Module: Idcf::Ilb::ClientExtensions::Loadbalancer

Included in:
Idcf::Ilb::Client
Defined in:
lib/idcf/ilb/client_extensions/loadbalancer.rb

Overview

SDK APIs for loadbalancer resource

Instance Method Summary collapse

Instance Method Details

#create_loadbalancer(attributes, headers = {}) ⇒ Response

Create a new loadbalancer.

Parameters:

  • attributes (Hash)

    request attributes

  • headers (Hash) (defaults to: {})

    HTTP request headers

Options Hash (attributes):

  • :name (String)

    unique name of loadbalancer (required)

  • :network_id (String)

    network_id of active network (required)

  • :public_ipaddress_assignment (Object(true)) — default: optional
  • :configs (Array)

    configs of loadbalancer (required)

  • :mackerel (Hash)

    mackerel (optional)

  • :fwgroup_id (String) — default: optional

Returns:



17
18
19
20
21
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 17

def create_loadbalancer(attributes, headers = {})
  Validators::Loadbalancer.validate_attributes!(attributes, :create)
  res = post!("loadbalancers", attributes, headers)
  check_job(res.body["job_id"], headers, ["get_loadbalancer"])
end

#delete_loadbalancer(id, headers = {}) ⇒ Boolean

Delete a loadbalancer

Parameters:

  • id (String)

    ID of target loadbalancer

  • headers (Hash) (defaults to: {})

    HTTP request headers

Returns:

  • (Boolean)

    delete success = true



64
65
66
67
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 64

def delete_loadbalancer(id, headers = {})
  res = delete!("loadbalancers/#{id}", {}, headers)
  check_job(res.body["job_id"], headers)
end

#get_loadbalancer(id, headers = {}) ⇒ Response

Get a loadbalancer

Parameters:

  • id (String)

    ID of target loadbalancer

  • headers (Hash) (defaults to: {})

    HTTP request headers

Returns:



55
56
57
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 55

def get_loadbalancer(id, headers = {})
  get!("loadbalancers/#{id}", {}, headers)
end

#list_loadbalancers(attributes = {}, headers = {}) ⇒ Response

Get list of existing loadbalancers

Parameters:

  • attributes (Hash) (defaults to: {})

    request attributes

  • headers (Hash) (defaults to: {})

    HTTP request headers

Options Hash (attributes):

  • :name (String)

    unique name of loadbalancer (optional)

Returns:



45
46
47
48
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 45

def list_loadbalancers(attributes = {}, headers = {})
  Validators::Loadbalancer.validate_attributes!(attributes, :list)
  get!("loadbalancers", attributes, headers)
end

#loadbalancers(headers = {}) ⇒ Array<Resources::Loadbalancer>

Get an array of existing loadbalancer objects.

Parameters:

  • headers (Hash) (defaults to: {})

    HTTP request headers

Returns:



73
74
75
76
77
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 73

def loadbalancers(headers = {})
  list_loadbalancers({}, headers).resources.map do |loadbalancer|
    Resources::Loadbalancer.new(self, loadbalancer)
  end
end

#update_loadbalancer(id, attributes, headers = {}) ⇒ Response

Update a loadbalancer.

Parameters:

  • attributes (Hash)

    request attributes

  • headers (Hash) (defaults to: {})

    HTTP request headers

Options Hash (attributes):

  • :name (String)

    unique name of loadbalancer (required)

  • :certificate (String)

    of loadbalancer (required)

  • :private_key (String)

    of loadbalancer (required)

  • :certificate_chain (String)

    of loadbalancer (optional)

  • :public_ipaddress_assignment (Object(true)) — default: optional

Returns:



33
34
35
36
37
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 33

def update_loadbalancer(id, attributes, headers = {})
  Validators::Loadbalancer.validate_attributes!(attributes, :update)
  res = put!("loadbalancers/#{id}", attributes, headers)
  check_job(res.body["job_id"], headers, ["get_loadbalancer"])
end