예제 #1
0
def simple_handshake_demo():
    upr_client = UprClient('127.0.0.1', 12000)
    mcd_client = McdClient('127.0.0.1', 12000)
    op = upr_client.open_producer("mystream")
    print 'Sending open connection (producer)'
    print op
    response = op.next_response()
    print 'Response: %s\n' % response
    assert response['status'] == SUCCESS

    op = upr_client.stream_req(0, 0, 0, 0, 0, 0)
    print 'Sending Stream Request'
    print op
    while op.has_response():
        response = op.next_response()
        print 'Response: %s' % response
        assert response['status'] == SUCCESS
    print '\nGet Tap Stats\n'

    op = mcd_client.stats('tap')
    response = op.next_response()
    pprint.pprint(response['value'])

    upr_client.shutdown()
    print '\n'
    print 'Closed Upr Connection'
    print '\nGet Tap Stats\n'

    op = mcd_client.stats('tap')
    response = op.next_response()
    pprint.pprint(response['value'])

    mcd_client.shutdown()
예제 #2
0
def multiple_streams(host, port):
    upr_client = UprClient(host, port)
    mcd_client = McdClient(host, port)

    op = upr_client.sasl_auth_plain('gamesim-sample', '')
    response = op.next_response()
    assert response['status'] == SUCCESS

    op = mcd_client.sasl_auth_plain('gamesim-sample', '')
    response = op.next_response()
    assert response['status'] == SUCCESS

    num_vbs = 10
    op = mcd_client.stats('vbucket-seqno')
    resp = op.next_response()
    assert resp['status'] == SUCCESS

    op = upr_client.open_producer("mystream")
    response = op.next_response()
    assert response['status'] == SUCCESS

    streams = {}
    for vb in range(num_vbs):
        en = int(resp['value']['vb_%d_high_seqno' % vb])
        op = upr_client.stream_req(vb, 0, 0, en, 0, 0)
        print "Create stream vb %d st 0 en %d" %  (vb, en)
        streams[vb] = {'op' : op,
                       'mutations' : 0,
                       'last_seqno' : 0 }

    while len(streams) > 0:
        for vb in streams.keys():
            if streams[vb]['op'].has_response():
                response = streams[vb]['op'].next_response()
                if response['opcode'] == CMD_STREAM_REQ:
                    assert response['status'] == SUCCESS
                elif response['opcode'] == CMD_SNAPSHOT_MARKER:
                    pass
                elif response['opcode'] == CMD_MUTATION:
                    assert response['by_seqno'] > streams[vb]['last_seqno']
                    streams[vb]['last_seqno'] = response['by_seqno']
                    streams[vb]['mutations'] = streams[vb]['mutations'] + 1

                    vb = response['vbucket']
                    key = response['key']
                    seqno =  response['by_seqno']
                    print 'VB: %d got key %s with seqno %d' % (vb, key, seqno)
                else:
                    del streams[vb]

    upr_client.shutdown()
    mcd_client.shutdown()
예제 #3
0
파일: twoway.py 프로젝트: tahmmee/pydcp
def two_way_demo():
    consumer = UprClient('127.0.0.1', 5000)
    producer = UprClient('127.0.0.1', 5001)
    consumer.set_proxy(producer)
    producer.set_proxy(consumer)

    mcd_consumer = McdClient('127.0.0.1', 5000)
    mcd_producer = McdClient('127.0.0.1', 5001)

    response = get_resp(consumer.open_consumer("mystream"), 'Sending open connection (consumer)')
    assert response['status'] == SUCCESS

    response = get_resp(producer.open_producer("mystream"), 'Sending open connection (producer)')
    assert response['status'] == SUCCESS

    response = get_resp(consumer.add_stream(0, 0), 'Sending add stream request for vbucket 0')
    assert response['status'] == SUCCESS

    op = mcd_consumer.stats('upr')
    response = op.next_response()
    print response['value']
    assert response['value']['ep_upr_count'] == '1'

    op = mcd_producer.stats('upr')
    response = op.next_response()
    print response['value']
    assert response['value']['ep_upr_count'] == '1'

    get_resp(mcd_producer.set("key", "blah", 0, 0, 0), 'Create mutation on producer')

    time.sleep(3)
    get_resp(mcd_producer.delete("key", 0), 'Create mutation on producer')

    time.sleep(10)

    consumer.shutdown()
    producer.shutdown()
    mcd_consumer.shutdown()
    mcd_producer.shutdown()
예제 #4
0
def add_stream_demo():
    upr_client = UprClient('127.0.0.1', 12000)
    mcd_client = McdClient('127.0.0.1', 12000)
    op = upr_client.open_consumer("mystream")
    print 'Sending open connection (consumer)'
    print op
    response = op.next_response()
    print 'Response: %s\n' % response
    assert response['status'] == SUCCESS

    op = upr_client.add_stream(0, 0)
    print 'Sending add stream request'
    print op
    response = op.next_response()
    assert response['status'] == SUCCESS
    print 'Got add stream response'
    print response

    upr_client.shutdown()
    mcd_client.shutdown()