package io.cattle.platform.process.volume; import io.cattle.platform.allocator.service.AllocatorService; import io.cattle.platform.core.dao.GenericMapDao; import io.cattle.platform.core.model.Volume; import io.cattle.platform.core.model.VolumeStoragePoolMap; 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 java.util.HashMap; import java.util.Map; import javax.inject.Inject; import javax.inject.Named; @Named public class VolumeDeallocate extends AbstractDefaultProcessHandler { @Inject GenericMapDao mapDao; @Inject AllocatorService allocatorService; @Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Map<String, Object> result = new HashMap<String, Object>(); Volume volume = (Volume) state.getResource(); allocatorService.volumeDeallocate(volume); for (VolumeStoragePoolMap map : mapDao.findToRemove(VolumeStoragePoolMap.class, Volume.class, volume.getId())) { deactivateThenScheduleRemove(map, state.getData()); } return new HandlerResult(result); } }