void prepare_alter_schema_version_session() { // Create a new session for altering node2 and node3 system tables std::string ip_prefix = inst.ccm->get_ip_prefix(); std::stringstream whitelist_hosts; whitelist_hosts << ip_prefix << "2," << ip_prefix << "3"; cass_cluster_set_whitelist_filtering(inst.cluster, whitelist_hosts.str().c_str()); schema_alter_session = cass_session_new(); test_utils::CassFuturePtr connect_future(cass_session_connect(schema_alter_session, inst.cluster)); test_utils::wait_and_check_error(connect_future.get()); std::string update_peer("UPDATE system.peers SET schema_version=? WHERE peer='" + ip_prefix + "1'"); test_utils::CassFuturePtr prepared_future(cass_session_prepare_n(schema_alter_session, update_peer.data(), update_peer.size())); test_utils::wait_and_check_error(prepared_future.get()); schema_alter_prepared = test_utils::CassPreparedPtr(cass_future_get_prepared(prepared_future.get())); }
/** * Get a session that is only connected to the given node. * * @param node The node the session should be connected to * @return The connected session */ const test_utils::CassSessionPtr& session_for_node(int node) { if (node >= static_cast<int>(sessions.size()) || !sessions[node]) { sessions.resize(node + 1); std::stringstream ip_address; ip_address << ccm->get_ip_prefix() << node; test_utils::CassClusterPtr cluster(cass_cluster_new()); cass_cluster_set_contact_points(cluster.get(), ip_address.str().c_str()); cass_cluster_set_whitelist_filtering(cluster.get(), ip_address.str().c_str()); sessions[node] = test_utils::create_session(cluster.get()); } return sessions[node]; }