class Saklient::Cloud::Resources::LbVirtualIp
ロードバランサの仮想IPアドレス設定.
Attributes
@private @return [Fixnum]
@private @return [Fixnum]
@private @return [Array<LbServer>]
@private @return [String]
@private @return [String]
チェック間隔 [秒]
@return [Fixnum]
ポート番号
@return [Fixnum]
実サーバ {LbServer} の配列
@return [Array<LbServer>]
ソーリーサーバ
@return [String]
VIPアドレス
@return [String]
Public Class Methods
@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
監視対象サーバ設定を追加します.
@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
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 118 def delay_loop=(v) set_delay_loop(v) end
@private @return [Fixnum]
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 96 def get_delay_loop return @_delay_loop end
@private @return [Fixnum]
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 60 def get_port return @_port end
指定した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
@private @return [Array<LbServer>]
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 168 def get_servers return @_servers end
@private @return [String]
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 132 def get_sorry_server return @_sorry_server end
@private @return [String]
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 24 def get_virtual_ip_address return @_virtual_ip_address end
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 82 def port=(v) set_port(v) end
指定した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
@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
@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
@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
@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
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 154 def sorry_server=(v) set_sorry_server(v) end
@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
@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
# File lib/saklient/cloud/resources/lb_virtual_ip.rb, line 46 def virtual_ip_address=(v) set_virtual_ip_address(v) end