示例#1
0
    def __register_manager_ips(self, configured_ips):
        """
        Register all of the manager's configured ips.
        """
        # We remove all existing registered IPs.
        for ip in self.registered_ips:
            if self.zk_conn.read(paths.manager_ip(ip)) == self.uuid:
                logging.info("Clearing IP '%s'." % ip)
                self.zk_conn.delete(paths.manager_ip(ip))
        self.registered_ips = []

        if self.names:
            def register_ip(name):
                try:
                    # Register our IP.
                    ip = socket.gethostbyname(name)
                    self.zk_conn.write(paths.manager_ip(ip), self.uuid, ephemeral=True)
                    logging.info("Registered IP '%s'." % ip)
                    self.registered_ips.append(ip)
                except socket.error:
                    logging.error("Skipping registration of '%s'." % name)

            # Register configured IPs if available.
            if configured_ips:
                for ip in configured_ips:
                    register_ip(ip)
            else:
                for name in self.names:
                    register_ip(name)
示例#2
0
 def register_ip(name):
     try:
         # Register our IP.
         ip = socket.gethostbyname(name)
         self.zk_conn.write(paths.manager_ip(ip), self.uuid, ephemeral=True)
         logging.info("Registered IP '%s'." % ip)
         self.registered_ips.append(ip)
     except socket.error:
         logging.error("Skipping registration of '%s'." % name)
示例#3
0
 def get_manager_key(self, manager):
     return self.zk_conn.read(paths.manager_ip(manager))