/lib/fog/rackspace/requests/compute_v2/get_server.rb
https://gitlab.com/debian-ruby/ruby-fog-rackspace · Ruby · 63 lines · 27 code · 1 blank · 35 comment · 1 complexity · dffe45a4ca7a54bb91014c5035ec99df MD5 · raw file
- 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