Class: Saklient::Cloud::Resources::LbVirtualIp

Inherits:
Object
  • Object
show all
Defined in:
lib/saklient/cloud/resources/lb_virtual_ip.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(obj = nil) ⇒ LbVirtualIp

Returns a new instance of LbVirtualIp.

Parameters:

  • obj (any) (defaults to: nil)


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_loopFixnum

チェック間隔 [秒]

Returns:

  • (Fixnum)


113
114
115
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 113

def delay_loop
  @delay_loop
end

#portFixnum

ポート番号

Returns:

  • (Fixnum)


77
78
79
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 77

def port
  @port
end

#serversArray<LbServer> (readonly)

実サーバ Saklient::Cloud::Resources::LbServer の配列

Returns:



176
177
178
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 176

def servers
  @servers
end

#sorry_serverString

ソーリーサーバ

Returns:

  • (String)


149
150
151
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 149

def sorry_server
  @sorry_server
end

#virtual_ip_addressString

VIPアドレス

Returns:

  • (String)


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

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

Parameters:

  • settings (any) (defaults to: nil)

    設定オブジェクト

Returns:



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_loopFixnum

Returns:

  • (Fixnum)


97
98
99
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 97

def get_delay_loop
  return @_delay_loop
end

#get_portFixnum

Returns:

  • (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アドレスにマッチする監視対象サーバ設定のうち, 最初にマッチしたものを取得します.

Parameters:

  • address (String)

    検索するIPアドレス

Returns:

  • (LbServer)

    監視対象サーバ設定(見つからなかった場合はnull)



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_serversArray<LbServer>

Returns:



169
170
171
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 169

def get_servers
  return @_servers
end

#get_sorry_serverString

Returns:

  • (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_addressString

Returns:

  • (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アドレスにマッチする監視対象サーバ設定をすべて削除します.

Parameters:

  • address (String)

Returns:



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

Parameters:

  • v (Fixnum)

Returns:

  • (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

Parameters:

  • v (Fixnum)

Returns:

  • (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

Parameters:

  • v (String)

Returns:

  • (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

Parameters:

  • v (String)

Returns:

  • (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_settingsany

Returns:

  • (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

Parameters:

  • srvs (Array)

Returns:



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