예제 #1
0
        /// <summary>
        /// Populate optimize pool listview properly
        /// </summary>
        /// <param name="recommendations">optimize pool recommendations</param>
        private void PopulateData(Dictionary <XenRef <VM>, string[]> recommendations)
        {
            Program.AssertOnEventThread();

            optimizePoolListView.BeginUpdate();
            try
            {
                if (_vmOptList != null)
                {
                    _vmOptList.Clear();
                }

                optimizePoolListView.Items.Clear();
                List <ListViewItem> newItems = new List <ListViewItem>();

                WlbOptimizationRecommendationCollection sortedRecommendations = new WlbOptimizationRecommendationCollection(_pool, recommendations);

                // WLB: recommendation return string format ["WLB"; vm/vm dom0; optId; recID; reason]

                foreach (WlbOptimizationRecommendation optVmSetting in sortedRecommendations)
                {
                    _optId = optVmSetting.optId.ToString();
                    _vmOptList.Add(optVmSetting.vm, optVmSetting);

                    ListViewItem row = new ListViewItem();
                    row.Tag = optVmSetting;
                    newItems.Add(row);

                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());

                    // Power on/off hosts
                    if (optVmSetting.toHost == null)
                    {
                        row.ImageIndex       = (int)Images.GetIconFor(optVmSetting.toHost != null ? optVmSetting.toHost : optVmSetting.fromHost);
                        row.SubItems[1].Text = Helpers.GetName(optVmSetting.toHost != null ? optVmSetting.toHost : optVmSetting.fromHost);
                        row.SubItems[2].Text = optVmSetting.powerOperation;
                    }
                    else // VMs
                    {
                        row.ImageIndex       = (int)Images.GetIconFor(optVmSetting.vm);
                        row.SubItems[1].Text = Helpers.GetName(optVmSetting.vm);
                        row.SubItems[2].Text = String.Format(Messages.WLB_OPT_OPERATION_VM, Helpers.GetName(optVmSetting.fromHost), Helpers.GetName(optVmSetting.toHost));
                    }
                    row.SubItems[3].Text = optVmSetting.reason;
                }

                optimizePoolListView.Items.AddRange(newItems.ToArray());
            }
            finally
            {
                optimizePoolListView.EndUpdate();
            }
        }
예제 #2
0
        /// <summary>
        /// Populate optimize pool listview properly
        /// </summary>
        /// <param name="recommendations">optimize pool recommendations</param>
        private void PopulateData(Dictionary<XenRef<VM>, string[]> recommendations)
        {
            Program.AssertOnEventThread();

            optimizePoolListView.BeginUpdate();
            try
            {
                if (_vmOptList != null)
                    _vmOptList.Clear();

                optimizePoolListView.Items.Clear();
                List<ListViewItem> newItems = new List<ListViewItem>();

                WlbOptimizationRecommendationCollection sortedRecommendations = new WlbOptimizationRecommendationCollection(_pool, recommendations);

                // WLB: recommendation return string format ["WLB"; vm/vm dom0; optId; recID; reason]

                foreach (WlbOptimizationRecommendation optVmSetting in sortedRecommendations)
                {
                    _optId = optVmSetting.optId.ToString();
                    _vmOptList.Add(optVmSetting.vm, optVmSetting);

                    ListViewItem row = new ListViewItem();
                    row.Tag = optVmSetting; 
                    newItems.Add(row);

                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());
                    row.SubItems.Add(new ListViewItem.ListViewSubItem());

                    // Power on/off hosts
                    if (optVmSetting.toHost == null)
                    {
                        row.ImageIndex = (int)Images.GetIconFor(optVmSetting.toHost != null ? optVmSetting.toHost : optVmSetting.fromHost);
                        row.SubItems[1].Text = Helpers.GetName(optVmSetting.toHost != null ? optVmSetting.toHost : optVmSetting.fromHost);
                        row.SubItems[2].Text = optVmSetting.powerOperation; 
                    }
                    else // VMs
                    {
                        row.ImageIndex = (int)Images.GetIconFor(optVmSetting.vm);
                        row.SubItems[1].Text = Helpers.GetName(optVmSetting.vm);
                        row.SubItems[2].Text = String.Format(Messages.WLB_OPT_OPERATION_VM, Helpers.GetName(optVmSetting.fromHost), Helpers.GetName(optVmSetting.toHost));
                    }
                    row.SubItems[3].Text = optVmSetting.reason;
                }

                optimizePoolListView.Items.AddRange(newItems.ToArray());
            }
            finally
            {
                optimizePoolListView.EndUpdate();
            }
        }