package io.cattle.platform.iaas.api.host; import static io.cattle.platform.core.model.tables.ExternalEventTable.*; import io.cattle.platform.api.action.ActionHandler; import io.cattle.platform.core.constants.ExternalEventConstants; import io.cattle.platform.core.dao.GenericResourceDao; import io.cattle.platform.core.model.ExternalEvent; import io.cattle.platform.core.model.Host; import io.cattle.platform.object.ObjectManager; import io.cattle.platform.object.process.ObjectProcessManager; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import javax.inject.Inject; public class HostEvacuateActionHandler implements ActionHandler { @Inject ObjectProcessManager objectProcessManager; @Inject ObjectManager objectManager; @Inject GenericResourceDao resourceDao; @Override public Object perform(String name, Object obj, ApiRequest request) { if (obj instanceof Host) { Host host = (Host) obj; resourceDao.createAndSchedule(ExternalEvent.class, EXTERNAL_EVENT.KIND, ExternalEventConstants.KIND_EXTERNAL_HOST_EVENT, EXTERNAL_EVENT.EVENT_TYPE, ExternalEventConstants.TYPE_HOST_EVACUATE, ExternalEventConstants.FIELD_HOST_ID, host.getId(), EXTERNAL_EVENT.ACCOUNT_ID, host.getAccountId()); return host; } else { return null; } } @Override public String getName() { return "host.evacuate"; } }