package io.cattle.platform.process.nic; import io.cattle.platform.core.dao.GenericMapDao; import io.cattle.platform.core.model.IpAddress; import io.cattle.platform.core.model.IpAddressNicMap; import io.cattle.platform.core.model.Nic; import io.cattle.platform.docker.constants.DockerIpAddressConstants; import io.cattle.platform.engine.handler.HandlerResult; import io.cattle.platform.engine.process.ProcessInstance; import io.cattle.platform.engine.process.ProcessState; import io.cattle.platform.process.base.AbstractDefaultProcessHandler; import javax.inject.Inject; import javax.inject.Named; @Named public class NicDeactivate extends AbstractDefaultProcessHandler { @Inject GenericMapDao mapDao; @Override public HandlerResult handle(ProcessState state, ProcessInstance process) { /* Release requested IPs on delete, not on purge */ Nic nic = (Nic) state.getResource(); for (IpAddressNicMap map : mapDao.findToRemove(IpAddressNicMap.class, Nic.class, nic.getId())) { IpAddress ipAddress = getObjectManager().loadResource(IpAddress.class, map.getIpAddressId()); if (DockerIpAddressConstants.KIND_DOCKER.equals(ipAddress.getKind())) { /* Deactivate Docker IPs on stop */ deactivate(ipAddress, state.getData()); } } return null; } }