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)

  • :configs (Array)

    configs of loadbalancer (required)

  • :mackerel (Hash)

    mackerel (optional)

  • :fwgroup_id (String) — default: optional

Returns:



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

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



62
63
64
65
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 62

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:



53
54
55
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 53

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:



43
44
45
46
# File 'lib/idcf/ilb/client_extensions/loadbalancer.rb', line 43

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:



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

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)

Returns:



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

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