Пример #1
0
def join_cluster(instance_path, source_name):
    print("Connecting to {}:1234".format(source_name))
    # Get the peerid of the source
    conn, cg = network.connect(None, (source_name, 1234))
    msg = pb2.JoinCluster()
    msg.peer_id = userconfig.get_user_config()["peerid"]
    msg.version = "0.1"
    msg.proto_version = 1
    conn.send(pb2.JOIN_CLUSTER, msg)

    cluster_info_pkt = conn.get_result(pb2.CLUSTER_INFO)
    msg = cluster_info_pkt.message

    print("Joining cluster {}".format(msg.cluster_id))
    static_info = {"cluster_id": msg.cluster_id}
    if not os.path.isdir(instance_path):
        os.makedirs(instance_path)
    inst = instance.Instance.create(instance_path, static_info)

    print("Unpickling file index")
    inst.fi = pickle.loads(cluster_info_pkt.data)

    peer_info_pkt = conn.get_result(pb2.PEER_ANNOUNCE)
    msg = peer_info_pkt.message

    conn.close()

    pi = inst.get_peer_info(msg.peer_id)
    pi.update_addr((source_name, 1234))
    inst.save()
Пример #2
0
    def setUp(self):
        self.tempdir = tempfile.mkdtemp("autofs")
        self.inst = instance.Instance.create(self.tempdir)
        self.server = network.start_server(self.inst)
        gevent.sleep(1)
        self.pc = network.connect(None, ("127.0.0.1", 1234))

        userconfig._uc = {"peerid": "254af13a-e698-11e1-a3d2-68a86d09cc32"}