-
Notifications
You must be signed in to change notification settings - Fork 19
/
GPLink.java
121 lines (113 loc) · 3.47 KB
/
GPLink.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import java.sql.*;
import java.net.*;
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class GPLink
{
public static Boolean debug = true;
public static String gplinkHostName = "";
public static String gpfdistMaxLength = "";
public static String gpfdistTimeout = "";
public static String gplinkHome = "";
public static String gplinkLog = "";
public static String gplinkYml = "";
public static Integer gplinkPortLower = 0;
public static Integer gplinkPortUpper = 0;
public static void main(String[] args) throws SQLException
{
String targetConfig = "";
String tableName = "";
Connection conn = null;
try
{
int argsCount = args.length;
if (argsCount == 5)
//Creating a table
{
String sourceConfig = args[0];
String sql = args[1];
String targetTable = args[2];
targetConfig = args[3];
debug = Boolean.valueOf(args[4]);
loadProperties(targetConfig);
conn = CommonDB.connect(targetConfig);
Listener.startMissingPorts(conn);
tableName = TargetData.createTable(conn, targetTable, sourceConfig, sql);
Listener.stopOrphanedPorts(conn);
conn.close();
System.out.println("External Table: " + tableName + " CREATED.");
}
else if (argsCount == 3)
//Dropping a table
{
targetConfig = args[0];
tableName = args[1];
debug = Boolean.valueOf(args[2]);
loadProperties(targetConfig);
conn = CommonDB.connect(targetConfig);
Listener.startMissingPorts(conn);
TargetData.dropTable(conn, tableName);
Listener.stopOrphanedPorts(conn);
conn.close();
System.out.println("External Table: " + tableName + " DROPPED.");
}
else if (argsCount == 2)
//Starting missing gpfdist processes
{
targetConfig = args[0];
debug = Boolean.valueOf(args[1]);
loadProperties(targetConfig);
conn = CommonDB.connect(targetConfig);
Listener.startMissingPorts(conn);
conn.close();
System.out.println("Started all ports needed.");
}
}
catch (SQLException ex)
{
throw new SQLException(ex.getMessage());
}
finally
{
if (conn != null)
conn.close();
}
}
private static void loadProperties(String targetConfig) throws SQLException
{
try
{
Properties prop = new Properties();
InputStream inputStream = new FileInputStream(targetConfig);
if (inputStream != null)
{
prop.load(inputStream);
}
else
{
throw new FileNotFoundException(targetConfig + " not found!");
}
gplinkHostName = prop.getProperty("gplinkHostName");
gpfdistMaxLength = prop.getProperty("gpfdistMaxLength");
gpfdistTimeout = prop.getProperty("gpfdistTimeout");
gplinkHome = prop.getProperty("gplinkHome");
gplinkLog = prop.getProperty("gplinkLog");
gplinkYml = prop.getProperty("gplinkYml");
gplinkPortLower = Integer.parseInt(prop.getProperty("gplinkPortLower"));
gplinkPortUpper = Integer.parseInt(prop.getProperty("gplinkPortUpper"));
Validation.checkProperty("gplinkHostName", gplinkHostName);
Validation.checkProperty("gpfdistMaxLength", gpfdistMaxLength);
Validation.checkProperty("gpfdistTimeout", gpfdistTimeout);
Validation.checkProperty("gplinkHome", gplinkHome);
Validation.checkProperty("gplinkLog", gplinkLog);
Validation.checkProperty("gplinkYml", gplinkYml);
Validation.checkProperty("gplinkPortLower", gplinkPortLower);
Validation.checkProperty("gplinkPortUpper", gplinkPortUpper);
}
catch (Exception ex)
{
throw new SQLException(ex.getMessage());
}
}
}