Index: tools/findit/common/http_client_local.py |
diff --git a/tools/findit/common/http_client_local.py b/tools/findit/common/http_client_local.py |
index fccb0b60266b44fe1300a6d77e78b195685ab671..8907bc03c15cddde2f844537f6e5fb2861c5b97a 100644 |
--- a/tools/findit/common/http_client_local.py |
+++ b/tools/findit/common/http_client_local.py |
@@ -21,6 +21,7 @@ import os |
import re |
import socket |
import ssl |
+import time |
import urllib |
import urllib2 |
@@ -225,7 +226,25 @@ class HttpClientLocal(http_client.HttpClient): |
"""This http client is used locally in a workstation, GCE VMs, etc.""" |
@staticmethod |
- def Get(url, params={}, timeout=None): |
+ def Get(url, params={}, timeout=60, retries=5, retry_interval=0.5, |
+ retry_if_not=None): |
if params: |
url = '%s?%s' % (url, urllib.urlencode(params)) |
- return _SendRequest(url, timeout=timeout) |
+ |
+ count = 0 |
+ while True: |
+ count += 1 |
+ |
+ status_code, content = _SendRequest(url, timeout=timeout) |
+ if status_code == 200: |
+ return status_code, content |
+ if retry_if_not and status_code == retry_if_not: |
+ return status_code, content |
+ |
+ if count < retries: |
+ time.sleep(retry_interval) |
+ else: |
+ return status_code, content |
+ |
+ # Should never be reached. |
+ return status_code, content |