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)


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_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:



140
141
142
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 140

def servers
  @servers
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:



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_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)



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

Returns:



133
134
135
# File 'lib/saklient/cloud/resources/lb_virtual_ip.rb', line 133

def get_servers
  return @_servers
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:



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

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_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)


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

Parameters:

  • srvs (Array)

Returns:



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