Skip to content

Commit a7839be

Browse files
committed
tracbuildbot/buildbot_api.py: added support buildbot url with sub_path (like http://my_server/buildbot).
1 parent 12c91fd commit a7839be

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

tracbuildbot/buildbot_api.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class BuildbotConnection(Singleton):
2626
user=""
2727
password=""
2828
max_request_try = 2
29+
pre_path = ""
2930

3031
def __init__(self, url=None):
3132
if url:
@@ -40,21 +41,22 @@ def connect_to(self, url):
4041
self.reconnect()
4142

4243
def reconnect(self):
43-
match = re.match("(.*)://(.*)", self.url)
44+
match = re.match("(.+)://([^/]+)(?:/(.+))?", self.url)
4445
if match:
45-
protocol, server = match.groups()
46+
protocol, server, pre_path = match.groups()
4647
if protocol == "http":
4748
self.connection = httplib.HTTPConnection(server)
4849
elif protocol == "https":
4950
self.connection = httplib.HTTPSConnection(server)
5051
else:
5152
raise BuildbotException("Request failed - unknown protocol")
53+
self.pre_path = pre_path if pre_path else ""
5254

53-
def _request(self, request_msg, method="GET", **kwagrs):
55+
def _request(self, path, method="GET", **kwagrs):
5456
if not self.connection:
5557
raise BuildbotException("Request failed - connection not initialized")
5658

57-
request_msg = urllib.quote(request_msg)
59+
path = urllib.quote(path)
5860

5961
if kwagrs:
6062
kwagrs = urllib.urlencode(kwagrs)
@@ -66,20 +68,20 @@ def _request(self, request_msg, method="GET", **kwagrs):
6668
request_try += 1
6769
r = None
6870
try:
69-
self.connection.request(method, request_msg, kwagrs, self.headers)
71+
self.connection.request(method, self.pre_path + path, kwagrs, self.headers)
7072
r = self.connection.getresponse()
7173

7274
except (socket.error, httplib.CannotSendRequest, httplib.ResponseNotReady) as e:
7375
if not request_try < self.max_request_try:
74-
raise BuildbotException("Request %s failed %s: %s" % (request_msg, "%s.%s" % (e.__module__, type(e).__name__), e))
76+
raise BuildbotException("Request %s failed %s: %s" % (path, "%s.%s" % (e.__module__, type(e).__name__), e))
7577
else:
7678
time.sleep(1)
7779
self.reconnect()
7880
continue
7981

8082
if not (200 <= r.status < 400):
8183
if not request_try < self.max_request_try:
82-
raise BuildbotException("Request %s failed (%s %s)" % (request_msg, r.status, r.reason))
84+
raise BuildbotException("Request %s failed (%s %s)" % (path, r.status, r.reason))
8385
else:
8486
time.sleep(1)
8587
self.reconnect()

0 commit comments

Comments
 (0)