/** * Returns all the current alive and successful containers for the given profile which have completed provisioning */ public static List<Container> aliveAndSuccessfulContainersForProfile(String profile, FabricService fabricService) { Container[] allContainers = fabricService.getContainers(); return aliveAndSuccessfulContainersForProfile(profile, allContainers); }
/** * Returns all the current alive and successful containers for the given profile which have completed provisioning */ public static List<Container> aliveAndSuccessfulContainersForProfile(String version, String profile, FabricService fabricService) { Container[] allContainers = fabricService.getContainers(); return aliveAndSuccessfulContainersForProfile(version, profile, allContainers); }
/** * Returns true if the requirements are satisfied for the given profile requirements; updating the auto scale status * accordingly */ public static boolean requirementsSatisfied(FabricService service, String version, FabricRequirements requirements, ProfileRequirements profileRequirement, AutoScaleStatus status) { String profile = profileRequirement.getProfile(); List<String> dependentProfiles = profileRequirement.getDependentProfiles(); if (dependentProfiles != null) { for (String dependentProfile : dependentProfiles) { ProfileRequirements dependentProfileRequirements = requirements.getOrCreateProfileRequirement(dependentProfile); Integer minimumInstances = dependentProfileRequirements.getMinimumInstances(); if (minimumInstances != null) { List<Container> containers = Containers.aliveAndSuccessfulContainersForProfile(version, dependentProfile, service); int dependentSize = containers.size(); if (minimumInstances > dependentSize) { status.profileStatus(profile).missingDependency(dependentProfile, dependentSize, minimumInstances); return false; } } } } return true; } }
List<Container> containers = Containers.aliveAndSuccessfulContainersForProfile(version, profile, service); int count = containers.size(); int delta = count - maximumInstances;