package io.cattle.platform.docker.process.instance; import io.cattle.platform.core.constants.ServiceConstants; import io.cattle.platform.core.model.Service; import io.cattle.platform.core.model.ServiceExposeMap; import io.cattle.platform.docker.service.ComposeManager; import io.cattle.platform.engine.handler.HandlerResult; import io.cattle.platform.engine.handler.ProcessPreListener; import io.cattle.platform.engine.process.ProcessInstance; import io.cattle.platform.engine.process.ProcessState; import io.cattle.platform.process.common.handler.AbstractObjectProcessLogic; import javax.inject.Inject; public class DockerComposeServiceCleanup extends AbstractObjectProcessLogic implements ProcessPreListener { @Inject ComposeManager composeManager; @Override public String[] getProcessNames() { return new String[] { ServiceConstants.PROCESS_SERVICE_REMOVE, "serviceexposemap.remove" }; } @Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Object obj = state.getResource(); if (obj instanceof Service) { composeManager.cleanupResources((Service)obj); } else if (obj instanceof ServiceExposeMap) { ServiceExposeMap map = (ServiceExposeMap)obj; Service service = objectManager.loadResource(Service.class, map.getServiceId()); composeManager.cleanupResources(service); } return null; } }