protected AbstractMasterCheck(CConfiguration cConf) { this.cConf = cConf; this.systemServicesResourceKeys = MasterUtils.createSystemServicesResourceKeysSet(cConf); } }
/** * Reads the master service instance count configuration. */ private Map<String, Integer> getServiceInstances(ServiceStore serviceStore, CConfiguration cConf) { Map<String, Integer> instanceCountMap = new HashMap<>(); Set<ServiceResourceKeys> serviceResourceKeysSet = MasterUtils.createSystemServicesResourceKeysSet(cConf); for (ServiceResourceKeys serviceResourceKeys : serviceResourceKeysSet) { String service = serviceResourceKeys.getServiceName(); try { int maxCount = serviceResourceKeys.getMaxInstances(); Integer savedCount = serviceStore.getServiceInstance(service); if (savedCount == null || savedCount == 0) { savedCount = Math.min(maxCount, serviceResourceKeys.getInstances()); } else { // If the max value is smaller than the saved instance count, update the store to the max value. if (savedCount > maxCount) { savedCount = maxCount; } } serviceStore.setServiceInstance(service, savedCount); instanceCountMap.put(service, savedCount); LOG.info("Setting instance count of {} Service to {}", service, savedCount); } catch (Exception e) { LOG.error("Couldn't retrieve instance count {}: {}", service, e.getMessage(), e); } } return instanceCountMap; }