|
25 | 25 | import javafx.scene.input.ScrollEvent; |
26 | 26 | import javafx.scene.layout.AnchorPane; |
27 | 27 | import javafx.util.StringConverter; |
| 28 | +import root.common.database.contracts.AbstractDatabase; |
| 29 | +import root.common.database.implement.JdbcDatabase; |
| 30 | +import root.common.server.implement.JschServer; |
28 | 31 | import root.core.domain.ASMDiskUsage; |
29 | 32 | import root.core.domain.ArchiveUsage; |
| 33 | +import root.core.domain.JdbcConnectionInfo; |
| 34 | +import root.core.domain.JschConnectionInfo; |
30 | 35 | import root.core.domain.MonitoringResult; |
31 | 36 | import root.core.domain.MonitoringYN; |
32 | 37 | import root.core.domain.OSDiskUsage; |
33 | 38 | import root.core.domain.TableSpaceUsage; |
34 | 39 | import root.core.domain.enums.MonitoringType; |
35 | 40 | import root.core.domain.enums.RoundingDigits; |
| 41 | +import root.core.repository.constracts.DBCheckRepository; |
| 42 | +import root.core.repository.constracts.ServerCheckRepository; |
| 43 | +import root.core.repository.implement.DBCheckRepositoryImpl; |
36 | 44 | import root.core.repository.implement.PropertyRepositoryImpl; |
| 45 | +import root.core.repository.implement.ReportFileRepo; |
| 46 | +import root.core.repository.implement.ServerCheckRepositoryImpl; |
37 | 47 | import root.core.service.contracts.PropertyService; |
38 | 48 | import root.core.service.implement.FilePropertyService; |
| 49 | +import root.core.usecase.constracts.DBCheckUsecase; |
| 50 | +import root.core.usecase.constracts.ServerCheckUsecase; |
| 51 | +import root.core.usecase.implement.DBCheckUsecaseImpl; |
| 52 | +import root.core.usecase.implement.ServerCheckUsecaseImpl; |
39 | 53 | import root.javafx.CustomView.CustomTreeTableView; |
40 | 54 | import root.javafx.CustomView.CustomTreeView; |
41 | 55 | import root.javafx.CustomView.MonitoringTableView; |
@@ -216,7 +230,58 @@ private void addMonitoringPresetPreview(List<MonitoringYN> dbYnList, List<Monito |
216 | 230 | * @param e |
217 | 231 | */ |
218 | 232 | public void runMonitoring(ActionEvent e) { |
219 | | - // TODO 선택된 접속정보 설정 파일, 모니터링 여부 설정파일, 기타 설정을 모두 읽어와 모니터링을 실행한다. |
| 233 | + String connInfoConfigFilePath = connInfoFileListComboBox.getSelectionModel().getSelectedItem(); |
| 234 | + String presetName = presetFileListComboBox.getSelectionModel().getSelectedItem(); |
| 235 | + String presetConfigFilePath = propService.getMonitoringPresetFilePath(presetName); |
| 236 | + propService.loadConnectionInfoConfig(connInfoConfigFilePath); |
| 237 | + propService.loadMonitoringInfoConfig(presetConfigFilePath); |
| 238 | + |
| 239 | + boolean isSave = resultSaveToggleBtn.isSelected(); |
| 240 | + |
| 241 | + List<String> dbNames = propService.getMonitoringDBNameList(); |
| 242 | + List<JdbcConnectionInfo> jdbcConnectionList = propService.getJdbcConnInfoList(dbNames); |
| 243 | + for (JdbcConnectionInfo jdbc : jdbcConnectionList) { |
| 244 | + AbstractDatabase db = new JdbcDatabase(jdbc); |
| 245 | + db.init(); |
| 246 | + DBCheckRepository repo = new DBCheckRepositoryImpl(db); |
| 247 | + DBCheckUsecase usecase = new DBCheckUsecaseImpl(repo, ReportFileRepo.getInstance()); |
| 248 | + |
| 249 | + if (isSave) { |
| 250 | + usecase.writeCsvArchiveUsage(); |
| 251 | + usecase.writeCsvTableSpaceUsage(); |
| 252 | + usecase.writeCsvASMDiskUsage(); |
| 253 | + } |
| 254 | + |
| 255 | + List<ArchiveUsage> archiveUsageList = usecase.getCurrentArchiveUsage(); |
| 256 | + List<TableSpaceUsage> tableSpaceUsageList = usecase.getCurrentTableSpaceUsage(); |
| 257 | + List<ASMDiskUsage> asmDiskUsageList = usecase.getCurrentASMDiskUsage(); |
| 258 | + setMonitoringResult(archiveTable, archiveUsageList); |
| 259 | + setMonitoringResult(tableSpaceTable, tableSpaceUsageList); |
| 260 | + setMonitoringResult(asmDiskTable, asmDiskUsageList); |
| 261 | + } |
| 262 | + |
| 263 | + List<String> serverNames = propService.getMonitoringServerNameList(); |
| 264 | + List<JschConnectionInfo> jschConnectionList = propService.getJschConnInfoList(serverNames); |
| 265 | + for (JschConnectionInfo jsch : jschConnectionList) { |
| 266 | + JschServer server = new JschServer(jsch); |
| 267 | + server.init(); |
| 268 | + ServerCheckRepository repo = new ServerCheckRepositoryImpl(server); |
| 269 | + ServerCheckUsecase usecase = new ServerCheckUsecaseImpl(repo); |
| 270 | + |
| 271 | + if (isSave) { |
| 272 | + try { |
| 273 | + usecase.writeCsvOSDiskUsage(); |
| 274 | + } catch (Exception e1) { |
| 275 | + e1.printStackTrace(); |
| 276 | + } |
| 277 | + } |
| 278 | + |
| 279 | + List<OSDiskUsage> osDiskUsageList = usecase.getCurrentOSDiskUsage(); |
| 280 | + setMonitoringResult(osDiskTable, osDiskUsageList); |
| 281 | + |
| 282 | +// AlertLogCommandPeriod alcp = new AlertLogCommandPeriod(jsch.getAlc(), |
| 283 | +// DateUtils.addDate(DateUtils.getToday("yyyy-MM-dd"), 0, 0, -1), DateUtils.getToday("yyyy-MM-dd")); |
| 284 | + } |
220 | 285 | } |
221 | 286 |
|
222 | 287 | /** |
|
0 commit comments