class Saklient::Cloud::Resources::LbVirtualIp

ロードバランサの仮想IPアドレス設定.

Attributes

_delay_loop[RW]

@private @return [Fixnum]

_port[RW]

@private @return [Fixnum]

_servers[RW]

@private @return [Array<LbServer>]

_sorry_server[RW]

@private @return [String]

_virtual_ip_address[RW]

@private @return [String]

delay_loop[RW]

チェック間隔 [秒]

@return [Fixnum]

port[RW]

ポート番号

@return [Fixnum]

servers[R]

実サーバ {LbServer} の配列

@return [Array<LbServer>]

sorry_server[RW]

ソーリーサーバ

@return [String]

virtual_ip_address[RW]

VIPアドレス

@return [String]

Public Class Methods

new(obj = nil) click to toggle source

@private @param [any] obj

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 183
def initialize(obj = nil)
  obj = {} if (obj).nil?
  vip = Saklient::Util::get_by_path_any([obj], [
    'VirtualIPAddress',
    'virtualIpAddress',
    'virtual_ip_address',
    'vip'
  ])
  @_virtual_ip_address = vip
  port = Saklient::Util::get_by_path_any([obj], ['Port', 'port'])
  @_port = nil
  @_port = (port).to_s().to_i(10) if !(port).nil?
  @_port = nil if @_port == 0
  delayLoop = Saklient::Util::get_by_path_any([obj], [
    'DelayLoop',
    'delayLoop',
    'delay_loop',
    'delay'
  ])
  @_delay_loop = nil
  @_delay_loop = (delayLoop).to_s().to_i(10) if !(delayLoop).nil?
  @_delay_loop = nil if @_delay_loop == 0
  sorryServer = Saklient::Util::get_by_path_any([obj], [
    'SorryServer',
    'sorryServer',
    'sorry_server',
    'sorryserver'
  ])
  @_sorry_server = nil
  @_sorry_server = sorryServer if !(sorryServer).nil?
  @_servers = []
  serversDyn = Saklient::Util::get_by_path_any([obj], ['Servers', 'servers'])
  if !(serversDyn).nil?
    servers = serversDyn
    for server in servers
      @_servers << Saklient::Cloud::Resources::LbServer.new(server)
    end
  end
end

Public Instance Methods

add_server(settings = nil) click to toggle source

監視対象サーバ設定を追加します.

@param [any] settings 設定オブジェクト @return [LbServer]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 227
def add_server(settings = nil)
  ret = Saklient::Cloud::Resources::LbServer.new(settings)
  @_servers << ret
  return ret
end
delay_loop=(v) click to toggle source
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 118
def delay_loop=(v)
  set_delay_loop(v)
end
get_delay_loop() click to toggle source

@private @return [Fixnum]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 96
def get_delay_loop
  return @_delay_loop
end
get_port() click to toggle source

@private @return [Fixnum]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 60
def get_port
  return @_port
end
get_server_by_address(address) click to toggle source

指定したIPアドレスにマッチする監視対象サーバ設定のうち, 最初にマッチしたものを取得します.

@param [String] address 検索するIPアドレス @return [LbServer] 監視対象サーバ設定(見つからなかった場合はnull)

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 252
def get_server_by_address(address)
  Saklient::Util::validate_type(address, 'String')
  for srv in @_servers
    return srv if srv.ip_address == address
  end
  return nil
end
get_servers() click to toggle source

@private @return [Array<LbServer>]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 168
def get_servers
  return @_servers
end
get_sorry_server() click to toggle source

@private @return [String]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 132
def get_sorry_server
  return @_sorry_server
end
get_virtual_ip_address() click to toggle source

@private @return [String]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 24
def get_virtual_ip_address
  return @_virtual_ip_address
end
port=(v) click to toggle source
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 82
def port=(v)
  set_port(v)
end
remove_server_by_address(address) click to toggle source

指定したIPアドレスにマッチする監視対象サーバ設定をすべて削除します.

@param [String] address @return [LbVirtualIp]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 264
def remove_server_by_address(address)
  Saklient::Util::validate_type(address, 'String')
  servers = []
  for srv in @_servers
    servers << srv if srv.ip_address != address
  end
  @_servers = servers
  return self
end
set_delay_loop(v) click to toggle source

@private @param [Fixnum] v @return [Fixnum]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 103
def set_delay_loop(v)
  Saklient::Util::validate_type(v, 'Fixnum')
  @_delay_loop = v
  return @_delay_loop
end
set_port(v) click to toggle source

@private @param [Fixnum] v @return [Fixnum]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 67
def set_port(v)
  Saklient::Util::validate_type(v, 'Fixnum')
  @_port = v
  return @_port
end
set_sorry_server(v) click to toggle source

@private @param [String] v @return [String]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 139
def set_sorry_server(v)
  Saklient::Util::validate_type(v, 'String')
  @_sorry_server = v
  return @_sorry_server
end
set_virtual_ip_address(v) click to toggle source

@private @param [String] v @return [String]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 31
def set_virtual_ip_address(v)
  Saklient::Util::validate_type(v, 'String')
  @_virtual_ip_address = v
  return @_virtual_ip_address
end
sorry_server=(v) click to toggle source
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 154
def sorry_server=(v)
  set_sorry_server(v)
end
to_raw_settings() click to toggle source

@return [any]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 234
def to_raw_settings
  servers = []
  for server in @_servers
    servers << server.to_raw_settings
  end
  return {
    VirtualIPAddress: @_virtual_ip_address,
    Port: @_port,
    DelayLoop: @_delay_loop,
    SorryServer: @_sorry_server,
    Servers: servers
  }
end
update_status(srvs) click to toggle source

@private @param [Array] srvs @return [LbVirtualIp]

# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 277
def update_status(srvs)
  Saklient::Util::validate_type(srvs, 'Array')
  for srvDyn in srvs
    ip = srvDyn[:IPAddress]
    srv = get_server_by_address(ip)
    next if (srv).nil?
    srv.update_status(srvDyn)
  end
  return self
end
virtual_ip_address=(v) click to toggle source
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 46
def virtual_ip_address=(v)
  set_virtual_ip_address(v)
end