code: def add_host(self, endpoint, datacenter=None, rack=None, signal=True, refresh_nodes=True):
          
          host, new = self.metadata.add_or_return_host(Host(endpoint, self.conviction_policy_factory, datacenter, rack))
          if new and signal:
              log.info("New Cassandra host %r discovered", host)
              self.on_add(host, refresh_nodes)
  
          return host, new
docs: Called when adding initial contact points and when the control
          connection subsequently discovers a new node.
          Returns a Host instance, and a flag indicating whether it was new in
          the metadata.
          Intended for internal use only.