Restore register.py script removed in 5ace0dd892

This is intended to be an example of using the protocol from something
other than C++ and to be a building block for future test clients.
This commit is contained in:
Gavin Bisesi 2015-09-03 09:13:31 -04:00
parent f4ae08f8b1
commit ebc4011559
2 changed files with 83 additions and 0 deletions

10
servatrice/scripts/mk_pypb.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
SRC_DIR=../../common/pb/
DST_DIR=./pypb
rm -rf "$DST_DIR"
mkdir -p "$DST_DIR"
protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/*.proto
touch "$DST_DIR/__init__.py"

73
servatrice/scripts/register.py Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env python
import socket, sys, struct, time
from pypb.server_message_pb2 import ServerMessage
from pypb.session_commands_pb2 import Command_Register as Reg
from pypb.commands_pb2 import CommandContainer as Cmd
from pypb.event_server_identification_pb2 import Event_ServerIdentification as ServerId
from pypb.response_pb2 import Response
HOST = "localhost"
PORT = 4747
CMD_ID = 1
def build_reg():
global CMD_ID
cmd = Cmd()
sc = cmd.session_command.add()
reg = sc.Extensions[Reg.ext]
reg.user_name = "testUser"
reg.email = "test@example.com"
reg.password = "password"
cmd.cmd_id = CMD_ID
CMD_ID += 1
return cmd
def send(msg):
packed = struct.pack('>I', len(msg))
sock.sendall(packed)
sock.sendall(msg)
def print_resp(resp):
print "<<<"
print repr(resp)
m = ServerMessage()
m.ParseFromString(bytes(resp))
print m
def recv(sock):
print "< header"
header = sock.recv(4)
msg_size = struct.unpack('>I', header)[0]
print "< ", msg_size
raw_msg = sock.recv(msg_size)
print_resp(raw_msg)
if __name__ == "__main__":
address = (HOST, PORT)
sock = socket.socket()
print "Connecting to server ", address
sock.connect(address)
# hack for old xml clients - server expects this and discards first message
print ">>> xml hack"
xmlClientHack = Cmd().SerializeToString()
send(xmlClientHack)
print sock.recv(60)
recv(sock)
print ">>> register"
r = build_reg()
print r
msg = r.SerializeToString()
send(msg)
recv(sock)
print "Done"