# 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
# 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
# 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
# File lib/fog/rackspace/models/compute_v2/server.rb, line 188 def confirm_resize requires :identity service.confirm_resize_server(identity) true end
# 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
# 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
# File lib/fog/rackspace/models/compute_v2/server.rb, line 109 def destroy requires :identity service.delete_server(identity) true end
# File lib/fog/rackspace/models/compute_v2/server.rb, line 115 def flavor requires :flavor_id @flavor ||= service.flavors.get(flavor_id) end
# File lib/fog/rackspace/models/compute_v2/server.rb, line 120 def image requires :image_id @image ||= service.images.get(image_id) end
# 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
# 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
# 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
# File lib/fog/rackspace/models/compute_v2/server.rb, line 155 def public_ip_address ipv4_address end
# 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
# 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
# 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
# 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
# File lib/fog/rackspace/models/compute_v2/server.rb, line 194 def revert_resize requires :identity service.revert_resize_server(identity) true end
# File lib/fog/rackspace/models/compute_v2/server.rb, line 74 def save if persisted? update else create end true end
# 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
# 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
Generated with the Darkfish Rdoc Generator 2.