You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2013/02/27 15:56:39 UTC
git commit: Error responses from server don't have to contain backend
node,
only a message. For example 401 error response looks like: Authentication required
Updated Branches:
refs/heads/master 94e0c127e -> 6e6424af4
Error responses from server don't have to contain backend node, only a message.
For example 401 error response looks like:
<error status='401' url='/api/instances'>
<message>Authentication required</message>
</error>
This patch makes sure that dc-client doesn't fail if 'backend' node is not present.
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/6e6424af
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/6e6424af
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/6e6424af
Branch: refs/heads/master
Commit: 6e6424af4a0a038f7b236d17d760dbaa1ed28686
Parents: 94e0c12
Author: Jan Provaznik <jp...@redhat.com>
Authored: Wed Feb 27 15:56:28 2013 +0100
Committer: Michal fojtik <mf...@redhat.com>
Committed: Wed Feb 27 15:56:28 2013 +0100
----------------------------------------------------------------------
client/lib/deltacloud.rb | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/6e6424af/client/lib/deltacloud.rb
----------------------------------------------------------------------
diff --git a/client/lib/deltacloud.rb b/client/lib/deltacloud.rb
index c3efcde..a58c280 100644
--- a/client/lib/deltacloud.rb
+++ b/client/lib/deltacloud.rb
@@ -366,10 +366,12 @@ module DeltaCloud
DeltaCloud::HTTPError.client_error(response.code)
else
opts = {
- :driver => (xml/'backend').first[:driver],
- :provider => (xml/'backend').first[:provider],
:params => (xml/'request/param').inject({}) { |r,p| r[:"#{p[:name]}"] = p.text; r }
}
+ if backend_node = xml.at_xpath('/error/backend')
+ opts[:driver] = backend_node[:driver]
+ opts[:provider] = backend_node[:provider]
+ end
backtrace = (xml/'backtrace').empty? ? nil : (xml/'backtrace').first.text.split("\n")[1..10].map { |l| l.strip }
DeltaCloud::HTTPError.server_error(xml.root[:status] || response.code,
(xml/'message').first.text, opts, backtrace)