def direct_mc_bin_client(self, server, bucket, timeout=30): # USE MC BIN CLIENT WHEN NOT USING SDK CLIENT rest = RestConnection(server) node = None try: node = rest.get_nodes_self() except ValueError as e: self.log.info("could not connect to server {0}, will try scanning all nodes".format(server)) if not node: nodes = rest.get_nodes() for n in nodes: if n.ip == server.ip and n.port == server.port: node = n if isinstance(server, dict): self.log.info("dict:{0}".format(server)) self.log.info("creating direct client {0}:{1} {2}".format(server["ip"], node.memcached, bucket)) else: self.log.info("creating direct client {0}:{1} {2}".format(server.ip, node.memcached, bucket)) RestHelper(rest).vbucket_map_ready(bucket, 60) vBuckets = RestConnection(server).get_vbuckets(bucket) if isinstance(server, dict): client = MemcachedClient(server["ip"], node.memcached, timeout=timeout) else: client = MemcachedClient(server.ip, node.memcached, timeout=timeout) if vBuckets != None: client.vbucket_count = len(vBuckets) else: client.vbucket_count = 0 bucket_info = rest.get_bucket(bucket) return client