class IIJ::Sakagura::GP::GL

Attributes

gl_service_code[R]
gp_service_code[R]

Public Class Methods

new(client, gp_service_code, gl_service_code) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 7
def initialize(client, gp_service_code, gl_service_code)
  @client = client
  @gp_service_code = gp_service_code
  @gl_service_code = gl_service_code
end

Public Instance Methods

add_lb_node(pool, node) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 128
def add_lb_node(pool, node)
  opts = {
    "Pool" => pool,
    "NodeIpAddress" => node[0],
    "NodePort" => node[1]
  }

  call("AddLbNode", opts)
end
add_lb_pool(pool, nodes) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 104
def add_lb_pool(pool, nodes)
  opts = {
    "Pool" => pool
  }
  nodes.each.with_index(1) do |node, i|
    opts["NodeIpAddress.#{i}"] = node[0]
    opts["NodePort.#{i}"] = node[1]
  end

  call("AddLbPool", opts)
end
add_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 67
def add_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil)
  opts = {
    "VirtualServerName" => virtual_server_name,
    "Port" => port,
    "Protocol" => protocol,
    "Pool" => pool
  }
  opts["TrafficIpName"] = traffic_ip_name_list if traffic_ip_name_list
  call('AddLbVirtualServer', opts)
end
add_or_update_pool(pool, nodes) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 93
def add_or_update_pool(pool, nodes)
  lb_pool = lb_info['PoolList'].find{|lb_pool| lb_pool['Name'] == pool }
  if lb_pool
    # already exist
    set_lb_pool(pool, nodes)
  else
    # create a new pool
    add_lb_pool(pool, nodes)
  end
end
add_or_update_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 56
def add_or_update_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil)
  lb_vserver = lb_info['VirtualServerList'].find{|lb_vserver| lb_vserver['Name'] == virtual_server_name }
  if lb_vserver
    # already exist
    set_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list)
  else
    # create a new vserver
    add_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list)
  end
end
call(api_name, params = {}) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 156
def call(api_name, params = {})
  @client.post(api_name, default_args.merge(params))
end
change_fw_lb_option_type(type) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 152
def change_fw_lb_option_type(type)
  call("ChangeFwLbOptionType", "Type" => type)
end
default_args() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 19
def default_args
  {
    "GpServiceCode" => gp_service_code,
    "GlServiceCode" => gl_service_code
  }
end
delete_lb_node(pool, node) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 142
def delete_lb_node(pool, node)
  opts = {
    "Pool" => pool,
    "NodeIpAddress" => node[0],
    "NodePort" => node[1]
  }

  call("DeleteLbNode", opts)
end
delete_lb_pool(pool) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 138
def delete_lb_pool(pool)
  call("DeleteLbPool", "Pool" => pool)
end
delete_lb_virtual_server(virtual_server_name) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 89
def delete_lb_virtual_server(virtual_server_name)
  call('DeleteLbVirtualServer', "VirtualServerName" => virtual_server_name)
end
describe_fw() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 34
def describe_fw
  call('DescribeFw')
end
describe_lb() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 30
def describe_lb
  call('DescribeLb')
end
get_contract_status() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 26
def get_contract_status
  call('GetContractStatus')['Status']
end
inspect() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 15
def inspect
  %[#<#{self.class.name} @gp_service_code="#{gp_service_code}", @gl_service_code="#{gl_service_code}">]
end
label=(label)
Alias for: set_label
lb_info(force = false) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 38
def lb_info(force = false)
  @lb_info = nil if force
  @lb_info ||= describe_lb
  @lb_info
end
lb_info!() click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 44
def lb_info!
  lb_info(force = true)
end
set_label(label) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 48
def set_label(label)
  @client.post("SetLabel",
               "GpServiceCode" => gp_service_code,
               "ServiceCode" => gl_service_code,
               "Label" => label)
end
Also aliased as: label=
set_lb_pool(pool, nodes) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 116
def set_lb_pool(pool, nodes)
  opts = {
    "Pool" => pool
  }
  nodes.each.with_index(1) do |node, i|
    opts["NodeIpAddress.#{i}"] = node[0]
    opts["NodePort.#{i}"] = node[1]
  end

  call("SetLbPool", opts)
end
set_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil) click to toggle source
# File lib/iij/sakagura/gp/gl.rb, line 78
def set_lb_virtual_server(virtual_server_name, port, protocol, pool, traffic_ip_name_list = nil)
  opts = {
    "VirtualServerName" => virtual_server_name,
    "Port" => port,
    "Protocol" => protocol,
    "Pool" => pool
  }
  opts["TrafficIpName"] = traffic_ip_name_list if traffic_ip_name_list
  call('SetLbVirtualServer', opts)
end