2 mirrorlist changes for this week
Matt Domsch
Matt_Domsch at dell.com
Mon Nov 5 17:34:30 UTC 2007
On Mon, Nov 05, 2007 at 08:15:07AM -0800, Toshio Kuratomi wrote:
> Matt Domsch wrote:
>
> >2) If a user isn't resolved by GeoIP, they will be given the global
> > list, but without excluding mirrors who have an Exclusive Country
> > set (e.g. Vasile's server really only wants traffic from .md users,
> > but he sees global users). This requires a change to
> > mirrorlist_server.py trim_by_client_country() which I haven't made
> > yet, but will look into doing so. We should make this change to
> > provide better accurate clients to our mirrors to keep their
> > expenses down. I'll post the patch here for review before implementing.
>
> I'm not sure how invasive this will be but it does sound like something
> we want to keep our mirrors happy. Maybe seeing the patch first will
> be better for deciding if it's too big a change during the freeze.
Here's the resulting function. I think this is very clear code now,
and it works for me tested against live data on pt1.
def trim_by_client_country(hostresults, clientCountry):
results = []
for hostid, hcurl in hostresults:
if hostid not in host_country_allowed_cache or \
clientCountry in host_country_allowed_cache[hostid]:
results.append((hostid, hcurl))
return results
Patch follows.
--
Matt Domsch
Linux Technology Strategist, Dell Office of the CTO
linux.dell.com & www.dell.com/linux
diff --git a/mirrors/server-scripts/mirrorlist_server.py b/mirrors/server-scripts/mirrorlist_server.py
index cf703ff..c7e17e0 100755
--- a/mirrors/server-scripts/mirrorlist_server.py
+++ b/mirrors/server-scripts/mirrorlist_server.py
@@ -82,18 +82,11 @@ def client_in_host_allowed(clientCountry, hostID):
def trim_by_client_country(hostresults, clientCountry):
- if clientCountry is None:
- return hostresults
-
results = []
-
for hostid, hcurl in hostresults:
- if not host_country_allowed_cache.has_key(hostid):
+ if hostid not in host_country_allowed_cache or \
+ clientCountry in host_country_allowed_cache[hostid]:
results.append((hostid, hcurl))
- else:
- if clientCountry in host_country_allowed_cache[hostid]:
- results.append((hostid, hcurl))
-
return results
More information about the infrastructure
mailing list