def __init__(self, configuration, shouldConnectToZooKeeper=True):

        if configuration is None or not isinstance(configuration, EZConfiguration):
            raise Exception("Invalid configuration.")

        self.__ezConfiguration = configuration
        self.__applicationName = ApplicationConfiguration.fromConfiguration(configuration).getApplicationName()
        self.__securityConfiguration = SecurityConfiguration.fromConfiguration(configuration)
        self.__thriftConfiguration = ThriftConfiguration.fromConfiguration(configuration)

        # TODO: Add logging stuff here                
        logging.basicConfig(filename="/tmp/py.log", level=logging.DEBUG, format='%(asctime)s \t%(levelname)s: \t%(message)s\t')
        self.__log = logging.getLogger(__name__)

        self.__serviceMapLock = threading.RLock()
        self.__serviceMap = {}
        self.__connectionPool = {}
        self.__reverseLookup = {}

        print "Application name: " + self.__applicationName
        if self.__applicationName is None:
            self.__log.warn("No application name was found. Only common services will be discoverable.")
        
        # zookeeper stuff
        if shouldConnectToZooKeeper:
            ezdiscovery.connect('localhost:2181')

        try:
            self.__common_services = list(ezdiscovery.get_common_services())
        except Exception:
            self.__log.error("Unable to get commone services")
            raise

        self.__refreshEndPoints()
        self.__refreshCommonEndPoints()
Esempio n. 2
0
    def setUp(self):
        super(ThriftControlPoolTest, self).setUp()
        #print ezdiscovery.zk
        ezdiscovery.zk = self.client

        config = EZConfiguration()
        applicationName = ApplicationConfiguration.fromConfiguration(config).getApplicationName()

        ezdiscovery.register_common_endpoint('common_service_one', 'localhost', 8080)
        ezdiscovery.register_common_endpoint('common_service_two', 'localhost', 8081)
        ezdiscovery.register_common_endpoint('common_service_three', 'localhost', 8082)
        ezdiscovery.register_common_endpoint('common_service_multi', '192.168.1.1', 6060 )
        ezdiscovery.register_common_endpoint('common_service_multi', '192.168.1.2', 6161)
        
        ezdiscovery.register_endpoint(applicationName, "service_one", 'localhost', 8083)
        ezdiscovery.register_endpoint(applicationName, "service_two", 'localhost', 8084)
        ezdiscovery.register_endpoint(applicationName, "service_three", 'localhost', 8085)

        ezdiscovery.register_endpoint("NotThriftClientPool", "unknown_service_three", 'localhost', 8085)
        ezdiscovery.register_endpoint("NotThriftClientPool", "unknown_service_three", 'localhost', 8085)
        ezdiscovery.register_endpoint("NotThriftClientPool", "unknown_service_three", 'localhost', 8085)



        self.cp = ThriftClientPool(config, shouldConnectToZooKeeper = False)