CP-30918: Show warnings if GFS2 SRs are not used with multipath.

Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
This commit is contained in:
Konstantina Chremmou 2019-03-22 14:06:27 +00:00 committed by Mihaela Stoica
parent 8bdc8816c3
commit b33e08b73e
6 changed files with 329 additions and 80 deletions

View File

@ -906,10 +906,14 @@ namespace XenAdmin.TabPages
PBD pbd = sr.GetPBDFor(host);
if (pbd == null || !pathStatus.ContainsKey(pbd))
{
s.AddEntry(host.Name(),
pbd != null && pbd.MultipathActive()
? Messages.MULTIPATH_ACTIVE
: Messages.MULTIPATH_NOT_ACTIVE);
if (pbd == null)
s.AddEntry(host.Name(), Messages.MULTIPATH_NOT_ACTIVE);
else if (pbd.MultipathActive())
s.AddEntry(host.Name(), Messages.MULTIPATH_ACTIVE);
else if (sr.GetSRType(true) == SR.SRTypes.gfs2)
s.AddEntry(host.Name(), Messages.MULTIPATH_NOT_ACTIVE_GFS2, Color.Red);
else
s.AddEntry(host.Name(), Messages.MULTIPATH_NOT_ACTIVE);
continue;
}

View File

@ -36,12 +36,17 @@
this.radioButtonLvm = new System.Windows.Forms.RadioButton();
this.label3 = new System.Windows.Forms.Label();
this.tableLayoutInfo = new System.Windows.Forms.TableLayoutPanel();
this.labelWarning = new System.Windows.Forms.Label();
this.pictureBoxInfo = new System.Windows.Forms.PictureBox();
this.labelInfo = new System.Windows.Forms.Label();
this.linkLabelPoolProperties = new System.Windows.Forms.LinkLabel();
this.tableLayoutWarning = new System.Windows.Forms.TableLayoutPanel();
this.pictureBoxWarning = new System.Windows.Forms.PictureBox();
this.labelWarning = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutInfo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxInfo)).BeginInit();
this.tableLayoutWarning.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWarning)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
@ -53,6 +58,7 @@
this.tableLayoutPanel1.Controls.Add(this.radioButtonLvm, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutInfo, 0, 5);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutWarning, 0, 6);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// label1
@ -67,6 +73,7 @@
this.radioButtonGfs2.Name = "radioButtonGfs2";
this.radioButtonGfs2.TabStop = true;
this.radioButtonGfs2.UseVisualStyleBackColor = true;
this.radioButtonGfs2.CheckedChanged += new System.EventHandler(this.radioButtonGfs2_CheckedChanged);
//
// labelGFS2
//
@ -78,6 +85,7 @@
resources.ApplyResources(this.radioButtonLvm, "radioButtonLvm");
this.radioButtonLvm.Name = "radioButtonLvm";
this.radioButtonLvm.UseVisualStyleBackColor = true;
this.radioButtonLvm.CheckedChanged += new System.EventHandler(this.radioButtonLvm_CheckedChanged);
//
// label3
//
@ -87,16 +95,11 @@
// tableLayoutInfo
//
resources.ApplyResources(this.tableLayoutInfo, "tableLayoutInfo");
this.tableLayoutInfo.Controls.Add(this.labelWarning, 1, 0);
this.tableLayoutInfo.Controls.Add(this.pictureBoxInfo, 0, 0);
this.tableLayoutInfo.Controls.Add(this.labelInfo, 1, 0);
this.tableLayoutInfo.Controls.Add(this.linkLabelPoolProperties, 2, 0);
this.tableLayoutInfo.Name = "tableLayoutInfo";
//
// labelWarning
//
resources.ApplyResources(this.labelWarning, "labelWarning");
this.labelWarning.Name = "labelWarning";
//
// pictureBoxInfo
//
this.pictureBoxInfo.Image = global::XenAdmin.Properties.Resources._000_Info3_h32bit_16;
@ -104,6 +107,11 @@
this.pictureBoxInfo.Name = "pictureBoxInfo";
this.pictureBoxInfo.TabStop = false;
//
// labelInfo
//
resources.ApplyResources(this.labelInfo, "labelInfo");
this.labelInfo.Name = "labelInfo";
//
// linkLabelPoolProperties
//
resources.ApplyResources(this.linkLabelPoolProperties, "linkLabelPoolProperties");
@ -111,6 +119,25 @@
this.linkLabelPoolProperties.TabStop = true;
this.linkLabelPoolProperties.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelPoolProperties_LinkClicked);
//
// tableLayoutWarning
//
resources.ApplyResources(this.tableLayoutWarning, "tableLayoutWarning");
this.tableLayoutWarning.Controls.Add(this.pictureBoxWarning, 0, 0);
this.tableLayoutWarning.Controls.Add(this.labelWarning, 1, 0);
this.tableLayoutWarning.Name = "tableLayoutWarning";
//
// pictureBoxWarning
//
this.pictureBoxWarning.Image = global::XenAdmin.Properties.Resources._000_WarningAlert_h32bit_32;
resources.ApplyResources(this.pictureBoxWarning, "pictureBoxWarning");
this.pictureBoxWarning.Name = "pictureBoxWarning";
this.pictureBoxWarning.TabStop = false;
//
// labelWarning
//
resources.ApplyResources(this.labelWarning, "labelWarning");
this.labelWarning.Name = "labelWarning";
//
// ChooseSrProvisioningPage
//
resources.ApplyResources(this, "$this");
@ -122,6 +149,9 @@
this.tableLayoutInfo.ResumeLayout(false);
this.tableLayoutInfo.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxInfo)).EndInit();
this.tableLayoutWarning.ResumeLayout(false);
this.tableLayoutWarning.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWarning)).EndInit();
this.ResumeLayout(false);
}
@ -135,8 +165,11 @@
private System.Windows.Forms.RadioButton radioButtonLvm;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.PictureBox pictureBoxInfo;
private System.Windows.Forms.Label labelWarning;
private System.Windows.Forms.Label labelInfo;
private System.Windows.Forms.TableLayoutPanel tableLayoutInfo;
private System.Windows.Forms.LinkLabel linkLabelPoolProperties;
private System.Windows.Forms.TableLayoutPanel tableLayoutWarning;
private System.Windows.Forms.PictureBox pictureBoxWarning;
private System.Windows.Forms.Label labelWarning;
}
}

View File

@ -39,33 +39,26 @@ using XenAPI;
namespace XenAdmin.Wizards.NewSRWizard_Pages
{
public partial class ChooseSrProvisioningPage : XenTabPage
{
public ChooseSrProvisioningPage()
{
InitializeComponent();
Cluster_CollectionChangedWithInvoke = Program.ProgramInvokeHandler(Cluster_CollectionChanged);
}
private readonly CollectionChangeEventHandler Cluster_CollectionChangedWithInvoke;
#region XenTabPage overrides
public override string Text { get { return Messages.PROVISIONING; } }
public override string Text => Messages.PROVISIONING;
public override string PageTitle { get { return Messages.CHOOSE_SR_PROVISIONING_PAGE_TITLE; } }
public override string PageTitle => Messages.CHOOSE_SR_PROVISIONING_PAGE_TITLE;
public override string HelpID => "Provisioning";
public override string HelpID
{
get { return "Provisioning"; }
}
#endregion
public bool IsGfs2
{
get
{
return radioButtonGfs2.Checked;
}
}
public bool IsGfs2 => radioButtonGfs2.Checked;
private void RefreshPage()
{
@ -81,23 +74,89 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
}
tableLayoutInfo.Visible = !gfs2Allowed;
labelWarning.Text = restrictGfs2
labelInfo.Text = restrictGfs2
? Messages.GFS2_INCORRECT_POOL_LICENSE
: Messages.GFS2_REQUIRES_CLUSTERING_ENABLED;
linkLabelPoolProperties.Visible = !clusteringEnabled && !restrictGfs2;
linkLabelPoolProperties.Visible = !clusteringEnabled && !restrictGfs2;
RefreshWarnings();
}
private void RefreshWarnings()
{
if (radioButtonGfs2.Checked)
{
bool disabledMultipathExists = false;
foreach (Host host in Connection.Cache.Hosts)
{
if (!host.MultipathEnabled())
{
disabledMultipathExists = true;
break;
}
}
tableLayoutWarning.Visible = disabledMultipathExists;
labelWarning.Text = Connection.Cache.Hosts.Length > 1
? Messages.CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_MANY
: Messages.CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_ONE;
}
else
{
tableLayoutWarning.Visible = false;
}
}
protected override void PageLoadedCore(PageLoadedDirection direction)
{
RefreshPage();
foreach (var host in Connection.Cache.Hosts)
host.PropertyChanged += Host_PropertyChanged;
Connection.Cache.RegisterCollectionChanged<Cluster>(Cluster_CollectionChangedWithInvoke);
Connection.Cache.RegisterCollectionChanged<Host>(Host_CollectionChangedWithInvoke);
}
protected override void PageLeaveCore(PageLoadedDirection direction, ref bool cancel)
{
foreach (var host in Connection.Cache.Hosts)
host.PropertyChanged -= Host_PropertyChanged;
Connection.Cache.DeregisterCollectionChanged<Cluster>(Cluster_CollectionChangedWithInvoke);
Connection.Cache.DeregisterCollectionChanged<Host>(Host_CollectionChangedWithInvoke);
}
private void Cluster_CollectionChanged(object sender, CollectionChangeEventArgs e)
{
Program.AssertOnEventThread();
RefreshPage();
}
private void Host_CollectionChangedWithInvoke(object sender, CollectionChangeEventArgs e)
{
Host host = e.Element as Host;
if (host == null)
return;
if (e.Action == CollectionChangeAction.Add)
host.PropertyChanged += Host_PropertyChanged;
else if (e.Action == CollectionChangeAction.Remove)
host.PropertyChanged -= Host_PropertyChanged;
}
private void Host_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "multipathing":
RefreshWarnings();
break;
}
}
private void linkLabelPoolProperties_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
var pool = Helpers.GetPoolOfOne(Connection);
@ -112,14 +171,16 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
}
}
/// <summary>
/// Called when the current IXenConnection's VM dictionary changes.
/// </summary>
private void Cluster_CollectionChanged(object sender, CollectionChangeEventArgs e)
private void radioButtonGfs2_CheckedChanged(object sender, System.EventArgs e)
{
Program.AssertOnEventThread();
if (radioButtonGfs2.Checked)
RefreshWarnings();
}
RefreshPage();
private void radioButtonLvm_CheckedChanged(object sender, System.EventArgs e)
{
if (radioButtonLvm.Checked)
RefreshWarnings();
}
}
}

View File

@ -168,8 +168,11 @@
<data name="radioButtonGfs2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 6, 3, 3</value>
</data>
<data name="radioButtonGfs2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 0, 0</value>
</data>
<data name="radioButtonGfs2.Size" type="System.Drawing.Size, System.Drawing">
<value>155, 19</value>
<value>158, 19</value>
</data>
<data name="radioButtonGfs2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -234,8 +237,11 @@
<data name="radioButtonLvm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 6, 3, 3</value>
</data>
<data name="radioButtonLvm.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 0, 0</value>
</data>
<data name="radioButtonLvm.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 19</value>
<value>150, 19</value>
</data>
<data name="radioButtonLvm.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -291,47 +297,17 @@
<data name="tableLayoutInfo.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutInfo.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutInfo.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="labelWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelWarning.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 15</value>
</data>
<data name="labelWarning.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 15, 3, 0</value>
</data>
<data name="labelWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 15</value>
</data>
<data name="labelWarning.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="&gt;&gt;labelWarning.Name" xml:space="preserve">
<value>labelWarning</value>
</data>
<data name="&gt;&gt;labelWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelWarning.Parent" xml:space="preserve">
<value>tableLayoutInfo</value>
</data>
<data name="&gt;&gt;labelWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBoxInfo.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 15</value>
</data>
<data name="pictureBoxInfo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 15, 3, 3</value>
<value>3, 3</value>
</data>
<data name="pictureBoxInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>19, 20</value>
<value>16, 16</value>
</data>
<data name="pictureBoxInfo.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -346,16 +322,49 @@
<value>tableLayoutInfo</value>
</data>
<data name="&gt;&gt;pictureBoxInfo.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="labelInfo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelInfo.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelInfo.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelInfo.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 3</value>
</data>
<data name="labelInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 15</value>
</data>
<data name="labelInfo.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="labelInfo.Text" xml:space="preserve">
<value>labelInfo</value>
</data>
<data name="&gt;&gt;labelInfo.Name" xml:space="preserve">
<value>labelInfo</value>
</data>
<data name="&gt;&gt;labelInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelInfo.Parent" xml:space="preserve">
<value>tableLayoutInfo</value>
</data>
<data name="&gt;&gt;labelInfo.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="linkLabelPoolProperties.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="linkLabelPoolProperties.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="linkLabelPoolProperties.Location" type="System.Drawing.Point, System.Drawing">
<value>28, 15</value>
</data>
<data name="linkLabelPoolProperties.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 15, 3, 0</value>
<value>84, 4</value>
</data>
<data name="linkLabelPoolProperties.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 13</value>
@ -379,17 +388,23 @@
<value>2</value>
</data>
<data name="tableLayoutInfo.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 144</value>
<value>3, 156</value>
</data>
<data name="tableLayoutInfo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 15, 3, 3</value>
</data>
<data name="tableLayoutInfo.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 38</value>
<value>184, 22</value>
</data>
<data name="tableLayoutInfo.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="tableLayoutInfo.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;tableLayoutInfo.Name" xml:space="preserve">
<value>tableLayoutInfo</value>
</data>
@ -403,7 +418,103 @@
<value>5</value>
</data>
<data name="tableLayoutInfo.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelWarning" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxInfo" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="linkLabelPoolProperties" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100,AutoSize,0" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="pictureBoxInfo" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelInfo" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="linkLabelPoolProperties" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100,AutoSize,0" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutWarning.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutWarning.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="pictureBoxWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBoxWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 32</value>
</data>
<data name="pictureBoxWarning.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pictureBoxWarning.Name" xml:space="preserve">
<value>pictureBoxWarning</value>
</data>
<data name="&gt;&gt;pictureBoxWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxWarning.Parent" xml:space="preserve">
<value>tableLayoutWarning</value>
</data>
<data name="&gt;&gt;pictureBoxWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="labelWarning.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left, Right</value>
</data>
<data name="labelWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>41, 6</value>
</data>
<data name="labelWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>496, 26</value>
</data>
<data name="labelWarning.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="labelWarning.Text" xml:space="preserve">
<value>Multipathing is not enabled on all servers of your pool. To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity.</value>
</data>
<data name="&gt;&gt;labelWarning.Name" xml:space="preserve">
<value>labelWarning</value>
</data>
<data name="&gt;&gt;labelWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelWarning.Parent" xml:space="preserve">
<value>tableLayoutWarning</value>
</data>
<data name="&gt;&gt;labelWarning.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutWarning.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="tableLayoutWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 196</value>
</data>
<data name="tableLayoutWarning.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 15, 0, 0</value>
</data>
<data name="tableLayoutWarning.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>540, 38</value>
</data>
<data name="tableLayoutWarning.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="tableLayoutWarning.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;tableLayoutWarning.Name" xml:space="preserve">
<value>tableLayoutWarning</value>
</data>
<data name="&gt;&gt;tableLayoutWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutWarning.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutWarning.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="tableLayoutWarning.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="pictureBoxWarning" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelWarning" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -415,7 +526,7 @@
<value>3, 10, 3, 3</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>6</value>
<value>7</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>540, 336</value>
@ -436,7 +547,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonGfs2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelGFS2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonLvm" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutInfo" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonGfs2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelGFS2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonLvm" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutInfo" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutWarning" Row="6" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>

View File

@ -7338,6 +7338,24 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Multipathing is not enabled on all servers of your pool. To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity..
/// </summary>
public static string CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_MANY {
get {
return ResourceManager.GetString("CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_MANY", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Multipathing is not enabled on your server. To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity..
/// </summary>
public static string CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_ONE {
get {
return ResourceManager.GetString("CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_ONE", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Choose the provisioning method.
/// </summary>
@ -23450,6 +23468,17 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Not active.
///To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity.
///.
/// </summary>
public static string MULTIPATH_NOT_ACTIVE_GFS2 {
get {
return ResourceManager.GetString("MULTIPATH_NOT_ACTIVE_GFS2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} of {1} paths active.
/// </summary>

View File

@ -2655,6 +2655,12 @@ Do you want to assign it to the schedule '{2}' instead?</value>
<data name="CHOOSE_ANOTHER_DESTINATION" xml:space="preserve">
<value>Choose another &amp;destination</value>
</data>
<data name="CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_MANY" xml:space="preserve">
<value>Multipathing is not enabled on all servers of your pool. To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity.</value>
</data>
<data name="CHOOSE_SR_PROVISIONING_PAGE_MULTIPATHING_ONE" xml:space="preserve">
<value>Multipathing is not enabled on your server. To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity.</value>
</data>
<data name="CHOOSE_SR_PROVISIONING_PAGE_TITLE" xml:space="preserve">
<value>Choose the provisioning method</value>
</data>
@ -8157,6 +8163,11 @@ Do you want to continue?</value>
<data name="MULTIPATH_NOT_ACTIVE" xml:space="preserve">
<value>Not active</value>
</data>
<data name="MULTIPATH_NOT_ACTIVE_GFS2" xml:space="preserve">
<value>Not active.
To ensure system stability, it is strongly recommended that you use multipathing for your storage connectivity.
</value>
</data>
<data name="MULTIPATH_STATUS" xml:space="preserve">
<value>{0} of {1} paths active</value>
</data>