Example #1
0
def register(meta_ip, meta_port, data_ip, data_port):
    """Creates a connection with the metadata server and
        register as data node
    """

    # Establish connection

    # Create socket and connect to meta data server
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((meta_ip, meta_port))

    try:
        response = b"NAK"
        # Initialize packet
        sp = Packet()
        while response == b"NAK":
            # Create reg packet and send to meta data server
            sp.BuildRegPacket(data_ip, data_port)
            sock.sendall(sp.getEncodedPacket())

            # Recieve response from meta data server
            response = sock.recv(1024)

            if response == b"DUP":
                # If data node already registered
                print("Duplicate Registration")

            if response == b"NAK":
                # If internal Server Error
                print("Registratation ERROR")

            if response == b"ACK":
                # If data node registered successfully
                print("Registered succesfully")

    finally:
        sock.close()