projects
/
osm
/
osmclient.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Bug 934. OSM CLI crashes for listing operations with insufficient permissions
[osm/osmclient.git]
/
osmclient
/
sol005
/
http.py
diff --git
a/osmclient/sol005/http.py
b/osmclient/sol005/http.py
index
aca8a4b
..
9bdf94e
100644
(file)
--- a/
osmclient/sol005/http.py
+++ b/
osmclient/sol005/http.py
@@
-20,6
+20,7
@@
import json
import logging
import copy
from osmclient.common import http
import logging
import copy
from osmclient.common import http
+from osmclient.common.exceptions import OsmHttpException
class Http(http.Http):
class Http(http.Http):
@@
-54,6
+55,7
@@
class Http(http.Http):
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
+ self.check_http_response(http_code, data)
# TODO 202 accepted should be returned somehow
if data.getvalue():
self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode())))
# TODO 202 accepted should be returned somehow
if data.getvalue():
self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode())))
@@
-106,6
+108,7
@@
class Http(http.Http):
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
+ self.check_http_response(http_code, data)
if data.getvalue():
self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode())))
return http_code, data.getvalue().decode()
if data.getvalue():
self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode())))
return http_code, data.getvalue().decode()
@@
-150,8
+153,15
@@
class Http(http.Http):
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
self._logger.info("Response HTTPCODE: {}".format(http_code))
curl_cmd.close()
+ self.check_http_response(http_code, data)
if data.getvalue():
self._logger.debug("Response DATA: {}".format(json.loads(data.getvalue().decode())))
return http_code, data.getvalue().decode()
return http_code, None
if data.getvalue():
self._logger.debug("Response DATA: {}".format(json.loads(data.getvalue().decode())))
return http_code, data.getvalue().decode()
return http_code, None
+ def check_http_response(self, http_code, data):
+ if http_code >= 300:
+ resp = ""
+ if data.getvalue():
+ resp=": " + data.getvalue().decode()
+ raise OsmHttpException("Error {}{}".format(http_code, resp))