func()

in go/storage/rediscache.go [312:344]


func (ec *RedisCache) Restore(aEpoch uint64, aLogStates []types.CTLogState) error {
	commitToken, err := ec.AcquireCommitLock()
	if err != nil || commitToken == nil {
		return fmt.Errorf("Failed to acquire commit lock: %s", err)
	}
	defer ec.ReleaseCommitLock(*commitToken)

	logKeys, err := ec.client.Keys("log::*").Result()
	if err != nil {
		return err
	}

	for _, logKey := range logKeys {
		err = ec.client.Del(logKey).Err()
		if err != nil {
			return err
		}
	}

	for _, logState := range aLogStates {
		err := ec.StoreLogState(&logState)
		if err != nil {
			return err
		}
	}

	err = ec.client.Set(EPOCH_KEY, aEpoch, NO_EXPIRATION).Err()
	if err != nil {
		return err
	}

	return nil
}