package io.cattle.platform.process.hosttemplate;
import io.cattle.platform.core.constants.HostTemplateConstants;
import io.cattle.platform.core.model.HostTemplate;
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.framework.secret.SecretsService;
import io.cattle.platform.object.util.DataAccessor;
import io.cattle.platform.process.base.AbstractDefaultProcessHandler;
import java.io.IOException;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Named
public class HosttemplateRemove extends AbstractDefaultProcessHandler {
private static final Logger log = LoggerFactory.getLogger(HosttemplateRemove.class);
@Inject
SecretsService secretsService;
@Override
public HandlerResult handle(ProcessState state, ProcessInstance process) {
HostTemplate template = (HostTemplate)state.getResource();
String value = DataAccessor.fieldString(template, HostTemplateConstants.FIELD_SECRET_VALUES);
try {
secretsService.delete(template.getAccountId(), value);
} catch (IOException e) {
log.error("Failed to delete secret from storage for machine driver credential [{}]",
template.getId(), e);
}
return null;
}
}