module Fog module Compute class RackspaceV2 class Real # Retrieves server detail # @param [String] server_id # @return [Excon::Response] response: # * body [Hash]: # * server [Hash]: # * OS-DCF:diskConfig [String] - The disk configuration value. # * OS-EXT-STS:power_state [Fixnum] - The power state. # * OS-EXT-STS:task_state [String] - The task state. # * OS-EXT-STS:vm_state [String] - The VM state. # * accessIPv4 [String] - The public IP version 4 access address. # * accessIPv6 [String] - The public IP version 6 access address. # * addresses [Hash] - Public and private IP addresses, The version field indicates whether the IP address is version 4 or 6. # * created [String] - created timestamp # * hostId [String] - The host id. # * id [String] - id of image # * image [Hash]: # * id [String] - id of the image # * links [Hash] - links to image # * flavor [Hash]: # * id [String] - id of the flavor # * links [Hash] - links to flavor # * links [Hash] - links to server # * metadata [Hash] - server metadata # * name [String] - name of server # * progress [Fixnum] - progress complete. Value is from 0 to 100. # * rax-bandwidth:bandwidth [Array] - The amount of bandwidth used for the specified audit period. # * status [String] - The server status. # * tenant_id [String] - The tenant ID. # * updated [String] - updated timestamp # * user_id [Array] - The user ID. # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 # @raise [Fog::Compute::RackspaceV2::ServiceError] # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Server_Details-d1e2623.html def get_server(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}" ) end end class Mock def get_server(server_id) server = self.data[:servers][server_id] if server.nil? raise Fog::Compute::RackspaceV2::NotFound else server_response = Fog::Rackspace::MockData.keep(server, 'id', 'name', 'hostId', 'created', 'updated', 'status', 'progress', 'user_id', 'tenant_id', 'links', 'metadata', 'accessIPv4', 'accessIPv6', 'OS-DCF:diskConfig', 'rax-bandwidth:bandwidth', 'addresses', 'flavor', 'image') server_response['image']['links'].map! { |l| l.delete("type"); l } response(:body => {"server" => server_response}) end end end end end end