feat(agents): move agents into dbx repo
This commit is contained in:
1 parent
ab35fda299
commit
3a25487dea
215 files changed
+29740
-15
No files matched your search
@@ -0,0 +1,41 @@
|
||||
package com.dbx.agent.databricks;
|
||||
|
||||
import com.dbx.agent.ConfiguredJdbcAgent;
|
||||
import com.dbx.agent.ConnectParams;
|
||||
import com.dbx.agent.JdbcAgentProfile;
|
||||
import com.dbx.agent.JsonRpcServer;
|
||||
|
||||
public final class DatabricksAgent extends ConfiguredJdbcAgent {
|
||||
public static final JdbcAgentProfile DATABRICKS_PROFILE = new DatabricksProfile();
|
||||
|
||||
public DatabricksAgent() {
|
||||
super(DATABRICKS_PROFILE);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new JsonRpcServer(new DatabricksAgent()).run();
|
||||
}
|
||||
|
||||
private static final class DatabricksProfile extends JdbcAgentProfile {
|
||||
private DatabricksProfile() {
|
||||
super("com.databricks.client.jdbc.Driver", "jdbc:databricks://{host}:{port}/{database}", 443, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String buildUrl(ConnectParams params) {
|
||||
if (!params.getConnection_string().trim().isEmpty()) {
|
||||
return params.getConnection_string();
|
||||
}
|
||||
int port = params.getPort() > 0 ? params.getPort() : getDefaultPort();
|
||||
String base = getUrlTemplate()
|
||||
.replace("{host}", params.getHost())
|
||||
.replace("{port}", Integer.toString(port))
|
||||
.replace("{database}", params.getDatabase());
|
||||
String urlParams = params.getUrl_params() == null ? "" : params.getUrl_params().trim();
|
||||
while (urlParams.startsWith(";") || urlParams.startsWith("?") || urlParams.startsWith("&")) {
|
||||
urlParams = urlParams.substring(1);
|
||||
}
|
||||
return urlParams.isEmpty() ? base : base + ";" + urlParams;
|
||||
}
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.dbx.agent.databricks;
|
||||
|
||||
import com.dbx.agent.ConnectParams;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
class DatabricksAgentTest {
|
||||
@Test
|
||||
void buildsHttpPathUrl() {
|
||||
ConnectParams params = new ConnectParams();
|
||||
params.setHost("adb-123.azuredatabricks.net");
|
||||
params.setPort(443);
|
||||
params.setDatabase("default");
|
||||
params.setUrl_params("httpPath=/sql/1.0/warehouses/abc;AuthMech=3");
|
||||
|
||||
assertEquals(
|
||||
"jdbc:databricks://adb-123.azuredatabricks.net:443/default;httpPath=/sql/1.0/warehouses/abc;AuthMech=3",
|
||||
DatabricksAgent.DATABRICKS_PROFILE.buildUrl(params)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user