Merge pull request #60 from xenserver/xs64bit

Merge all changes from xs64bit to master
This commit is contained in:
Stephen Turner 2014-04-30 18:22:45 +01:00
commit 533857e6c2
46 changed files with 344 additions and 558 deletions

View File

@ -68,12 +68,14 @@ namespace XenAdmin.Alerts
public void IncludeConnection(IXenConnection newConnection)
{
if (!connections.Contains(newConnection))
connections.Add(newConnection);
}
public void IncludeHosts(IEnumerable<Host> newHosts)
{
hosts.AddRange(newHosts);
var notContained = newHosts.Where(h => !hosts.Contains(h));
hosts.AddRange(notContained);
}
public void CopyConnectionsAndHosts(XenServerUpdateAlert alert)

View File

@ -89,8 +89,8 @@ namespace XenAdmin.Commands
protected override bool CanExecuteCore(SelectedItemCollection selection)
{
//Removed for clearwater
if (selection.Any(s => Helpers.ClearwaterOrGreater(s.Connection)))
//Clearwater doesn't has WLB
if (selection.Any(s => Helpers.IsClearwater(s.Connection)))
return false;
if (selection.Count == 1)

View File

@ -107,8 +107,8 @@ namespace XenAdmin.Commands
protected override bool CanExecuteCore(SelectedItemCollection selection)
{
//Removed for clearwater
if(selection.Any(s=>Helpers.ClearwaterOrGreater(s.Connection)))
//Clearwater doesn't has WLB
if (selection.Any(s => Helpers.IsClearwater(s.Connection)))
return false;
if (selection.Count == 1)

View File

@ -1,60 +0,0 @@
/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using XenAPI;
using XenAdmin.Diagnostics.Problems;
using XenAdmin.Core;
using XenAdmin.Diagnostics.Problems.PoolProblem;
namespace XenAdmin.Diagnostics.Checks
{
public class HostHasWlbCheck : Check
{
public HostHasWlbCheck(Host host) : base(host)
{
}
public override Problem RunCheck()
{
Pool pool = Helpers.GetPoolOfOne(Host.Connection);
if(pool == null)
return null;
return Helpers.WlbConfigured(Host.Connection) || Helpers.WlbEnabledAndConfigured(Host.Connection) ? new PoolHasWlbRemovalWarning(this, pool) : null;
}
public override string Description
{
get { return String.Format(Messages.HOST_X, Host.Name); }
}
}
}

View File

@ -1,61 +0,0 @@
/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using XenAdmin.Diagnostics.Checks;
using XenAPI;
namespace XenAdmin.Diagnostics.Problems.PoolProblem
{
public class PoolHasWlbRemovalWarning : WarningWithInformationUrl
{
private Pool StoredPool { get; set; }
public PoolHasWlbRemovalWarning(Check check, Pool pool) : base(check)
{
StoredPool = pool;
}
public override string Title
{
get { return String.Format(Messages.POOL_X, StoredPool.Name); }
}
public override string Description
{
get { return String.Format(Messages.RPU_WIZARD_WLB_REMOVAL, StoredPool.Name); }
}
public override Uri UriToLaunch
{
get { return new Uri(InvisibleMessages.WLB_DEPRECATION_URL); }
}
}
}

View File

@ -62,7 +62,7 @@ namespace XenAdmin.Diagnostics.Problems.PoolProblem
return new DelegatedAsyncAction(Pool.Connection, Messages.HELP_MESSAGE_DISABLE_WLB, "", "",
ss =>
{
var action = new DisableWLBAction(Pool, true);
var action = new DisableWLBAction(Pool, false);
action.RunExternal(ss);
int count = 0;
while (Helpers.WlbEnabled(Pool.Connection) && count < 10)

View File

@ -221,6 +221,11 @@ namespace XenAdmin.Dialogs
}
}
public bool HelperUrlRequired
{
get { return XenObject == null ? false : Helpers.ClearwaterOrGreater(XenObject.Connection); } // CA-115256
}
public Status RowStatus
{
get

View File

@ -200,12 +200,12 @@ namespace XenAdmin.Dialogs
Program.Invoke(this, delegate
{
LicenseDataGridViewRow lRow = row as LicenseDataGridViewRow;
if(lRow == null)
if(lRow == null || lRow.XenObject == null)
return;
summaryPanel.Title = lRow.XenObject.Name;
summaryPanel.HelperUrl = Messages.LICENSE_MANAGER_BUY_LICENSE_LINK_TEXT;
summaryPanel.HelperUrlVisible = true;
summaryPanel.HelperUrlVisible = lRow.HelperUrlRequired;
summaryPanel.WarningVisible = lRow.WarningRequired;
summaryPanel.WarningText = lRow.WarningText;
summaryPanel.SummaryText = summaryComponent;

View File

@ -35,14 +35,11 @@ namespace XenAdmin.Dialogs.Wlb
this.wlbMetricWeightingPage = new XenAdmin.SettingsPanels.WlbMetricWeightingPage();
this.wlbHostExclusionPage = new XenAdmin.SettingsPanels.WlbHostExclusionPage();
this.wlbAdvancedSettingsPage = new XenAdmin.SettingsPanels.WlbAdvancedSettingsPage();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.deprecationBanner = new XenAdmin.Controls.DeprecationBanner();
this.ContentPanel.SuspendLayout();
this.splitContainer.Panel1.SuspendLayout();
this.splitContainer.Panel2.SuspendLayout();
this.splitContainer.SuspendLayout();
this.blueBorder.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// ContentPanel
@ -166,35 +163,18 @@ namespace XenAdmin.Dialogs.Wlb
this.wlbAdvancedSettingsPage.MinimumSize = new System.Drawing.Size(560, 560);
this.wlbAdvancedSettingsPage.Name = "wlbAdvancedSettingsPage";
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.deprecationBanner, 1, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// deprecationBanner
//
resources.ApplyResources(this.deprecationBanner, "deprecationBanner");
this.deprecationBanner.BackColor = System.Drawing.Color.LightCoral;
this.deprecationBanner.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.deprecationBanner.Name = "deprecationBanner";
//
// WlbConfigurationDialog
//
resources.ApplyResources(this, "$this");
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "WlbConfigurationDialog";
this.Controls.SetChildIndex(this.cancelButton, 0);
this.Controls.SetChildIndex(this.okButton, 0);
this.Controls.SetChildIndex(this.tableLayoutPanel1, 0);
this.Controls.SetChildIndex(this.splitContainer, 0);
this.ContentPanel.ResumeLayout(false);
this.splitContainer.Panel1.ResumeLayout(false);
this.splitContainer.Panel2.ResumeLayout(false);
this.splitContainer.ResumeLayout(false);
this.blueBorder.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -209,7 +189,5 @@ namespace XenAdmin.Dialogs.Wlb
private XenAdmin.SettingsPanels.WlbMetricWeightingPage wlbMetricWeightingPage;
private XenAdmin.SettingsPanels.WlbHostExclusionPage wlbHostExclusionPage;
private XenAdmin.SettingsPanels.WlbAdvancedSettingsPage wlbAdvancedSettingsPage;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private XenAdmin.Controls.DeprecationBanner deprecationBanner;
}
}

View File

@ -54,19 +54,9 @@ namespace XenAdmin.Dialogs.Wlb
InitializeComponent();
Text = String.Format(Messages.WLB_CONFIGURATION_DIALOG, Helpers.GetName(_pool));
SetupDeprecationBanner();
Build();
}
private void SetupDeprecationBanner()
{
deprecationBanner.AppliesToVersion = Messages.XENSERVER_6_2;
deprecationBanner.FeatureName = Messages.WLB;
deprecationBanner.BannerType = DeprecationBanner.Type.Removal;
deprecationBanner.LinkUri = new Uri(InvisibleMessages.WLB_DEPRECATION_URL);
deprecationBanner.Visible = true;
}
private void Build()
{
_poolConfiguration = RetrieveWLBConfiguration();

View File

@ -433,7 +433,7 @@ namespace XenAdmin
if (action.Exception != null && !(action.Exception is CancelledException))
{
if (meddlingAction == null)
SetStatusBar(XenAdmin.Properties.Resources._000_error_h32bit_16, action.Exception.Message);
SetStatusBar(Properties.Resources._000_error_h32bit_16, action.Exception.Message);
IXenObject model =
(IXenObject)action.VM ??
@ -447,11 +447,13 @@ namespace XenAdmin
}
else if (meddlingAction == null)
{
SetStatusBar(null,
action.IsCompleted ? null :
!string.IsNullOrEmpty(action.Description) ? action.Description :
!string.IsNullOrEmpty(action.Title) ? action.Title :
null);
SetStatusBar(null, action.IsCompleted
? null
: !string.IsNullOrEmpty(action.Description)
? action.Description
: !string.IsNullOrEmpty(action.Title)
? action.Title
: null);
}
int errors = ConnectionsManager.History.Count(a => a.IsCompleted && !a.Succeeded);
@ -1320,9 +1322,10 @@ namespace XenAdmin
ShowTab(ha_upsell ? TabPageHAUpsell : TabPageHA, !multi && !SearchMode && isPoolSelected && has_ha_license_flag);
ShowTab(TabPageSnapshots, !multi && !SearchMode && george_or_greater && isRealVMSelected);
//Disable the WLB tab from Clearwater onwards
if(SelectionManager.Selection.All(s=>!Helpers.ClearwaterOrGreater(s.Connection)))
ShowTab(wlb_upsell ? TabPageWLBUpsell : TabPageWLB, !multi && !SearchMode && isPoolSelected && george_or_greater);
//Any Clearwater XenServer, or an unlicensed >=Creedence XenServer, the WLB tab and any WLB menu items disappear completely.
if(!(SelectionManager.Selection.All(s => Helpers.IsClearwater(s.Connection)) ||
(wlb_upsell && SelectionManager.Selection.All(s => Helpers.CreedenceOrGreater(s.Connection)))))
ShowTab(TabPageWLB, !multi && !SearchMode && isPoolSelected && george_or_greater);
ShowTab(TabPageAD, !multi && !SearchMode && (isPoolSelected || isHostSelected && isHostLive) && george_or_greater);

View File

@ -36,7 +36,6 @@ namespace XenAdmin.SettingsPanels
//
resources.ApplyResources(this.picker, "picker");
this.picker.Name = "picker";
this.picker.VisibleChanged += new System.EventHandler(this.picker_VisibleChanged);
//
// HomeServerEditPage
//

View File

@ -135,17 +135,5 @@ namespace XenAdmin.SettingsPanels
}
#endregion
private void picker_VisibleChanged(object sender, EventArgs e)
{
if (vm != null)
{
Host currentAffinity = vm.Connection.Resolve(vm.affinity);
picker.SetAffinity(vm.Connection, currentAffinity,
vm.HasNoDisksAndNoLocalCD
? null
: vm.GetStorageHost(false));
}
}
}
}

View File

@ -105,6 +105,9 @@ namespace XenAdmin.TabPages
private void Rebuild()
{
if (!Visible)
return;
log.Debug("Rebuilding alertList");
Thread t = new Thread(_Rebuild);
t.Name = "Building alert list";

View File

@ -144,6 +144,9 @@ namespace XenAdmin.TabPages
private void BuildRowList()
{
if (!Visible)
return;
try
{
dataGridView.SuspendLayout();

View File

@ -182,6 +182,9 @@ namespace XenAdmin.TabPages
{
Program.AssertOnEventThread();
if (!Visible)
return;
if (checksQueue > 0)
return;

View File

@ -95,20 +95,9 @@ namespace XenAdmin.TabPages
pdSectionConfiguration.fixFirstColumnWidth(200);
pictureBoxWarningTriangle.Image = SystemIcons.Warning.ToBitmap();
SetUpDeprecationBanner();
RefreshControls();
}
private void SetUpDeprecationBanner()
{
Banner.AppliesToVersion = Messages.XENSERVER_6_2;
Banner.BannerType = DeprecationBanner.Type.Removal;
Banner.FeatureName = Messages.WLB;
Banner.LinkUri = new Uri(InvisibleMessages.WLB_DEPRECATION_URL);
Banner.Visible = true;
}
#region ControlEvents
private void buttonConfigure_Click(object sender, EventArgs e)

View File

@ -112,187 +112,194 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="networkComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>104, 3</value>
</data>
<data name="&gt;&gt;networkComboBox.Name" xml:space="preserve">
<value>networkComboBox</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>558, 65</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 10, 0</value>
</data>
<data name="&gt;&gt;networkComboBox.Parent" xml:space="preserve">
<value>tableLayoutPanel2</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="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Absolute,20" /&gt;&lt;Rows Styles="Percent,27.71084,Percent,72.28915,Absolute,20,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 8</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="networkComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>432, 21</value>
</data>
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 10, 0</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 13</value>
<value>115, 17</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Select a storage network on the destination pool or standalone server that will be used for the live migration of the
VMs virtual disks.
For optimal performance and reliability during VM migration, ensure that the network used for the live storage migration
is not being used for management or virtual machine traffic. </value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>614, 332</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="networkComboBox.IntegralHeight" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;networkComboBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 0</value>
</data>
<data name="&gt;&gt;networkComboBox.Type" xml:space="preserve">
<value>XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Storage n&amp;etwork:</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>614, 332</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
<data name="&gt;&gt;label1.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="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
<data name="networkComboBox.IntegralHeight" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="networkComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>131, 3</value>
</data>
<data name="networkComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>432, 24</value>
</data>
<data name="networkComboBox.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="tableLayoutPanel2.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="networkComboBox" 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 name="&gt;&gt;networkComboBox.Name" xml:space="preserve">
<value>networkComboBox</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
<data name="&gt;&gt;networkComboBox.Type" xml:space="preserve">
<value>XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;networkComboBox.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;networkComboBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 108</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>608, 28</value>
<value>608, 33</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.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;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 7</value>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
<data name="tableLayoutPanel2.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="networkComboBox" 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="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 0</value>
</data>
<data name="label3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 20</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>762, 105</value>
</data>
<data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 95</value>
<data name="label3.Text" xml:space="preserve">
<value>Select a storage network on the destination pool or standalone server that will be used for the live migration of the VMs virtual disks.
For optimal performance and reliability during VM migration, ensure that the network used for the live storage migration is not being used for management or virtual machine traffic. </value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label3.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;label3.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>768, 415</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.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;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<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="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="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>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>120, 120</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>768, 415</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View File

@ -79,7 +79,7 @@ namespace XenAdmin.Wizards
{
InitializeComponent();
pageNetworkType = new NetWTypeSelect {Banner = Banner};
pageNetworkType = new NetWTypeSelect();
pageName = new NetWName();
pageNetworkDetails = new NetWDetails();
pageBondDetails = new NetWBondDetails();

View File

@ -61,8 +61,6 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
Update(Connection);
}
public DeprecationBanner Banner { set; private get; }
public NetworkTypes SelectedNetworkType
{
get
@ -120,18 +118,6 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
}
}
public void SetDeprecationBanner(bool visible)
{
if(Banner != null)
{
Banner.AppliesToVersion = Messages.XENSERVER_6_2;
Banner.BannerType = DeprecationBanner.Type.Deprecation;
Banner.FeatureName = Messages.DVSCS;
Banner.LinkUri = new Uri(InvisibleMessages.DVSC_DEPRECATION_URL);
Banner.Visible = visible;
}
}
private void RemoveFromToolTip(ToolTipContainer container, Panel panel)
{
// We have to remove the controls from the panel (rather than just
@ -155,18 +141,5 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
Controls.Remove(container);
}
public override void PageLoaded(PageLoadedDirection direction)
{
Pool pool = Helpers.GetPoolOfOne(Connection);
SetDeprecationBanner(pool.vSwitchController);
base.PageLoaded(direction);
}
public override void PageLeave(PageLoadedDirection direction, ref bool cancel)
{
SetDeprecationBanner(false);
base.PageLeave(direction, ref cancel);
}
}
}

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 236</value>
<value>20, 200</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>170, 19</value>
@ -257,7 +257,7 @@
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 258</value>
<value>38, 222</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>334, 31</value>
@ -294,7 +294,7 @@
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@
<data name="labelCHIN.Text" xml:space="preserve">
<value>XenServer プールの外部に接続しないネットワークを作成します。
これにより、同一プール内の VM どうしを接続できます。
vSwitch コントローラが実行されている必要があります。
この機能は XenServer 6.2 で廃止され、
今後のバージョンで削除される予定です。</value>
vSwitch コントローラが実行されている必要があります。</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@ vSwitch コントローラが実行されている必要があります。
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 96</value>
<value>380, 76</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@ vSwitch コントローラが実行されている必要があります。
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 72</value>
<value>380, 52</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@ vSwitch コントローラが実行されている必要があります。
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 309</value>
<value>416, 281</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>種類の選択</value>

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 233</value>
<value>20, 208</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>117, 17</value>
@ -257,7 +257,7 @@ This can be used as a private connection between VMs on the same host.</value>
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 253</value>
<value>38, 228</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 26</value>
@ -294,7 +294,7 @@ This will create a single higher performing channel.</value>
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@ This will create a single higher performing channel.</value>
<data name="labelCHIN.Text" xml:space="preserve">
<value>Create a network that does not leave the XenServer pool.
This can be used as a private connection between VMs in the pool.
This type of network requires the vSwitch Controller to be running.
This feature is deprecated in XenServer 6.2 and may be removed
in future versions.</value>
This type of network requires the vSwitch Controller to be running.</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@ in future versions.</value>
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 92</value>
<value>380, 72</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@ in future versions.</value>
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 92</value>
<value>380, 72</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@ in future versions.</value>
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 297</value>
<value>416, 269</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Select Type</value>

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 250</value>
<value>20, 204</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>117, 17</value>
@ -257,7 +257,7 @@
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 274</value>
<value>38, 228</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 26</value>
@ -294,7 +294,7 @@
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@
<data name="labelCHIN.Text" xml:space="preserve">
<value>创建不离开 XenServer 池的网络。
此网络可用作池中两个 VM 之间的专用连接。
此类网络需要运行 vSwitch Controller。
此功能在 XenServer 6.2 中已弃用,在将来
的版本中可能会删除。</value>
此类网络需要运行 vSwitch Controller。</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 110</value>
<value>380, 90</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 110</value>
<value>380, 90</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 309</value>
<value>416, 281</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>选择类型</value>

View File

@ -376,7 +376,7 @@ namespace XenAdmin.Wizards.PatchingWizard
}
bool result = _worker != null && !_worker.IsBusy && !problemsFound;
panelErrorsFound.Visible = !result;
panelErrorsFound.Visible = problemsFound;
return result;
}

View File

@ -137,6 +137,7 @@ namespace XenAdmin.Wizards.PatchingWizard
if(!host.CanApplyHotfixes)
{
row.Enabled = false;
row.Cells[3].ToolTipText = Messages.PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED;
return;
}
@ -154,7 +155,10 @@ namespace XenAdmin.Wizards.PatchingWizard
if (host.isOEM)
row.Enabled = false;
if (Patch.IsAppliedTo(host,ConnectionsManager.XenConnectionsCopy))
{
row.Enabled = false;
row.Cells[3].ToolTipText = Messages.PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED;
}
break;
}
}
@ -691,9 +695,12 @@ namespace XenAdmin.Wizards.PatchingWizard
else
_poolIconHostCheckCell = new DataGridViewCheckBoxCell();
_nameCell = new DataGridViewNameCell();
_versionCell = new DataGridViewTextBoxCell();
Cells.AddRange(new[] { _expansionCell, _poolCheckBoxCell, _poolIconHostCheckCell, _nameCell, _versionCell });
this.UpdateDetails();

View File

@ -160,10 +160,6 @@ namespace XenAdmin.Wizards.RollingUpgradeWizard
if(host == null)
continue;
//WLB warning
if (!Helpers.ClearwaterOrGreater(host.Connection))
checkGroup.Add(new HostHasWlbCheck(host));
checkGroup.Add(new HAOffCheck(host));
}

View File

@ -40,8 +40,6 @@
this.subscriptionView1 = new XenAdmin.Controls.Wlb.WlbReportSubscriptionView();
this.contextMenuReports = new System.Windows.Forms.ContextMenuStrip(this.components);
this.runReportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.deprecationBanner = new XenAdmin.Controls.DeprecationBanner();
this.splitContainerLeftPane.Panel1.SuspendLayout();
this.splitContainerLeftPane.Panel2.SuspendLayout();
this.splitContainerLeftPane.SuspendLayout();
@ -49,7 +47,6 @@
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.contextMenuReports.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// splitContainerLeftPane
@ -149,25 +146,11 @@
this.runReportToolStripMenuItem.Name = "runReportToolStripMenuItem";
resources.ApplyResources(this.runReportToolStripMenuItem, "runReportToolStripMenuItem");
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.deprecationBanner, 1, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// deprecationBanner
//
resources.ApplyResources(this.deprecationBanner, "deprecationBanner");
this.deprecationBanner.BackColor = System.Drawing.Color.LightCoral;
this.deprecationBanner.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.deprecationBanner.Name = "deprecationBanner";
//
// WorkloadReports
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.tableLayoutPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
this.HelpButton = true;
this.Icon = global::XenAdmin.Properties.Resources.AppIcon;
@ -184,8 +167,6 @@
this.splitContainer1.Panel2.PerformLayout();
this.splitContainer1.ResumeLayout(false);
this.contextMenuReports.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -203,7 +184,5 @@
private XenAdmin.Controls.Wlb.WlbReportSubscriptionView subscriptionView1;
private System.Windows.Forms.ContextMenuStrip contextMenuReports;
private System.Windows.Forms.ToolStripMenuItem runReportToolStripMenuItem;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private XenAdmin.Controls.DeprecationBanner deprecationBanner;
}
}

View File

@ -69,6 +69,7 @@ namespace XenAdmin
private List<string> _midnightRideReports = new List<string>(new []
{
Messages.WLBREPORT_POOL_AUDIT_HISTORY,
Messages.WLBREPORT_POOL_OPTIMIZATION_HISTORY
});
@ -115,7 +116,6 @@ namespace XenAdmin
InitializeComponent();
_reportFile = reportFile;
_runReport = run;
SetupDeprecationBanner();
}
#endregion
@ -127,15 +127,6 @@ namespace XenAdmin
#region Private Methods
private void SetupDeprecationBanner()
{
deprecationBanner.FeatureName = Messages.WLB;
deprecationBanner.AppliesToVersion = Messages.XENSERVER_6_2;
deprecationBanner.BannerType = DeprecationBanner.Type.Removal;
deprecationBanner.LinkUri = new Uri(InvisibleMessages.WLB_DEPRECATION_URL);
deprecationBanner.Visible = true;
}
/// <summary>
/// Populates the treeview with ReportInfo and SubscriptionInfo nodes
/// </summary>

View File

@ -2312,7 +2312,6 @@
<Compile Include="OrganizationalView.cs" />
<Compile Include="Controls\SrPickerItem.cs" />
<Compile Include="Controls\SummaryPanel\ISummaryPanelView.cs" />
<Compile Include="Diagnostics\Checks\HostHasWlbCheck.cs" />
<Compile Include="Diagnostics\Checks\HostMaintenanceModeCheck.cs" />
<Compile Include="Diagnostics\Checks\UpgradingFromTampaAndOlderCheck.cs" />
<Compile Include="Diagnostics\Checks\HostHasWssCheck.cs" />
@ -2321,7 +2320,6 @@
<Compile Include="Diagnostics\Problems\ConnectionProblem\VmprActivatedWarning.cs" />
<Compile Include="Diagnostics\Problems\HostProblem\HostHasWssWarning.cs" />
<Compile Include="Diagnostics\Problems\PoolProblem\MissingMultipleFCSRsProblem.cs" />
<Compile Include="Diagnostics\Problems\PoolProblem\PoolHasWlbRemovalProblem.cs" />
<Compile Include="Diagnostics\Problems\WarningWithInformationUrl.cs" />
<Compile Include="Dialogs\ConnectionRefusedDialog.cs">
<SubType>Form</SubType>

View File

@ -146,6 +146,11 @@ namespace XenAdminTests
return GetFieldDeep<NavigationView>(o, name);
}
public static NotificationsView GetNotificationsView(object o, string name)
{
return GetFieldDeep<NotificationsView>(o, name);
}
public static DataGridViewEx GetDataGridViewEx(object o, string name)
{
return GetFieldDeep<DataGridViewEx>(o, name);

View File

@ -36,6 +36,7 @@ using System.Windows.Forms;
using NUnit.Framework;
using XenAdmin;
using XenAdmin.Controls.MainWindowControls;
using XenAdmin.Core;
using XenAdmin.TabPages;
using XenAdmin.Controls;
@ -168,6 +169,13 @@ namespace XenAdminTests.TabsAndMenus
var rows = GetVisibleRows();
Assert.AreEqual(1, rows.Count, "No connection item found.");
Assert.IsFalse(showAllButton.Enabled);
MW(() =>
{
TestUtils.GetToolStripItem(MainWindowWrapper.Item,
"navigationPane.buttonNotifySmall").PerformClick();
TestUtils.GetNotificationsView(MainWindowWrapper.Item,
"navigationPane.notificationsView").SelectNotificationsSubMode(NotificationsSubMode.Events);
});
// this should clear all items as they are all completed.
MW(() => TestUtils.GetToolStripMenuItem(MainWindowWrapper.Item,

View File

@ -56,7 +56,7 @@ namespace XenAdminTests.UnitTests.AlertTests
XenServerPatchAlert alert = new XenServerPatchAlert(p);
alert.IncludeConnection(connA.Object);
alert.IncludeConnection(connB.Object);
alert.IncludeHosts(new List<Host>() { hostA.Object, hostB.Object });
alert.IncludeHosts(new List<Host> { hostA.Object, hostB.Object });
IUnitTestVerifier validator = new VerifyGetters(alert);
@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests
hostA = new Mock<Host>(MockBehavior.Strict);
hostA.Setup(n => n.Name).Returns("HostAName");
hostA.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostA.Object));
hostB = new Mock<Host>(MockBehavior.Strict);
hostB.Setup(n => n.Name).Returns("HostBName");
hostB.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostB.Object));
}
[TearDown]

View File

@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests
hostA = new Mock<Host>(MockBehavior.Strict);
hostA.Setup(n => n.Name).Returns("HostAName");
hostA.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostA.Object));
hostB = new Mock<Host>(MockBehavior.Strict);
hostB.Setup(n => n.Name).Returns("HostBName");
hostB.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostB.Object));
}
[TearDown]

View File

@ -99,7 +99,9 @@ namespace XenAdmin.Actions
{
_pool = value;
SetAppliesTo(Pool);
if(Pool!=null&&Pool.Connection!=null&&Helpers.GetPool(Pool.Connection)==null&& Pool.Connection.Cache.Hosts.Length == 1)
if (Pool != null && Pool.Connection != null &&
Helpers.GetPool(Pool.Connection) == null &&
Pool.Connection.Cache.Hosts.Length == 1)
{
SetAppliesTo(Pool.Connection.Cache.Hosts[0]);
}
@ -291,7 +293,16 @@ namespace XenAdmin.Actions
public string Description
{
get { return _description; }
set { if (_description != value) { _description = value; if (LogDescriptionChanges) log.Debug(_description); OnChanged(); } }
set
{
if (_description != value)
{
_description = value;
if (LogDescriptionChanges)
log.Debug(_description);
OnChanged();
}
}
}
public bool IsCompleted

View File

@ -129,13 +129,10 @@ namespace XenAdmin.Actions
catch (Failure f)
{
// Need to check if the patch already exists.
// If it does, and we're upload multiple patches
// (ie from the wizard) then we don't care about
// throwing the error
// If it does then we use it and ignore the PATCH_ALREADY_EXISTS error (CA-110209).
if (f.ErrorDescription != null
&& f.ErrorDescription.Count > 1
&& f.ErrorDescription[0] == XenAPI.Failure.PATCH_ALREADY_EXISTS
&& embeddedHosts.Count + retailHosts.Count > 1)
&& f.ErrorDescription[0] == XenAPI.Failure.PATCH_ALREADY_EXISTS)
{
string uuid = f.ErrorDescription[1];
Session session = host.Connection.DuplicateSession();

View File

@ -105,15 +105,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to http://support.citrix.com/article/CTX137336.
/// </summary>
public static string DVSC_DEPRECATION_URL {
get {
return ResourceManager.GetString("DVSC_DEPRECATION_URL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to http://www.citrix.com/xenserver.
/// </summary>
@ -384,15 +375,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to http://support.citrix.com/article/CTX137333.
/// </summary>
public static string WLB_DEPRECATION_URL {
get {
return ResourceManager.GetString("WLB_DEPRECATION_URL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to http://support.citrix.com/article/CTX137334.
/// </summary>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>
@ -225,9 +222,6 @@
<data name="VMPR_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137335</value>
</data>
<data name="WLB_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137333</value>
</data>
<data name="WSS_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137334</value>
</data>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>
@ -225,9 +222,6 @@
<data name="VMPR_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137335</value>
</data>
<data name="WLB_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137333</value>
</data>
<data name="WSS_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137334</value>
</data>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>
@ -225,9 +222,6 @@
<data name="VMPR_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137335</value>
</data>
<data name="WLB_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137333</value>
</data>
<data name="WSS_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137334</value>
</data>

View File

@ -5988,7 +5988,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to Pool &apos;{0}&apos; must be removed from WLB.
/// Looks up a localized string similar to Pool &apos;{0}&apos; cannot have WLB enabled.
/// </summary>
public static string CHECK_WLB_ENABLED {
get {
@ -6086,15 +6086,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Checking the presence of WLB.
/// </summary>
public static string CHECKING_WLB_STATUS {
get {
return ResourceManager.GetString("CHECKING_WLB_STATUS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checking the possible presence of WSS appliances.
/// </summary>
@ -8733,15 +8724,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Deconfigure WLB.
/// </summary>
public static string DECONFIGURE_WLB {
get {
return ResourceManager.GetString("DECONFIGURE_WLB", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Disconnecting Workload Balancing..
/// </summary>
@ -15161,7 +15143,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to Remove.
/// Looks up a localized string similar to Pause WLB.
/// </summary>
public static string HELP_MESSAGE_DISABLE_WLB {
get {
@ -24026,6 +24008,24 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Subscription Advantage required.
/// </summary>
public static string PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED {
get {
return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Update already applied.
/// </summary>
public static string PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED {
get {
return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select Servers.
/// </summary>
@ -26589,15 +26589,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to &apos;{0}&apos;: WLB has been removed in XenServer 6.2.
/// </summary>
public static string RPU_WIZARD_WLB_REMOVAL {
get {
return ResourceManager.GetString("RPU_WIZARD_WLB_REMOVAL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to &apos;{0}&apos;: The use of WSS servers has been removed in XenServer 6.2.
/// </summary>

View File

@ -2159,14 +2159,11 @@ CPU 使用率が {3} を超えるとアラートが送信されます。</value>
<data name="CHECKING_VMPR_STATUS" xml:space="preserve">
<value>VM 保護ポリシーの存在を確認しています</value>
</data>
<data name="CHECKING_WLB_STATUS" xml:space="preserve">
<value>WLB の存在を確認しています</value>
</data>
<data name="CHECKING_WSS_STATUS" xml:space="preserve">
<value>WSS アプライアンスの存在を確認しています</value>
</data>
<data name="CHECK_WLB_ENABLED" xml:space="preserve">
<value>プール '{0}' を WLB から除外する必要があります</value>
<value>プール '{0}' 中の WLB 機能をアクティブにすることができません</value>
</data>
<data name="CHIN" xml:space="preserve">
<value>サーバー間のプライベート ネットワーク</value>
@ -3071,9 +3068,6 @@ VM {2} をエクスポートしてもよろしいですか?</value>
<data name="DEBIAN_SARGE_31" xml:space="preserve">
<value>Debian Sarge 3.1</value>
</data>
<data name="DECONFIGURE_WLB" xml:space="preserve">
<value>WLB の設定解除</value>
</data>
<data name="DECONFIGURING_WLB" xml:space="preserve">
<value>ワークロード バランスを切断しています。</value>
</data>
@ -5247,7 +5241,7 @@ VM の再起動優先度をクリアしてもよろしいですか?</value>
<value>ヘルプ</value>
</data>
<data name="HELP_MESSAGE_DISABLE_WLB" xml:space="preserve">
<value>削除</value>
<value>サスペンド</value>
</data>
<data name="HIDE_DETAILS" xml:space="preserve">
<value>詳細を非表示</value>
@ -9040,9 +9034,6 @@ StorageLink Gateway を使用する VM の XenServer 6.0 へのアップグレ
<data name="RPU_WIZARD_VMPR_VMPP_DEPRECATION" xml:space="preserve">
<value>'{0}': VM 保護ポリシーは、XenServer 6.2 から削除されています</value>
</data>
<data name="RPU_WIZARD_WLB_REMOVAL" xml:space="preserve">
<value>'{0}': WLB は、XenServer 6.2 から削除されています</value>
</data>
<data name="RPU_WIZARD_WSS_DEPRECATED" xml:space="preserve">
<value>'{0}': WSS サーバーのサポートは、XenServer 6.2 から削除されています</value>
</data>

View File

@ -2210,14 +2210,11 @@ Do you want to assign it to the policy '{2}' instead?</value>
<data name="CHECKING_VMPR_STATUS" xml:space="preserve">
<value>Checking the presence of VM Protection Policies</value>
</data>
<data name="CHECKING_WLB_STATUS" xml:space="preserve">
<value>Checking the presence of WLB</value>
</data>
<data name="CHECKING_WSS_STATUS" xml:space="preserve">
<value>Checking the possible presence of WSS appliances</value>
</data>
<data name="CHECK_WLB_ENABLED" xml:space="preserve">
<value>Pool '{0}' must be removed from WLB</value>
<value>Pool '{0}' cannot have WLB enabled</value>
</data>
<data name="CHIN" xml:space="preserve">
<value>Cross-server private network</value>
@ -3134,9 +3131,6 @@ Please reconnect the host and try again.</value>
<data name="DEBIAN_SARGE_31" xml:space="preserve">
<value>Debian Sarge 3.1</value>
</data>
<data name="DECONFIGURE_WLB" xml:space="preserve">
<value>Deconfigure WLB</value>
</data>
<data name="DECONFIGURING_WLB" xml:space="preserve">
<value>Disconnecting Workload Balancing.</value>
</data>
@ -5326,7 +5320,7 @@ Click Configure HA to alter the settings displayed below.</value>
<value>Help</value>
</data>
<data name="HELP_MESSAGE_DISABLE_WLB" xml:space="preserve">
<value>Remove</value>
<value>Pause WLB</value>
</data>
<data name="HIDE_DETAILS" xml:space="preserve">
<value>Hide Details</value>
@ -8316,6 +8310,12 @@ It is strongly recommended that you Cancel and apply the latest version of the p
<data name="PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT" xml:space="preserve">
<value>XenServer Updates|*.xsupdate;*.xsoem</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED" xml:space="preserve">
<value>Subscription Advantage required</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED" xml:space="preserve">
<value>Update already applied</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_TEXT" xml:space="preserve">
<value>Select Servers</value>
</data>
@ -9253,9 +9253,6 @@ Upgrading VMs using StorageLink Gateway to XenServer 6.0 is only supported if th
<data name="RPU_WIZARD_VMPR_VMPP_DEPRECATION" xml:space="preserve">
<value>'{0}': VM Protection Policies have been removed in XenServer 6.2</value>
</data>
<data name="RPU_WIZARD_WLB_REMOVAL" xml:space="preserve">
<value>'{0}': WLB has been removed in XenServer 6.2</value>
</data>
<data name="RPU_WIZARD_WSS_DEPRECATED" xml:space="preserve">
<value>'{0}': The use of WSS servers has been removed in XenServer 6.2</value>
</data>

View File

@ -2159,14 +2159,11 @@ XenServer 可以重新启动服务器并将服务器的 CPU 级别降至池中
<data name="CHECKING_VMPR_STATUS" xml:space="preserve">
<value>正在检查是否存在 VM 保护策略</value>
</data>
<data name="CHECKING_WLB_STATUS" xml:space="preserve">
<value>正在检查是否存在 WLB</value>
</data>
<data name="CHECKING_WSS_STATUS" xml:space="preserve">
<value>正在检查是否可能存在 WSS 设备</value>
</data>
<data name="CHECK_WLB_ENABLED" xml:space="preserve">
<value>必须从 WLB 中删除池“{0}”</value>
<value>池“{0}”中的WLB功能不能被激活</value>
</data>
<data name="CHIN" xml:space="preserve">
<value>跨服务器专用网络</value>
@ -3071,9 +3068,6 @@ XenServer 可以重新启动服务器并将服务器的 CPU 级别降至池中
<data name="DEBIAN_SARGE_31" xml:space="preserve">
<value>Debian Sarge 3.1</value>
</data>
<data name="DECONFIGURE_WLB" xml:space="preserve">
<value>取消配置 WLB</value>
</data>
<data name="DECONFIGURING_WLB" xml:space="preserve">
<value>断开 Workload Balancing 的连接。</value>
</data>
@ -5245,7 +5239,7 @@ XenServer 可以重新启动服务器并将服务器的 CPU 级别降至池中
<value>帮助</value>
</data>
<data name="HELP_MESSAGE_DISABLE_WLB" xml:space="preserve">
<value>删除</value>
<value>暂停</value>
</data>
<data name="HIDE_DETAILS" xml:space="preserve">
<value>隐藏详细信息</value>
@ -9042,9 +9036,6 @@ XenServer 可以重新启动服务器并将其 CPU 降至主服务器的级别
<data name="RPU_WIZARD_VMPR_VMPP_DEPRECATION" xml:space="preserve">
<value>{0}: 已在 XenServer 6.2 中删除 VM 保护策略</value>
</data>
<data name="RPU_WIZARD_WLB_REMOVAL" xml:space="preserve">
<value>{0}: 已在 XenServer 6.2 中删除 WLB</value>
</data>
<data name="RPU_WIZARD_WSS_DEPRECATED" xml:space="preserve">
<value>{0}: 已在 XenServer 6.2 中删除对 WSS 服务器的使用</value>
</data>

View File

@ -127,6 +127,8 @@ namespace XenAdmin.Network
GetServerTime();
// Now that we've successfully received a heartbeat, reset our 'second chance' for the server to timeout
if (retrying)
log.DebugFormat("Heartbeat for {0} has come back", session == null ? "null" : session.Url);
retrying = false;
}
catch (TargetInvocationException exn)

View File

@ -31,7 +31,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Net;
using System.Reflection;
@ -39,7 +38,6 @@ using System.Threading;
using CookComputing.XmlRpc;
using XenAdmin.Actions;
using XenAdmin.Core;
using XenAdmin.ServerDBs;
using XenAPI;
using System.Diagnostics;
@ -996,10 +994,9 @@ namespace XenAdmin.Network
}
log.InfoFormat("Connected to {0} ({1}:{2})", FriendlyName, taskHostname, task_port);
string name =
string.IsNullOrEmpty(FriendlyName) || FriendlyName == taskHostname ?
taskHostname :
string.Format("{0} ({1})", FriendlyName, taskHostname);
string name = string.IsNullOrEmpty(FriendlyName) || FriendlyName == taskHostname
? taskHostname
: string.Format("{0} ({1})", FriendlyName, taskHostname);
string title = string.Format(Messages.CONNECTING_NOTICE_TITLE, name);
string msg = string.Format(Messages.CONNECTING_NOTICE_TEXT, name);
log.Info(msg);
@ -1481,11 +1478,10 @@ namespace XenAdmin.Network
ExpressRestriction e = (ExpressRestriction)error;
string msg = string.Format(Messages.CONNECTION_RESTRICTED_MESSAGE, e.HostName, e.ExistingHostName);
log.Info(msg);
// Add an informational log message saying why the connection attempt failed
ActionBase action = new ActionBase(
string.Format(Messages.CONNECTION_RESTRICTED_NOTICE_TITLE, e.HostName),
msg, false, true, Messages.CONNECTION_RESTRICTED_NOTICE_TITLE);
log.Info(msg);
string title = string.Format(Messages.CONNECTION_RESTRICTED_NOTICE_TITLE, e.HostName);
ActionBase action = new ActionBase(title, msg, false, true, msg);
SetPoolAndHostInAction(action, pool, PoolOpaqueRef);
OnConnectionResult(false, Messages.CONNECTION_RESTRICTED_MESSAGE, error);
@ -1511,14 +1507,25 @@ namespace XenAdmin.Network
{
// We never connected
string reason = GetReason(error);
log.WarnFormat("IXenConnection: failed to connect to {0}: {1}", this.HostnameWithPort, reason);
// Create a new log message to say the connection attempt failed
string title = string.Format(Messages.CONNECTION_FAILED_TITLE, HostnameWithPort);
ActionBase n = new ActionBase(title, reason, false, true, title);
SetPoolAndHostInAction(n, pool, PoolOpaqueRef);
log.WarnFormat("IXenConnection: failed to connect to {0}: {1}", HostnameWithPort, reason);
Failure f = error as Failure;
if (f != null && f.ErrorDescription[0] == Failure.HOST_IS_SLAVE)
{
//do not log an event in this case
}
else if (error is ConnectionExists)
{
//do not log an event in this case
}
else
{
// Create a new log message to say the connection attempt failed
string title = string.Format(Messages.CONNECTION_FAILED_TITLE, HostnameWithPort);
ActionBase n = new ActionBase(title, reason, false, true, reason);
SetPoolAndHostInAction(n, pool, PoolOpaqueRef);
}
// We only want to continue the master search in certain circumstances
if (FindingNewMaster && (error is WebException || (f != null && f.ErrorDescription[0] != Failure.RBAC_PERMISSION_DENIED)))
{
@ -1662,7 +1669,7 @@ namespace XenAdmin.Network
string title = string.Format(Messages.CONNECTION_LOST_NOTICE_TITLE,
LastConnectionFullName);
ActionBase n = new ActionBase(title, description, false, true, title);
ActionBase n = new ActionBase(title, description, false, true, description);
SetPoolAndHostInAction(n, pool, poolopaqueref);
OnConnectionLost();
}
@ -1814,10 +1821,9 @@ namespace XenAdmin.Network
private void ReconnectMaster()
{
// Add an informational entry to the log
ActionBase action = new ActionBase(
string.Format(Messages.CONNECTION_FINDING_MASTER_TITLE, LastConnectionFullName),
string.Format(Messages.CONNECTION_FINDING_MASTER_DESCRIPTION, LastConnectionFullName, Hostname),
false, true);
string title = string.Format(Messages.CONNECTION_FINDING_MASTER_TITLE, LastConnectionFullName);
string descr = string.Format(Messages.CONNECTION_FINDING_MASTER_DESCRIPTION, LastConnectionFullName, Hostname);
ActionBase action = new ActionBase(title, descr, false, true);
SetPoolAndHostInAction(action, null, PoolOpaqueRef);
log.DebugFormat("Looking for master for {0} on {1}...", LastConnectionFullName, Hostname);

View File

@ -419,6 +419,36 @@ namespace XenAdmin.Core
Helpers.HostBuildNumber(host) == CUSTOM_BUILD_NUMBER;
}
/// <param name="conn">May be null, in which case true is returned.</param>
public static bool CreedenceOrGreater(IXenConnection conn)
{
return conn == null ? true : CreedenceOrGreater(Helpers.GetMaster(conn));
}
/// Creedence is ver. 1.9.0
/// <param name="host">May be null, in which case true is returned.</param>
public static bool CreedenceOrGreater(Host host)
{
if (host == null)
return true;
string platform_version = HostPlatformVersion(host);
return
platform_version != null && productVersionCompare(platform_version, "1.8.900") >= 0 ||
HostBuildNumber(host) == CUSTOM_BUILD_NUMBER;
}
/// Clearwater is ver. 1.7.0
/// <param name="conn">May be null, in which case true is returned.</param>
public static bool IsClearwater(IXenConnection conn)
{
if(conn == null) return true;
else {
Host host = Helpers.GetMaster(conn);
return (ClearwaterOrGreater(host) && !CreedenceOrGreater(host));
}
}
/// <param name="conn">May be null, in which case true is returned.</param>
public static bool ClearwaterOrGreater(IXenConnection conn)
{
@ -452,7 +482,7 @@ namespace XenAdmin.Core
string platform_version = HostPlatformVersion(host);
return
platform_version != null && productVersionCompare(platform_version, "1.8.50") >= 0 ||
platform_version != null && productVersionCompare(platform_version, "1.9.50") >= 0 ||
HostBuildNumber(host) == CUSTOM_BUILD_NUMBER;
}
@ -469,7 +499,8 @@ namespace XenAdmin.Core
/// <returns>true when wlb is enabled, otherwise false</returns>
public static bool WlbEnabled(IXenConnection connection)
{
if (ClearwaterOrGreater(connection))
//Clearwater doesn't has WLB
if (IsClearwater(connection))
return false;
Pool pool = GetPoolOfOne(connection);
@ -486,7 +517,8 @@ namespace XenAdmin.Core
public static bool WlbConfigured(IXenConnection conn)
{
if (ClearwaterOrGreater(conn))
//Clearwater doesn't has WLB
if (IsClearwater(conn))
return false;
Pool p = GetPoolOfOne(conn);