diff --git a/pydruid/client.py b/pydruid/client.py index 6a7b7b12..ce8197a6 100755 --- a/pydruid/client.py +++ b/pydruid/client.py @@ -36,15 +36,21 @@ def __init__(self,url,endpoint): self.query_type = None def post(self,query): - querystr = json.dumps(query) - url = self.url + '/' + self.endpoint - headers = {'Content-Type' : 'application/json'} - req = urllib2.Request(url, querystr, headers) - res = urllib2.urlopen(req) - data = res.read() - self.result_json = data; - self.querystr = querystr - res.close() + try: + querystr = json.dumps(query) + url = self.url + '/' + self.endpoint + headers = {'Content-Type' : 'application/json'} + req = urllib2.Request(url, querystr, headers) + res = urllib2.urlopen(req) + data = res.read() + self.result_json = data; + res.close() + except urllib2.HTTPError, e: + raise IOError('Malformed query: \n {0}'.format(json.dumps(self.query_dict, indent = 4))) + else: + self.result = self.parse() + parsed = self.parse() + return parsed def parse(self): if self.result_json: @@ -126,16 +132,9 @@ def timeseries(self, **args): else: query_dict[key] = val - self.query_dict = query_dict - - try: - self.post(query_dict) - except urllib2.HTTPError, e: - raise IOError('Malformed query: \n {0}'.format(json.dumps(self.query_dict ,indent = 4))) - else: - self.result = self.parse() - self.query_type = "timeseries" - return self.result + self.query_dict = query_dict + self.query_type = 'timeseries' + return self.post(query_dict) def groupBy(self, **args): @@ -156,15 +155,8 @@ def groupBy(self, **args): query_dict[key] = val self.query_dict = query_dict - - try: - self.post(query_dict) - except urllib2.HTTPError, e: - raise IOError('Malformed query: \n {0}'.format(json.dumps(self.query_dict ,indent = 4))) - else: - self.result = self.parse() - self.query_type = "groupby" - return self.parse() + self.query_type = 'groupby' + return self.post(query_dict) def segmentMetadata(self, **args): @@ -178,14 +170,8 @@ def segmentMetadata(self, **args): query_dict[key] = val self.query_dict = query_dict - - try: - self.post(query_dict) - except urllib2.HTTPError, e: - raise IOError('Malformed query: \n {0}'.format(json.dumps(self.query_dict ,indent = 4))) - else: - self.result = self.parse() - return self.parse() + self.query_type = 'segmentMetadata' + return self.post(query_dict) def timeBoundary(self, **args): @@ -198,10 +184,6 @@ def timeBoundary(self, **args): else: query_dict[key] = val - try: - self.post(query_dict) - except urllib2.HTTPError, e: - raise IOError('Malformed query: \n {0}'.format(json.dumps(self.query_dict ,indent = 4))) - else: - self.result = self.parse() - return self.parse() + self.query_dict = query_dict + self.query_type = 'timeBoundary' + return self.post(query_dict)