def __init__(self):
        super().__init__()

        self._ioloop = tornado.ioloop.IOLoop.instance()
        self._pend_filestream_filekeymap = {}
        self._linkid_usemap = {}
        self._worker_linkmap = {}
        self._client_linkmap = {}
        self._client_backendmap = {}
        self._backend_workerlist = []
        self._uid_clientmap = {}

        pubkey = open('pubkey.pem', 'r').read()
        privkey = open('privkey.pem', 'r').read()
        TOJAuth(pubkey, privkey)

        self._link = self._create_link('center')

        self._idendesc = TOJAuth.instance.create_iden(self._link, 1,
                                                      TOJAuth.ROLETYPE_TOJ)
        Proxy(self._link, TOJAuth.instance, self._idendesc)

        self._init_blobserver()

        Proxy.instance.register_call('core/', 'lookup_link', self._lookup_link)
        Proxy.instance.register_call('core/', 'create_iden', self._create_iden)
        Proxy.instance.register_call('core/', 'add_client', self._add_client)
        Proxy.instance.register_call('core/', 'del_client', self._del_client)
        Proxy.instance.register_call('core/', 'get_uid_clientlink',
                                     self._get_uid_clientlink)
예제 #2
0
            def ___recv_info_cb(data):
                info = json.loads(data.decode('utf-8'))
                pubkey = open('pubkey.pem', 'r').read()
                TOJAuth(pubkey)

                self._idendesc = info['idendesc']
                self._link = info['worker_link']
                Proxy(self._link, TOJAuth.instance, self._idendesc,
                      self._conn_link)

                self.center_conn = SocketConnection(info['center_link'],
                                                    stream, self.center_addr,
                                                    self.pend_filestream,
                                                    self.del_pend_filestream)
                self.center_conn.add_close_callback(__retry)
                Proxy.instance.add_conn(self.center_conn)

                #self._init_blobclient()

                #Proxy.instance.register_call('test/','get_client_list',self._test_get_client_list)
                Proxy.instance.register_call('test/', 'test_dst',
                                             self._test_dst)
                #Proxy.instance.register_filter('test/',self._test_filter)

                try:
                    mod.load('Notice', 'notice', self._idendesc,
                             self._get_link)
                    mod.load('UserMg', 'user', self._idendesc, self._get_link)
                    mod.load('SquareMg', 'square', self._idendesc,
                             self._get_link)
                    mod.load('ProblemMg', 'problem', self._idendesc,
                             self._get_link)
                    mod.load('Mail', 'mail', self._idendesc, self._get_link)

                except Exception as e:
                    print(e)

                if self._link == '/backend/2/':
                    self._test_call(None)