Class: Saklient::Cloud::Resources::LoadBalancer

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

Overview

ロードバランサの実体1つに対応し, 属性の取得や操作を行うためのクラス.

Instance Attribute Summary (collapse)

Attributes inherited from Appliance

#availability, #clazz, #description, #icon, #id, #ifaces, #name, #plan_id, #raw_annotation, #raw_settings, #service_class, #status, #swytch_id, #tags

Instance Method Summary (collapse)

Methods inherited from Appliance

#apply, #boot, #get_swytch, #reboot, #reload, #save, #shutdown, #sleep_until_down, #sleep_until_up, #sleep_while_creating, #stop

Instance Attribute Details

- (String) default_route

デフォルトルート

Returns:

  • (String)


61
62
63
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 61

def default_route
  @default_route
end

- (Fixnum) mask_len

マスク長

Returns:

  • (Fixnum)


91
92
93
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 91

def mask_len
  @mask_len
end

- (Array<LbVirtualIp>) virtual_ips (readonly)

仮想IPアドレス Saklient::Cloud::Resources::LbVirtualIp の配列

Returns:



37
38
39
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 37

def virtual_ips
  @virtual_ips
end

- (Fixnum) vrid

VRID

Returns:

  • (Fixnum)


121
122
123
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 121

def vrid
  @vrid
end

Instance Method Details

- (LbVirtualIp) add_virtual_ip(settings = nil)

仮想IPアドレス設定を追加します.

Parameters:

  • settings (any) (defaults to: nil)

    設定オブジェクト

Returns:



221
222
223
224
225
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 221

def add_virtual_ip(settings = nil)
  ret = Saklient::Cloud::Resources::LbVirtualIp.new(settings)
  @_virtual_ips << ret
  return ret
end

- (LoadBalancer) clear_virtual_ips

Returns:



210
211
212
213
214
215
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 210

def clear_virtual_ips
  while 0 < @_virtual_ips.length do
    @_virtual_ips.pop()
  end
  return self
end

- (LbVirtualIp) get_virtual_ip_by_address(address)

指定したIPアドレスにマッチする仮想IPアドレス設定を取得します.

Parameters:

  • address (String)

Returns:



231
232
233
234
235
236
237
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 231

def get_virtual_ip_by_address(address)
  Saklient::Util::validate_type(address, 'String')
  for vip in @_virtual_ips
    return vip if vip.virtual_ip_address == address
  end
  return nil
end

- (LoadBalancer) reload_status

監視対象サーバのステータスを最新の状態に更新します.

Returns:



242
243
244
245
246
247
248
249
250
251
252
253
254
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 242

def reload_status
  result = request_retry('GET', _api_path + '/' + Saklient::Util::url_encode(_id) + '/status')
  if !(result).nil? && (!result.nil? && result.key?(:LoadBalancer))
    vips = result[:LoadBalancer]
    for vipDyn in vips
      vipStr = vipDyn[:VirtualIPAddress]
      vip = get_virtual_ip_by_address(vipStr)
      next if (vip).nil?
      vip.update_status(vipDyn[:Servers])
    end
  end
  return self
end