rbatch 1.6.3 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -5
- data/doc/rdoc/CHANGELOG.html +182 -0
- data/doc/rdoc/LICENSE.html +98 -0
- data/doc/rdoc/RBatch/Cmd.html +333 -0
- data/doc/rdoc/RBatch/CmdException.html +158 -0
- data/doc/rdoc/RBatch/CmdResult.html +496 -0
- data/doc/rdoc/RBatch/Config/Exception.html +158 -0
- data/doc/rdoc/RBatch/Config.html +355 -0
- data/doc/rdoc/RBatch/Log.html +743 -0
- data/doc/rdoc/RBatch.html +457 -0
- data/doc/rdoc/created.rid +8 -0
- data/doc/rdoc/images/brick.png +0 -0
- data/doc/rdoc/images/brick_link.png +0 -0
- data/doc/rdoc/images/bug.png +0 -0
- data/doc/rdoc/images/bullet_black.png +0 -0
- data/doc/rdoc/images/bullet_toggle_minus.png +0 -0
- data/doc/rdoc/images/bullet_toggle_plus.png +0 -0
- data/doc/rdoc/images/date.png +0 -0
- data/doc/rdoc/images/find.png +0 -0
- data/doc/rdoc/images/loadingAnimation.gif +0 -0
- data/doc/rdoc/images/macFFBgHack.png +0 -0
- data/doc/rdoc/images/package.png +0 -0
- data/doc/rdoc/images/page_green.png +0 -0
- data/doc/rdoc/images/page_white_text.png +0 -0
- data/doc/rdoc/images/page_white_width.png +0 -0
- data/doc/rdoc/images/plugin.png +0 -0
- data/doc/rdoc/images/ruby.png +0 -0
- data/doc/rdoc/images/tag_green.png +0 -0
- data/doc/rdoc/images/wrench.png +0 -0
- data/doc/rdoc/images/wrench_orange.png +0 -0
- data/doc/rdoc/images/zoom.png +0 -0
- data/doc/rdoc/index.html +136 -0
- data/doc/rdoc/js/darkfish.js +116 -0
- data/doc/rdoc/js/jquery.js +32 -0
- data/doc/rdoc/js/quicksearch.js +114 -0
- data/doc/rdoc/js/thickbox-compressed.js +10 -0
- data/doc/rdoc/lib/rbatch/cmd_rb.html +56 -0
- data/doc/rdoc/lib/rbatch/config_rb.html +56 -0
- data/doc/rdoc/lib/rbatch/log_rb.html +58 -0
- data/doc/rdoc/lib/rbatch_rb.html +58 -0
- data/doc/rdoc/rdoc.css +706 -0
- data/sample/bin/apache_log_insert.rb +108 -0
- data/sample/bin/file_batch_copy.rb +13 -0
- data/sample/bin/mysql_data_backup.rb +42 -0
- data/sample/bin/openam_log_insert.rb +105 -0
- data/sample/bin/openldap_backup.rb +7 -0
- data/sample/bin/webagent_log_insert.rb +108 -0
- data/sample/conf/apache_log_insert.yaml +8 -0
- data/sample/conf/file_batch_copy.yaml +5 -0
- data/sample/conf/mysql_data_backup.yaml +5 -0
- data/sample/conf/openam_log_insert.yaml +35 -0
- data/sample/conf/openldap_backup.yaml +2 -0
- data/sample/conf/rbatch.yaml +68 -0
- data/sample/conf/test.yaml +5 -0
- data/sample/conf/webagent_log_insert.yaml +16 -0
- data/sample/data/access_log.1 +50 -0
- data/sample/data/access_log.2012-07-10 +50 -0
- data/sample/data/amAgent_localhost_80.log.1 +39 -0
- data/sample/data/amAgent_localhost_80.log.2012-07-10 +40 -0
- data/sample/data/amAuthentication.access.1 +30 -0
- data/sample/data/amAuthentication.access.2012-07-10 +30 -0
- data/sample/data/amAuthentication.error.1 +10 -0
- data/sample/data/amAuthentication.error.2012-07-10 +6 -0
- data/sample/log/20130120_apache_log_insert.log +171 -0
- data/sample/log/20130120_openam_log_insert.log +143 -0
- data/sample/log/20130121_apache_log_insert.log +103 -0
- data/sample/log/20130121_file_batch_copy.log +15 -0
- data/sample/log/20130121_openam_log_insert.log +39 -0
- data/sample/log/20130121_webagent_log_insert.log +432 -0
- data/sample/log/empty +0 -0
- data/sample/moto/README +16 -0
- data/sample/moto/auditlog.src.zip +0 -0
- data/sample/moto/build.gradle +106 -0
- data/sample/moto/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/sample/moto/gradle/wrapper/gradle-wrapper.properties +7 -0
- data/sample/moto/gradle.properties +12 -0
- data/sample/moto/gradlew +164 -0
- data/sample/moto/gradlew.bat +90 -0
- data/sample/moto/settings.gradle +1 -0
- data/sample/moto/src/main/bin/delete_auditlog.sh +176 -0
- data/sample/moto/src/main/bin/delete_workflowinstances.sh +315 -0
- data/sample/moto/src/main/bin/import_auth_log.sh +23 -0
- data/sample/moto/src/main/etc/delete_auditlog.param +39 -0
- data/sample/moto/src/main/etc/delete_workflowinstances.param +30 -0
- data/sample/moto/src/main/etc/log4j.xml +28 -0
- data/sample/moto/src/main/etc/status.properties +27 -0
- data/sample/moto/src/main/etc/sysparam.properties +54 -0
- data/sample/moto/src/main/java/jp/ossc/imortAuditlog/DateUtil.java +48 -0
- data/sample/moto/src/main/java/jp/ossc/imortAuditlog/ImportAuthLogMain.java +36 -0
- data/sample/moto/src/main/java/jp/ossc/imortAuditlog/LogReader.java +521 -0
- data/sample/moto/src/main/java/jp/ossc/imortAuditlog/MysqlController.java +315 -0
- data/sample/moto/src/main/logrotate/delete_auditlog +6 -0
- data/sample/moto/src/main/logrotate/delete_workflowinstanceslog +6 -0
- data/sample/moto/src/main/sql/tables.sql +36 -0
- data/test/cases/test_cmd.rb +120 -0
- data/test/cases/test_config.rb +41 -0
- data/test/cases/test_log.rb +599 -0
- data/test/conf/rbatch.yaml +0 -0
- data/test/mocks/PrintArgs.exe +0 -0
- data/test/mocks/win_cmd.exe +0 -0
- metadata +100 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
package jp.ossc.imortAuditlog;
|
|
2
|
+
|
|
3
|
+
import java.net.InetAddress;
|
|
4
|
+
import java.net.UnknownHostException;
|
|
5
|
+
import java.sql.Connection;
|
|
6
|
+
import java.sql.DriverManager;
|
|
7
|
+
import java.sql.SQLException;
|
|
8
|
+
import java.sql.Timestamp;
|
|
9
|
+
import java.util.Map;
|
|
10
|
+
import java.util.PropertyResourceBundle;
|
|
11
|
+
import java.util.ResourceBundle;
|
|
12
|
+
|
|
13
|
+
import java.sql.PreparedStatement;
|
|
14
|
+
|
|
15
|
+
import org.apache.log4j.Logger;
|
|
16
|
+
|
|
17
|
+
public class MysqlController {
|
|
18
|
+
private static Logger logger = Logger.getLogger(MysqlController.class);
|
|
19
|
+
|
|
20
|
+
private static Connection con = null;
|
|
21
|
+
private static InetAddress addr = null;
|
|
22
|
+
private static PreparedStatement pstmtAuthBatch = null;
|
|
23
|
+
private static PreparedStatement pstmtAgentAuthBatch = null;
|
|
24
|
+
private static PreparedStatement pstmtBatch = null;
|
|
25
|
+
ResourceBundle sysResource = PropertyResourceBundle.getBundle("sysparam");
|
|
26
|
+
|
|
27
|
+
//処理件数
|
|
28
|
+
public int excuteAuthCount =0;
|
|
29
|
+
public int excuteAgentAuthCount =0;
|
|
30
|
+
public int excuteCount =0;
|
|
31
|
+
|
|
32
|
+
/*
|
|
33
|
+
* MySqlへ接続を行う。
|
|
34
|
+
*/
|
|
35
|
+
public Boolean connect(){
|
|
36
|
+
|
|
37
|
+
if(con == null){
|
|
38
|
+
try {
|
|
39
|
+
// JDBCドライバの登録
|
|
40
|
+
String driver = "com.mysql.jdbc.Driver";
|
|
41
|
+
// Host名
|
|
42
|
+
String server = sysResource.getString("mysql.host");
|
|
43
|
+
// port番号
|
|
44
|
+
String port = sysResource.getString("mysql.port");
|
|
45
|
+
// ユーザー
|
|
46
|
+
String user = sysResource.getString("mysql.user");
|
|
47
|
+
// パスワード
|
|
48
|
+
String password = sysResource.getString("mysql.password");
|
|
49
|
+
// データベース名
|
|
50
|
+
String dbname =sysResource.getString("mysql.dbname");
|
|
51
|
+
// オプション
|
|
52
|
+
String option =sysResource.getString("mysql.option");
|
|
53
|
+
// データベースの指定
|
|
54
|
+
String url = "jdbc:mysql://" + server +":" + port + "/"+ dbname + "?" + option;
|
|
55
|
+
Class.forName (driver);
|
|
56
|
+
// データベースとの接続
|
|
57
|
+
con = DriverManager.getConnection(url, user, password);
|
|
58
|
+
con.setAutoCommit(false);
|
|
59
|
+
} catch (SQLException e) {
|
|
60
|
+
logger.error("dbconect error");
|
|
61
|
+
e.printStackTrace ();
|
|
62
|
+
} catch (ClassNotFoundException ex) {
|
|
63
|
+
logger.error("driver class not found");
|
|
64
|
+
ex.printStackTrace ();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/*
|
|
71
|
+
* MySqlへの接続を切断する。
|
|
72
|
+
*/
|
|
73
|
+
public void disconnect() {
|
|
74
|
+
try {
|
|
75
|
+
con.close();
|
|
76
|
+
if (con != null)
|
|
77
|
+
con = null;
|
|
78
|
+
} catch (SQLException e) {
|
|
79
|
+
//logger.warn("", e);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* コミットを行う。
|
|
85
|
+
*/
|
|
86
|
+
public void commit() {
|
|
87
|
+
try {
|
|
88
|
+
con.commit();
|
|
89
|
+
} catch (SQLException e) {
|
|
90
|
+
//logger.warn("", e);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/*
|
|
95
|
+
* 認証ログ登録SQLのパラメータをセットする。
|
|
96
|
+
*/
|
|
97
|
+
public boolean insertAuth(Map authLog){
|
|
98
|
+
try {
|
|
99
|
+
if(addr == null){
|
|
100
|
+
addr = InetAddress.getLocalHost();
|
|
101
|
+
}
|
|
102
|
+
// 各カラムに登録するデータをセット
|
|
103
|
+
int companyId = Integer.valueOf(sysResource.getString("companyid.value"));
|
|
104
|
+
String date = authLog.get("DATE").toString();
|
|
105
|
+
java.util.Date dateTime = DateUtil.toCalendar(date).getTime();
|
|
106
|
+
Timestamp sqlDate = new Timestamp(dateTime.getTime());
|
|
107
|
+
pstmtAuthBatch.setInt(1,companyId);
|
|
108
|
+
pstmtAuthBatch.setTimestamp(2, sqlDate);
|
|
109
|
+
pstmtAuthBatch.setString(3, authLog.get("USERID").toString());
|
|
110
|
+
pstmtAuthBatch.setString(4, authLog.get("CLIENTIP").toString());
|
|
111
|
+
pstmtAuthBatch.setString(5, addr.getHostName());
|
|
112
|
+
pstmtAuthBatch.setString(6, authLog.get("STATUS").toString());
|
|
113
|
+
|
|
114
|
+
pstmtAuthBatch.addBatch();
|
|
115
|
+
} catch (SQLException e) {
|
|
116
|
+
e.printStackTrace();
|
|
117
|
+
try {
|
|
118
|
+
con.rollback();
|
|
119
|
+
} catch (SQLException e1) {
|
|
120
|
+
e1.printStackTrace();
|
|
121
|
+
}
|
|
122
|
+
} catch (UnknownHostException e1) {
|
|
123
|
+
e1.printStackTrace();
|
|
124
|
+
}
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/*
|
|
129
|
+
* 認証ログ登録SQLをセットする。
|
|
130
|
+
*/
|
|
131
|
+
public void setAuthQuery(){
|
|
132
|
+
String query = "INSERT INTO authentication_log(companyId,date,login_id,access_ip,host_name,status) VALUES (?,?,?,?,?,?)";
|
|
133
|
+
try {
|
|
134
|
+
pstmtAuthBatch = con.prepareStatement(query);
|
|
135
|
+
} catch (SQLException e) {
|
|
136
|
+
try {
|
|
137
|
+
con.rollback();
|
|
138
|
+
} catch (SQLException e1) {
|
|
139
|
+
e1.printStackTrace();
|
|
140
|
+
}
|
|
141
|
+
e.printStackTrace();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/*
|
|
146
|
+
* 認証ログ登録SQLを実行する。
|
|
147
|
+
*/
|
|
148
|
+
public boolean executeAuthBatch(){
|
|
149
|
+
// SQL文を発行し、結果を取得
|
|
150
|
+
try {
|
|
151
|
+
int[] numInsert = pstmtAuthBatch.executeBatch();
|
|
152
|
+
excuteAuthCount = excuteAuthCount + numInsert.length;
|
|
153
|
+
} catch (SQLException e) {
|
|
154
|
+
try {
|
|
155
|
+
con.rollback();
|
|
156
|
+
} catch (SQLException e1) {
|
|
157
|
+
e1.printStackTrace();
|
|
158
|
+
}
|
|
159
|
+
e.printStackTrace();
|
|
160
|
+
}
|
|
161
|
+
// データ作成が正常か判定
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
* アクセスログ登録SQLをセットする。
|
|
167
|
+
*/
|
|
168
|
+
public void setQuery(){
|
|
169
|
+
String query = "INSERT INTO access_log(companyId,date,login_id,access_ip,host_name,access_url,forward_time,httpstatus,user_agent,referer) VALUES (?,?,?,?,?,?,?,?,?,?)";
|
|
170
|
+
try {
|
|
171
|
+
pstmtBatch = con.prepareStatement(query);
|
|
172
|
+
} catch (SQLException e) {
|
|
173
|
+
try {
|
|
174
|
+
con.rollback();
|
|
175
|
+
} catch (SQLException e1) {
|
|
176
|
+
e1.printStackTrace();
|
|
177
|
+
}
|
|
178
|
+
e.printStackTrace();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/*
|
|
183
|
+
* アクセスログ登録SQLのパラメータをセットする。
|
|
184
|
+
*/
|
|
185
|
+
public boolean insertAccessBatch(Map accessLog){
|
|
186
|
+
// ステートメント生成
|
|
187
|
+
try {
|
|
188
|
+
if(addr == null){
|
|
189
|
+
addr = InetAddress.getLocalHost();
|
|
190
|
+
}
|
|
191
|
+
// 各カラムに登録するデータをセット
|
|
192
|
+
int companyId = Integer.valueOf(sysResource.getString("companyid.value"));
|
|
193
|
+
String date = accessLog.get("DATE").toString();
|
|
194
|
+
java.util.Date dateTime = DateUtil.toCalendar(date).getTime();
|
|
195
|
+
Timestamp sqlDate = new Timestamp(dateTime.getTime());
|
|
196
|
+
pstmtBatch.setInt(1,companyId);
|
|
197
|
+
pstmtBatch.setObject(2, sqlDate);
|
|
198
|
+
pstmtBatch.setObject(3, accessLog.get("USERID"));
|
|
199
|
+
pstmtBatch.setObject(4, accessLog.get("CLIENTIP"));
|
|
200
|
+
pstmtBatch.setObject(5, addr.getHostName());
|
|
201
|
+
pstmtBatch.setObject(6, accessLog.get("REQUEST"));
|
|
202
|
+
pstmtBatch.setObject(7, accessLog.get("PROCESSINGTIME"));
|
|
203
|
+
pstmtBatch.setObject(8, accessLog.get("STATUS"));
|
|
204
|
+
pstmtBatch.setObject(9, accessLog.get("AGENT"));
|
|
205
|
+
pstmtBatch.setObject(10, accessLog.get("REFERER"));
|
|
206
|
+
|
|
207
|
+
pstmtBatch.addBatch();
|
|
208
|
+
|
|
209
|
+
} catch (SQLException e) {
|
|
210
|
+
try {
|
|
211
|
+
con.rollback();
|
|
212
|
+
} catch (SQLException e1) {
|
|
213
|
+
e1.printStackTrace();
|
|
214
|
+
}
|
|
215
|
+
e.printStackTrace();
|
|
216
|
+
} catch (UnknownHostException e1) {
|
|
217
|
+
e1.printStackTrace();
|
|
218
|
+
}
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/*
|
|
223
|
+
* アクセスログ登録SQLを実行する。
|
|
224
|
+
*/
|
|
225
|
+
public boolean executeBatch() throws SQLException{
|
|
226
|
+
// SQL文を発行し、結果を取得
|
|
227
|
+
try {
|
|
228
|
+
int [] numInsert = pstmtBatch.executeBatch();
|
|
229
|
+
excuteCount = excuteCount + numInsert.length;
|
|
230
|
+
} catch (SQLException e) {
|
|
231
|
+
try {
|
|
232
|
+
con.rollback();
|
|
233
|
+
} catch (SQLException e1) {
|
|
234
|
+
e1.printStackTrace();
|
|
235
|
+
throw e;
|
|
236
|
+
}
|
|
237
|
+
e.printStackTrace();
|
|
238
|
+
throw e;
|
|
239
|
+
}
|
|
240
|
+
// データ作成が正常か判定
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/*
|
|
245
|
+
* 認可ログ登録SQLのパラメータをセットする。
|
|
246
|
+
*/
|
|
247
|
+
public boolean insertAgentAuth(Map agentAuthLog){
|
|
248
|
+
try {
|
|
249
|
+
if(addr == null){
|
|
250
|
+
addr = InetAddress.getLocalHost();
|
|
251
|
+
}
|
|
252
|
+
// 各カラムに登録するデータをセット
|
|
253
|
+
int companyId = Integer.valueOf(sysResource.getString("companyid.value"));
|
|
254
|
+
String date = agentAuthLog.get("DATE").toString();
|
|
255
|
+
java.util.Date dateTime = DateUtil.toCalendar(date).getTime();
|
|
256
|
+
Timestamp sqlDate = new Timestamp(dateTime.getTime());
|
|
257
|
+
pstmtAgentAuthBatch.setInt(1,companyId);
|
|
258
|
+
pstmtAgentAuthBatch.setTimestamp(2, sqlDate);
|
|
259
|
+
pstmtAgentAuthBatch.setString(3, agentAuthLog.get("USERID").toString());
|
|
260
|
+
pstmtAgentAuthBatch.setString(4, addr.getHostName());
|
|
261
|
+
pstmtAgentAuthBatch.setObject(5, agentAuthLog.get("REQUEST"));
|
|
262
|
+
pstmtAgentAuthBatch.setString(6, agentAuthLog.get("STATUS").toString());
|
|
263
|
+
|
|
264
|
+
pstmtAgentAuthBatch.addBatch();
|
|
265
|
+
} catch (SQLException e) {
|
|
266
|
+
e.printStackTrace();
|
|
267
|
+
try {
|
|
268
|
+
con.rollback();
|
|
269
|
+
} catch (SQLException e1) {
|
|
270
|
+
e1.printStackTrace();
|
|
271
|
+
}
|
|
272
|
+
} catch (UnknownHostException e1) {
|
|
273
|
+
e1.printStackTrace();
|
|
274
|
+
}
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/*
|
|
279
|
+
* 認可ログ登録SQLをセットする。
|
|
280
|
+
*/
|
|
281
|
+
public void setAgentAuthQuery(){
|
|
282
|
+
String query = "INSERT INTO authorization_log(companyId,date,login_id,host_name,access_url,status) VALUES (?,?,?,?,?,?)";
|
|
283
|
+
try {
|
|
284
|
+
pstmtAgentAuthBatch = con.prepareStatement(query);
|
|
285
|
+
} catch (SQLException e) {
|
|
286
|
+
try {
|
|
287
|
+
con.rollback();
|
|
288
|
+
} catch (SQLException e1) {
|
|
289
|
+
e1.printStackTrace();
|
|
290
|
+
}
|
|
291
|
+
e.printStackTrace();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/*
|
|
296
|
+
* 認可ログ登録SQLを実行する。
|
|
297
|
+
*/
|
|
298
|
+
public boolean executeAgentAuthBatch(){
|
|
299
|
+
// SQL文を発行し、結果を取得
|
|
300
|
+
try {
|
|
301
|
+
int[] numInsert = pstmtAgentAuthBatch.executeBatch();
|
|
302
|
+
excuteAgentAuthCount = excuteAgentAuthCount + numInsert.length;
|
|
303
|
+
} catch (SQLException e) {
|
|
304
|
+
try {
|
|
305
|
+
con.rollback();
|
|
306
|
+
} catch (SQLException e1) {
|
|
307
|
+
e1.printStackTrace();
|
|
308
|
+
}
|
|
309
|
+
e.printStackTrace();
|
|
310
|
+
}
|
|
311
|
+
// データ作成が正常か判定
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `authentication_log` (
|
|
2
|
+
`id` int(10) NOT NULL AUTO_INCREMENT,
|
|
3
|
+
`companyId` bigint(20) NOT NULL,
|
|
4
|
+
`date` datetime NOT NULL,
|
|
5
|
+
`login_id` varchar(75) NOT NULL,
|
|
6
|
+
`access_ip` varchar(15) NOT NULL,
|
|
7
|
+
`host_name` varchar(75) NOT NULL,
|
|
8
|
+
`status` varchar(50) NOT NULL,
|
|
9
|
+
PRIMARY KEY (`id`)
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS `access_log` (
|
|
13
|
+
`id` int(10) NOT NULL AUTO_INCREMENT,
|
|
14
|
+
`companyId` bigint(20) NOT NULL,
|
|
15
|
+
`date` datetime NOT NULL,
|
|
16
|
+
`login_id` varchar(75) NOT NULL,
|
|
17
|
+
`access_ip` varchar(15) NOT NULL,
|
|
18
|
+
`host_name` varchar(75) NOT NULL,
|
|
19
|
+
`access_url` varchar(2048) NOT NULL,
|
|
20
|
+
`forward_time` int(5) NOT NULL,
|
|
21
|
+
`httpstatus` int(3) NOT NULL,
|
|
22
|
+
`user_agent` varchar(512) NOT NULL,
|
|
23
|
+
`referer` varchar(2048),
|
|
24
|
+
PRIMARY KEY (`id`)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
CREATE TABLE IF NOT EXISTS `authorization_log` (
|
|
28
|
+
`id` int(10) NOT NULL AUTO_INCREMENT,
|
|
29
|
+
`companyId` bigint(20) NOT NULL,
|
|
30
|
+
`date` datetime NOT NULL,
|
|
31
|
+
`login_id` varchar(75) NOT NULL,
|
|
32
|
+
`host_name` varchar(75) NOT NULL,
|
|
33
|
+
`access_url` varchar(2048) NOT NULL,
|
|
34
|
+
`status` varchar(50) NOT NULL,
|
|
35
|
+
PRIMARY KEY (`id`)
|
|
36
|
+
);
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'rbatch'
|
|
3
|
+
|
|
4
|
+
class RuncherTest < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
@config_dir = File.join(File.dirname(RBatch.program_name), "..", "conf")
|
|
7
|
+
Dir::mkdir(@config_dir) if ! Dir.exists? @config_dir
|
|
8
|
+
confstr = ""
|
|
9
|
+
open( RBatch.common_config_path , "w" ){|f| f.write(confstr)}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_cmd_exists
|
|
13
|
+
result = RBatch::cmd "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'"
|
|
14
|
+
assert_equal "1", result.stdout.chomp
|
|
15
|
+
assert_equal "2", result.stderr.chomp
|
|
16
|
+
assert_equal 0, result.status
|
|
17
|
+
end
|
|
18
|
+
def test_cmd_does_not_exist
|
|
19
|
+
assert_raise(Errno::ENOENT){
|
|
20
|
+
RBatch::cmd "not_exist_command"
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
def test_stdout_size_greater_than_65534
|
|
24
|
+
result = RBatch::cmd "ruby -e '100000.times{print 0}'"
|
|
25
|
+
assert_equal 100000, result.stdout.chomp.size
|
|
26
|
+
assert_equal "", result.stderr.chomp
|
|
27
|
+
assert_equal 0, result.status
|
|
28
|
+
end
|
|
29
|
+
def test_stdout_size_greater_than_65534_with_status_1
|
|
30
|
+
result = RBatch::cmd "ruby -e '100000.times{print 0}; exit 1'"
|
|
31
|
+
assert_equal 100000, result.stdout.chomp.size
|
|
32
|
+
assert_equal "", result.stderr.chomp
|
|
33
|
+
assert_equal 1, result.status
|
|
34
|
+
end
|
|
35
|
+
def test_status_code_is_1
|
|
36
|
+
result = RBatch::cmd "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
37
|
+
assert_equal "1", result.stdout.chomp
|
|
38
|
+
assert_equal "2", result.stderr.chomp
|
|
39
|
+
assert_equal 1, result.status
|
|
40
|
+
end
|
|
41
|
+
def test_status_code_is_greater_than_256
|
|
42
|
+
returncode = 300
|
|
43
|
+
result = RBatch::cmd "ruby -e 'STDOUT.print 1; STDERR.print 2; exit #{returncode};'"
|
|
44
|
+
assert_equal "1", result.stdout.chomp
|
|
45
|
+
assert_equal "2", result.stderr.chomp
|
|
46
|
+
case RUBY_PLATFORM
|
|
47
|
+
when /mswin|mingw/
|
|
48
|
+
assert_equal returncode, result.status
|
|
49
|
+
when /cygwin|linux/
|
|
50
|
+
assert_equal returncode % 256, result.status
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
def test_to_h
|
|
54
|
+
result = RBatch::cmd "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
55
|
+
assert_equal "1", result.to_h[:stdout]
|
|
56
|
+
assert_equal "2", result.to_h[:stderr]
|
|
57
|
+
assert_equal 1 , result.to_h[:status]
|
|
58
|
+
end
|
|
59
|
+
def test_to_s
|
|
60
|
+
result = RBatch::cmd "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
61
|
+
assert_equal "{:cmd_str=>\"ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'\", :stdout=>\"1\", :stderr=>\"2\", :status=>1}", result.to_s
|
|
62
|
+
end
|
|
63
|
+
def test_nil_command
|
|
64
|
+
assert_raise(RBatch::CmdException){
|
|
65
|
+
RBatch::Cmd.new(nil)
|
|
66
|
+
}
|
|
67
|
+
end
|
|
68
|
+
def test_fullcmd_exists
|
|
69
|
+
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'").run
|
|
70
|
+
assert_equal "1", result.stdout.chomp
|
|
71
|
+
assert_equal "2", result.stderr.chomp
|
|
72
|
+
assert_equal 0, result.status
|
|
73
|
+
end
|
|
74
|
+
def test_opt_raise_true_status_1
|
|
75
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
76
|
+
opt = {:raise => true}
|
|
77
|
+
assert_raise(RBatch::CmdException){
|
|
78
|
+
RBatch::Cmd.new(cmd_str,opt).run
|
|
79
|
+
}
|
|
80
|
+
end
|
|
81
|
+
def test_opt_raise_false_status_1
|
|
82
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
83
|
+
opt = {:raise => false}
|
|
84
|
+
result = RBatch::Cmd.new(cmd_str,opt).run
|
|
85
|
+
assert_equal "1", result.stdout.chomp
|
|
86
|
+
assert_equal "2", result.stderr.chomp
|
|
87
|
+
assert_equal 1, result.status
|
|
88
|
+
end
|
|
89
|
+
def test_opt_raise_true_status_0
|
|
90
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'"
|
|
91
|
+
opt = {:raise => true}
|
|
92
|
+
result = RBatch::Cmd.new(cmd_str,opt).run
|
|
93
|
+
assert_equal "1", result.stdout.chomp
|
|
94
|
+
assert_equal "2", result.stderr.chomp
|
|
95
|
+
assert_equal 0, result.status
|
|
96
|
+
end
|
|
97
|
+
def test_opt_raise_false_status_0
|
|
98
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'"
|
|
99
|
+
opt = {:raise => false}
|
|
100
|
+
result = RBatch::Cmd.new(cmd_str,opt).run
|
|
101
|
+
assert_equal "1", result.stdout.chomp
|
|
102
|
+
assert_equal "2", result.stderr.chomp
|
|
103
|
+
assert_equal 0, result.status
|
|
104
|
+
end
|
|
105
|
+
def test_opt_raise_true_status_1_by_conf
|
|
106
|
+
confstr = "cmd_raise: true "
|
|
107
|
+
open( RBatch.common_config_path , "a" ){|f| f.write(confstr)}
|
|
108
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
109
|
+
assert_raise(RBatch::CmdException){
|
|
110
|
+
RBatch::Cmd.new(cmd_str).run
|
|
111
|
+
}
|
|
112
|
+
end
|
|
113
|
+
def test_opt_raise_true_status_1_shortcut
|
|
114
|
+
cmd_str = "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'"
|
|
115
|
+
opt = {:raise => true}
|
|
116
|
+
assert_raise(RBatch::CmdException){
|
|
117
|
+
RBatch::cmd(cmd_str,opt)
|
|
118
|
+
}
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'rbatch'
|
|
3
|
+
|
|
4
|
+
class RuncherTest < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
@config_dir = File.join(File.dirname(RBatch.program_name), "..", "conf")
|
|
7
|
+
@config_file = File.join(@config_dir , "test_config.yaml")
|
|
8
|
+
Dir::mkdir(@config_dir) if ! Dir.exists? @config_dir
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def teardown
|
|
12
|
+
File.delete @config_file if File.exist? @config_file
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_require
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_config
|
|
19
|
+
open( @config_file , "w" ){|f| f.write("key: value")}
|
|
20
|
+
assert_equal "value", RBatch.config["key"]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_read_error
|
|
24
|
+
assert_raise(Errno::ENOENT){
|
|
25
|
+
RBatch.config
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_double_read
|
|
30
|
+
open( @config_file , "w" ){|f| f.write("key: value")}
|
|
31
|
+
assert_equal "value", RBatch.config["key"]
|
|
32
|
+
assert_equal "value", RBatch.config["key"]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_not_exist_key
|
|
36
|
+
open( @config_file , "w" ){|f| f.write("key: value")}
|
|
37
|
+
assert_raise(RBatch::Config::Exception){
|
|
38
|
+
RBatch.config["not_exist"]
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|