diff --git a/contrib/cmdclient/http.py b/contrib/cmdclient/http.py
index c833f3f318..0e101d2be5 100644
--- a/contrib/cmdclient/http.py
+++ b/contrib/cmdclient/http.py
@@ -13,6 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import print_function
from twisted.web.client import Agent, readBody
from twisted.web.http_headers import Headers
from twisted.internet import defer, reactor
@@ -72,9 +73,7 @@ class TwistedHttpClient(HttpClient):
@defer.inlineCallbacks
def put_json(self, url, data):
response = yield self._create_put_request(
- url,
- data,
- headers_dict={"Content-Type": ["application/json"]}
+ url, data, headers_dict={"Content-Type": ["application/json"]}
)
body = yield readBody(response)
defer.returnValue((response.code, body))
@@ -94,40 +93,34 @@ class TwistedHttpClient(HttpClient):
"""
if "Content-Type" not in headers_dict:
- raise defer.error(
- RuntimeError("Must include Content-Type header for PUTs"))
+ raise defer.error(RuntimeError("Must include Content-Type header for PUTs"))
return self._create_request(
- "PUT",
- url,
- producer=_JsonProducer(json_data),
- headers_dict=headers_dict
+ "PUT", url, producer=_JsonProducer(json_data), headers_dict=headers_dict
)
def _create_get_request(self, url, headers_dict={}):
""" Wrapper of _create_request to issue a GET request
"""
- return self._create_request(
- "GET",
- url,
- headers_dict=headers_dict
- )
+ return self._create_request("GET", url, headers_dict=headers_dict)
@defer.inlineCallbacks
- def do_request(self, method, url, data=None, qparams=None, jsonreq=True, headers={}):
+ def do_request(
+ self, method, url, data=None, qparams=None, jsonreq=True, headers={}
+ ):
if qparams:
url = "%s?%s" % (url, urllib.urlencode(qparams, True))
if jsonreq:
prod = _JsonProducer(data)
- headers['Content-Type'] = ["application/json"];
+ headers["Content-Type"] = ["application/json"]
else:
prod = _RawProducer(data)
if method in ["POST", "PUT"]:
- response = yield self._create_request(method, url,
- producer=prod,
- headers_dict=headers)
+ response = yield self._create_request(
+ method, url, producer=prod, headers_dict=headers
+ )
else:
response = yield self._create_request(method, url)
@@ -141,27 +134,24 @@ class TwistedHttpClient(HttpClient):
headers_dict["User-Agent"] = ["Synapse Cmd Client"]
retries_left = 5
- print "%s to %s with headers %s" % (method, url, headers_dict)
+ print("%s to %s with headers %s" % (method, url, headers_dict))
if self.verbose and producer:
if "password" in producer.data:
temp = producer.data["password"]
producer.data["password"] = "[REDACTED]"
- print json.dumps(producer.data, indent=4)
+ print(json.dumps(producer.data, indent=4))
producer.data["password"] = temp
else:
- print json.dumps(producer.data, indent=4)
+ print(json.dumps(producer.data, indent=4))
while True:
try:
response = yield self.agent.request(
- method,
- url.encode("UTF8"),
- Headers(headers_dict),
- producer
+ method, url.encode("UTF8"), Headers(headers_dict), producer
)
break
except Exception as e:
- print "uh oh: %s" % e
+ print("uh oh: %s" % e)
if retries_left:
yield self.sleep(2 ** (5 - retries_left))
retries_left -= 1
@@ -169,8 +159,8 @@ class TwistedHttpClient(HttpClient):
raise e
if self.verbose:
- print "Status %s %s" % (response.code, response.phrase)
- print pformat(list(response.headers.getAllRawHeaders()))
+ print("Status %s %s" % (response.code, response.phrase))
+ print(pformat(list(response.headers.getAllRawHeaders())))
defer.returnValue(response)
def sleep(self, seconds):
@@ -178,6 +168,7 @@ class TwistedHttpClient(HttpClient):
reactor.callLater(seconds, d.callback, seconds)
return d
+
class _RawProducer(object):
def __init__(self, data):
self.data = data
@@ -194,9 +185,11 @@ class _RawProducer(object):
def stopProducing(self):
pass
+
class _JsonProducer(object):
""" Used by the twisted http client to create the HTTP body from json
"""
+
def __init__(self, jsn):
self.data = jsn
self.body = json.dumps(jsn).encode("utf8")
|