/// <summary> /// Retrieve subscriptions and set _subscriptionCollection /// </summary> private void SetSubscriptionCollection() { _subscriptionCollection = null; WlbPoolConfiguration poolConfiguration; RetrieveWlbConfigurationAction action = new RetrieveWlbConfigurationAction(_pool); using (var dialog = new ActionProgressDialog(action, ProgressBarStyle.Blocks)) { dialog.ShowCancel = true; dialog.ShowDialog(this); } if (action.Succeeded) { poolConfiguration = new WlbPoolConfiguration(action.WlbConfiguration); _isCreedenceOrLater = poolConfiguration.IsCreedenceOrLater; this.splitContainerLeftPane.Panel2Collapsed = true; this.wlbReportView1.btnSubscribe.Visible = false; } else { throw (action.Exception); } }
public void ConstructedWithEmptyDictionaryVerifyGettersReturnValues() { wlbPool = new WlbPoolConfiguration(new Dictionary <string, string>()); PropertyInfo[] pi = wlbPool.GetType().GetProperties(); Assert.AreEqual(NUMBER_OF_PROPERTIES, pi.Length, "Number of properties"); List <string> fieldsToSkip = new List <string>() { "AutoBalanceAggressiveness", //Enum "AutoBalanceSeverity", //Enum "ReportingSMTPServer" //Not set }; foreach (PropertyInfo propertyInfo in pi) { if (!fieldsToSkip.Contains(propertyInfo.Name)) { string extractedValue = propertyInfo.GetValue(wlbPool, null).ToString(); Assert.IsFalse(String.IsNullOrEmpty(extractedValue), "PB:" + propertyInfo.Name); } } Assert.IsNullOrEmpty(wlbPool.ReportingSMTPServer); }
internal void EditWLB(Pool pool) { // Do nothing if there is a WLB action in progress if (HelpersGUI.FindActiveWLBAction(pool.Connection) != null) { log.Debug("Not opening WLB dialog: an WLB action is in progress"); return; } if (!pool.Connection.IsConnected) { log.Debug("Not opening WLB dialog: the connection to the pool is now closed"); return; } try { WlbConfigurationDialog wlbConfigDialog = new WlbConfigurationDialog(pool); DialogResult dr = wlbConfigDialog.ShowDialog(); if (dr == DialogResult.OK) { _wlbPoolConfiguration = wlbConfigDialog.WlbPoolConfiguration; //check to see if the current opt mode matches the current schedule if (_wlbPoolConfiguration.AutomateOptimizationMode) { WlbPoolPerformanceMode scheduledPerfMode = _wlbPoolConfiguration.ScheduledTasks.GetCurrentScheduledPerformanceMode(); if (scheduledPerfMode != _wlbPoolConfiguration.PerformanceMode) { string blurb = string.Format(Messages.WLB_PROMPT_FOR_MODE_CHANGE_BLURB, getOptModeText(scheduledPerfMode), getOptModeText(_wlbPoolConfiguration.PerformanceMode)); DialogResult drModeCheck; using (var dlg = new ThreeButtonDialog( new ThreeButtonDialog.Details(null, blurb, Messages.WLB_PROMPT_FOR_MODE_CHANGE_CAPTION), ThreeButtonDialog.ButtonYes, ThreeButtonDialog.ButtonNo)) { drModeCheck = dlg.ShowDialog(this); } if (drModeCheck == DialogResult.Yes) { _wlbPoolConfiguration.PerformanceMode = scheduledPerfMode; } } } SaveWLBConfig(_wlbPoolConfiguration); } } catch (Exception ex) { log.Debug("Unable to open the WLB configuration dialog.", ex); return; } if (!(WlbServerState.GetState(_pool) == WlbServerState.ServerState.NotConfigured)) { RetrieveConfiguration(); } }
public void ConstructedWithEmptyDictionaryVerifyGettersReturnValues() { wlbPool = new WlbPoolConfiguration(new Dictionary <string, string>()); PropertyInfo[] pi = wlbPool.GetType().GetProperties(); Assert.AreEqual(NUMBER_OF_PROPERTIES, pi.Length, "Number of properties"); List <string> fieldsToSkip = new List <string> { "AutoBalanceAggressiveness", //Enum "AutoBalanceSeverity", //Enum "ReportingSMTPServer", //Not set "PoolAuditGranularity" //Enum }; foreach (PropertyInfo propertyInfo in pi) { if (!fieldsToSkip.Contains(propertyInfo.Name)) { string extractedValue = propertyInfo.GetValue(wlbPool, null).ToString(); Assert.That(extractedValue, Is.Not.Null.And.Not.Empty, $"PB: {propertyInfo.Name}"); } } Assert.That(wlbPool.ReportingSMTPServer, Is.Null.Or.Empty); }
private void InitializeControls() { _loading = true; updownCPUCriticalPoint.Value = GetSafeUpDownValue(_poolConfiguration.HostCpuThresholdCritical, updownCPUCriticalPoint); updownMemoryCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostMemoryThresholdCritical), updownMemoryCriticalPoint); updownDiskReadCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostDiskReadThresholdCritical), updownDiskReadCriticalPoint); updownDiskWriteCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostDiskWriteThresholdCritical), updownDiskWriteCriticalPoint); updownNetworkReadCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostNetworkReadThresholdCritical), updownNetworkReadCriticalPoint); updownNetworkWriteCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostNetworkWriteThresholdCritical), updownNetworkWriteCriticalPoint); labelCPUUnits.Text = string.Format(labelCPUUnits.Text, updownCPUCriticalPoint.Minimum, updownCPUCriticalPoint.Maximum); labelFreeMemoryUnits.Text = string.Format(labelFreeMemoryUnits.Text, updownMemoryCriticalPoint.Minimum, updownMemoryCriticalPoint.Maximum); labelDiskReadUnits.Text = string.Format(labelDiskReadUnits.Text, updownDiskReadCriticalPoint.Minimum, updownDiskReadCriticalPoint.Maximum); labelDiskWriteUnits.Text = string.Format(labelDiskWriteUnits.Text, updownDiskWriteCriticalPoint.Minimum, updownDiskWriteCriticalPoint.Maximum); labelNetworkReadUnits.Text = string.Format(labelNetworkReadUnits.Text, updownNetworkReadCriticalPoint.Minimum, updownNetworkReadCriticalPoint.Maximum); labelNetworkWriteUnits.Text = string.Format(labelNetworkWriteUnits.Text, updownNetworkWriteCriticalPoint.Minimum, updownNetworkWriteCriticalPoint.Maximum); // CA-194940: // Host disk read/write threshold and weight settings work since Dundee. // For previous XenServer, hide the host disk read/write settings. if (!Helpers.DundeeOrGreater(_connection)) { updownDiskReadCriticalPoint.Visible = false; updownDiskWriteCriticalPoint.Visible = false; labelDiskReadUnits.Visible = false; labelDiskWriteUnits.Visible = false; labelDiskRead.Visible = false; label1DiskWrite.Visible = false; } _loading = false;; }
private void InitializeControls() { _loading = true; updownCPUCriticalPoint.Value = GetSafeUpDownValue(_poolConfiguration.HostCpuThresholdCritical, updownCPUCriticalPoint); updownMemoryCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostMemoryThresholdCritical), updownMemoryCriticalPoint); updownDiskReadCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostDiskReadThresholdCritical), updownDiskReadCriticalPoint); updownDiskWriteCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostDiskWriteThresholdCritical), updownDiskWriteCriticalPoint); updownNetworkReadCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostNetworkReadThresholdCritical), updownNetworkReadCriticalPoint); updownNetworkWriteCriticalPoint.Value = GetSafeUpDownValue(WlbPoolConfiguration.ConvertToMB(_poolConfiguration.HostNetworkWriteThresholdCritical), updownNetworkWriteCriticalPoint); labelCPUUnits.Text = string.Format(labelCPUUnits.Text, updownCPUCriticalPoint.Minimum, updownCPUCriticalPoint.Maximum); labelFreeMemoryUnits.Text = string.Format(labelFreeMemoryUnits.Text, updownMemoryCriticalPoint.Minimum, updownMemoryCriticalPoint.Maximum); labelDiskReadUnits.Text = string.Format(labelDiskReadUnits.Text, updownDiskReadCriticalPoint.Minimum, updownDiskReadCriticalPoint.Maximum); labelDiskWriteUnits.Text = string.Format(labelDiskWriteUnits.Text, updownDiskWriteCriticalPoint.Minimum, updownDiskWriteCriticalPoint.Maximum); labelNetworkReadUnits.Text = string.Format(labelNetworkReadUnits.Text, updownNetworkReadCriticalPoint.Minimum, updownNetworkReadCriticalPoint.Maximum); labelNetworkWriteUnits.Text = string.Format(labelNetworkWriteUnits.Text, updownNetworkWriteCriticalPoint.Minimum, updownNetworkWriteCriticalPoint.Maximum); //CA-134554 - Hide Disk Read/Write until the backend server side is ready updownDiskReadCriticalPoint.Visible = false; updownDiskWriteCriticalPoint.Visible = false; labelDiskReadUnits.Visible = false; labelDiskWriteUnits.Visible = false; _loading = false;; }
public AsyncAction SaveSettings() { _poolConfiguration.HostCpuThresholdCritical = (int)updownCPUCriticalPoint.Value; _poolConfiguration.HostMemoryThresholdCritical = WlbPoolConfiguration.ConvertFromMB((int)updownMemoryCriticalPoint.Value); _poolConfiguration.HostDiskReadThresholdCritical = WlbPoolConfiguration.ConvertFromMB((int)updownDiskReadCriticalPoint.Value); _poolConfiguration.HostDiskWriteThresholdCritical = WlbPoolConfiguration.ConvertFromMB((int)updownDiskWriteCriticalPoint.Value); _poolConfiguration.HostNetworkReadThresholdCritical = WlbPoolConfiguration.ConvertFromMB((int)updownNetworkReadCriticalPoint.Value); _poolConfiguration.HostNetworkWriteThresholdCritical = WlbPoolConfiguration.ConvertFromMB((int)updownNetworkWriteCriticalPoint.Value); return(null); }
private void SaveWLBConfig(WlbPoolConfiguration PoolConfiguration) { Dictionary <string, string> completeConfiguration = PoolConfiguration.ToDictionary(); SendWlbConfigurationKind kind = SendWlbConfigurationKind.SetPoolConfiguration; // check for host configurations in the pool configuration if (PoolConfiguration.HostConfigurations.Count > 0) { // add the flag denoting that there are host configs to be saved kind |= SendWlbConfigurationKind.SetHostConfiguration; // get the key for each host config (host.uuid) foreach (string key in PoolConfiguration.HostConfigurations.ToDictionary().Keys) { //Drop any exising copy from the pool configuration if (completeConfiguration.ContainsKey(key)) { completeConfiguration.Remove(key); } // and add the task to the collection completeConfiguration.Add(key, PoolConfiguration.HostConfigurations.ToDictionary()[key]); } } // check for scheduled tasks in the pool configuration if (PoolConfiguration.ScheduledTasks.TaskList.Count > 0) { // add the flag denoting that there are scheduled tasks to be saved kind |= SendWlbConfigurationKind.SetScheduledTask; // get the key for each scheduled task foreach (string key in PoolConfiguration.ScheduledTasks.ToDictionary().Keys) { //Drop any exising copy from the pool configuration if (completeConfiguration.ContainsKey(key)) { completeConfiguration.Remove(key); } // and add the task to the collection completeConfiguration.Add(key, PoolConfiguration.ScheduledTasks.ToDictionary()[key]); } } SendWlbConfigurationAction action = new SendWlbConfigurationAction(_pool, PoolConfiguration.ToDictionary(), kind); using (var dialog = new ActionProgressDialog(action, ProgressBarStyle.Blocks)) { dialog.ShowCancel = true; dialog.ShowDialog(this); } Program.MainWindow.UpdateToolbars(); }
private void Build() { _poolConfiguration = RetrieveWLBConfiguration(); if (null != _poolConfiguration) { verticalTabs.Items.Clear(); verticalTabs.Items.Add(wlbOptimizationModePage); wlbOptimizationModePage.PoolConfiguration = _poolConfiguration; wlbOptimizationModePage.Pool = _pool; if (_poolConfiguration.IsMROrLater) { verticalTabs.Items.Add(wlbAutomationPage); wlbAutomationPage.Connection = _pool.Connection; wlbAutomationPage.PoolConfiguration = _poolConfiguration; //verticalTabs.Items.Add(wlbPowerManagementPage); //wlbPowerManagementPage.Connection = _pool.Connection; //wlbPowerManagementPage.PoolConfiguration = _poolConfiguration; } verticalTabs.Items.Add(wlbThresholdsPage); wlbThresholdsPage.Connection = _pool.Connection; wlbThresholdsPage.PoolConfiguration = _poolConfiguration; verticalTabs.Items.Add(wlbMetricWeightingPage); wlbMetricWeightingPage.Connection = _pool.Connection; wlbMetricWeightingPage.PoolConfiguration = _poolConfiguration; if (_poolConfiguration.IsMROrLater) { verticalTabs.Items.Add(wlbHostExclusionPage); wlbHostExclusionPage.PoolConfiguration = _poolConfiguration; wlbHostExclusionPage.Connection = _pool.Connection; } verticalTabs.Items.Add(wlbAdvancedSettingsPage); wlbAdvancedSettingsPage.PoolConfiguration = _poolConfiguration; wlbAdvancedSettingsPage.Pool = _pool; verticalTabs.SelectedIndex = 0; } else { this.DialogResult = DialogResult.Cancel; this.Close(); } }
protected void action_Completed(ActionBase sender) { // This seems to be called off the event thread AsyncAction action = (AsyncAction)sender; if (action.IsCompleted) { action.Completed -= action_Completed; if (action is EnableWLBAction || action is RetrieveWlbConfigurationAction || action is DisableWLBAction) { if (action is EnableWLBAction) { EnableWLBAction thisAction = (EnableWLBAction)action; _wlbPoolConfiguration = new WlbPoolConfiguration(thisAction.WlbConfiguration); } else if (action is RetrieveWlbConfigurationAction) { RetrieveWlbConfigurationAction thisAction = (RetrieveWlbConfigurationAction)action; if (thisAction.Succeeded) { _wlbPoolConfiguration = new WlbPoolConfiguration(thisAction.WlbConfiguration); } else { //_statusError = thisAction.Exception.Message; _wlbPoolConfiguration = null; } } else if (action is DisableWLBAction) { } Program.Invoke(Program.MainWindow, delegate() { if (_pool != null && _pool.Connection == action.Connection) { RefreshControls(); } }); } } }
public void OvercommitCPUsGetTheCorrectValueForDifferentModes() { Dictionary <string, string> inputData = new Dictionary <string, string>() { { "OverCommitCpuInDensityMode", "false" }, { "OverCommitCpuInPerfMode", "true" } }; wlbPool = new WlbPoolConfiguration(inputData); //Setter drops through if the key has not been added to the dictionary so won't set the values wlbPool.PerformanceMode = WlbPoolPerformanceMode.MaximizeDensity; //This should be false if the key were there Assert.IsTrue(wlbPool.OvercommitCPUs, "OvercommitCPUs in MaximizeDensity mode without key"); //Add the key and set the data - this is now the default behaviour wlbPool.AddParameter("OptimizationMode", "MaximizeDensity"); wlbPool.PerformanceMode = WlbPoolPerformanceMode.MaximizeDensity; Assert.IsFalse(wlbPool.OvercommitCPUs, "OvercommitCPUs in MaximizeDensity mode"); wlbPool.PerformanceMode = WlbPoolPerformanceMode.MaximizePerformance; Assert.IsTrue(wlbPool.OvercommitCPUs, "OvercommitCPUs in MaximizePerformance"); }
public void NullCtorThrows() { wlbPool = new WlbPoolConfiguration(null); }