Class/Module Index [+]

Quicksearch

Fog::Compute::RackspaceV2::Server

Attributes

password[R]

Public Class Methods

new(attributes={}) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 49
def initialize(attributes={})
  @service = attributes[:service]
  super
end

Public Instance Methods

attach_volume(volume, device=nil) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 145
def attach_volume(volume, device=nil)
  requires :identity
  volume_id = volume.is_a?(String) ? volume : volume.id
  attachments.create(:server_id => identity, :volume_id => volume_id, :device => device)
end
attachments() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 136
def attachments
  @attachments ||= begin
    Fog::Compute::RackspaceV2::Attachments.new({
      :service => service,
      :server => self
    })
  end
end
change_admin_password(password) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 200
def change_admin_password(password)
  requires :identity
  service.change_server_password(identity, password)
  self.state = PASSWORD
  @password = password
  true
end
confirm_resize() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 188
def confirm_resize
  requires :identity
  service.confirm_resize_server(identity)
  true
end
create() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 83
def create
  requires :name, :image_id, :flavor_id

  options = {}
  options[:disk_config] = disk_config unless disk_config.nil?
  options[:metadata] = metadata unless @metadata.nil?
  options[:personality] = personality unless personality.nil?

  data = service.create_server(name, image_id, flavor_id, 1, 1, options)
  merge_attributes(data.body['server'])
  true
end
create_image(name, options = {}) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 125
def create_image(name, options = {})
  requires :identity
  response = service.create_image(identity, name, options)
  begin 
    image_id = response.headers["Location"].match(/\/([^\/]+$)/)[1]
    Fog::Compute::RackspaceV2::Image.new(:collection => service.images, :service => service, :id => image_id)
  rescue
    nil
  end
end
destroy() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 109
def destroy
  requires :identity
  service.delete_server(identity)
  true
end
flavor() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 115
def flavor
  requires :flavor_id
  @flavor ||= service.flavors.get(flavor_id)
end
image() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 120
def image
  requires :image_id
  @image ||= service.images.get(image_id)
end
metadata() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 59
def metadata
  raise "Please save server before accessing metadata" unless identity
  @metadata ||= begin
    Fog::Compute::RackspaceV2::Metadata.new({
      :service => service,
      :parent => self
    })
  end
end
metadata=(hash={}) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 69
def metadata=(hash={})
  raise "Please save server before accessing metadata" unless identity
  metadata.from_hash(hash)
end
private_ip_address() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 151
def private_ip_address
  addresses['private'].select{|a| a["version"] == 4}[0]["addr"]
end
public_ip_address() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 155
def public_ip_address
  ipv4_address
end
ready?(ready_state = ACTIVE, error_states=[ERROR]) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 159
def ready?(ready_state = ACTIVE, error_states=[ERROR])
  if error_states
    error_states = Array(error_states)
    raise "Server should have transitioned to '#{ready_state}' not '#{state}'" if error_states.include?(state)
  end
  state == ready_state
end
reboot(type = 'SOFT') click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 167
def reboot(type = 'SOFT')
  requires :identity
  service.reboot_server(identity, type)
  self.state = type == 'SOFT' ? REBOOT : HARD_REBOOT
  true
end
rebuild(image_id, options={}) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 181
def rebuild(image_id, options={})
  requires :identity
  service.rebuild_server(identity, image_id, options)
  self.state = REBUILD
  true
end
resize(flavor_id) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 174
def resize(flavor_id)
  requires :identity
  service.resize_server(identity, flavor_id)
  self.state = RESIZE
  true
end
revert_resize() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 194
def revert_resize
  requires :identity
  service.revert_resize_server(identity)
  true
end
save() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 74
def save
  if persisted?
    update
  else
    create
  end
  true
end
setup(credentials = {}) click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 208
def setup(credentials = {})
  requires :public_ip_address, :identity, :public_key, :username
  Fog::SSH.new(public_ip_address, username, credentials).run([
    %{mkdir .ssh},
    %{echo "#{public_key}" >> ~/.ssh/authorized_keys},
    %{passwd -l #{username}},
    %{echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json},
    %{echo "#{Fog::JSON.encode(metadata)}" >> ~/metadata.json}
  ])
rescue Errno::ECONNREFUSED
  sleep(1)
  retry
end
update() click to toggle source
# File lib/fog/rackspace/models/compute_v2/server.rb, line 96
def update
  requires :identity
  options = {
    'name' => name,
    'accessIPv4' => ipv4_address,
    'accessIPv6' => ipv6_address
  }
  
  data = service.update_server(identity, options)
  merge_attributes(data.body['server'])
  true
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.