package com.bsmlab.dfx.agent.config; import com.fasterxml.jackson.databind.DatabindException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Slf4j @Component @Getter public class AgentConfigReader { private AgentConfigDto agentConfigDto = null; public void loadConfigFile(String configFilePath) { try { ObjectMapper objectMapper = new ObjectMapper(); this.agentConfigDto = objectMapper.readValue(new File(configFilePath), AgentConfigDto.class); } catch (DatabindException e) { log.error("cannot parse a setting file. {}", configFilePath, e); log.error(e.getMessage(), e); } catch (IOException e) { log.error("cannot read a setting file. {}", configFilePath); log.error(e.getMessage(), e); } } public AgentConfigDto.DropBox getDropBox(String dropBoxId) { AgentConfigDto.DropBox found = null; for(AgentConfigDto.DropBox dropBox : this.agentConfigDto.getDropBox().getDropBoxList()) { if(dropBox.getDropBoxId().equals(dropBoxId)) { found = dropBox; break; } } return found; } public AgentConfigDto.KnownAgent getKnownAgent(String hostId) { AgentConfigDto.KnownAgent found = null; for(AgentConfigDto.KnownAgent knownAgent : this.agentConfigDto.getKnownAgentList()) { if(knownAgent.getHostId().equals(hostId)) { found = knownAgent; break; } } return found; } public List getScheduledTypePostmanList() { List postmanList = null; for(AgentConfigDto.Postman postman : this.agentConfigDto.getPostman()) { if(AgentConfigDto.ActionType.SCHEDULED == postman.getAction().getType()) { if(postmanList == null) { postmanList = new ArrayList<>(); } postmanList.add(postman); } } return postmanList; } }