def __init__(self, member_id, parsed_url, options): super(BaseZooKeeperDriver, self).__init__() options = utils.collapse(options, exclude=['hosts']) self._options = options self._member_id = member_id self.timeout = int(options.get('timeout', '10')) self._namespace = options.get('namespace', self.TOOZ_NAMESPACE)
def test_custom_selector(self): ex = { 'a': [1, 2, 3], } c_ex = utils.collapse(ex, item_selector=lambda items: items[0]) self.assertEqual({'a': 1}, c_ex)
def __init__(self, member_id, parsed_url, options): super(KazooDriver, self).__init__(member_id, parsed_url, options) options = utils.collapse(options, exclude=['hosts']) self.timeout = int(options.get('timeout', '10')) self._namespace = options.get('namespace', self.TOOZ_NAMESPACE) self._coord = self._make_client(parsed_url, options) self._timeout_exception = self._coord.handler.timeout_exception
def __init__(self, member_id, parsed_url, options): super(KazooDriver, self).__init__(member_id) options = utils.collapse(options, exclude=['hosts']) self.timeout = int(options.get('timeout', '10')) self._namespace = options.get('namespace', self.TOOZ_NAMESPACE) self._coord = self._make_client(parsed_url, options) self._timeout_exception = self._coord.handler.timeout_exception
def __init__(self, member_id, parsed_url, options): super(MemcachedDriver, self).__init__() options = utils.collapse(options) self._options = options self._member_id = member_id self._joined_groups = set() self._executor = utils.ProxyExecutor.build("Memcached", options) # self.host = (parsed_url.hostname or "localhost", # parsed_url.port or 11211) self.host = [] for one_url in parsed_url: tmp = (one_url.hostname or "localhost", one_url.port or 11211) self.host.append(tmp) default_timeout = options.get('timeout', self.DEFAULT_TIMEOUT) self.timeout = int(default_timeout) self.membership_timeout = int(options.get( 'membership_timeout', default_timeout)) self.lock_timeout = int(options.get( 'lock_timeout', default_timeout)) self.leader_timeout = int(options.get( 'leader_timeout', default_timeout)) max_pool_size = options.get('max_pool_size', None) if max_pool_size is not None: self.max_pool_size = int(max_pool_size) else: self.max_pool_size = None self._acquired_locks = []
def __init__(self, member_id, parsed_url, options): super(RedisDriver, self).__init__() options = utils.collapse(options, exclude=self.CLIENT_LIST_ARGS) self._parsed_url = parsed_url self._options = options self._encoding = options.get('encoding', self.DEFAULT_ENCODING) timeout = options.get('timeout', self.CLIENT_DEFAULT_SOCKET_TO) self.timeout = int(timeout) self.membership_timeout = float(options.get( 'membership_timeout', timeout)) lock_timeout = options.get('lock_timeout', self.timeout) self.lock_timeout = int(lock_timeout) namespace = options.get('namespace', self.DEFAULT_NAMESPACE) self._namespace = utils.to_binary(namespace, encoding=self._encoding) self._group_prefix = self._namespace + b"_group" self._beat_prefix = self._namespace + b"_beats" self._groups = self._namespace + b"_groups" self._client = None self._member_id = utils.to_binary(member_id, encoding=self._encoding) self._acquired_locks = set() self._joined_groups = set() self._executor = utils.ProxyExecutor.build("Redis", options) self._started = False self._server_info = {} self._scripts = {}
def __init__(self, member_id, parsed_url, options): super(RedisDriver, self).__init__() options = utils.collapse(options, exclude=self.CLIENT_LIST_ARGS) self._parsed_url = parsed_url self._options = options self._encoding = options.get('encoding', self.DEFAULT_ENCODING) timeout = options.get('timeout', self.CLIENT_DEFAULT_SOCKET_TO) self.timeout = int(timeout) self.membership_timeout = float( options.get('membership_timeout', timeout)) lock_timeout = options.get('lock_timeout', self.timeout) self.lock_timeout = int(lock_timeout) namespace = options.get('namespace', self.DEFAULT_NAMESPACE) self._namespace = utils.to_binary(namespace, encoding=self._encoding) self._group_prefix = self._namespace + b"_group" self._beat_prefix = self._namespace + b"_beats" self._groups = self._namespace + b"_groups" self._client = None self._member_id = utils.to_binary(member_id, encoding=self._encoding) self._acquired_locks = set() self._joined_groups = set() self._executor = utils.ProxyExecutor.build("Redis", options) self._started = False self._server_info = {} self._scripts = {}
def __init__(self, member_id, parsed_url, options): super(MemcachedDriver, self).__init__() options = utils.collapse(options) self._options = options self._member_id = member_id self._joined_groups = set() self._executor = utils.ProxyExecutor.build("Memcached", options) # self.host = (parsed_url.hostname or "localhost", # parsed_url.port or 11211) self.host = [] for one_url in parsed_url: tmp = (one_url.hostname or "localhost", one_url.port or 11211) self.host.append(tmp) default_timeout = options.get('timeout', self.DEFAULT_TIMEOUT) self.timeout = int(default_timeout) self.membership_timeout = int( options.get('membership_timeout', default_timeout)) self.lock_timeout = int(options.get('lock_timeout', default_timeout)) self.leader_timeout = int( options.get('leader_timeout', default_timeout)) max_pool_size = options.get('max_pool_size', None) if max_pool_size is not None: self.max_pool_size = int(max_pool_size) else: self.max_pool_size = None self._acquired_locks = []
def test_collapse_exclusions(self): ex = { 'a': [1], 'b': 2, 'c': (1, 2, 3), } c_ex = utils.collapse(ex, exclude=['a']) self.assertEqual({'a': [1], 'c': 3, 'b': 2}, c_ex)
def test_no_collapse(self): ex = { 'a': [1], 'b': [2], 'c': (1, 2, 3), } c_ex = utils.collapse(ex, exclude=set(six.iterkeys(ex))) self.assertEqual(ex, c_ex)
def test_collapse_simple(self): ex = { 'a': [1], 'b': 2, 'c': (1, 2, 3), } c_ex = utils.collapse(ex) self.assertEqual({'a': 1, 'c': 3, 'b': 2}, c_ex)
def test_empty_lists(self): ex = { 'a': [], 'b': (), 'c': [1], } c_ex = utils.collapse(ex) self.assertNotIn('b', c_ex) self.assertNotIn('a', c_ex) self.assertIn('c', c_ex)
def __init__(self, member_id, parsed_url, options): super(ConsulDriver, self).__init__(member_id, parsed_url, options) options = utils.collapse(options) self._host = parsed_url.hostname self._port = parsed_url.port or self.DEFAULT_PORT self._session_id = None self._session_name = encodeutils.safe_decode(member_id) self._ttl = int(options.get('ttl', self.DEFAULT_TTL)) namespace = options.get('namespace', self.TOOZ_NAMESPACE) self._namespace = encodeutils.safe_decode(namespace) self._client = None
def __init__(self, member_id, parsed_url, options): super(Etcd3Driver, self).__init__(member_id, parsed_url, options) host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) timeout = int(options.get('timeout', self.DEFAULT_TIMEOUT)) self.client = etcd3.client(host=host, port=port, timeout=timeout) self.lock_timeout = int(options.get('lock_timeout', timeout)) self.membership_timeout = int(options.get( 'membership_timeout', timeout)) self._acquired_locks = set()
def __init__(self, member_id, parsed_url, options): super(EtcdDriver, self).__init__(member_id, parsed_url, options) host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) self.client = _Client(host=host, port=port, protocol=options.get('protocol', 'http')) default_timeout = options.get('timeout', self.DEFAULT_TIMEOUT) self.lock_encoder = self.lock_encoder_cls(self.client.get_url("keys")) self.lock_timeout = int(options.get('lock_timeout', default_timeout)) self._acquired_locks = set()
def __init__(self, member_id, parsed_url, options): super(Etcd3Driver, self).__init__(member_id, parsed_url, options) host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) timeout = int(options.get('timeout', self.DEFAULT_TIMEOUT)) self.client = etcd3.client(host=host, port=port, timeout=timeout) self.lock_timeout = int(options.get('lock_timeout', timeout)) self.membership_timeout = int( options.get('membership_timeout', timeout)) self._acquired_locks = set()
def __init__(self, member_id, parsed_url, options): super(EtcdDriver, self).__init__() host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) self.client = _Client(host=host, port=port, protocol=options.get('protocol', 'http')) default_timeout = options.get('timeout', self.DEFAULT_TIMEOUT) self.lock_encoder = self.lock_encoder_cls(self.client.get_url("keys")) self.lock_timeout = int(options.get('lock_timeout', default_timeout)) self._acquired_locks = []
def __init__(self, member_id, parsed_url, options): super(ConsulDriver, self).__init__(member_id, parsed_url, options) options = utils.collapse(options) self._host = parsed_url.hostname self._port = parsed_url.port or self.DEFAULT_PORT self._session_id = None self._session_name = encodeutils.safe_decode(member_id) self._ttl = int(options.get('ttl', self.DEFAULT_TTL)) namespace = options.get('namespace', self.TOOZ_NAMESPACE) self._namespace = encodeutils.safe_decode(namespace) self._acl_token = options.get('acl_token', self.ACL_TOKEN) # the empty group name adds a trailing / needed for lookups self._groups_prefix = self._paths_join(self._namespace, "groups", "") self._client = None
def __init__(self, member_id, parsed_url, options): super(Etcd3Driver, self).__init__(member_id, parsed_url, options) protocol = 'https' if parsed_url.scheme.endswith('https') else 'http' host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) ca_cert = options.get('ca_cert') cert_key = options.get('cert_key') cert_cert = options.get('cert_cert') timeout = int(options.get('timeout', self.DEFAULT_TIMEOUT)) self.client = etcd3gw.client(host=host, port=port, protocol=protocol, ca_cert=ca_cert, cert_key=cert_key, cert_cert=cert_cert, timeout=timeout) self.lock_timeout = int(options.get('lock_timeout', timeout)) self.membership_timeout = int( options.get('membership_timeout', timeout)) self._acquired_locks = set()
def __init__(self, member_id, parsed_url, options): """Initialize the MySQL driver.""" super(MySQLDriver, self).__init__(member_id, parsed_url, options) self._parsed_url = parsed_url self._options = utils.collapse(options)
def __init__(self, member_id, parsed_url, options): self._options = utils.collapse(options, exclude=self.EXCLUDE_OPTIONS) self._executor = utils.ProxyExecutor.build(self.__class__.__name__, self._options) super(CoordinationDriverWithExecutor, self).__init__(member_id, parsed_url, options)
def __init__(self, member_id, parsed_url, options): self._options = utils.collapse(options, exclude=self.EXCLUDE_OPTIONS) self._executor = utils.ProxyExecutor.build( self.__class__.__name__, self._options) super(CoordinationDriverWithExecutor, self).__init__( member_id, parsed_url, options)