fix HostFilterPolicy

The outer policy should filter on the way in or the way out, not both.
This commit is contained in:
Jim Witschey
2017-07-14 16:10:56 -04:00
parent a528a6c4af
commit 8b07b612ce

View File

@@ -504,20 +504,16 @@ class HostFilterPolicy(LoadBalancingPolicy):
self._predicate = predicate
def on_up(self, host, *args, **kwargs):
if self.predicate(host):
return self._child_policy.on_up(host, *args, **kwargs)
return self._child_policy.on_up(host, *args, **kwargs)
def on_down(self, host, *args, **kwargs):
if self.predicate(host):
return self._child_policy.on_down(host, *args, **kwargs)
return self._child_policy.on_down(host, *args, **kwargs)
def on_add(self, host, *args, **kwargs):
if self.predicate(host):
return self._child_policy.on_add(host, *args, **kwargs)
return self._child_policy.on_add(host, *args, **kwargs)
def on_remove(self, host, *args, **kwargs):
if self.predicate(host):
return self._child_policy.on_remove(host, *args, **kwargs)
return self._child_policy.on_remove(host, *args, **kwargs)
@property
def predicate(self):
@@ -545,10 +541,7 @@ class HostFilterPolicy(LoadBalancingPolicy):
return HostDistance.IGNORED
def populate(self, cluster, hosts):
self._child_policy.populate(
cluster=cluster,
hosts=[h for h in hosts if self.predicate(h)]
)
self._child_policy.populate(cluster=cluster, hosts=hosts)
def make_query_plan(self, working_keyspace=None, query=None):
"""