Beispiel #1
0
 def broadcast(self, message):
     for site in self.sites.values():
         request = MgtRequest(message.serialize())
         try:
             request.get_response(site.mgt_address)
         except:
             # the site is down
             logger.critical('REP: Site %s is down.' % (site.mgt_address, ))
Beispiel #2
0
    def join_site(self, site_address):
        msg = MgtMessage('REP_JOIN_SITE', self.local_site)
        request = MgtRequest(msg.serialize())
        try:
            response = request.get_response(site_address)
        except:
            raise db.DBError('Replication site is unreachable')

        if response.header == 0:
            master, sites = response.data
            self.master = master
            for site in [s for s in sites
                         if s.address != self.local_site.address]:
                self.add_remote_site(site)
        else:
            raise db.DBError(response.data)