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.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 NicRemove 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());
/* Deactivate to release the IP address */
deactivate(ipAddress, state.getData());
}
return null;
}
}