Example #1
0
 def get_nodes_formatted(pod,
                         tenant,
                         cluster_id,
                         username=None,
                         password=None):
     servers = capella_utils.get_nodes(pod, tenant, cluster_id)
     nodes = list()
     for server in servers:
         temp_server = TestInputServer()
         temp_server.ip = server.get("hostname")
         temp_server.hostname = server.get("hostname")
         capella_services = server.get("services")
         services = []
         for service in capella_services:
             if service == "Data":
                 services.append("kv")
             elif service == "Index":
                 services.append("index")
             elif service == "Query":
                 services.append("n1ql")
             elif service == "Search":
                 services.append("fts")
             elif service == "Eventing":
                 services.append("eventing")
             elif service == "Analytics":
                 services.append("cbas")
         temp_server.services = services
         temp_server.port = "18091"
         temp_server.rest_username = username
         temp_server.rest_password = password
         temp_server.hosted_on_cloud = True
         temp_server.memcached_port = "11207"
         nodes.append(temp_server)
     return nodes
Example #2
0
    def reset_vbucket(self, rest, key):
        vBucketId = crc32.crc32_hash(key) & (len(self.vBucketMap) - 1)
        forward_map = rest.get_bucket(self.bucket).forward_map
        if not forward_map:
            forward_map = rest.get_vbuckets(self.bucket)
        nodes = rest.get_nodes()

        for vBucket in forward_map:
            if vBucketId == vBucket.id:
                self.vBucketMap[vBucket.id] = vBucket.master
                # it has changed , then to different server or a new server
                masterIp = vBucket.master.split(":")[0]
                masterPort = int(vBucket.master.split(":")[1])
                if self.vBucketMap[vBucketId] not in self.memcacheds:
                    server = TestInputServer()
                    server.rest_username = rest.username
                    server.rest_password = rest.password
                    for node in nodes:
                        if node.ip == masterIp and node.memcached == masterPort:
                            server.port = node.port
                    server.ip = masterIp
                    self.log.info("Recevied forward map, reset vbucket map, new direct_client")
                    self.memcacheds[vBucket.master] = MemcachedClientHelper.direct_client(server, self.bucket)
                    return True
                else:
                    # if no one is using that memcached connection anymore just close the connection
                    return True
        return False
Example #3
0
 def _poxi(self):
     tServer = TestInputServer()
     tServer.ip = self.server_ip
     tServer.rest_username = "******"
     tServer.rest_password = "******"
     tServer.port = 8091
     rest = RestConnection(tServer)
     return VBucketAwareMemcached(rest, self.bucket_name)
Example #4
0
 def _poxi(self):
     tServer = TestInputServer()
     tServer.ip = self.server_ip
     tServer.rest_username = "******"
     tServer.rest_password = "******"
     tServer.port = 8091
     rest = RestConnection(tServer)
     return VBucketAwareMemcached(rest, self.bucket_name)
    def __populate_cluster_info(self, cluster_id, servers, cluster_srv,
                                cluster_name, service_config):
        nodes = list()
        for server in servers:
            temp_server = TestInputServer()
            temp_server.ip = server.get("hostname")
            temp_server.hostname = server.get("hostname")
            temp_server.services = server.get("services")
            temp_server.port = "18091"
            temp_server.rest_username = self.rest_username
            temp_server.rest_password = self.rest_password
            temp_server.hosted_on_cloud = True
            temp_server.memcached_port = "11207"
            nodes.append(temp_server)
        cluster = CBCluster(username=self.rest_username,
                            password=self.rest_password,
                            servers=[None] * 40)
        cluster.id = cluster_id
        cluster.srv = cluster_srv
        cluster.cluster_config = service_config
        cluster.pod = self.pod
        cluster.tenant = self.tenant

        for temp_server in nodes:
            if "Data" in temp_server.services:
                cluster.kv_nodes.append(temp_server)
            if "Query" in temp_server.services:
                cluster.query_nodes.append(temp_server)
            if "Index" in temp_server.services:
                cluster.index_nodes.append(temp_server)
            if "Eventing" in temp_server.services:
                cluster.eventing_nodes.append(temp_server)
            if "Analytics" in temp_server.services:
                cluster.cbas_nodes.append(temp_server)
            if "FTS" in temp_server.services:
                cluster.fts_nodes.append(temp_server)
        cluster.master = cluster.kv_nodes[0]
        self.tenant.clusters.update({cluster.id: cluster})

        cluster.master = cluster.kv_nodes[0]
        self.tenant.clusters.update({cluster.id: cluster})
        self.cb_clusters[cluster_name] = cluster
        self.cb_clusters[cluster_name].cloud_cluster = True
Example #6
0
    def add_memcached(self, server_str, memcacheds, rest, bucket):
        if not server_str in memcacheds:
            serverIp = server_str.split(":")[0]
            serverPort = int(server_str.split(":")[1])
            nodes = rest.get_nodes()

            server = TestInputServer()
            server.ip = serverIp
            server.port = rest.port
            server.rest_username = rest.username
            server.rest_password = rest.password
            try:
                for node in nodes:
                    if node.ip == serverIp and node.memcached == serverPort:
                        if server_str not in memcacheds:
                            server.port = node.port
                            memcacheds[server_str] = MemcachedClientHelper.direct_client(server, bucket)
                        break
            except Exception as ex:
                msg = "unable to establish connection to {0}.cleanup open connections"
                self.log.warn(msg.format(serverIp))
                self.done()
                raise ex