001package com.thed.zblast.util; 002 003import com.google.gson.Gson; 004import com.google.gson.GsonBuilder; 005import com.google.gson.JsonParseException; 006import com.thed.model.AutomationJobDetail; 007import com.thed.model.ZblastScriptExecutionResult; 008 009import java.io.*; 010import java.util.ArrayList; 011import java.util.List; 012import java.util.logging.Logger; 013 014public class ZblastErrorLogManager { 015 016 private static final String ZAUTOMATION_JSON = "Zautomation.json"; 017 private static Logger logger = Logger.getLogger(ZblastErrorLogManager.class.getName()); 018 019 public static void main(String[] args) { 020 021 saveLogs(new AutomationJobDetail(), new ZblastScriptExecutionResult(), ZblastErrorType.SUCCESS_ZEE_UNAVAILABLE); 022 023 processPendingJobs(checkForPendingJobs()); 024 } 025 026 private static void processPendingJobs(ZautomationTaskLog checkForPendingJobs) { 027 028 List<ZautomationTask> resultParsingError = checkForPendingJobs.getResultParsingError(); 029 List<ZautomationTask> resultParsingErrZeeUnavailable = checkForPendingJobs.getResultParsingErrZeeUnavailable(); 030 List<ZautomationTask> scriptError = checkForPendingJobs.getScriptError(); 031 List<ZautomationTask> scriptErrorZeeUnavailable = checkForPendingJobs.getScriptErrorZeeUnavailable(); 032 List<ZautomationTask> successZeeUnavailable = checkForPendingJobs.getSuccessZeeUnavailable(); 033 034 if (resultParsingError != null && resultParsingError.size() != 0) { 035 processResultParsingErrorJobs(resultParsingError); 036 } 037 038 if (resultParsingErrZeeUnavailable != null && resultParsingErrZeeUnavailable.size() != 0) { 039 processResultParsingErrZeeUnavailableJobs(resultParsingErrZeeUnavailable); 040 } 041 if (scriptError != null && scriptError.size() != 0) { 042 processScriptErrorJobs(scriptError); 043 } 044 if (scriptErrorZeeUnavailable != null && scriptErrorZeeUnavailable.size() != 0) { 045 processScriptErrorZeeUnavailableJobs(scriptErrorZeeUnavailable); 046 } 047 if (successZeeUnavailable != null && successZeeUnavailable.size() != 0) { 048 processSuccessZeeUnavailableJobs(successZeeUnavailable); 049 } 050 051 } 052 053 private static void processSuccessZeeUnavailableJobs(List<ZautomationTask> successZeeUnavailable) { 054 // TODO Auto-generated method stub 055 056 } 057 058 private static void processScriptErrorZeeUnavailableJobs(List<ZautomationTask> scriptErrorZeeUnavailable) { 059 // TODO Auto-generated method stub 060 061 } 062 063 private static void processScriptErrorJobs(List<ZautomationTask> scriptError) { 064 // TODO Auto-generated method stub 065 066 } 067 068 private static void processResultParsingErrZeeUnavailableJobs(List<ZautomationTask> resultParsingErrZeeUnavailable) { 069 // TODO Auto-generated method stub 070 071 } 072 073 private static void processResultParsingErrorJobs(List<ZautomationTask> resultParsingError) { 074 // TODO Auto-generated method stub 075 076 } 077 078 private static void saveLogs(AutomationJobDetail automationJobDetail, ZblastScriptExecutionResult executionResult, ZblastErrorType zblastErrorType) { 079 ZautomationTaskLog log = null; 080 try { 081 log = retrieveErrorLog(); 082 083 switch (zblastErrorType) { 084 case RESULT_PARSING_ERROR: { 085 List<ZautomationTask> resultParsingError = log.getResultParsingError() == null ? new ArrayList<ZautomationTask>() : log.getResultParsingError(); 086 resultParsingError.add(new ZautomationTask(automationJobDetail, executionResult)); 087 log.setResultParsingError(resultParsingError); 088 break; 089 } 090 case RESULT_PARSINGERR_ZEE_UNAVAILABLE: { 091 List<ZautomationTask> resultParsingErrZeeUnavailable = log.getResultParsingErrZeeUnavailable() == null ? new ArrayList<ZautomationTask>() : log.getResultParsingErrZeeUnavailable(); 092 resultParsingErrZeeUnavailable.add(new ZautomationTask(automationJobDetail, executionResult)); 093 log.setResultParsingErrZeeUnavailable(resultParsingErrZeeUnavailable); 094 break; 095 } 096 case SCRIPT_ERROR: { 097 List<ZautomationTask> scriptError = log.getScriptError() == null ? new ArrayList<ZautomationTask>() : log.getScriptError(); 098 scriptError.add(new ZautomationTask(automationJobDetail, executionResult)); 099 log.setScriptError(scriptError); 100 break; 101 } 102 case SCRIPT_ERROR_ZEE_UNAVAILABLE: { 103 List<ZautomationTask> scriptErrorZeeUnavailable = log.getScriptErrorZeeUnavailable() == null ? new ArrayList<ZautomationTask>() : log.getScriptErrorZeeUnavailable(); 104 scriptErrorZeeUnavailable.add(new ZautomationTask(automationJobDetail, executionResult)); 105 log.setScriptErrorZeeUnavailable(scriptErrorZeeUnavailable); 106 break; 107 } 108 case SUCCESS_ZEE_UNAVAILABLE: { 109 List<ZautomationTask> successZeeUnavailable = log.getSuccessZeeUnavailable() == null ? new ArrayList<ZautomationTask>() : log.getSuccessZeeUnavailable(); 110 successZeeUnavailable.add(new ZautomationTask(automationJobDetail, executionResult)); 111 log.setSuccessZeeUnavailable(successZeeUnavailable); 112 break; 113 } 114 default: 115 break; 116 } 117 } catch (Exception e) { 118 logger.info("Error Saving Zblast error log : " + e.getMessage()); 119 } 120 121 saveZblastErrorlog(log); 122 } 123 124 private static void saveZblastErrorlog(ZautomationTaskLog log) { 125 try (Writer writer = new FileWriter(ZAUTOMATION_JSON)) { 126 new GsonBuilder().create().toJson(log, writer); 127 } catch (IOException e) { 128 e.printStackTrace(); 129 } 130 } 131 132 private static ZautomationTaskLog retrieveErrorLog() { 133 ZautomationTaskLog log = null; 134 135 File zAutoLog = new File(ZAUTOMATION_JSON); 136 137 if (zAutoLog.exists()) { 138 try { 139 log = new GsonBuilder().create().fromJson(new FileReader(ZAUTOMATION_JSON), ZautomationTaskLog.class); 140 } catch (FileNotFoundException e1) { 141 e1.printStackTrace(); 142 } catch (JsonParseException e) { 143 e.printStackTrace(); 144 } catch (Exception e) { 145 e.printStackTrace(); 146 } 147 } 148 149 if (log == null) 150 log = new ZautomationTaskLog(); 151 return log; 152 } 153 154 public static ZautomationTaskLog checkForPendingJobs() { 155 ZautomationTaskLog log = null; 156 try { 157 158 if (!new File(ZAUTOMATION_JSON).exists()) 159 return null; 160 161 Gson gson = new GsonBuilder().create(); 162 log = gson.fromJson(new FileReader(ZAUTOMATION_JSON), ZautomationTaskLog.class); 163 164 if (!checkIfErrorExists(log)) 165 return null; 166 167 } catch (JsonParseException e1) { 168 e1.printStackTrace(); 169 } catch (FileNotFoundException e1) { 170 e1.printStackTrace(); 171 } 172 return log; 173 174 } 175 176 private static boolean checkIfErrorExists(ZautomationTaskLog log) { 177 return log != null && ((log.getResultParsingError() != null && log.getResultParsingError().size() != 0) || (log.getResultParsingErrZeeUnavailable() != null && log.getResultParsingErrZeeUnavailable().size() != 0) || (log.getScriptError() != null && log.getScriptError().size() != 0) || (log.getScriptErrorZeeUnavailable() != null && log.getScriptErrorZeeUnavailable().size() != 0) || (log.getSuccessZeeUnavailable() != null && log.getSuccessZeeUnavailable().size() != 0)); 178 } 179}