Class: Saklient::Cloud::Resources::DiskConfig

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

Overview

ディスク修正のパラメータ.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, diskId) ⇒ DiskConfig

Returns a new instance of DiskConfig.

Parameters:



322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/saklient/cloud/resources/disk_config.rb', line 322

def initialize(client, diskId)
  Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
  Saklient::Util::validate_type(diskId, 'String')
  @_client = client
  @_disk_id = diskId
  @_host_name = nil
  @_password = nil
  @_ssh_keys = []
  @_ip_address = nil
  @_default_route = nil
  @_network_mask_len = nil
  @_scripts = []
end

Instance Attribute Details

#clientSaklient::Cloud::Client (readonly)



32
33
34
# File 'lib/saklient/cloud/resources/disk_config.rb', line 32

def client
  @client
end

#default_routeString

デフォルトルート

Returns:

  • (String)


250
251
252
# File 'lib/saklient/cloud/resources/disk_config.rb', line 250

def default_route
  @default_route
end

#disk_idString (readonly)

Returns:

  • (String)


54
55
56
# File 'lib/saklient/cloud/resources/disk_config.rb', line 54

def disk_id
  @disk_id
end

#host_nameString

ホスト名

Returns:

  • (String)


86
87
88
# File 'lib/saklient/cloud/resources/disk_config.rb', line 86

def host_name
  @host_name
end

#ip_addressString

IPアドレス

Returns:

  • (String)


214
215
216
# File 'lib/saklient/cloud/resources/disk_config.rb', line 214

def ip_address
  @ip_address
end

#network_mask_lenFixnum

ネットワークマスク長

Returns:

  • (Fixnum)


286
287
288
# File 'lib/saklient/cloud/resources/disk_config.rb', line 286

def network_mask_len
  @network_mask_len
end

#passwordString

ログインパスワード

Returns:

  • (String)


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

def password
  @password
end

#scriptsArray<Script> (readonly)

スタートアップスクリプト Script の配列(pushによりスクリプトを追加できます)

Returns:



313
314
315
# File 'lib/saklient/cloud/resources/disk_config.rb', line 313

def scripts
  @scripts
end

#ssh_keyString

SSHキー

Returns:

  • (String)


169
170
171
# File 'lib/saklient/cloud/resources/disk_config.rb', line 169

def ssh_key
  @ssh_key
end

#ssh_keysArray<String> (readonly)

SSHキー

Returns:

  • (Array<String>)


182
183
184
# File 'lib/saklient/cloud/resources/disk_config.rb', line 182

def ssh_keys
  @ssh_keys
end

Instance Method Details

#add_script(script) ⇒ DiskConfig

スタートアップスクリプトを追加します.

diskConfig.addScript(script) と diskConfig.scripts.push(script) の効果は同等です.

Parameters:

Returns:



342
343
344
345
346
# File 'lib/saklient/cloud/resources/disk_config.rb', line 342

def add_script(script)
  Saklient::Util::validate_type(script, 'Saklient::Cloud::Resources::Script')
  @_scripts << script
  return self
end

#writeDiskConfig

修正内容を実際のディスクに書き込みます.

Returns:



351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
# File 'lib/saklient/cloud/resources/disk_config.rb', line 351

def write
  q = {}
  Saklient::Util::set_by_path(q, 'HostName', @_host_name) if !(@_host_name).nil?
  Saklient::Util::set_by_path(q, 'Password', @_password) if !(@_password).nil?
  Saklient::Util::set_by_path(q, 'SSHKey.PublicKey', @_ssh_keys.join("\n")) if @_ssh_keys.length > 0
  Saklient::Util::set_by_path(q, 'UserIPAddress', @_ip_address) if !(@_ip_address).nil?
  Saklient::Util::set_by_path(q, 'UserSubnet.DefaultRoute', @_default_route) if !(@_default_route).nil?
  Saklient::Util::set_by_path(q, 'UserSubnet.NetworkMaskLen', @_network_mask_len) if !(@_network_mask_len).nil?
  if 0 < @_scripts.length
    notes = []
    for script in @_scripts
      notes << { ID: script._id }
    end
    Saklient::Util::set_by_path(q, 'Notes', notes)
  end
  path = '/disk/' + @_disk_id + '/config'
  @_client.request('PUT', path, q)
  return self
end