Class/Module Index [+]

Quicksearch

Fog::Vcloud::Compute::Server

Public Instance Methods

add_disk(size) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 140
def add_disk(size)
  if @disk_change == :deleted
    raise RuntimeError, "Can't add a disk w/o saving changes or reloading"
  else
    load_unless_loaded!
    @disk_change = :added

    @add_disk = {
      :'rasd:HostResource' => {:vcloud_capacity => size},
      :'rasd:AddressOnParent' =>  (disk_mess.map { |dm| dm[:'rasd:AddressOnParent'] }.sort.last.to_i + 1).to_s,
      :'rasd:ResourceType' => '17'
    }
  end
  true
end
computer_name() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 31
def computer_name
  load_unless_loaded!
  self.guest_customization[:ComputerName]
end
cpus() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 98
def cpus
  if cpu_mess
    { :count => cpu_mess[:"rasd:VirtualQuantity"].to_i,
      :units => cpu_mess[:"rasd:AllocationUnits"] }
  end
end
cpus=(qty) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 105
def cpus=(qty)
  return if qty.nil? or qty.size == 0

  @changed = true
  @update_cpu_value = qty
  qty
end
delete() click to toggle source
Alias for: destroy
delete_disk(number) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 156
def delete_disk(number)
  if @disk_change == :added
    raise RuntimeError, "Can't delete a disk w/o saving changes or reloading"
  else
    load_unless_loaded!
    unless number == 0
      @disk_change = :deleted
      @remove_disk = number
    end
  end
  true
end
description=(description) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 169
def description=(description)
  @description_changed = true unless attributes[:description] == description || attributes[:description] == nil
  attributes[:description] = description
end
destroy() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 244
def destroy
  if on?
    undeploy
    wait_for { off? }
  end
  wait_for { off? } # be sure..
  wait_for { ready? } # be doubly sure..
  sleep 2 # API lies. need to give it some time to be happy.
  service.delete_vapp(href).body[:status] == "running"
end
Also aliased as: delete
disks() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 134
def disks
  disk_mess.map do |dm|
    { :number => dm[:"rasd:AddressOnParent"].to_i, :size => dm[:"rasd:HostResource"][:vcloud_capacity].to_i, :resource => dm[:"rasd:HostResource"], :disk_data => dm }
  end
end
graceful_restart() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 78
def graceful_restart
  requires :href
  shutdown
  wait_for { off? }
  power_on
end
ip_addresses() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 46
def ip_addresses
  load_unless_loaded!
  [self.network_connections].flatten.collect{|n| n[:IpAddress] }
end
memory() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 113
def memory
  if memory_mess
    { :amount => memory_mess[:"rasd:VirtualQuantity"].to_i,
      :units => memory_mess[:"rasd:AllocationUnits"] }
  end
end
memory=(amount) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 120
def memory=(amount)
  return if amount.nil? or amount.size == 0
  @changed = true
  @update_memory_value = amount
  amount
end
name=(new_name) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 85
def name=(new_name)
  attributes[:name] = new_name
  @changed = true
end
network() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 126
def network
  network_connections[:NetworkConnection] if network_connections
end
network=(network_info) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 129
def network=(network_info)
  @changed = true
  @update_network = network_info
  network_info
end
os_desc() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 36
def os_desc
  load_unless_loaded!
  self.operating_system[:'ovf:Description']
end
os_type() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 41
def os_type
  load_unless_loaded!
  self.operating_system[:vmw_osType]
end
password() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 89
def password
  guest_customization[:AdminPassword]
end
password=(password) click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 93
def password=(password)
  return if password.nil? or password.size == 0
  @changed = true
  @update_password = password
end
power_off() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 61
def power_off
  power_operation( :power_off => :powerOff )
end
power_on() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 57
def power_on
  power_operation( :power_on => :powerOn )
end
power_reset() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 69
def power_reset
  power_operation( :power_reset => :reset )
end
ready?() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 51
def ready?
  reload_status # always ensure we have the correct status
  running_tasks = self.tasks && self.tasks.flatten.any? {|ti| ti.kind_of?(Hash) && ti[:status] == 'running' }
  status != '0' && !running_tasks # 0 is provisioning, and no running tasks
end
reload() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 179
def reload
  reset_tracking
  super
end
save() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 184
def save
  unless persisted?
    #Lame ...
    raise RuntimeError, "Should not be here"
  else
    if on?
      if @changed
        raise RuntimeError, "Can't save cpu, name or memory changes while the VM is on."
      end
    end

    if @update_password
        guest_customization[:AdminPassword] = @update_password.to_s
        service.configure_vm_password(guest_customization)
        wait_for { ready? }
    end

    if @update_cpu_value
      cpu_mess[:"rasd:VirtualQuantity"] = @update_cpu_value.to_s
      service.configure_vm_cpus(cpu_mess)
      wait_for { ready? }
    end

    if @update_memory_value
      memory_mess[:"rasd:VirtualQuantity"] = @update_memory_value.to_s
      service.configure_vm_memory(memory_mess)
      wait_for { ready? }
    end

    if @update_network
      network_connections[:NetworkConnection][:network] = @update_network[:network_name]
      network_connections[:NetworkConnection][:IpAddressAllocationMode] = @update_network[:network_mode]
      service.configure_vm_network(network_connections)
      wait_for { ready? }
    end
    if @disk_change == :deleted
      data = disk_mess.delete_if do |vh|
        vh[:'rasd:ResourceType'] == '17' &&
          vh[:'rasd:AddressOnParent'].to_s == @remove_disk.to_s
      end
      service.configure_vm_disks(self.href, data)
      wait_for { ready? }
    end
    if @disk_change == :added
      data = disk_mess
      data << @add_disk
      service.configure_vm_disks(self.href, data)
      wait_for { ready? }
    end
    if @name_changed || @description_changed
      edit_uri = links.select {|i| i[:rel] == 'edit'}
      edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[0][:href] : edit_uri[:href]
      service.configure_vm_name_description(edit_uri, self.name, self.description)
      wait_for { ready? }
    end
  end
  reset_tracking
  true
end
shutdown() click to toggle source
# File lib/fog/vcloud/models/compute/server.rb, line 65
def shutdown
  power_operation( :power_shutdown => :shutdown )
end
undeploy() click to toggle source

This is the real power-off operation

# File lib/fog/vcloud/models/compute/server.rb, line 74
def undeploy
  service.undeploy href
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.