def _RemoveSink(self, endpoint):
    """Invoked when a node is removed from the underlying server set.

    If the node is currently active, it is removed from the aperture and replaced
    by an idle node (if one is available).  Otherwise, it is simply discarded.

    Args:
      endpoint - The endpoint being removed from the server set.
    """
    removed = super(ApertureBalancerSink, self)._RemoveSink(endpoint)
    if removed:
      self._TryExpandAperture()
    if endpoint in self._idle_endpoints:
      self._idle_endpoints.discard(endpoint)
    self._UpdateSizeVarz()
dataset/ETHPy150Open steveniemitz/scales/scales/loadbalancer/aperture.py/ApertureBalancerSink._RemoveSink/original