Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.nitorcreations.willow.autoscaler.deployment;
  
  
 import java.util.List;
 import java.util.Map;
 
 public class DeploymentScanner implements Runnable {
 
   private Logger logger = Logger.getLogger(this.getClass().getCanonicalName());
 
   @Inject
 
   @Inject
 
   private List<AutoScalingGroupConfiggroups = new ArrayList<>();
 
 
   @Inject
 
   @Inject
 
 
   private AtomicBoolean running = new AtomicBoolean(true);
 
   public void initialize(List<AutoScalingGroupConfiggroups) {
     if (groups == nullthrow new IllegalArgumentException("List of groups can't be null");
     .info(String.format("Initializing deployment scanner with %s groups"groups.size()));
     this.setGroups(groups);
   }
 
     return .get(groupId);
   }
 
   public void stop() {
     .set(false);
   }
 
     ArrayList<AutoScalingGroupConfigret = new ArrayList<>();
     ret.addAll();
     return ret;
   }
 
   public void setGroups(List<AutoScalingGroupConfiggroups) {
     this..clear();
     this..addAll(groups);
   }
 
   @Override
   public void run() {
     while (.get()) {
       for (final AutoScalingGroupConfig group : ) {
         if (!.containsKey(group)) {
           .put(groupscheduleGroupScan(group));
         }
       }
       for (Map.Entry<AutoScalingGroupConfigScheduledFuture<?>> entry : .entrySet()) {
         ScheduledFuture<?> f = entry.getValue();
         try {
           f.get(5, .);
         } catch (InterruptedException e) {
           e.printStackTrace();
         } catch (ExecutionException e) {
           .log(."deployment scanner execution failure"e);
           .remove(entry.getKey());
         } catch (TimeoutException e) {
           continue//The timeouts allow periodic checking to ensure scanners keep running.
         }
       }
     }
     .info("DeploymentScanner exiting");
   }
 
   private ScheduledFuture<?> scheduleGroupScan(final AutoScalingGroupConfig group) {
         new Runnable() {
           @Override
          public void run() {
            CloudAdapter cloud = .get(group.getCloudProvider());
            AutoScalingGroupDeploymentStatus groupStatus = cloud.getGroupStatus(group.getRegion(), group.getName());
            .info(String.format("Deployment status for %s group %s: %s instances"group.getCloudProvider(),
                group.getName(), groupStatus.getInstanceCount()));
            .put(group.getName(), groupStatus); //TODO remove internal structure if unnecessary
            .setDeploymentStatus(group.getName(), groupStatus);
            sendHostInfo(groupStatusgroup);
          }
          public void sendHostInfo(AutoScalingGroupDeploymentStatus deploymentStatusAutoScalingGroupConfig group) {
            for (Instance i : deploymentStatus.getInstances()) {
              HostInfoMessage msg = new HostInfoMessage();
              msg.privateHostname = i.getPrivateHostname();
              msg.privateIpAddress = i.getPrivateIp();
              msg.publicHostname = i.getPublicHostname();
              msg.publicIpAddress = i.getPublicIp();
              msg.username = group.getUsername();
              msg.setInstance(i.getInstanceId().replaceAll("-""_"));
              msg.addTags("host_"+msg.getInstance(), "group_"+group.getName());
              if (!.queue(msg)) {
                .warning("Unable to queue hostInfoMessage for sending!");
              }
            }
          }
        }, 1, 10, .);
  }
New to GrepCode? Check out our FAQ X