Exemple #1
0
def start():
    parser = argparse.ArgumentParser(description='Harness for querying/testing tscached/kairosdb')

    parser.add_argument('-c', '--config', type=str, default=os.path.abspath('tscached.yaml'),
                        help='Path to config file.')
    args = parser.parse_args()

    with open(args.config, 'r') as config_file:
        config = yaml.load(config_file.read())['tscached']

    redis_client = redis.StrictRedis(host=config['redis']['host'], port=config['redis']['port'])
    perform_readahead(config, redis_client)
Exemple #2
0
def start():
    parser = argparse.ArgumentParser(
        description='Harness for querying/testing tscached/kairosdb')

    parser.add_argument('-c',
                        '--config',
                        type=str,
                        default=os.path.abspath('tscached.yaml'),
                        help='Path to config file.')
    args = parser.parse_args()

    with open(args.config, 'r') as config_file:
        config = yaml.load(config_file.read())['tscached']

    redis_client = getRedisClient()
    perform_readahead(config, redis_client)
Exemple #3
0
def test_perform_readahead_happy_path(m_process, m_from_cache, m_release_leader, m_become_leader):
    redis_cli = MockRedis()

    def _smem(_):
        return set(['tscached:kquery:superspecial'])
    redis_cli.smembers = _smem
    m_become_leader.return_value = True
    kqueries = []
    for ndx in xrange(10):
        kq = KQuery(redis_cli)
        kq.cached_data = {'last_add_data': int(datetime.datetime.now().strftime('%s')) - 1800,
                          'redis_key': 'tscached:kquery:' + str(ndx)}
        kqueries.append(kq)
    m_from_cache.return_value = kqueries
    m_process.return_value = {'sample_size': 666}, 'warm_append'

    assert perform_readahead({}, redis_cli) is None
    assert m_become_leader.call_count == 1
    assert m_release_leader.call_count == 1
    assert m_from_cache.call_count == 1
    assert m_from_cache.call_args_list[0][0] == (['tscached:kquery:superspecial'], redis_cli)
    assert m_process.call_count == 10
    k_t_r = {'start_relative': {'unit': 'minutes', 'value': '24194605'}}
    for ndx in xrange(10):
        assert m_process.call_args_list[ndx][0] == ({}, redis_cli, kqueries[ndx], k_t_r)
Exemple #4
0
def test_perform_readahead_redis_error(m_process, m_from_cache, m_release_leader, m_become_leader):
    redis_cli = MockRedis()

    def _smem(_):
        raise redis.exceptions.RedisError("OOPS!")
    redis_cli.smembers = _smem
    m_become_leader.return_value = True

    assert perform_readahead({}, redis_cli) is None
    assert m_become_leader.call_count == 1
    assert m_release_leader.call_count == 1
    assert m_from_cache.call_count == 0
    assert m_process.call_count == 0
Exemple #5
0
def test_perform_readahead_backend_error(m_process, m_from_cache, m_release_leader, m_become_leader):
    redis_cli = MockRedis()

    def _smem(_):
        return set(['tscached:kquery:superspecial'])
    redis_cli.smembers = _smem
    m_become_leader.return_value = True
    kqueries = []
    for ndx in xrange(10):
        kq = KQuery(redis_cli)
        kq.cached_data = {'last_add_data': int(datetime.datetime.now().strftime('%s')) - 1800,
                          'redis_key': 'tscached:kquery:' + str(ndx)}
        kqueries.append(kq)
    m_from_cache.return_value = kqueries
    m_process.side_effect = BackendQueryFailure('OOPS!')

    assert perform_readahead({}, redis_cli) is None
    assert m_become_leader.call_count == 1
    assert m_release_leader.call_count == 1
    assert m_from_cache.call_count == 1
    assert m_process.call_count == 1
Exemple #6
0
def test_perform_readahead_no_leader(m_become_leader):
    m_become_leader.return_value = False
    assert perform_readahead({}, MockRedis()) is None
    assert m_become_leader.call_count == 1