Search in sources :

Example 1 with ClusterVmToolsMonitoringSettings

use of com.vmware.vim25.ClusterVmToolsMonitoringSettings in project coprhd-controller by CoprHD.

the class VcenterClusterConfigurerPropertyInfoImpl method configure.

public ClusterConfigSpecEx configure(Object input) throws Exception {
    PropertyInfo propertyInfo = (PropertyInfo) input;
    VcenterClusterSettingsConverter converter = VcenterClusterSettingsConverter.getInstance();
    ClusterConfigSpecEx clusterConfigSpecEx = new ClusterConfigSpecEx();
    clusterConfigSpecEx.setDrsConfig(new ClusterDrsConfigInfo());
    // Enable DRS
    clusterConfigSpecEx.getDrsConfig().setEnabled(true);
    clusterConfigSpecEx.getDrsConfig().setDefaultVmBehavior(converter.convertToDrsBehavior(propertyInfo.getProperty("vcenter_drs_automationLevel")));
    /**
     * VMWare DRS
     */
    if (Boolean.parseBoolean(propertyInfo.getProperty("vcenter_drs_enabled"))) {
        _log.info("Set VMWare DRS options for cluster");
        clusterConfigSpecEx.setDrsConfig(new ClusterDrsConfigInfo());
        // Enable DRS
        clusterConfigSpecEx.getDrsConfig().setEnabled(true);
        _log.info("Set Automation level options for cluster");
        clusterConfigSpecEx.getDrsConfig().setDefaultVmBehavior(// Automation level
        converter.convertToDrsBehavior(propertyInfo.getProperty("vcenter_drs_automationLevel")));
        clusterConfigSpecEx.getDrsConfig().setVmotionRate(// Migration
        converter.validateThresholdRange(Integer.parseInt(propertyInfo.getProperty("vcenter_drs_migrationThreshold"))));
        // threshold
        // - 1
        // is
        // Aggressive
        // in
        // vCenter
        // Power management - DRS must be enabled
        clusterConfigSpecEx.setDpmConfig(new ClusterDpmConfigInfo());
        // Enable
        clusterConfigSpecEx.getDpmConfig().setEnabled(Boolean.parseBoolean(propertyInfo.getProperty("vcenter_drs_dpm_enabled")));
        // enabled
        if (Boolean.parseBoolean(propertyInfo.getProperty("vcenter_drs_dpm_enabled"))) {
            _log.info("Set DPM options for cluster");
            clusterConfigSpecEx.getDpmConfig().setDefaultDpmBehavior(// Power Management
            converter.convertToDpmBehavior(propertyInfo.getProperty("vcenter_drs_dpm_powerManagement")));
            clusterConfigSpecEx.getDpmConfig().setHostPowerActionRate(// DPM
            (converter.validateThresholdRange(Integer.parseInt(propertyInfo.getProperty("vcenter_drs_dpm_dpmThreshold")))));
        // Threshold
        // -
        // 1
        // is
        // Aggressive
        // in
        // vCenter
        }
    }
    /**
     * VMWare HA
     */
    if (Boolean.parseBoolean(propertyInfo.getProperty("vcenter_das_enabled"))) {
        _log.info("Set VMWare HA options for cluster");
        clusterConfigSpecEx.setDasConfig(new ClusterDasConfigInfo());
        clusterConfigSpecEx.getDasConfig().setEnabled(true);
        clusterConfigSpecEx.getDasConfig().setHostMonitoring(converter.convertToClusterDasConfigInfoServiceState(Boolean.parseBoolean(propertyInfo.getProperty("vcenter_das_hostMonitoring_enabled"))).toString());
        // Monitoring
        // Status
        _log.info("Set Admission Control Policy options for cluster");
        // Work around API quirk - A non-null ACP must be set regardless if ACP is enabled so if disabled just assign some value. Value
        // doesnt matter and will not be used but it cannot be null!
        Boolean enableAdmissionControl = Boolean.parseBoolean(propertyInfo.getProperty("vcenter_das_admissionControl_enabled"));
        String acpName = enableAdmissionControl ? propertyInfo.getProperty("vcenter_das_admissionControlPolicy_policy") : "resourcePercentage";
        Integer acpHostFailoverLevel = enableAdmissionControl ? Integer.parseInt(propertyInfo.getProperty("vcenter_das_admissionControlPolicy_hostFailureLevel_failoverLevel")) : 1;
        Integer acpCpuFailoverPercent = enableAdmissionControl ? Integer.parseInt(propertyInfo.getProperty("vcenter_das_admissionControlPolicy_resourcePercentage_cpuPercentage")) : 50;
        Integer acpMemoryFailoverPercent = enableAdmissionControl ? Integer.parseInt(propertyInfo.getProperty("vcenter_das_admissionControlPolicy_resourcePercentage_memoryPercentage")) : 50;
        // Admission Control
        clusterConfigSpecEx.getDasConfig().setAdmissionControlEnabled(enableAdmissionControl);
        ClusterDasAdmissionControlPolicy clusterDasAdmissionControlPolicy = converter.convertAdmissionControlPolicyToClusterDasAdmissionControlPolicy(acpName, acpHostFailoverLevel, acpCpuFailoverPercent, acpMemoryFailoverPercent);
        clusterConfigSpecEx.getDasConfig().setAdmissionControlPolicy(clusterDasAdmissionControlPolicy);
        /**
         * Virtual Machine Options
         */
        _log.info("Set Virtual Machine options for cluster");
        clusterConfigSpecEx.getDasConfig().setDefaultVmSettings(new ClusterDasVmSettings());
        clusterConfigSpecEx.getDasConfig().getDefaultVmSettings().setRestartPriority(converter.convertToClusterDasVmSettingsRestartPriority(propertyInfo.getProperty("vcenter_das_vmSettings_restartPriority")).toString());
        clusterConfigSpecEx.getDasConfig().getDefaultVmSettings().setIsolationResponse(converter.convertToClusterDasVmSettingsIsolationResponse(propertyInfo.getProperty("vcenter_das_vmSettings_isolationResponse")).toString());
        // Response
        clusterConfigSpecEx.getDasConfig().setVmMonitoring(converter.convertToClusterDasConfigInfoVmMonitoringState(propertyInfo.getProperty("vcenter_das_vmSettings_vmMonitoring_monitoring")).toString());
        // VM
        clusterConfigSpecEx.getDasConfig().getDefaultVmSettings().setVmToolsMonitoringSettings(new ClusterVmToolsMonitoringSettings());
        // Monitoring
        // -
        // Default
        // Cluster
        // Settings
        // -
        // Monitoring
        // sensitivity
        // is
        // composed
        // of
        // several
        // options
        // (simplified
        // in
        // UI)
        converter.convertVmMonitoringSensitivityToFinerGrainedSettings(propertyInfo.getProperty("vcenter_das_vmSettings_vmMonitoring_sensitivity"), clusterConfigSpecEx.getDasConfig().getDefaultVmSettings().getVmToolsMonitoringSettings());
    }
    /**
     * VMWare EVC
     */
    // TODO figure out EVC API
    _log.info("EVC defaulted to always disabled");
    /**
     * VM Swapfile location
     */
    _log.info("Set VM Swapfile location options for cluster");
    ComputeResourceConfigSpec computeResourceConfigSpec = (ComputeResourceConfigSpec) clusterConfigSpecEx;
    computeResourceConfigSpec.setVmSwapPlacement(converter.convertToVirtualMachineConfigInfoSwapPlacementType(propertyInfo.getProperty("vcenter_swapfile_policy")).toString());
    return clusterConfigSpecEx;
}
Also used : ClusterConfigSpecEx(com.vmware.vim25.ClusterConfigSpecEx) ClusterDpmConfigInfo(com.vmware.vim25.ClusterDpmConfigInfo) ClusterVmToolsMonitoringSettings(com.vmware.vim25.ClusterVmToolsMonitoringSettings) ClusterDasAdmissionControlPolicy(com.vmware.vim25.ClusterDasAdmissionControlPolicy) ComputeResourceConfigSpec(com.vmware.vim25.ComputeResourceConfigSpec) ClusterDasConfigInfo(com.vmware.vim25.ClusterDasConfigInfo) PropertyInfo(com.emc.storageos.model.property.PropertyInfo) ClusterDrsConfigInfo(com.vmware.vim25.ClusterDrsConfigInfo) ClusterDasVmSettings(com.vmware.vim25.ClusterDasVmSettings)

Aggregations

PropertyInfo (com.emc.storageos.model.property.PropertyInfo)1 ClusterConfigSpecEx (com.vmware.vim25.ClusterConfigSpecEx)1 ClusterDasAdmissionControlPolicy (com.vmware.vim25.ClusterDasAdmissionControlPolicy)1 ClusterDasConfigInfo (com.vmware.vim25.ClusterDasConfigInfo)1 ClusterDasVmSettings (com.vmware.vim25.ClusterDasVmSettings)1 ClusterDpmConfigInfo (com.vmware.vim25.ClusterDpmConfigInfo)1 ClusterDrsConfigInfo (com.vmware.vim25.ClusterDrsConfigInfo)1 ClusterVmToolsMonitoringSettings (com.vmware.vim25.ClusterVmToolsMonitoringSettings)1 ComputeResourceConfigSpec (com.vmware.vim25.ComputeResourceConfigSpec)1