Class: Saklient::Cloud::Resources::LbVirtualIp
- Inherits:
-
Object
- Object
- Saklient::Cloud::Resources::LbVirtualIp
- Defined in:
- lib/saklient/cloud/resources/lb_virtual_ip.rb
Overview
ロードバランサの仮想IPアドレス設定.
Instance Attribute Summary collapse
-
#delay_loop ⇒ Fixnum
チェック間隔 [秒].
-
#port ⇒ Fixnum
ポート番号.
-
#servers ⇒ Array<LbServer>
readonly
実サーバ LbServer の配列.
-
#virtual_ip_address ⇒ String
VIPアドレス.
Instance Method Summary collapse
-
#add_server(settings = nil) ⇒ LbServer
監視対象サーバ設定を追加します.
- #get_delay_loop ⇒ Fixnum
- #get_port ⇒ Fixnum
-
#get_server_by_address(address) ⇒ LbServer
指定したIPアドレスにマッチする監視対象サーバ設定のうち, 最初にマッチしたものを取得します.
- #get_servers ⇒ Array<LbServer>
- #get_virtual_ip_address ⇒ String
-
#initialize(obj = nil) ⇒ LbVirtualIp
constructor
A new instance of LbVirtualIp.
-
#remove_server_by_address(address) ⇒ LbVirtualIp
指定したIPアドレスにマッチする監視対象サーバ設定をすべて削除します.
- #set_delay_loop(v) ⇒ Fixnum
- #set_port(v) ⇒ Fixnum
- #set_virtual_ip_address(v) ⇒ String
- #to_raw_settings ⇒ any
- #update_status(srvs) ⇒ LbVirtualIp
Constructor Details
#initialize(obj = nil) ⇒ LbVirtualIp
Returns a new instance of LbVirtualIp.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 148 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 @_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 |
Instance Attribute Details
#delay_loop ⇒ Fixnum
チェック間隔 [秒]
113 114 115 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 113 def delay_loop @delay_loop end |
#port ⇒ Fixnum
ポート番号
77 78 79 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 77 def port @port end |
#servers ⇒ Array<LbServer> (readonly)
実サーバ Saklient::Cloud::Resources::LbServer の配列
140 141 142 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 140 def servers @servers end |
#virtual_ip_address ⇒ String
VIPアドレス
41 42 43 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 41 def virtual_ip_address @virtual_ip_address end |
Instance Method Details
#add_server(settings = nil) ⇒ LbServer
監視対象サーバ設定を追加します.
184 185 186 187 188 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 184 def add_server(settings = nil) ret = Saklient::Cloud::Resources::LbServer.new(settings) @_servers << ret return ret end |
#get_delay_loop ⇒ Fixnum
97 98 99 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 97 def get_delay_loop return @_delay_loop end |
#get_port ⇒ Fixnum
61 62 63 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 61 def get_port return @_port end |
#get_server_by_address(address) ⇒ LbServer
指定したIPアドレスにマッチする監視対象サーバ設定のうち, 最初にマッチしたものを取得します.
208 209 210 211 212 213 214 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 208 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 ⇒ Array<LbServer>
133 134 135 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 133 def get_servers return @_servers end |
#get_virtual_ip_address ⇒ String
25 26 27 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 25 def get_virtual_ip_address return @_virtual_ip_address end |
#remove_server_by_address(address) ⇒ LbVirtualIp
指定したIPアドレスにマッチする監視対象サーバ設定をすべて削除します.
220 221 222 223 224 225 226 227 228 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 220 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) ⇒ Fixnum
104 105 106 107 108 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 104 def set_delay_loop(v) Saklient::Util::validate_type(v, 'Fixnum') @_delay_loop = v return @_delay_loop end |
#set_port(v) ⇒ Fixnum
68 69 70 71 72 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 68 def set_port(v) Saklient::Util::validate_type(v, 'Fixnum') @_port = v return @_port end |
#set_virtual_ip_address(v) ⇒ String
32 33 34 35 36 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 32 def set_virtual_ip_address(v) Saklient::Util::validate_type(v, 'String') @_virtual_ip_address = v return @_virtual_ip_address end |
#to_raw_settings ⇒ any
191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 191 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, Servers: servers } end |
#update_status(srvs) ⇒ LbVirtualIp
233 234 235 236 237 238 239 240 241 242 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 233 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 |