Exemplo n.º 1
0
    def stage_private(self):
        reactor.addSystemEventTrigger('before', 'shutdown',
                                      self.friend.on_killed)

        mc = self.c.manhole
        assert isinstance(mc, config.ManholeConfig), str(type(mc))
        ssh_port = int(mc.port) if mc.port is not None else None

        self.friend._ssh = ssh.ListeningPort(self.friend,
                                      ssh.commands_factory(self.friend),
                                      public_key=mc.public_key,
                                      private_key=mc.private_key,
                                      authorized_keys=mc.authorized_keys,
                                      port=ssh_port)

        socket_path = self.c.agency.socket_path
        self.friend._broker = self.friend.broker_factory(self.friend,
                socket_path, on_master_cb=self.friend.on_become_master,
                on_slave_cb=self.friend.on_become_slave,
                on_disconnected_cb=self.friend.on_broker_disconnect,
                on_remove_slave_cb=self.friend.on_remove_slave,
                on_master_missing_cb=self.friend.on_master_missing)

        self.friend._setup_snapshoter()
        return self.friend._broker.initiate_broker()
Exemplo n.º 2
0
    def initiate(self):
        if self.config['agency']['daemonize']:
            os.chdir(self.config['agency']['rundir'])

        dbc = self.config['db']
        db = database.Database(dbc['host'], int(dbc['port']), dbc['name'])
        db.redirect_log(self)

        backends = []
        backends.append(self._initiate_messaging(self.config['msg']))
        backends.append(self._initiate_tunneling(self.config['tunnel']))
        backends = filter(None, backends)

        jour = journaler.Journaler(self)
        self._journal_writer = None

        reactor.addSystemEventTrigger('before', 'shutdown',
                                      self.on_killed)

        mc = self.config['manhole']
        ssh_port = int(mc["port"]) if mc["port"] is not None else None
        self._ssh = ssh.ListeningPort(self, ssh.commands_factory(self),
                                      public_key=mc["public_key"],
                                      private_key=mc["private_key"],
                                      authorized_keys=mc["authorized_keys"],
                                      port=ssh_port)

        socket_path = self.config['agency']['socket_path']
        self._broker = self.broker_factory(self, socket_path,
                                on_master_cb=self.on_become_master,
                                on_slave_cb=self.on_become_slave,
                                on_disconnected_cb=self.on_broker_disconnect,
                                on_remove_slave_cb=self.on_remove_slave)

        self._setup_snapshoter()

        d = defer.succeed(None)
        d.addBoth(defer.drop_param, agency.Agency.initiate,
                  self, db, jour, *backends)
        d.addBoth(defer.drop_param, self._broker.initiate_broker)
        d.addBoth(defer.override_result, self)
        return d
Exemplo n.º 3
0
    def stage_private(self):
        reactor.addSystemEventTrigger('before', 'shutdown',
                                      self.friend.on_killed)

        mc = self.c['manhole']
        ssh_port = int(mc["port"]) if mc["port"] is not None else None

        self.friend._ssh = ssh.ListeningPort(self.friend,
                                      ssh.commands_factory(self.friend),
                                      public_key=mc["public_key"],
                                      private_key=mc["private_key"],
                                      authorized_keys=mc["authorized_keys"],
                                      port=ssh_port)

        socket_path = self.c['agency']['socket_path']
        self.friend._broker = self.friend.broker_factory(self.friend,
                socket_path, on_master_cb=self.friend.on_become_master,
                on_slave_cb=self.friend.on_become_slave,
                on_disconnected_cb=self.friend.on_broker_disconnect,
                on_remove_slave_cb=self.friend.on_remove_slave,
                on_master_missing_cb=self.friend.on_master_missing)

        self.friend._setup_snapshoter()
        return self.friend._broker.initiate_broker()