/// <summary> /// Create Object of StorageDrsConfigSpec /// </summary> /// <param name="behavior">string</param> /// <param name="loadBalanceInterval">string</param> /// <returns></returns> private StorageDrsConfigSpec GetStorageDrsConfigSpec(string behavior, string loadBalanceInterval) { StorageDrsConfigSpec sdrsConfigSpec = new StorageDrsConfigSpec(); StorageDrsPodConfigSpec podConfigSpec = new StorageDrsPodConfigSpec(); if (behavior.Equals("true")) { podConfigSpec.defaultVmBehavior = "automated"; } else { podConfigSpec.defaultVmBehavior = "manual"; } podConfigSpec.defaultIntraVmAffinity = true; podConfigSpec.defaultIntraVmAffinitySpecified = true; podConfigSpec.enabled = true; podConfigSpec.enabledSpecified = true; StorageDrsIoLoadBalanceConfig sdrsIoLoadBalanceConfig = new StorageDrsIoLoadBalanceConfig(); if (ioLatencythreshold != null) { sdrsIoLoadBalanceConfig.ioLatencyThreshold = int.Parse(ioLatencythreshold); sdrsIoLoadBalanceConfig.ioLatencyThresholdSpecified = true; } if (ioLoadImbalanceThreshold != null) { sdrsIoLoadBalanceConfig.ioLoadImbalanceThreshold = int.Parse(ioLoadImbalanceThreshold); sdrsIoLoadBalanceConfig.ioLoadImbalanceThresholdSpecified = true; } podConfigSpec.ioLoadBalanceConfig = sdrsIoLoadBalanceConfig; podConfigSpec.ioLoadBalanceEnabled = true; podConfigSpec.ioLoadBalanceEnabledSpecified = true; if (loadBalanceInterval != null) { podConfigSpec.loadBalanceInterval = int.Parse(loadBalanceInterval); podConfigSpec.loadBalanceIntervalSpecified = true; } StorageDrsSpaceLoadBalanceConfig sdrsSpaceLoadBalanceConfig = new StorageDrsSpaceLoadBalanceConfig(); if (spaceUtilizationThreshold != null) { sdrsSpaceLoadBalanceConfig.spaceUtilizationThreshold = int.Parse(spaceUtilizationThreshold); sdrsSpaceLoadBalanceConfig.spaceUtilizationThresholdSpecified = true; } if (minSpaceUtilizationDifference != null) { sdrsSpaceLoadBalanceConfig.minSpaceUtilizationDifference = int.Parse(minSpaceUtilizationDifference); sdrsSpaceLoadBalanceConfig.minSpaceUtilizationDifferenceSpecified = true; } podConfigSpec.spaceLoadBalanceConfig = sdrsSpaceLoadBalanceConfig; sdrsConfigSpec.podConfigSpec = podConfigSpec; return(sdrsConfigSpec); }
/// <summary> /// Create Object of StorageDrsConfigSpec /// </summary> /// <param name="behavior">string</param> /// <param name="loadBalanceInterval">string</param> /// <returns></returns> private StorageDrsConfigSpec GetStorageDrsConfigSpec(string behavior, string loadBalanceInterval) { StorageDrsConfigSpec sdrsConfigSpec = new StorageDrsConfigSpec(); StorageDrsPodConfigSpec podConfigSpec = new StorageDrsPodConfigSpec(); if (behavior.Equals("true")) { podConfigSpec.defaultVmBehavior = "automated"; } else { podConfigSpec.defaultVmBehavior = "manual"; } podConfigSpec.defaultIntraVmAffinity = true; podConfigSpec.defaultIntraVmAffinitySpecified = true; podConfigSpec.enabled = true; podConfigSpec.enabledSpecified = true; StorageDrsIoLoadBalanceConfig sdrsIoLoadBalanceConfig = new StorageDrsIoLoadBalanceConfig(); if (ioLatencythreshold != null) { sdrsIoLoadBalanceConfig.ioLatencyThreshold = int.Parse(ioLatencythreshold); sdrsIoLoadBalanceConfig.ioLatencyThresholdSpecified = true; } if (ioLoadImbalanceThreshold != null) { sdrsIoLoadBalanceConfig.ioLoadImbalanceThreshold = int.Parse(ioLoadImbalanceThreshold); sdrsIoLoadBalanceConfig.ioLoadImbalanceThresholdSpecified = true; } podConfigSpec.ioLoadBalanceConfig = sdrsIoLoadBalanceConfig; podConfigSpec.ioLoadBalanceEnabled = true; podConfigSpec.ioLoadBalanceEnabledSpecified = true; if (loadBalanceInterval != null) { podConfigSpec.loadBalanceInterval = int.Parse(loadBalanceInterval); podConfigSpec.loadBalanceIntervalSpecified = true; } StorageDrsSpaceLoadBalanceConfig sdrsSpaceLoadBalanceConfig = new StorageDrsSpaceLoadBalanceConfig(); if (spaceUtilizationThreshold != null) { sdrsSpaceLoadBalanceConfig.spaceUtilizationThreshold = int.Parse(spaceUtilizationThreshold); sdrsSpaceLoadBalanceConfig.spaceUtilizationThresholdSpecified = true; } if (minSpaceUtilizationDifference != null) { sdrsSpaceLoadBalanceConfig.minSpaceUtilizationDifference = int.Parse(minSpaceUtilizationDifference); sdrsSpaceLoadBalanceConfig.minSpaceUtilizationDifferenceSpecified = true; } podConfigSpec.spaceLoadBalanceConfig = sdrsSpaceLoadBalanceConfig; sdrsConfigSpec.podConfigSpec = podConfigSpec; return sdrsConfigSpec; }