package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.config.Config;
import org.ovirt.engine.core.common.config.ConfigValues;
import org.ovirt.engine.core.compat.LogCompat;
import org.ovirt.engine.core.compat.LogFactoryCompat;
public class CBCInstaller extends VdsInstaller {
private String createCertReqCommand = Config.<String> GetValue(ConfigValues.CBCCertificateScriptName)
+ " -O \"{OrganizationName}\" {vds-server} {GUID}";
private String finishCommandInitial = Config.<String> GetValue(ConfigValues.CBCCloseCertificateScriptName)
+ " -c 'ssl={server_SSL_enabled}' {GUID} 0";
public CBCInstaller(VDS vds) // Call base constructor with null password
// (because we are using know public key)
{
super(vds, null, false);
createCertReqCommand = InitInitialCommand(vds, createCertReqCommand);
finishCommandInitial = InitInitialCommand(vds, finishCommandInitial);
}
@Override
protected String InitInitialCommand(VDS vds, String initialCommand) {
// Add the noBoot flag so that bootstrap process will not reboot machine
// (since it's not necessary)
initialCommand = initialCommand.replace("{URL1}", "-b {URL1}");
initialCommand = super.InitInitialCommand(vds, initialCommand);
return initialCommand;
}
@Override
protected void RunStage() {
switch (_currentInstallStage) {
// Use ConnectToServer method which does not need password (relies
// on public key existing on cbc image)
// Keep base logic for following states
case Start:
case SignCertificateRequest:
case UploadSignedCertificate:
case UploadCA:
case DownloadCertificateRequest: {
log.infoFormat("Installation of {0}. Executing oVirt installation stage. (Stage: {1})", _serverName,
getCurrentInstallStage());
super.RunStage();
break;
}
case ConnectToServer: {
log.infoFormat("Installation of {0}. Executing oVirt installation stage. (Stage: {1})", _serverName,
getCurrentInstallStage());
_executionSucceded = _wrapper.ConnectToServer(_serverName);
break;
}
case RunScript: {
log.infoFormat("Installation of {0}. Executing oVirt installation stage. (Stage: {1})", _serverName,
getCurrentInstallStage());
_wrapper.RunSSHCommand(createCertReqCommand);
break;
}
case FinishCommand: {
log.infoFormat(
"Installation of {0}. Executing oVirt installation stage, sending SSH Command {1}. (Stage: {2})",
_serverName, finishCommandInitial, getCurrentInstallStage());
_wrapper.RunSSHCommand(finishCommandInitial);
break;
}
// Ignore unused states : VdsInstallStages.UploadScript,
// VdsInstallStages.CheckUniqueVds
default: {
_executionSucceded = true;
_currentInstallStage = VdsInstallStages.forValue(_currentInstallStage.getValue() + 1);
break;
}
}
}
private static LogCompat log = LogFactoryCompat.getLog(CBCInstaller.class);
}