def _get_server_properties(): global _api_cache if not _api_cache: # If we need to refresh the list or if previously no servers were up _api_cache_lock.acquire() try: if not _api_cache: servers = [] with ZookeeperClient( hosts=get_sentry_server_ha_zookeeper_quorum( )) as client: sentry_servers = client.get_children_data( namespace=get_sentry_server_ha_zookeeper_namespace()) for data in sentry_servers: server = json.loads(data.decode("utf-8")) servers.append({ 'hostname': server['address'], 'port': server['sslPort'] if server['sslPort'] else server['port'] }) _api_cache = servers except Exception, e: raise PopupException(_( 'Error in retrieving Sentry server properties from Zookeeper.' ), detail=e) finally:
def _get_server_properties(): global _api_cache if not _api_cache: # If we need to refresh the list or if previously no servers were up _api_cache_lock.acquire() try: if not _api_cache: servers = [] client = ZookeeperClient(hosts=get_sentry_server_ha_zookeeper_quorum()) sentry_servers = client.get_children_data(namespace=get_sentry_server_ha_zookeeper_namespace()) for data in sentry_servers: server = json.loads(data.decode("utf-8")) servers.append( { "hostname": server["address"], "port": server["sslPort"] if server["sslPort"] else server["port"], } ) _api_cache = servers except Exception, e: raise PopupException(_("Error in retrieving Sentry server properties from Zookeeper."), detail=e) finally:
def _get_server_properties(): global _api_cache if _api_cache is None: _api_cache_lock.acquire() try: if _api_cache is None: if get_sentry_server_ha_has_security(): try: from zookeeper.conf import CLUSTERS sasl_server_principal = CLUSTERS.get( )['default'].PRINCIPAL_NAME.get() except Exception, e: LOG.error( "Could not get principal name from ZooKeeper app config: %s. Using 'zookeeper' as principal name." % e) sasl_server_principal = 'zookeeper' else: sasl_server_principal = None zk = KazooClient(hosts=get_sentry_server_ha_zookeeper_quorum(), read_only=True, sasl_server_principal=sasl_server_principal) zk.start() servers = [] namespace = get_sentry_server_ha_zookeeper_namespace() children = zk.get_children( "/%s/sentry-service/sentry-service/" % namespace) for node in children: data, stat = zk.get( "/%s/sentry-service/sentry-service/%s" % (namespace, node)) server = json.loads(data.decode("utf-8")) servers.append({ 'hostname': server['address'], 'port': server['sslPort'] if server['sslPort'] else server['port'] }) zk.stop() _api_cache = servers finally: _api_cache_lock.release() return _api_cache
def _get_server_properties(): global _api_cache if _api_cache is None: _api_cache_lock.acquire() try: if _api_cache is None: if get_sentry_server_ha_has_security(): try: from zookeeper.conf import CLUSTERS sasl_server_principal = CLUSTERS.get()['default'].PRINCIPAL_NAME.get() except Exception, e: LOG.warn("Could not get principal name from ZooKeeper app config: %s. Using 'zookeeper' as principal name." % e) sasl_server_principal = 'zookeeper' else: sasl_server_principal = None zk = KazooClient(hosts=get_sentry_server_ha_zookeeper_quorum(), read_only=True, sasl_server_principal=sasl_server_principal) zk.start() servers = [] namespace = get_sentry_server_ha_zookeeper_namespace() children = zk.get_children("/%s/sentry-service/sentry-service/" % namespace) for node in children: data, stat = zk.get("/%s/sentry-service/sentry-service/%s" % (namespace, node)) server = json.loads(data.decode("utf-8")) servers.append({'hostname': server['address'], 'port': server['sslPort'] if server['sslPort'] else server['port']}) zk.stop() _api_cache = servers finally: _api_cache_lock.release() return _api_cache
def _get_server_properties(): global _api_cache if not _api_cache: # If we need to refresh the list or if previously no servers were up _api_cache_lock.acquire() try: if not _api_cache: servers = [] sentry_servers = get_children_data(ensemble=get_sentry_server_ha_zookeeper_quorum(), namespace=get_sentry_server_ha_zookeeper_namespace()) for data in sentry_servers: server = json.loads(data.decode("utf-8")) servers.append({'hostname': server['address'], 'port': server['sslPort'] if server['sslPort'] else server['port']}) _api_cache = servers finally: _api_cache_lock.release() return _api_cache