Class: Saklient::Cloud::Resources::Appliance

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

Overview

アプライアンスの実体1つに対応し, 属性の取得や操作を行うためのクラス.

Direct Known Subclasses

LoadBalancer, VpcRouter

Instance Attribute Summary collapse

Attributes inherited from Resource

#client

Instance Method Summary collapse

Methods inherited from Resource

#api_deserialize, #api_serialize, create_with, #destroy, #dump, #exists, #request_retry, #set_param

Constructor Details

#initialize(client, obj, wrapped = false) ⇒ Appliance

Returns a new instance of Appliance.

Parameters:



150
151
152
153
154
155
# File 'lib/saklient/cloud/resources/appliance.rb', line 150

def initialize(client, obj, wrapped = false)
  super(client)
  Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
  Saklient::Util::validate_type(wrapped, 'bool')
  api_deserialize(obj, wrapped)
end

Instance Attribute Details

#availabilityString (readonly)

有効状態 Enums::EAvailability

Returns:

  • (String)


742
743
744
# File 'lib/saklient/cloud/resources/appliance.rb', line 742

def availability
  @availability
end

#clazzString

Returns:

  • (String)


337
338
339
# File 'lib/saklient/cloud/resources/appliance.rb', line 337

def clazz
  @clazz
end

#descriptionString

説明

Returns:

  • (String)


417
418
419
# File 'lib/saklient/cloud/resources/appliance.rb', line 417

def description
  @description
end

#iconIcon

アイコン

Returns:



498
499
500
# File 'lib/saklient/cloud/resources/appliance.rb', line 498

def icon
  @icon
end

#idString (readonly)

ID

Returns:

  • (String)


300
301
302
# File 'lib/saklient/cloud/resources/appliance.rb', line 300

def id
  @id
end

#ifacesArray<Iface> (readonly)

インタフェース Iface の配列

Returns:



567
568
569
# File 'lib/saklient/cloud/resources/appliance.rb', line 567

def ifaces
  @ifaces
end

#nameString

名前

Returns:

  • (String)


377
378
379
# File 'lib/saklient/cloud/resources/appliance.rb', line 377

def name
  @name
end

#plan_idFixnum

プラン

Returns:

  • (Fixnum)


539
540
541
# File 'lib/saklient/cloud/resources/appliance.rb', line 539

def plan_id
  @plan_id
end

#raw_annotationany

注釈

Returns:

  • (any)


603
604
605
# File 'lib/saklient/cloud/resources/appliance.rb', line 603

def raw_annotation
  @raw_annotation
end

#raw_settingsany

設定の生データ

Returns:

  • (any)


643
644
645
# File 'lib/saklient/cloud/resources/appliance.rb', line 643

def raw_settings
  @raw_settings
end

#raw_settings_hashString (readonly)

Returns:

  • (String)


670
671
672
# File 'lib/saklient/cloud/resources/appliance.rb', line 670

def raw_settings_hash
  @raw_settings_hash
end

#service_classString (readonly)

サービスクラス

Returns:

  • (String)


718
719
720
# File 'lib/saklient/cloud/resources/appliance.rb', line 718

def service_class
  @service_class
end

#statusString (readonly)

Returns:

  • (String)


694
695
696
# File 'lib/saklient/cloud/resources/appliance.rb', line 694

def status
  @status
end

#swytch_idString (readonly)

接続先スイッチID

Returns:

  • (String)


766
767
768
# File 'lib/saklient/cloud/resources/appliance.rb', line 766

def swytch_id
  @swytch_id
end

#tagsArray<String>

タグ文字列の配列

Returns:

  • (Array<String>)


458
459
460
# File 'lib/saklient/cloud/resources/appliance.rb', line 458

def tags
  @tags
end

Instance Method Details

#_class_nameString

Returns:

  • (String)


122
123
124
# File 'lib/saklient/cloud/resources/appliance.rb', line 122

def _class_name
  return 'Appliance'
end

#_idString

Returns:

  • (String)


128
129
130
# File 'lib/saklient/cloud/resources/appliance.rb', line 128

def _id
  return get_id
end

#applyAppliance

アプライアンスの設定を反映します.

Returns:



180
181
182
183
# File 'lib/saklient/cloud/resources/appliance.rb', line 180

def apply
  @_client.request('PUT', _api_path + '/' + Saklient::Util::url_encode(_id) + '/config')
  return self
end

#bootAppliance

アプライアンスを起動します.

Returns:



188
189
190
191
# File 'lib/saklient/cloud/resources/appliance.rb', line 188

def boot
  @_client.request('PUT', _api_path + '/' + Saklient::Util::url_encode(_id) + '/power')
  return self
end

#get_swytchSwytch

このルータが接続されているスイッチを取得します.

Returns:



171
172
173
174
175
# File 'lib/saklient/cloud/resources/appliance.rb', line 171

def get_swytch
  model = Saklient::Util::create_class_instance('saklient.cloud.models.Model_Swytch', [@_client])
  id = get_swytch_id
  return model.get_by_id(id)
end

#rebootAppliance

アプライアンスを強制再起動します.

Returns:



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

def reboot
  @_client.request('PUT', _api_path + '/' + Saklient::Util::url_encode(_id) + '/reset')
  return self
end

#reloadAppliance

最新のリソース情報を再取得します.

Returns:



142
143
144
# File 'lib/saklient/cloud/resources/appliance.rb', line 142

def reload
  return _reload
end

#saveAppliance

このローカルオブジェクトに現在設定されているリソース情報をAPIに送信し, 新規作成または上書き保存します.

Returns:



135
136
137
# File 'lib/saklient/cloud/resources/appliance.rb', line 135

def save
  return _save
end

#shutdownAppliance

アプライアンスをシャットダウンします.

Returns:



196
197
198
199
# File 'lib/saklient/cloud/resources/appliance.rb', line 196

def shutdown
  @_client.request('DELETE', _api_path + '/' + Saklient::Util::url_encode(_id) + '/power')
  return self
end

#sleep_until_down(timeoutSec = 600) ⇒ bool

アプライアンスが停止するまで待機します.

Parameters:

  • timeoutSec (Fixnum) (defaults to: 600)

Returns:

  • (bool)

    成功時はtrue, タイムアウトやエラーによる失敗時はfalseを返します.



252
253
254
255
# File 'lib/saklient/cloud/resources/appliance.rb', line 252

def sleep_until_down(timeoutSec = 600)
  Saklient::Util::validate_type(timeoutSec, 'Fixnum')
  return sleep_until(Saklient::Cloud::Enums::EServerInstanceStatus::down, timeoutSec)
end

#sleep_until_up(timeoutSec = 600) ⇒ bool

アプライアンスが起動するまで待機します.

Parameters:

  • timeoutSec (Fixnum) (defaults to: 600)

Returns:

  • (bool)


243
244
245
246
# File 'lib/saklient/cloud/resources/appliance.rb', line 243

def sleep_until_up(timeoutSec = 600)
  Saklient::Util::validate_type(timeoutSec, 'Fixnum')
  return sleep_until(Saklient::Cloud::Enums::EServerInstanceStatus::up, timeoutSec)
end

#sleep_while_creating(timeoutSec = 600) ⇒ bool

作成中のアプライアンスが利用可能になるまで待機します.

Parameters:

  • timeoutSec (Fixnum) (defaults to: 600)

Returns:

  • (bool)

    成功時はtrue, タイムアウトやエラーによる失敗時はfalseを返します.



221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# File 'lib/saklient/cloud/resources/appliance.rb', line 221

def sleep_while_creating(timeoutSec = 600)
  Saklient::Util::validate_type(timeoutSec, 'Fixnum')
  step = 10
  while 0 < timeoutSec do
    begin
      reload
    rescue Saklient::Errors::HttpException
      {}
    end
    a = get_availability
    return true if a == Saklient::Cloud::Enums::EAvailability::available
    timeoutSec = 0 if a != Saklient::Cloud::Enums::EAvailability::migrating
    timeoutSec -= step
    sleep(step) if 0 < timeoutSec
  end
  return false
end

#stopAppliance

アプライアンスを強制停止します.

Returns:



204
205
206
207
# File 'lib/saklient/cloud/resources/appliance.rb', line 204

def stop
  @_client.request('DELETE', _api_path + '/' + Saklient::Util::url_encode(_id) + '/power', { Force: true })
  return self
end