class Saklient::Cloud::Resources::Archive
アーカイブの実体1つに対応し, 属性の取得や操作を行うためのクラス.
Attributes
@private @return [FtpInfo]
@private @return [Resource]
有効状態 {Saklient::Cloud::Enums::EAvailability}
@return [String]
説明
@return [String]
表示順序
@return [Fixnum]
FTP情報
@return [FtpInfo]
アイコン
@return [Icon]
ID
@return [String]
ディスクが利用可能なときtrueを返します.
@return [bool]
有効状態 {Saklient::Cloud::Enums::EAvailability}
@return [String]
説明
@return [String]
表示順序
@return [Fixnum]
アイコン
@return [Icon]
ID
@return [String]
名前
@return [String]
プラン
@return [DiskPlan]
スコープ {Saklient::Cloud::Enums::EScope}
@return [String]
サービスクラス
@return [String]
@return [Fixnum]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
@return [bool]
名前
@return [String]
プラン
@return [DiskPlan]
スコープ {Saklient::Cloud::Enums::EScope}
@return [String]
サービスクラス
@return [String]
@return [Fixnum]
@return [Fixnum]
アーカイブのコピー元
@return [Resource]
Public Class Methods
@private @param [Saklient::Cloud::Client] client @param [any] obj @param [bool] wrapped
Saklient::Cloud::Resources::Resource::new
# File lib/saklient/cloud/resources/archive.rb, line 129 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
Public Instance Methods
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 101 def _class_name return 'Archive' end
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 107 def _id return get_id end
FTPSを終了し, アーカイブを利用可能な状態にします.
@return [Archive] this
# File lib/saklient/cloud/resources/archive.rb, line 322 def close_ftp path = _api_path + '/' + Saklient::Util::url_encode(_id) + '/ftp' @_client.request('DELETE', path) @_ftp_info = nil return self end
# File lib/saklient/cloud/resources/archive.rb, line 475 def description=(v) set_description(v) end
# File lib/saklient/cloud/resources/archive.rb, line 596 def display_order=(v) set_display_order(v) end
@private @return [FtpInfo]
# File lib/saklient/cloud/resources/archive.rb, line 234 def get_ftp_info return @_ftp_info end
@private @return [Resource]
# File lib/saklient/cloud/resources/archive.rb, line 198 def get_source return @_source end
# File lib/saklient/cloud/resources/archive.rb, line 556 def icon=(v) set_icon(v) end
# File lib/saklient/cloud/resources/archive.rb, line 435 def name=(v) set_name(v) end
FTPSを開始し, イメージファイルをアップロード・ダウンロードできる状態にします.
アカウント情報は, ftpInfo プロパティから取得することができます.
@param [bool] reset 既にFTPSが開始されているとき, trueを指定してこのメソッドを呼ぶことでパスワードを再設定します. @return [Archive] this
# File lib/saklient/cloud/resources/archive.rb, line 309 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
最新のリソース情報を再取得します.
@return [Archive] this
# File lib/saklient/cloud/resources/archive.rb, line 121 def reload return _reload end
このローカルオブジェクトに現在設定されているリソース情報をAPIに送信し, 新規作成または上書き保存します.
@return [Archive] this
# File lib/saklient/cloud/resources/archive.rb, line 114 def save return _save end
@private @param [Resource] source @return [Resource]
# File lib/saklient/cloud/resources/archive.rb, line 205 def set_source(source) Saklient::Util::validate_type(source, 'Saklient::Cloud::Resources::Resource') @_source = source return source end
# File lib/saklient/cloud/resources/archive.rb, line 184 def size_gib=(v) set_size_gib(v) end
# File lib/saklient/cloud/resources/archive.rb, line 637 def size_mib=(v) set_size_mib(v) end
コピー中のアーカイブが利用可能になるまで待機します.
@param [Fixnum] timeoutSec @return [bool] 成功時はtrue, タイムアウトやエラーによる失敗時はfalseを返します.
# File lib/saklient/cloud/resources/archive.rb, line 333 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
# File lib/saklient/cloud/resources/archive.rb, line 220 def source=(v) set_source(v) end
Protected Instance Methods
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 81 def _api_path return '/archive' end
@private @param [any] r @param [any] root @return [void]
# File lib/saklient/cloud/resources/archive.rb, line 253 def _on_after_api_deserialize(r, root) if !(root).nil? if !root.nil? && root.key?(:FTPServer) ftp = root[:FTPServer] @_ftp_info = Saklient::Cloud::Resources::FtpInfo.new(ftp) if !(ftp).nil? end end if !(r).nil? if !r.nil? && r.key?(:SourceArchive) s = r[:SourceArchive] if !(s).nil? id = s[:ID] @_source = Saklient::Cloud::Resources::Archive.new(@_client, s) if !(id).nil? end end if !r.nil? && r.key?(:SourceDisk) s = r[:SourceDisk] if !(s).nil? id = s[:ID] @_source = Saklient::Cloud::Resources::Resource::create_with('Disk', @_client, s) if !(id).nil? end end end end
@private @param [any] r @param [bool] withClean @return [void]
# File lib/saklient/cloud/resources/archive.rb, line 282 def _on_after_api_serialize(r, withClean) Saklient::Util::validate_type(withClean, 'bool') return nil if (r).nil? if !(@_source).nil? if @_source._class_name == 'Archive' s = withClean ? @_source.api_serialize(true) : { ID: @_source._id } r[:SourceArchive] = s else if @_source._class_name == 'Disk' s = withClean ? @_source.api_serialize(true) : { ID: @_source._id } r[:SourceDisk] = s else @_source = nil Saklient::Util::validate_type(@_source, 'Disk or Archive', true) end end end end
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 87 def _root_key return 'Archive' end
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 93 def _root_key_m return 'Archives' end
(This method is generated in Translator_default#buildImpl)
@param [any] r
# File lib/saklient/cloud/resources/archive.rb, line 718 def api_deserialize_impl(r) @is_new = (r).nil? r = {} if @is_new @is_incomplete = false if Saklient::Util::exists_path(r, 'ID') @m_id = (Saklient::Util::get_by_path(r, 'ID')).nil? ? nil : Saklient::Util::get_by_path(r, 'ID').to_s else @m_id = nil @is_incomplete = true end @n_id = false if Saklient::Util::exists_path(r, 'Scope') @m_scope = (Saklient::Util::get_by_path(r, 'Scope')).nil? ? nil : Saklient::Util::get_by_path(r, 'Scope').to_s else @m_scope = nil @is_incomplete = true end @n_scope = false if Saklient::Util::exists_path(r, 'Name') @m_name = (Saklient::Util::get_by_path(r, 'Name')).nil? ? nil : Saklient::Util::get_by_path(r, 'Name').to_s else @m_name = nil @is_incomplete = true end @n_name = false if Saklient::Util::exists_path(r, 'Description') @m_description = (Saklient::Util::get_by_path(r, 'Description')).nil? ? nil : Saklient::Util::get_by_path(r, 'Description').to_s else @m_description = nil @is_incomplete = true end @n_description = false if Saklient::Util::exists_path(r, 'Tags') if (Saklient::Util::get_by_path(r, 'Tags')).nil? @m_tags = [] else @m_tags = [] for t in Saklient::Util::get_by_path(r, 'Tags') v1 = nil v1 = (t).nil? ? nil : t.to_s @m_tags << v1 end end else @m_tags = nil @is_incomplete = true end @n_tags = false if Saklient::Util::exists_path(r, 'Icon') @m_icon = (Saklient::Util::get_by_path(r, 'Icon')).nil? ? nil : Saklient::Cloud::Resources::Icon.new(@_client, Saklient::Util::get_by_path(r, 'Icon')) else @m_icon = nil @is_incomplete = true end @n_icon = false if Saklient::Util::exists_path(r, 'DisplayOrder') @m_display_order = (Saklient::Util::get_by_path(r, 'DisplayOrder')).nil? ? nil : (Saklient::Util::get_by_path(r, 'DisplayOrder').to_s).to_s().to_i(10) else @m_display_order = nil @is_incomplete = true end @n_display_order = false if Saklient::Util::exists_path(r, 'SizeMB') @m_size_mib = (Saklient::Util::get_by_path(r, 'SizeMB')).nil? ? nil : (Saklient::Util::get_by_path(r, 'SizeMB').to_s).to_s().to_i(10) else @m_size_mib = nil @is_incomplete = true end @n_size_mib = false if Saklient::Util::exists_path(r, 'ServiceClass') @m_service_class = (Saklient::Util::get_by_path(r, 'ServiceClass')).nil? ? nil : Saklient::Util::get_by_path(r, 'ServiceClass').to_s else @m_service_class = nil @is_incomplete = true end @n_service_class = false if Saklient::Util::exists_path(r, 'Plan') @m_plan = (Saklient::Util::get_by_path(r, 'Plan')).nil? ? nil : Saklient::Cloud::Resources::DiskPlan.new(@_client, Saklient::Util::get_by_path(r, 'Plan')) else @m_plan = nil @is_incomplete = true end @n_plan = false if Saklient::Util::exists_path(r, 'Availability') @m_availability = (Saklient::Util::get_by_path(r, 'Availability')).nil? ? nil : Saklient::Util::get_by_path(r, 'Availability').to_s else @m_availability = nil @is_incomplete = true end @n_availability = false end
@private @param [bool] withClean @return [any]
# File lib/saklient/cloud/resources/archive.rb, line 813 def api_serialize_impl(withClean = false) Saklient::Util::validate_type(withClean, 'bool') missing = [] ret = {} Saklient::Util::set_by_path(ret, 'ID', @m_id) if withClean || @n_id Saklient::Util::set_by_path(ret, 'Scope', @m_scope) if withClean || @n_scope if withClean || @n_name Saklient::Util::set_by_path(ret, 'Name', @m_name) else missing << 'name' if @is_new end Saklient::Util::set_by_path(ret, 'Description', @m_description) if withClean || @n_description if withClean || @n_tags Saklient::Util::set_by_path(ret, 'Tags', []) for r1 in @m_tags v = nil v = r1 ret[:Tags] << v end end Saklient::Util::set_by_path(ret, 'Icon', withClean ? ((@m_icon).nil? ? nil : @m_icon.api_serialize(withClean)) : ((@m_icon).nil? ? { ID: '0' } : @m_icon.api_serialize_id)) if withClean || @n_icon Saklient::Util::set_by_path(ret, 'DisplayOrder', @m_display_order) if withClean || @n_display_order Saklient::Util::set_by_path(ret, 'SizeMB', @m_size_mib) if withClean || @n_size_mib Saklient::Util::set_by_path(ret, 'ServiceClass', @m_service_class) if withClean || @n_service_class Saklient::Util::set_by_path(ret, 'Plan', withClean ? ((@m_plan).nil? ? nil : @m_plan.api_serialize(withClean)) : ((@m_plan).nil? ? { ID: '0' } : @m_plan.api_serialize_id)) if withClean || @n_plan Saklient::Util::set_by_path(ret, 'Availability', @m_availability) if withClean || @n_availability raise Saklient::Errors::SaklientException.new('required_field', 'Required fields must be set before the Archive creation: ' + missing.join(', ')) if missing.length > 0 return ret end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 698 def get_availability return @m_availability end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 448 def get_description return @m_description end
(This method is generated in Translator_default#buildImpl)
@private @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 569 def get_display_order return @m_display_order end
(This method is generated in Translator_default#buildImpl)
@private @return [Icon]
# File lib/saklient/cloud/resources/archive.rb, line 529 def get_icon return @m_icon end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 360 def get_id return @m_id end
@private @return [bool]
# File lib/saklient/cloud/resources/archive.rb, line 140 def get_is_available return get_availability == Saklient::Cloud::Enums::EAvailability::available end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 408 def get_name return @m_name end
(This method is generated in Translator_default#buildImpl)
@private @return [DiskPlan]
# File lib/saklient/cloud/resources/archive.rb, line 674 def get_plan return @m_plan end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 384 def get_scope return @m_scope end
(This method is generated in Translator_default#buildImpl)
@private @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 650 def get_service_class return @m_service_class end
@private @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 159 def get_size_gib sizeMib = get_size_mib return (sizeMib).nil? ? nil : sizeMib >> 10 end
(This method is generated in Translator_default#buildImpl)
@private @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 609 def get_size_mib return @m_size_mib end
(This method is generated in Translator_default#buildImpl)
@private @param [String] v @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 457 def set_description(v) Saklient::Util::validate_type(v, 'String') @m_description = v @n_description = true return @m_description end
(This method is generated in Translator_default#buildImpl)
@private @param [Fixnum] v @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 578 def set_display_order(v) Saklient::Util::validate_type(v, 'Fixnum') @m_display_order = v @n_display_order = true return @m_display_order end
(This method is generated in Translator_default#buildImpl)
@private @param [Icon] v @return [Icon]
# File lib/saklient/cloud/resources/archive.rb, line 538 def set_icon(v) Saklient::Util::validate_type(v, 'Saklient::Cloud::Resources::Icon') @m_icon = v @n_icon = true return @m_icon end
(This method is generated in Translator_default#buildImpl)
@private @param [String] v @return [String]
# File lib/saklient/cloud/resources/archive.rb, line 417 def set_name(v) Saklient::Util::validate_type(v, 'String') @m_name = v @n_name = true return @m_name end
@private @param [Fixnum] sizeGib @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 167 def set_size_gib(sizeGib) Saklient::Util::validate_type(sizeGib, 'Fixnum') set_size_mib((sizeGib).nil? ? nil : sizeGib * 1024) return sizeGib end
(This method is generated in Translator_default#buildImpl)
@private @param [Fixnum] v @return [Fixnum]
# File lib/saklient/cloud/resources/archive.rb, line 618 def set_size_mib(v) Saklient::Util::validate_type(v, 'Fixnum') raise Saklient::Errors::SaklientException.new('immutable_field', 'Immutable fields cannot be modified after the resource creation: ' + 'Saklient::Cloud::Resources::Archive#size_mib') if !@is_new @m_size_mib = v @n_size_mib = true return @m_size_mib end