def request(method_name, options = {})
options.merge!( {:format => 'json'})
begin
parser = options.delete(:parser)
data = @connection.request(
:expects => 200,
:method => "POST",
:body => urlencode(options),
:parser => parser,
:path => method_name,
:headers => {
'Authorization' => "Basic #{encoded_api_auth}",
'Content-Type' => 'application/x-www-form-urlencoded'
}
)
data.body = MultiJson.decode(data.body)
response_code = data.body['response']['status']['code']
unless response_code.to_i == 200
raise Fog::Compute::Glesys::Error, "#{data.body['response']['status']['text']}"
end
data
rescue Excon::Errors::HTTPStatusError => error
raise case error
when Excon::Errors::NotFound
Fog::Compute::Glesys::NotFound.slurp(error)
else
error
end
end
end