Пример #1
0
 /**
  * Get a agent on given id.
  *
  * @param id agent id
  * @return agent
  */
 public AgentInfo getAgent(long id) {
   AgentInfo agentInfo = agentRepository.findOne(id);
   if (agentInfo == null) {
     return null;
   }
   AgentControllerIdentityImplementation agentIdentity =
       agentManager.getAgentIdentityByIp(agentInfo.getIp());
   if (agentIdentity != null) {
     agentInfo.setStatus(agentManager.getAgentState(agentIdentity));
     agentInfo.setPort(agentManager.getAgentConnectingPort(agentIdentity));
     agentInfo.setHostName(agentIdentity.getName());
     agentInfo.setRegion(agentIdentity.getRegion());
     agentInfo.setAgentIdentity(agentIdentity);
   }
   return agentInfo;
 }
Пример #2
0
 @CacheEvict(allEntries = true, value = "agents")
 private AgentInfo creatAgentInfo(
     AgentControllerIdentityImplementation agentIdentity, List<AgentInfo> agents) {
   AgentInfo agentInfo = new AgentInfo();
   for (AgentInfo each : agents) {
     if (each != null && StringUtils.equals(each.getIp(), agentIdentity.getIp())) {
       agentInfo = each;
       break;
     }
   }
   if (!StringUtils.equals(agentInfo.getHostName(), agentIdentity.getName())
       || !StringUtils.equals(agentInfo.getRegion(), agentIdentity.getRegion())) {
     agentInfo.setHostName(agentIdentity.getName());
     agentInfo.setRegion(agentIdentity.getRegion());
     agentInfo.setIp(agentIdentity.getIp());
     agentInfo = agentRepository.save(agentInfo);
   }
   agentInfo.setPort(agentManager.getAgentConnectingPort(agentIdentity));
   agentInfo.setStatus(agentManager.getAgentState(agentIdentity));
   // need to save agent info into DB, like ip and port maybe changed.
   return agentInfo;
 }