code: def _discoverAndVerify(self, claimed_id, to_match_endpoints):
          
          logging.info('Performing discovery on %s' % (claimed_id,))
          _, services = self._discover(claimed_id)
          if not services:
              raise DiscoveryFailure('No OpenID information found at %s' %
                                     (claimed_id,), None)
          return self._verifyDiscoveredServices(claimed_id, services,
                                                to_match_endpoints)
docs: Given an endpoint object created from the information in an
          OpenID response, perform discovery and verify the discovery
          results, returning the matching endpoint that is the result of
          doing that discovery.
  
          @type to_match: openid.consumer.discover.OpenIDServiceEndpoint
          @param to_match: The endpoint whose information we're confirming
  
          @rtype: openid.consumer.discover.OpenIDServiceEndpoint
          @returns: The result of performing discovery on the claimed
              identifier in `to_match'
  
          @raises DiscoveryFailure: when discovery fails.