package io.cattle.platform.servicediscovery.service.impl; import static io.cattle.platform.core.model.tables.ServiceTable.*; import io.cattle.platform.core.model.Host; import io.cattle.platform.core.model.Service; import io.cattle.platform.object.ObjectManager; import io.cattle.platform.servicediscovery.api.dao.ServiceDao; import io.cattle.platform.servicediscovery.service.ServiceDiscoveryService; import io.cattle.platform.servicediscovery.service.ServiceLookup; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.inject.Inject; public class HostServiceLookup implements ServiceLookup { @Inject ServiceDao svcDao; @Inject ObjectManager objMgr; @Inject ServiceDiscoveryService sdService; @Override public Collection<? extends Service> getServices(Object obj) { if (!(obj instanceof Host)) { return null; } Host host = (Host) obj; List<Service> services = new ArrayList<>(); // add all services on host services.addAll(svcDao.getServicesOnHost(host.getId())); // add all services with scale policy List<? extends Service> allServices = objMgr.find(Service.class, SERVICE.ACCOUNT_ID, host.getAccountId(), SERVICE.REMOVED, null); for (Service service : allServices) { if (sdService.isScalePolicyService(service)) { services.add(service); } } return services; } }