103 lines
3.0 KiB
Java
103 lines
3.0 KiB
Java
package maxscale.java;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
import java.sql.SQLException;
|
|
import java.sql.Statement;
|
|
|
|
/**
|
|
* Simple MaxScale connection class
|
|
*
|
|
* Allows execution of queries to one of the MaxScale services configured for
|
|
* testing.
|
|
*/
|
|
public class MaxScaleConnection {
|
|
|
|
private static String ip = null;
|
|
private static String user = null;
|
|
private static String password = null;
|
|
private static boolean smoke_test = false;
|
|
private Connection conn_rw = null, conn_master = null, conn_slave = null;
|
|
public static final int READWRITESPLIT_PORT = 4006;
|
|
public static final int READCONNROUTE_MASTER_PORT = 4008;
|
|
public static final int READCONNROUTE_SLAVE_PORT = 4009;
|
|
|
|
public String getIp() {
|
|
return ip;
|
|
}
|
|
|
|
public String getUser() {
|
|
return user;
|
|
}
|
|
|
|
public String getPassword() {
|
|
return password;
|
|
}
|
|
|
|
public Connection getConnRw() {
|
|
return conn_rw;
|
|
}
|
|
|
|
public Connection getConnMaster() {
|
|
return conn_master;
|
|
}
|
|
|
|
public Connection getConnSlave() {
|
|
return conn_slave;
|
|
}
|
|
|
|
public void setConnRw(Connection conn) {
|
|
conn_rw = conn;
|
|
}
|
|
|
|
public void setConnMaster(Connection conn) {
|
|
conn_master = conn;
|
|
}
|
|
|
|
public void setConnSlave(Connection conn) {
|
|
conn_slave = conn;
|
|
}
|
|
|
|
public MaxScaleConnection(String options) throws SQLException, Exception {
|
|
String s = System.getenv("smoke");
|
|
smoke_test = (s != null && s.compareTo("yes") == 0);
|
|
|
|
if ((ip = System.getenv("maxscale_IP")) == null || ip.length() == 0) {
|
|
throw new Exception("Missing environment variable 'maxscale_IP'.");
|
|
}
|
|
|
|
if ((user = System.getenv("maxscale_user")) == null || user.length() == 0) {
|
|
throw new Exception("Missing environment variable 'maxscale_user'.");
|
|
}
|
|
|
|
if ((password = System.getenv("maxscale_password")) == null || password.length() == 0) {
|
|
throw new Exception("Missing environment variable 'maxscale_password'.");
|
|
}
|
|
|
|
System.out.println("IP: " + ip + " User: " + user + " Password: " + password);
|
|
|
|
Class.forName("org.mariadb.jdbc.Driver");
|
|
conn_rw = DriverManager.getConnection(
|
|
"jdbc:mariadb://" + ip + ":" + READWRITESPLIT_PORT + "/test?" + options, user, password);
|
|
|
|
conn_master = DriverManager.getConnection(
|
|
"jdbc:mariadb://" + ip + ":" + READCONNROUTE_MASTER_PORT + "/test?" + options, user, password);
|
|
|
|
conn_slave = DriverManager.getConnection(
|
|
"jdbc:mariadb://" + ip + ":" + READCONNROUTE_SLAVE_PORT + "/test?" + options, user, password);
|
|
}
|
|
|
|
public MaxScaleConnection() throws SQLException, Exception {
|
|
this("");
|
|
}
|
|
|
|
public boolean isSmokeTest() {
|
|
return smoke_test;
|
|
}
|
|
|
|
public void query(Connection connection, String query) throws SQLException {
|
|
Statement stmt = connection.createStatement();
|
|
stmt.execute(query);
|
|
}
|
|
}
|