All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.singularity.scheduler.SingularityUsageHelper Maven / Gradle / Ivy

package com.hubspot.singularity.scheduler;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.hubspot.singularity.MachineState;
import com.hubspot.singularity.SingularitySlave;
import com.hubspot.singularity.data.SlaveManager;

@Singleton
public class SingularityUsageHelper {

  private final SlaveManager slaveManager;

  @Inject
  public SingularityUsageHelper(SlaveManager slaveManager) {
    this.slaveManager = slaveManager;
  }

  public Set getSlaveIdsToTrackUsageFor() {
    List slaves = getSlavesToTrackUsageFor();
    Set slaveIds = new HashSet<>(slaves.size());
    for (SingularitySlave slave : slaves) {
      slaveIds.add(slave.getId());
    }
    return slaveIds;
  }

  public List getSlavesToTrackUsageFor() {
    List slaves = slaveManager.getObjects();
    List slavesToTrack = new ArrayList<>(slaves.size());

    for (SingularitySlave slave : slaves) {
      if (slave.getCurrentState().getState().isInactive() || slave.getCurrentState().getState() == MachineState.DECOMMISSIONED) {
        continue;
      }

      slavesToTrack.add(slave);
    }

    return slavesToTrack;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy