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 の配列.
-
#sorry_server ⇒ String
ソーリーサーバ.
-
#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_sorry_server ⇒ String
- #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_sorry_server(v) ⇒ String
- #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.
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 184 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 |
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 の配列
176 177 178 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 176 def servers @servers end |
#sorry_server ⇒ String
ソーリーサーバ
149 150 151 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 149 def sorry_server @sorry_server 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
監視対象サーバ設定を追加します.
228 229 230 231 232 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 228 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アドレスにマッチする監視対象サーバ設定のうち, 最初にマッチしたものを取得します.
253 254 255 256 257 258 259 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 253 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>
169 170 171 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 169 def get_servers return @_servers end |
#get_sorry_server ⇒ String
133 134 135 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 133 def get_sorry_server return @_sorry_server 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アドレスにマッチする監視対象サーバ設定をすべて削除します.
265 266 267 268 269 270 271 272 273 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 265 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_sorry_server(v) ⇒ String
140 141 142 143 144 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 140 def set_sorry_server(v) Saklient::Util::validate_type(v, 'String') @_sorry_server = v return @_sorry_server 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
235 236 237 238 239 240 241 242 243 244 245 246 247 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 235 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) ⇒ LbVirtualIp
278 279 280 281 282 283 284 285 286 287 |
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 278 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 |