'Reads oplog progress from file provided by user.
This method is only called once before any threads are spanwed.'

def read_oplog_progress(self):

    if (self.oplog_checkpoint is None):
        return None
    try:
        if (os.stat(self.oplog_checkpoint).st_size == 0):
            LOG.info('MongoConnector:    Empty    oplog    progress    file.')
            return None
    except OSError:
        return None
    with open(self.oplog_checkpoint, 'r') as progress_file:
        try:
            data = json.load(progress_file)
        except ValueError:
            LOG.exception(('Cannot    read    oplog    progress    file    "%s".    It    may    be    corrupt    after    Mongo    Connector    was    shut    downuncleanly.    You    can    try    to    recover    from    a    backup    file    (may    be    called    "%s.backup")    or    create    a    new    progress    file    starting    at    the    current    moment    in    time    by    running    mongo-connector    --no-dump    <other    options>.    You    may    also    be    trying    to    read    an    oplog    progress    file    created    with    the    old    format    for    sharded    clusters.    See    https://github.com/10gen-labs/mongo-connector/wiki/Oplog-Progress-File    for    complete    documentation.' % (self.oplog_checkpoint, self.oplog_checkpoint)))
            return
        if (not isinstance(data[0], list)):
            data = [data]
        with self.oplog_progress:
            self.oplog_progress.dict = dict(((name, util.long_to_bson_ts(timestamp)) for (name, timestamp) in data))
