|
7 | 7 | import logging
|
8 | 8 | from httplib2 import Http
|
9 | 9 |
|
10 |
| -from django.conf import settings |
11 | 10 | import redis
|
| 11 | +from django.conf import settings |
| 12 | +from django.core.cache import cache |
12 | 13 |
|
13 | 14 |
|
14 | 15 | log = logging.getLogger(__name__)
|
@@ -149,18 +150,21 @@ def purge_version(version, mainsite=False, subdomain=False, cname=False):
|
149 | 150 | log.info("Purging %s on readthedocs.org", root_url)
|
150 | 151 | h.request(to_purge, method="PURGE", headers=headers)
|
151 | 152 | if cname:
|
152 |
| - redis_conn = redis.Redis(**settings.REDIS) |
153 |
| - for cnamed in redis_conn.smembers('rtd_slug:v1:%s' |
154 |
| - % version.project.slug): |
155 |
| - headers = {'Host': cnamed} |
156 |
| - url = "/en/%s/*" % version.slug |
157 |
| - to_purge = "http://%s%s" % (server, url) |
158 |
| - log.info("Purging %s on %s", url, cnamed) |
159 |
| - h.request(to_purge, method="PURGE", headers=headers) |
160 |
| - root_url = "/" |
161 |
| - to_purge = "http://%s%s" % (server, root_url) |
162 |
| - log.info("Purging %s on %s", root_url, cnamed) |
163 |
| - h.request(to_purge, method="PURGE", headers=headers) |
| 153 | + try: |
| 154 | + redis_client = cache.get_client(None) |
| 155 | + for cnamed in redis_client.smembers('rtd_slug:v1:%s' |
| 156 | + % version.project.slug): |
| 157 | + headers = {'Host': cnamed} |
| 158 | + url = "/en/%s/*" % version.slug |
| 159 | + to_purge = "http://%s%s" % (server, url) |
| 160 | + log.info("Purging %s on %s", url, cnamed) |
| 161 | + h.request(to_purge, method="PURGE", headers=headers) |
| 162 | + root_url = "/" |
| 163 | + to_purge = "http://%s%s" % (server, root_url) |
| 164 | + log.info("Purging %s on %s", root_url, cnamed) |
| 165 | + h.request(to_purge, method="PURGE", headers=headers) |
| 166 | + except (AttributeError, redis.exceptions.ConnectionError): |
| 167 | + pass |
164 | 168 |
|
165 | 169 |
|
166 | 170 | class DictObj(object):
|
|
0 commit comments