def main():

    key = "sddjou34324523432gh45t452354"
    server = AES_RPC_Server( 
            SERVER_ADDR,
            client_keys={'127.0.0.1': key},
            logger=Log("server", config=conf),
            )
    server.add_view(View())
    server.start(5)
    print "server started"
    def __run_server():
        print "run server"
        server.loop()
        return
    th = threading.Thread(target=__run_server)
    th.setDaemon(1)
    th.start()
    time.sleep(1)
    print "starting client"
    client = AES_RPC_Client(key, Log("client", config=conf))
    client.set_timeout(5)
    client.connect(SERVER_ADDR)
    print "connected"
    ret = client.call("foo", "aaa", arg2="bbb")
    assert ret == ("aaa", "bbb", {'dd': {'ee': 1}})
    val = AttrWrapper.wrap(ret)
    print "ret[2]['dd']['ee']", val[2].dd.ee
    print "foo => ret"
    try:
        client.call("bar")
    except Exception, e:
        print "bar", e
Exemplo n.º 2
0
 def __init__(self, logger, client_keys):
     self.logger = logger
     self.host_id = conf.HOST_ID
     self._rsync_popen = None
     self.is_running = False
     self.listen_ip = "0.0.0.0"
     self.inf_addr = (self.listen_ip, conf.INF_PORT)
     self.rsync_port = conf.RSYNC_PORT
     self.server = AES_RPC_Server(
         self.inf_addr,
         client_keys=client_keys,
         logger=logger,
         err_logger=logger,
     )
Exemplo n.º 3
0
 def __init__(self, logger, client_keys):
     self.logger = logger
     self.host_id = conf.HOST_ID
     self._rsync_popen = None
     self.is_running = False
     self.listen_ip = "0.0.0.0"
     self.inf_addr = (self.listen_ip, conf.INF_PORT)
     self.rsync_port = conf.RSYNC_PORT
     self.server = AES_RPC_Server(
         self.inf_addr,
         client_keys=client_keys,
         logger=logger,
         err_logger=logger,
     )
Exemplo n.º 4
0
class SyncServerBase(object):

    def __init__(self, logger, client_keys):
        self.logger = logger
        self.host_id = conf.HOST_ID
        self._rsync_popen = None
        self.is_running = False
        self.listen_ip = "0.0.0.0"
        self.inf_addr = (self.listen_ip, conf.INF_PORT)
        self.rsync_port = conf.RSYNC_PORT
        self.server = AES_RPC_Server(
            self.inf_addr,
            client_keys=client_keys,
            logger=logger,
            err_logger=logger,
        )

    def loop(self):
        self.server.loop()

    def start(self):
        if self.is_running:
            return
        self.is_running = True
        # self.start_rsync()
        self.server.start(20)

    def stop(self):
        if not self.is_running:
            return
        self.is_running = False
        self.server.stop()
        self.logger.info("server stopped")
        self.stop_rsync()

    def start_rsync(self):
        rsync_conf = """
uid=root
gid=root
use chroot=yes
og file=/dev/null
[%s]
    path=%s
    read only=no
    write only=yes
""" % (RSYNC_SERVER_NAME, conf.MOUNT_POINT_DIR)

        f = open(conf.RSYNC_CONF_PATH, "w")
        try:
            f.write(rsync_conf)
        finally:
            f.close()
        rsync_cmd = ["rsync", "--daemon", "--config=%s" %
                     (conf.RSYNC_CONF_PATH), "--no-detach"]
        rsync_cmd.append("--address=%s" % (self.listen_ip))
        rsync_cmd.append("--port=%s" % (self.rsync_port))
        #self._rsync_popen = subprocess.Popen(rsync_cmd, stderr=subprocess.PIPE, close_fds=True)
        self._rsync_popen = Command(rsync_cmd)
        self._rsync_popen.start()
        self.logger.info("started rsync, pid=%s" % (self._rsync_popen.pid))
        time.sleep(1)

    def stop_rsync(self):
        if self._rsync_popen is None:
            return
        self.logger.info("stopping rsync")
        try:
            os.kill(self._rsync_popen.pid, signal.SIGTERM)
            self._rsync_popen.wait()
        except OSError, e:
            if e[0] == errno.ESRCH:
                pass
            raise
        self.logger.info("rsync stopped")
Exemplo n.º 5
0
class SyncServerBase(object):
    def __init__(self, logger, client_keys):
        self.logger = logger
        self.host_id = conf.HOST_ID
        self._rsync_popen = None
        self.is_running = False
        self.listen_ip = "0.0.0.0"
        self.inf_addr = (self.listen_ip, conf.INF_PORT)
        self.rsync_port = conf.RSYNC_PORT
        self.server = AES_RPC_Server(
            self.inf_addr,
            client_keys=client_keys,
            logger=logger,
            err_logger=logger,
        )

    def loop(self):
        self.server.loop()

    def start(self):
        if self.is_running:
            return
        self.is_running = True
        # self.start_rsync()
        self.server.start(20)

    def stop(self):
        if not self.is_running:
            return
        self.is_running = False
        self.server.stop()
        self.logger.info("server stopped")
        self.stop_rsync()

    def start_rsync(self):
        rsync_conf = """
uid=root
gid=root
use chroot=yes
og file=/dev/null
[%s]
    path=%s
    read only=no
    write only=yes
""" % (RSYNC_SERVER_NAME, conf.MOUNT_POINT_DIR)

        f = open(conf.RSYNC_CONF_PATH, "w")
        try:
            f.write(rsync_conf)
        finally:
            f.close()
        rsync_cmd = [
            "rsync", "--daemon",
            "--config=%s" % (conf.RSYNC_CONF_PATH), "--no-detach"
        ]
        rsync_cmd.append("--address=%s" % (self.listen_ip))
        rsync_cmd.append("--port=%s" % (self.rsync_port))
        #self._rsync_popen = subprocess.Popen(rsync_cmd, stderr=subprocess.PIPE, close_fds=True)
        self._rsync_popen = Command(rsync_cmd)
        self._rsync_popen.start()
        self.logger.info("started rsync, pid=%s" % (self._rsync_popen.pid))
        time.sleep(1)

    def stop_rsync(self):
        if self._rsync_popen is None:
            return
        self.logger.info("stopping rsync")
        try:
            os.kill(self._rsync_popen.pid, signal.SIGTERM)
            self._rsync_popen.wait()
        except OSError, e:
            if e[0] == errno.ESRCH:
                pass
            raise
        self.logger.info("rsync stopped")