CA-188553: [PAR-80] Creating a VLAN with MTU 9000 should be disabled if the base interface's MTU is < 9000

Fixed how we set the Maximum for the dropdown controls on:
* Creating External network,
* Creating Bonds
pages on the New Network Wizard

Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
This commit is contained in:
Gabor Apati-Nagy 2015-12-01 14:46:58 +00:00
parent bf1bbd8475
commit 49c17f9afb
2 changed files with 27 additions and 5 deletions

View File

@ -38,7 +38,7 @@ using XenAPI;
using XenAdmin.Network; using XenAdmin.Network;
using XenAdmin.Dialogs; using XenAdmin.Dialogs;
using XenAdmin.Core; using XenAdmin.Core;
using System.Linq;
namespace XenAdmin.Controls namespace XenAdmin.Controls
{ {
@ -103,6 +103,14 @@ namespace XenAdmin.Controls
} }
} }
internal List<PIF> AllPIFs
{
get
{
return dataGridView1.Rows.OfType<DataGridViewRow>().Select(r => r.Tag as PIF).Where(t => t != null).ToList();
}
}
internal bond_mode BondMode internal bond_mode BondMode
{ {
get get
@ -143,10 +151,6 @@ namespace XenAdmin.Controls
regStyle = dataGridView1.DefaultCellStyle.Clone(); regStyle = dataGridView1.DefaultCellStyle.Clone();
dimmedStyle = dataGridView1.DefaultCellStyle.Clone(); dimmedStyle = dataGridView1.DefaultCellStyle.Clone();
dimmedStyle.ForeColor = SystemColors.GrayText; dimmedStyle.ForeColor = SystemColors.GrayText;
numericUpDownMTU.Maximum = XenAPI.Network.MTU_MAX;
numericUpDownMTU.Minimum = XenAPI.Network.MTU_MIN;
numericUpDownMTU.Value = XenAPI.Network.MTU_DEFAULT;
} }
internal void SetHost(Host host) internal void SetHost(Host host)
@ -154,6 +158,7 @@ namespace XenAdmin.Controls
Connection = host.Connection; Connection = host.Connection;
bondSizeLimit = Helpers.BondSizeLimit(Connection); bondSizeLimit = Helpers.BondSizeLimit(Connection);
PopulateDataGridView(NetworkingHelper.GetAllPhysicalPIFs(host)); PopulateDataGridView(NetworkingHelper.GetAllPhysicalPIFs(host));
ConfigureMTUDropDown();
ShowHideControls(); ShowHideControls();
} }
@ -162,6 +167,7 @@ namespace XenAdmin.Controls
Connection = pool.Connection; Connection = pool.Connection;
bondSizeLimit = Helpers.BondSizeLimit(Connection); bondSizeLimit = Helpers.BondSizeLimit(Connection);
PopulateDataGridView(NetworkingHelper.GetAllPhysicalPIFs(pool)); PopulateDataGridView(NetworkingHelper.GetAllPhysicalPIFs(pool));
ConfigureMTUDropDown();
ShowHideControls(); ShowHideControls();
} }
@ -335,9 +341,23 @@ namespace XenAdmin.Controls
m_numberOfCheckedNics--; m_numberOfCheckedNics--;
UpdateCellsReadOnlyState(); UpdateCellsReadOnlyState();
UpdateMTUDropDown();
SetValid(); SetValid();
} }
private void UpdateMTUDropDown()
{
numericUpDownMTU.Maximum = Math.Min(BondedPIFs.Select(p => p.MTU).DefaultIfEmpty(XenAPI.Network.MTU_MAX).Min(), XenAPI.Network.MTU_MAX);
}
private void ConfigureMTUDropDown()
{
numericUpDownMTU.Maximum = Math.Min(AllPIFs.Select(p => p.MTU).DefaultIfEmpty(XenAPI.Network.MTU_MAX).Max(), XenAPI.Network.MTU_MAX);
numericUpDownMTU.Minimum = XenAPI.Network.MTU_MIN;
numericUpDownMTU.Value = XenAPI.Network.MTU_DEFAULT;
}
private void BondMode_CheckedChanged(object sender, EventArgs e) private void BondMode_CheckedChanged(object sender, EventArgs e)
{ {
ShowHideLacpWarning(); ShowHideLacpWarning();

View File

@ -195,6 +195,8 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
if (SelectedHostNic == null) if (SelectedHostNic == null)
return; return;
numericUpDownMTU.Maximum = Math.Min(SelectedHostNic.MTU, XenAPI.Network.MTU_MAX);
vlans = GetVLANList(SelectedHostNic); vlans = GetVLANList(SelectedHostNic);
//CA-72484: check whether the currently selected VLAN is available and keep it //CA-72484: check whether the currently selected VLAN is available and keep it