package org.ovirt.engine.core.bll.hostdeploy;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import org.ovirt.engine.core.common.AuditLogType;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogable;
import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableImpl;
import org.ovirt.otopi.constants.Confirms;
import org.ovirt.otopi.dialog.Event;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class VdsDeploy extends VdsDeployBase {
private static final Logger log = LoggerFactory.getLogger(VdsDeploy.class);
private static final Map<Level, AuditLogType> _levelToType = new HashMap<Level, AuditLogType>() {{
put(Level.INFO, AuditLogType.VDS_INSTALL_IN_PROGRESS);
put(Level.WARNING, AuditLogType.VDS_INSTALL_IN_PROGRESS_WARNING);
put(Level.SEVERE, AuditLogType.VDS_INSTALL_IN_PROGRESS_ERROR);
}};
boolean _alertLog;
public VdsDeploy(String entry, VDS vds, boolean alertLog) {
super(entry, entry, vds);
_alertLog = alertLog;
}
@Override
protected boolean processEvent(Event.Base bevent) throws Exception {
boolean unknown = super.processEvent(bevent);
if (unknown) {
if (bevent instanceof Event.Confirm) {
Event.Confirm event = (Event.Confirm)bevent;
if (Confirms.GPG_KEY.equals(event.what)) {
userVisibleLog(
Level.WARNING,
event.description
);
event.reply = true;
unknown = false;
}
else if (org.ovirt.ovirt_host_deploy.constants.Confirms.DEPLOY_PROCEED.equals(event.what)) {
event.reply = true;
unknown = false;
}
}
}
return unknown;
}
@Override
public void userVisibleLog(Level level, String message) {
if (!_alertLog) {
super.userVisibleLog(level, message);
} else {
AuditLogType type = _levelToType.get(level);
if (type == null) {
log.debug(message);
} else {
AuditLogable logable = new AuditLogableImpl();
logable.setVdsId(getVds().getId());
logable.setVdsName(getVds().getName());
logable.setClusterId(getVds().getClusterId());
logable.setClusterName(getVds().getClusterName());
logable.setCorrelationId(getCorrelationId());
logable.addCustomValue("Message", message);
new AuditLogDirector().log(logable, _levelToType.get(level));
}
}
}
}