Class: Saklient::Cloud::Resources::Archive

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

Overview

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

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) ⇒ Archive

Returns a new instance of Archive.

Parameters:



130
131
132
133
134
135
# File 'lib/saklient/cloud/resources/archive.rb', line 130

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)


708
709
710
# File 'lib/saklient/cloud/resources/archive.rb', line 708

def availability
  @availability
end

#descriptionString

説明

Returns:

  • (String)


470
471
472
# File 'lib/saklient/cloud/resources/archive.rb', line 470

def description
  @description
end

#display_orderFixnum

表示順序

Returns:

  • (Fixnum)


591
592
593
# File 'lib/saklient/cloud/resources/archive.rb', line 591

def display_order
  @display_order
end

#ftp_infoFtpInfo (readonly)

FTP情報

Returns:



242
243
244
# File 'lib/saklient/cloud/resources/archive.rb', line 242

def ftp_info
  @ftp_info
end

#iconIcon

アイコン

Returns:



551
552
553
# File 'lib/saklient/cloud/resources/archive.rb', line 551

def icon
  @icon
end

#idString (readonly)

ID

Returns:

  • (String)


370
371
372
# File 'lib/saklient/cloud/resources/archive.rb', line 370

def id
  @id
end

#is_availablebool (readonly)

ディスクが利用可能なときtrueを返します.

Returns:

  • (bool)


150
151
152
# File 'lib/saklient/cloud/resources/archive.rb', line 150

def is_available
  @is_available
end

#nameString

名前

Returns:

  • (String)


430
431
432
# File 'lib/saklient/cloud/resources/archive.rb', line 430

def name
  @name
end

#planDiskPlan (readonly)

プラン

Returns:



684
685
686
# File 'lib/saklient/cloud/resources/archive.rb', line 684

def plan
  @plan
end

#scopeString (readonly)

スコープ Enums::EScope

Returns:

  • (String)


394
395
396
# File 'lib/saklient/cloud/resources/archive.rb', line 394

def scope
  @scope
end

#service_classString (readonly)

サービスクラス

Returns:

  • (String)


660
661
662
# File 'lib/saklient/cloud/resources/archive.rb', line 660

def service_class
  @service_class
end

#size_gibFixnum

Returns:

  • (Fixnum)


179
180
181
# File 'lib/saklient/cloud/resources/archive.rb', line 179

def size_gib
  @size_gib
end

#size_mibFixnum

Returns:

  • (Fixnum)


632
633
634
# File 'lib/saklient/cloud/resources/archive.rb', line 632

def size_mib
  @size_mib
end

#sourceResource

アーカイブのコピー元

Returns:



215
216
217
# File 'lib/saklient/cloud/resources/archive.rb', line 215

def source
  @source
end

#tagsArray<String>

タグ文字列の配列

Returns:

  • (Array<String>)


511
512
513
# File 'lib/saklient/cloud/resources/archive.rb', line 511

def tags
  @tags
end

Instance Method Details

#_class_nameString

Returns:

  • (String)


102
103
104
# File 'lib/saklient/cloud/resources/archive.rb', line 102

def _class_name
  return 'Archive'
end

#_idString

Returns:

  • (String)


108
109
110
# File 'lib/saklient/cloud/resources/archive.rb', line 108

def _id
  return get_id
end

#close_ftpArchive

FTPSを終了し, アーカイブを利用可能な状態にします.

Returns:



323
324
325
326
327
328
# File 'lib/saklient/cloud/resources/archive.rb', line 323

def close_ftp
  path = _api_path + '/' + Saklient::Util::url_encode(_id) + '/ftp'
  @_client.request('DELETE', path)
  @_ftp_info = nil
  return self
end

#get_ftp_infoFtpInfo

Returns:



235
236
237
# File 'lib/saklient/cloud/resources/archive.rb', line 235

def get_ftp_info
  return @_ftp_info
end

#get_sourceResource

Returns:



199
200
201
# File 'lib/saklient/cloud/resources/archive.rb', line 199

def get_source
  return @_source
end

#open_ftp(reset = false) ⇒ Archive

FTPSを開始し, イメージファイルをアップロード・ダウンロードできる状態にします.

アカウント情報は, ftpInfo プロパティから取得することができます.

Parameters:

  • reset (bool) (defaults to: false)

    既にFTPSが開始されているとき, trueを指定してこのメソッドを呼ぶことでパスワードを再設定します.

Returns:



310
311
312
313
314
315
316
317
318
# File 'lib/saklient/cloud/resources/archive.rb', line 310

def open_ftp(reset = false)
  Saklient::Util::validate_type(reset, 'bool')
  path = _api_path + '/' + Saklient::Util::url_encode(_id) + '/ftp'
  q = {}
  Saklient::Util::set_by_path(q, 'ChangePassword', reset)
  result = @_client.request('PUT', path, q)
  _on_after_api_deserialize(nil, result)
  return self
end

#reloadArchive

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

Returns:



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

def reload
  return _reload
end

#saveArchive

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

Returns:



115
116
117
# File 'lib/saklient/cloud/resources/archive.rb', line 115

def save
  return _save
end

#set_source(source) ⇒ Resource

Parameters:

Returns:



206
207
208
209
210
# File 'lib/saklient/cloud/resources/archive.rb', line 206

def set_source(source)
  Saklient::Util::validate_type(source, 'Saklient::Cloud::Resources::Resource')
  @_source = source
  return source
end

#sleep_while_copying(timeoutSec = 3600) ⇒ bool

コピー中のアーカイブが利用可能になるまで待機します.

Parameters:

  • timeoutSec (Fixnum) (defaults to: 3600)

Returns:

  • (bool)

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



334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
# File 'lib/saklient/cloud/resources/archive.rb', line 334

def sleep_while_copying(timeoutSec = 3600)
  Saklient::Util::validate_type(timeoutSec, 'Fixnum')
  step = 3
  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