Class: Saklient::Cloud::Resources::LoadBalancer
- Inherits:
-
Appliance
- Object
- Resource
- Appliance
- Saklient::Cloud::Resources::LoadBalancer
- Defined in:
- lib/saklient/cloud/resources/load_balancer.rb
Overview
ロードバランサの実体1つに対応し, 属性の取得や操作を行うためのクラス.
Instance Attribute Summary (collapse)
-
- (String) default_route
デフォルトルート.
-
- (Fixnum) mask_len
マスク長.
-
- (Array<LbVirtualIp>) virtual_ips
readonly
仮想IPアドレス LbVirtualIp の配列.
-
- (Fixnum) vrid
VRID.
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)
-
- (LbVirtualIp) add_virtual_ip(settings = nil)
仮想IPアドレス設定を追加します.
- - (LoadBalancer) clear_virtual_ips
-
- (LbVirtualIp) get_virtual_ip_by_address(address)
指定したIPアドレスにマッチする仮想IPアドレス設定を取得します.
-
- (LoadBalancer) reload_status
監視対象サーバのステータスを最新の状態に更新します.
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
デフォルトルート
61 62 63 |
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 61 def default_route @default_route end |
- (Fixnum) mask_len
マスク長
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 の配列
37 38 39 |
# File 'lib/saklient/cloud/resources/load_balancer.rb', line 37 def virtual_ips @virtual_ips end |
- (Fixnum) vrid
VRID
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アドレス設定を追加します.
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
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アドレス設定を取得します.
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
監視対象サーバのステータスを最新の状態に更新します.
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 |