def start(self): if not self._started: # Spawn our worker threads, we have # - A callback worker for watch events to be called # - A completion worker for completion events to be called w = eventlet.spawn(self._process_completion_queue) self._workers.append((w, self.completion_queue)) w = eventlet.spawn(self._process_callback_queue) self._workers.append((w, self.callback_queue)) self._started = True python2atexit.register(self.stop)
def start(self): """Start the greenlet workers.""" with self._state_change: if self._running: return self._running = True # Spawn our worker greenlets, we have # - A callback worker for watch events to be called for queue in (self.callback_queue,): w = self._create_greenlet_worker(queue) self._workers.append(w) python2atexit.register(self.stop)
def start(self): """Start the worker threads.""" with self._state_change: if self._running: return # Spawn our worker threads, we have # - A callback worker for watch events to be called # - A completion worker for completion events to be called for queue in (self.completion_queue, self.callback_queue): w = self._create_thread_worker(queue) self._workers.append(w) self._running = True python2atexit.register(self.stop)
def start(self): """Start the greenlet workers.""" with self._state_change: if self._running: return self._running = True # Spawn our worker greenlets, we have # - A callback worker for watch events to be called for queue in (self.callback_queue, ): w = self._create_greenlet_worker(queue) self._workers.append(w) python2atexit.register(self.stop)
def get_global_cluster(): global CLUSTER if CLUSTER is None: ZK_HOME = os.environ.get("ZOOKEEPER_PATH") ZK_CLASSPATH = os.environ.get("ZOOKEEPER_CLASSPATH") ZK_PORT_OFFSET = int(os.environ.get("ZOOKEEPER_PORT_OFFSET", 20000)) ZK_CLUSTER_SIZE = int(os.environ.get("ZOOKEEPER_CLUSTER_SIZE", 3)) ZK_VERSION = os.environ.get("ZOOKEEPER_VERSION") if '-' in ZK_VERSION: # Ignore pre-release markers like -alpha ZK_VERSION = ZK_VERSION.split('-')[0] ZK_VERSION = tuple([int(n) for n in ZK_VERSION.split('.')]) ZK_OBSERVER_START_ID = int( os.environ.get("ZOOKEEPER_OBSERVER_START_ID", -1)) assert ZK_HOME or ZK_CLASSPATH or ZK_VERSION, ( "Either ZOOKEEPER_PATH or ZOOKEEPER_CLASSPATH or " "ZOOKEEPER_VERSION environment variable must be defined.\n" "For deb package installations this is /usr/share/java") if ZK_VERSION >= (3, 5): additional_configuration_entries = [ "4lw.commands.whitelist=*", "reconfigEnabled=true" ] # If defines, this sets the superuser password to "test" additional_java_system_properties = [ "-Dzookeeper.DigestAuthenticationProvider.superDigest=" "super:D/InIHSb7yEEbrWz8b9l71RjZJU=" ] else: additional_configuration_entries = [] additional_java_system_properties = [] CLUSTER = ZookeeperCluster( install_path=ZK_HOME, classpath=ZK_CLASSPATH, port_offset=ZK_PORT_OFFSET, size=ZK_CLUSTER_SIZE, observer_start_id=ZK_OBSERVER_START_ID, configuration_entries=additional_configuration_entries, java_system_properties=additional_java_system_properties ) atexit.register(lambda cluster: cluster.terminate(), CLUSTER) return CLUSTER
def get_global_cluster(): global CLUSTER if CLUSTER is None: ZK_HOME = os.environ.get("ZOOKEEPER_PATH") ZK_CLASSPATH = os.environ.get("ZOOKEEPER_CLASSPATH") ZK_PORT_OFFSET = int(os.environ.get("ZOOKEEPER_PORT_OFFSET", 20000)) assert ZK_HOME or ZK_CLASSPATH, ( "Either ZOOKEEPER_PATH or ZOOKEEPER_CLASSPATH environment " "variable must be defined.\n" "For deb package installations this is /usr/share/java") CLUSTER = ZookeeperCluster( install_path=ZK_HOME, classpath=ZK_CLASSPATH, port_offset=ZK_PORT_OFFSET, ) atexit.register(lambda cluster: cluster.terminate(), CLUSTER) return CLUSTER
def get_global_cluster(): global CLUSTER if CLUSTER is None: ZK_HOME = os.environ.get("ZOOKEEPER_PATH") ZK_CLASSPATH = os.environ.get("ZOOKEEPER_CLASSPATH") ZK_PORT_OFFSET = int(os.environ.get("ZOOKEEPER_PORT_OFFSET", 20000)) ZK_CLUSTER_SIZE = int(os.environ.get("ZOOKEEPER_CLUSTER_SIZE", 3)) ZK_VERSION = os.environ.get("ZOOKEEPER_VERSION") if '-' in ZK_VERSION: # Ignore pre-release markers like -alpha ZK_VERSION = ZK_VERSION.split('-')[0] ZK_VERSION = tuple([int(n) for n in ZK_VERSION.split('.')]) ZK_OBSERVER_START_ID = int( os.environ.get("ZOOKEEPER_OBSERVER_START_ID", -1)) assert ZK_HOME or ZK_CLASSPATH or ZK_VERSION, ( "Either ZOOKEEPER_PATH or ZOOKEEPER_CLASSPATH or " "ZOOKEEPER_VERSION environment variable must be defined.\n" "For deb package installations this is /usr/share/java") if ZK_VERSION >= (3, 5): additional_configuration_entries = [ "4lw.commands.whitelist=*", "reconfigEnabled=true" ] # If defines, this sets the superuser password to "test" additional_java_system_properties = [ "-Dzookeeper.DigestAuthenticationProvider.superDigest=" "super:D/InIHSb7yEEbrWz8b9l71RjZJU=" ] else: additional_configuration_entries = [] additional_java_system_properties = [] CLUSTER = ZookeeperCluster( install_path=ZK_HOME, classpath=ZK_CLASSPATH, port_offset=ZK_PORT_OFFSET, size=ZK_CLUSTER_SIZE, observer_start_id=ZK_OBSERVER_START_ID, configuration_entries=additional_configuration_entries, java_system_properties=additional_java_system_properties) atexit.register(lambda cluster: cluster.terminate(), CLUSTER) return CLUSTER
def get_global_cluster(): global CLUSTER, CLUSTER_CONF cluster_conf = { k: os.environ.get(k, CLUSTER_DEFAULTS.get(k)) for k in ["ZOOKEEPER_PATH", "ZOOKEEPER_CLASSPATH", "ZOOKEEPER_PORT_OFFSET", "ZOOKEEPER_CLUSTER_SIZE", "ZOOKEEPER_VERSION", "ZOOKEEPER_OBSERVER_START_ID", "ZOOKEEPER_JAAS_AUTH"] } if CLUSTER is not None: if CLUSTER_CONF == cluster_conf: return CLUSTER else: log.info('Config change detected. Reconfiguring cluster...') CLUSTER.terminate() CLUSTER = None # Create a new cluster ZK_HOME = cluster_conf.get("ZOOKEEPER_PATH") ZK_CLASSPATH = cluster_conf.get("ZOOKEEPER_CLASSPATH") ZK_PORT_OFFSET = int(cluster_conf.get("ZOOKEEPER_PORT_OFFSET")) ZK_CLUSTER_SIZE = int(cluster_conf.get("ZOOKEEPER_CLUSTER_SIZE")) ZK_VERSION = cluster_conf.get("ZOOKEEPER_VERSION") if '-' in ZK_VERSION: # Ignore pre-release markers like -alpha ZK_VERSION = ZK_VERSION.split('-')[0] ZK_VERSION = tuple([int(n) for n in ZK_VERSION.split('.')]) ZK_OBSERVER_START_ID = int(cluster_conf.get("ZOOKEEPER_OBSERVER_START_ID")) assert ZK_HOME or ZK_CLASSPATH or ZK_VERSION, ( "Either ZOOKEEPER_PATH or ZOOKEEPER_CLASSPATH or " "ZOOKEEPER_VERSION environment variable must be defined.\n" "For deb package installations this is /usr/share/java") if ZK_VERSION >= (3, 5): additional_configuration_entries = [ "4lw.commands.whitelist=*", "reconfigEnabled=true" ] # If defined, this sets the superuser password to "test" additional_java_system_properties = [ "-Dzookeeper.DigestAuthenticationProvider.superDigest=" "super:D/InIHSb7yEEbrWz8b9l71RjZJU=" ] else: additional_configuration_entries = [] additional_java_system_properties = [] ZOOKEEPER_JAAS_AUTH = cluster_conf.get("ZOOKEEPER_JAAS_AUTH") if ZOOKEEPER_JAAS_AUTH == "digest": jaas_config = """ Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super="super_secret" user_jaasuser="******"; };""" elif ZOOKEEPER_JAAS_AUTH == "gssapi": # Configure Zookeeper to use our test KDC. additional_java_system_properties += [ "-Djava.security.krb5.conf=%s" % os.path.expandvars( "${KRB5_CONFIG}" ), "-Dsun.security.krb5.debug=true", ] jaas_config = """ Server { com.sun.security.auth.module.Krb5LoginModule required debug=true isInitiator=false useKeyTab=true keyTab="%s" storeKey=true useTicketCache=false principal="zookeeper/[email protected]"; };""" % os.path.expandvars("${KRB5_TEST_ENV}/server.keytab") else: jaas_config = None CLUSTER = ZookeeperCluster( install_path=ZK_HOME, classpath=ZK_CLASSPATH, port_offset=ZK_PORT_OFFSET, size=ZK_CLUSTER_SIZE, observer_start_id=ZK_OBSERVER_START_ID, configuration_entries=additional_configuration_entries, java_system_properties=additional_java_system_properties, jaas_config=jaas_config ) CLUSTER_CONF = cluster_conf atexit.register(lambda cluster: cluster.terminate(), CLUSTER) return CLUSTER