public void modifyHASettings(RestartPriority restartPriority, IsolationResponse isolationResponse,
VmMonitoringState vmMonitoringState) throws Exception {
AuAssert.check(VcContext.isInTaskSession());
ClusterComputeResource cluster = MoUtil.getManagedObject(getResourcePool().getVcCluster().getMoRef());
DasVmSettings dasVmSettings = null;
boolean found = false;
DasVmConfigInfo[] dasVmConfig = cluster.getConfiguration().getDasVmConfig();
if (dasVmConfig != null) {
for (DasVmConfigInfo iter : dasVmConfig) {
if (iter.getKey().equals(getMoRef())) {
found = true;
dasVmSettings = iter.getDasSettings();
break;
}
}
}
if (dasVmSettings == null) {
dasVmSettings = new DasVmSettingsImpl();
}
if (restartPriority != null) {
dasVmSettings.setRestartPriority(restartPriority.name());
}
if (isolationResponse != null) {
dasVmSettings.setIsolationResponse(isolationResponse.name());
}
VmToolsMonitoringSettings vmToolsMonitoringSettings = dasVmSettings.getVmToolsMonitoringSettings();
if (vmToolsMonitoringSettings == null) {
// Use the default settings for VmToolsMonitoringSettings
vmToolsMonitoringSettings = cluster.getConfiguration().getDasConfig().getDefaultVmSettings().getVmToolsMonitoringSettings();
dasVmSettings.setVmToolsMonitoringSettings(vmToolsMonitoringSettings);
}
if (vmMonitoringState != null) {
vmToolsMonitoringSettings.setVmMonitoring(vmMonitoringState.name());
}