@gen.engine
  def CheckAllViewpoints(self, callback, last_scan=None):
    # Clear email args used for testing.
    self._email_args = None

    # Only scan for newly updated viewpoints if previous scan has taken place.
    if last_scan is None:
      scan_filter = None
    else:
      scan_filter = {'last_updated': db_client.ScanFilter([last_scan], 'GE')}

    yield gen.Task(self._ThrottledScan,
                   Viewpoint,
                   visitor=self.CheckViewpoint,
                   scan_filter=scan_filter,
                   max_read_units=Viewpoint._table.read_units)

    # Force a check of all visited users, we may have some remaining.
    yield gen.Task(self._CheckVisitedUsers)

    # Check to see whether a corruption report needs to be emailed.
    yield gen.Task(self._SendEmail)

    callback()
L{Enhancement.createFor} will create an enhancement of the appropriate
dataset/ETHPy150Open viewfinderco/viewfinder/backend/db/tools/dbchk.py/DatabaseChecker.CheckAllViewpoints--crossover with--dataset/ETHPy150Open twisted/imaginary/imaginary/test/test_enhancement.py/EnhancementTests.test_createForSimple