lib/cfoundry/v1/base.rb in cfoundry-0.3.46 vs lib/cfoundry/v1/base.rb in cfoundry-0.3.47

- old
+ new

@@ -32,162 +32,158 @@ end # Cloud metadata def info - get("info", nil => :json) + get("info", :accept => :json) end def system_services - get("info", "services", nil => :json) + get("info", "services", :accept => :json) end def system_runtimes - get("info", "runtimes", nil => :json) + get("info", "runtimes", :accept => :json) end # Users def users - get("users", nil => :json) + get("users", :accept => :json) end def create_user(payload) - post(payload, "users", :json => nil) + post(payload, "users", :content => :json) end def user(email) - get("users", email, nil => :json) + get("users", email, :accept => :json) end def delete_user(email) - delete("users", email, nil => :json) + delete("users", email, :accept => :json) true end def update_user(email, payload) - put(payload, "users", email, :json => nil) + put(payload, "users", email, :content => :json) end def create_token(payload, email) - post(payload, "users", email, "tokens", :json => :json) + post(payload, "users", email, "tokens", + :content => :json, :accept => :json) end # Applications def apps - get("apps", nil => :json) + get("apps", :accept => :json) end def create_app(payload) - post(payload, "apps", :json => :json) + post(payload, "apps", :content => :json, :accept => :json) end def app(name) - get("apps", name, nil => :json) + get("apps", name, :accept => :json) end def instances(name) - get("apps", name, "instances", nil => :json)[:instances] + get("apps", name, "instances", :accept => :json)[:instances] end def crashes(name) - get("apps", name, "crashes", nil => :json)[:crashes] + get("apps", name, "crashes", :accept => :json)[:crashes] end def files(name, instance, *path) get("apps", name, "instances", instance, "files", *path) end alias :file :files def update_app(name, payload) - put(payload, "apps", name, :json => nil) + put(payload, "apps", name, :content => :json) end def delete_app(name) delete("apps", name) true end def stats(name) - get("apps", name, "stats", nil => :json) + get("apps", name, "stats", :accept => :json) end def check_resources(fingerprints) - post(fingerprints, "resources", :json => :json) + post(fingerprints, "resources", :content => :json, :accept => :json) end def upload_app(name, zipfile, resources = []) payload = { :_method => "put", :resources => MultiJson.dump(resources), - :multipart => true, :application => - if zipfile.is_a? File - zipfile - elsif zipfile.is_a? String - File.new(zipfile, "rb") - end + UploadIO.new( + if zipfile.is_a? File + zipfile + elsif zipfile.is_a? String + File.new(zipfile, "rb") + end, + "application/zip") } post(payload, "apps", name, "application") - rescue RestClient::ServerBrokeConnection + rescue EOFError retry end # Services def services - get("services", nil => :json) + get("services", :accept => :json) end def create_service(manifest) - post(manifest, "services", :json => :json) + post(manifest, "services", :content => :json, :accept => :json) end def service(name) - get("services", name, nil => :json) + get("services", name, :accept => :json) end def delete_service(name) - delete("services", name, nil => :json) + delete("services", name, :accept => :json) true end private def handle_response(response, accept) - json = accept == :json - - case response.code - when 200, 201, 204, 301, 302, 307 - if accept == :headers - return response.headers - end - - if json - if response.code == 204 + case response + when Net::HTTPSuccess, Net::HTTPRedirection + if accept == :json + if response.is_a?(Net::HTTPNoContent) raise "Expected JSON response, got 204 No Content" end - parse_json(response) + parse_json(response.body) else - response + response.body end - when 400, 403 - info = parse_json(response) + when Net::HTTPBadRequest, Net::HTTPForbidden + info = parse_json(response.body) raise CFoundry::Denied.new(403, info[:description]) - when 404 + when Net::HTTPNotFound raise CFoundry::NotFound - when 411, 500, 504 + when Net::HTTPServerError begin - raise_error(parse_json(response)) + raise_error(parse_json(response.body)) rescue MultiJson::DecodeError - raise CFoundry::BadResponse.new(response.code, response) + raise CFoundry::BadResponse.new(response.code, response.body) end else - raise CFoundry::BadResponse.new(response.code, response) + raise CFoundry::BadResponse.new(response.code, response.body) end end def raise_error(info) case info[:code]