From afbfbaf8032dc475cad56b51e900383d8e40d3cf Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Tue, 15 Apr 2014 17:07:21 +0100 Subject: [PATCH 01/20] [CA-115256] Don't show the Buy Licenses link for pre-Clearwater servers --- XenAdmin/Dialogs/LicenseManager/LicenseManager.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs index 651125641..fb049daa6 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs @@ -37,6 +37,7 @@ using System.Windows.Forms; using XenAdmin.Controls; using XenAdmin.Controls.CheckableDataGridView; using XenAdmin.Controls.SummaryPanel; +using XenAdmin.Core; using XenAdmin.Properties; using XenAPI; @@ -205,7 +206,7 @@ namespace XenAdmin.Dialogs summaryPanel.Title = lRow.XenObject.Name; summaryPanel.HelperUrl = Messages.LICENSE_MANAGER_BUY_LICENSE_LINK_TEXT; - summaryPanel.HelperUrlVisible = true; + summaryPanel.HelperUrlVisible = Helpers.ClearwaterOrGreater(lRow.XenObject.Connection); // CA-115256 summaryPanel.WarningVisible = lRow.WarningRequired; summaryPanel.WarningText = lRow.WarningText; summaryPanel.SummaryText = summaryComponent; From 5d722be866d3873ca758c3e4c88dc16d2aad293a Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Tue, 15 Apr 2014 17:46:56 +0100 Subject: [PATCH 02/20] Improvement to check-in for [CA-115256]: move logic out of the display into the LicenseRow --- XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs | 5 +++++ XenAdmin/Dialogs/LicenseManager/LicenseManager.cs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs b/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs index 26851ddc3..73c7a2066 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs @@ -221,6 +221,11 @@ namespace XenAdmin.Dialogs } } + public bool HelperUrlRequired + { + get { return Helpers.ClearwaterOrGreater(XenObject.Connection); } // CA-115256 + } + public Status RowStatus { get diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs index fb049daa6..a5ef5bd63 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs @@ -206,7 +206,7 @@ namespace XenAdmin.Dialogs summaryPanel.Title = lRow.XenObject.Name; summaryPanel.HelperUrl = Messages.LICENSE_MANAGER_BUY_LICENSE_LINK_TEXT; - summaryPanel.HelperUrlVisible = Helpers.ClearwaterOrGreater(lRow.XenObject.Connection); // CA-115256 + summaryPanel.HelperUrlVisible = lRow.HelperUrlRequired; summaryPanel.WarningVisible = lRow.WarningRequired; summaryPanel.WarningText = lRow.WarningText; summaryPanel.SummaryText = summaryComponent; From 75464110de2a02bd8ca2dd9b7404083b7d7c5e87 Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Tue, 15 Apr 2014 17:49:03 +0100 Subject: [PATCH 03/20] Improvement to check-in for [CA-115256]: remove unused dependency --- XenAdmin/Dialogs/LicenseManager/LicenseManager.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs index a5ef5bd63..3a51cad4b 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs @@ -37,7 +37,6 @@ using System.Windows.Forms; using XenAdmin.Controls; using XenAdmin.Controls.CheckableDataGridView; using XenAdmin.Controls.SummaryPanel; -using XenAdmin.Core; using XenAdmin.Properties; using XenAPI; From 75bb8fa8f0f2304f01af97630bbfdec6cc8dc476 Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Wed, 16 Apr 2014 09:13:20 +0100 Subject: [PATCH 04/20] [CA-115256] Add null check as suggested by code review --- XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs | 2 +- XenAdmin/Dialogs/LicenseManager/LicenseManager.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs b/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs index 73c7a2066..8f6104a3f 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseDataGridViewRow.cs @@ -223,7 +223,7 @@ namespace XenAdmin.Dialogs public bool HelperUrlRequired { - get { return Helpers.ClearwaterOrGreater(XenObject.Connection); } // CA-115256 + get { return XenObject == null ? false : Helpers.ClearwaterOrGreater(XenObject.Connection); } // CA-115256 } public Status RowStatus diff --git a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs index 3a51cad4b..7f76c476a 100644 --- a/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs +++ b/XenAdmin/Dialogs/LicenseManager/LicenseManager.cs @@ -200,7 +200,7 @@ 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; From 31ba19336b5619490f589275926a18e23d010125 Mon Sep 17 00:00:00 2001 From: Cheng Zhang Date: Thu, 17 Apr 2014 10:49:30 +0800 Subject: [PATCH 05/20] CP-7579: Remove the DVSC deprecated warning messages on XenCenter for XS6.5 Signed-off-by: Cheng Zhang --- .../NewNetworkWizard_Pages/NetWTypeSelect.cs | 2 +- .../NetWTypeSelect.ja.resx | 16 +++++++--------- .../NewNetworkWizard_Pages/NetWTypeSelect.resx | 16 +++++++--------- .../NetWTypeSelect.zh-CN.resx | 16 +++++++--------- 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs index fccbfd74d..aed5b4cae 100644 --- a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs +++ b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs @@ -159,7 +159,7 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages public override void PageLoaded(PageLoadedDirection direction) { Pool pool = Helpers.GetPoolOfOne(Connection); - SetDeprecationBanner(pool.vSwitchController); + SetDeprecationBanner(false); base.PageLoaded(direction); } diff --git a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.ja.resx b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.ja.resx index 6975dd0ac..f87eda08d 100644 --- a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.ja.resx +++ b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.ja.resx @@ -196,7 +196,7 @@ NoControl - 20, 236 + 20, 200 170, 19 @@ -257,7 +257,7 @@ NoControl - 38, 258 + 38, 222 334, 31 @@ -294,7 +294,7 @@ 19, 20 - 331, 65 + 331, 39 6 @@ -302,9 +302,7 @@ XenServer プールの外部に接続しないネットワークを作成します。 これにより、同一プール内の VM どうしを接続できます。 -vSwitch コントローラが実行されている必要があります。 -この機能は XenServer 6.2 で廃止され、 -今後のバージョンで削除される予定です。 +vSwitch コントローラが実行されている必要があります。 labelCHIN @@ -370,7 +368,7 @@ vSwitch コントローラが実行されている必要があります。 19, 134 - 380, 96 + 380, 76 5 @@ -406,7 +404,7 @@ vSwitch コントローラが実行されている必要があります。 0, 0 - 380, 72 + 380, 52 9 @@ -574,7 +572,7 @@ vSwitch コントローラが実行されている必要があります。 0, 32, 0, 0 - 416, 309 + 416, 281 種類の選択 diff --git a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.resx b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.resx index 9fe0d995f..20c4b2fe1 100644 --- a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.resx +++ b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.resx @@ -196,7 +196,7 @@ NoControl - 20, 233 + 20, 208 117, 17 @@ -257,7 +257,7 @@ This can be used as a private connection between VMs on the same host. NoControl - 38, 253 + 38, 228 320, 26 @@ -294,7 +294,7 @@ This will create a single higher performing channel. 19, 20 - 331, 65 + 331, 39 6 @@ -302,9 +302,7 @@ This will create a single higher performing channel. 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. +This type of network requires the vSwitch Controller to be running. labelCHIN @@ -370,7 +368,7 @@ in future versions. 19, 134 - 380, 92 + 380, 72 5 @@ -406,7 +404,7 @@ in future versions. 0, 0 - 380, 92 + 380, 72 9 @@ -574,7 +572,7 @@ in future versions. 0, 32, 0, 0 - 416, 297 + 416, 269 Select Type diff --git a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.zh-CN.resx b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.zh-CN.resx index 5e0f6b8b2..bcbeb453a 100644 --- a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.zh-CN.resx +++ b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.zh-CN.resx @@ -196,7 +196,7 @@ NoControl - 20, 250 + 20, 204 117, 17 @@ -257,7 +257,7 @@ NoControl - 38, 274 + 38, 228 320, 26 @@ -294,7 +294,7 @@ 19, 20 - 331, 65 + 331, 39 6 @@ -302,9 +302,7 @@ 创建不离开 XenServer 池的网络。 此网络可用作池中两个 VM 之间的专用连接。 -此类网络需要运行 vSwitch Controller。 -此功能在 XenServer 6.2 中已弃用,在将来 -的版本中可能会删除。 +此类网络需要运行 vSwitch Controller。 labelCHIN @@ -370,7 +368,7 @@ 19, 134 - 380, 110 + 380, 90 5 @@ -406,7 +404,7 @@ 0, 0 - 380, 110 + 380, 90 9 @@ -574,7 +572,7 @@ 0, 32, 0, 0 - 416, 309 + 416, 281 选择类型 From e9ad35848af0ff1db3856a056163461a817e7e54 Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Thu, 17 Apr 2014 11:43:08 +0100 Subject: [PATCH 06/20] CA-94466: Log when the heartbeat has come back --- XenModel/Network/Heartbeat.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/XenModel/Network/Heartbeat.cs b/XenModel/Network/Heartbeat.cs index 240061335..7ad2876e7 100644 --- a/XenModel/Network/Heartbeat.cs +++ b/XenModel/Network/Heartbeat.cs @@ -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) From 34b30b9b9a34a02cab3fb49c2f87eb70a5a0d241 Mon Sep 17 00:00:00 2001 From: Cheng Zhang Date: Mon, 21 Apr 2014 13:33:34 +0800 Subject: [PATCH 07/20] CP-7579: Remove the DVSC deprecated warning messages on XenCenter for XS6.5(remove all deprecate related code) --- XenAdmin/Wizards/NewNetworkWizard.cs | 2 +- .../NewNetworkWizard_Pages/NetWTypeSelect.cs | 27 ------------------- XenModel/InvisibleMessages.Designer.cs | 9 ------- XenModel/InvisibleMessages.ja.resx | 3 --- XenModel/InvisibleMessages.resx | 3 --- XenModel/InvisibleMessages.zh-CN.resx | 3 --- 6 files changed, 1 insertion(+), 46 deletions(-) diff --git a/XenAdmin/Wizards/NewNetworkWizard.cs b/XenAdmin/Wizards/NewNetworkWizard.cs index 7a30c0f45..b932ca246 100644 --- a/XenAdmin/Wizards/NewNetworkWizard.cs +++ b/XenAdmin/Wizards/NewNetworkWizard.cs @@ -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(); diff --git a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs index aed5b4cae..d1183abc5 100644 --- a/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs +++ b/XenAdmin/Wizards/NewNetworkWizard_Pages/NetWTypeSelect.cs @@ -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(false); - base.PageLoaded(direction); - } - - public override void PageLeave(PageLoadedDirection direction, ref bool cancel) - { - SetDeprecationBanner(false); - base.PageLeave(direction, ref cancel); - } } } diff --git a/XenModel/InvisibleMessages.Designer.cs b/XenModel/InvisibleMessages.Designer.cs index 915d53a07..6d783e856 100644 --- a/XenModel/InvisibleMessages.Designer.cs +++ b/XenModel/InvisibleMessages.Designer.cs @@ -105,15 +105,6 @@ namespace XenAdmin { } } - /// - /// Looks up a localized string similar to http://support.citrix.com/article/CTX137336. - /// - public static string DVSC_DEPRECATION_URL { - get { - return ResourceManager.GetString("DVSC_DEPRECATION_URL", resourceCulture); - } - } - /// /// Looks up a localized string similar to http://www.citrix.com/xenserver. /// diff --git a/XenModel/InvisibleMessages.ja.resx b/XenModel/InvisibleMessages.ja.resx index 7d99bab7f..131a84f08 100644 --- a/XenModel/InvisibleMessages.ja.resx +++ b/XenModel/InvisibleMessages.ja.resx @@ -132,9 +132,6 @@ http://xenserver.org/ - - http://support.citrix.com/article/CTX137336 - http://www.citrix.com/xenserver diff --git a/XenModel/InvisibleMessages.resx b/XenModel/InvisibleMessages.resx index 1fd1f68ed..712bbd326 100644 --- a/XenModel/InvisibleMessages.resx +++ b/XenModel/InvisibleMessages.resx @@ -132,9 +132,6 @@ http://xenserver.org/ - - http://support.citrix.com/article/CTX137336 - http://www.citrix.com/xenserver diff --git a/XenModel/InvisibleMessages.zh-CN.resx b/XenModel/InvisibleMessages.zh-CN.resx index fa9cb345e..66c4806a0 100644 --- a/XenModel/InvisibleMessages.zh-CN.resx +++ b/XenModel/InvisibleMessages.zh-CN.resx @@ -132,9 +132,6 @@ http://xenserver.org/ - - http://support.citrix.com/article/CTX137336 - http://www.citrix.com/xenserver From 539ba4b511d6b7fb8449d08d7360f0dd62e04ab6 Mon Sep 17 00:00:00 2001 From: Stephen Turner Date: Wed, 23 Apr 2014 17:48:17 +0100 Subject: [PATCH 08/20] CA-133768 New API version number for xs64bit branch --- XenModel/XenAPI/Helper.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/XenModel/XenAPI/Helper.cs b/XenModel/XenAPI/Helper.cs index 624472878..bc141da03 100644 --- a/XenModel/XenAPI/Helper.cs +++ b/XenModel/XenAPI/Helper.cs @@ -50,7 +50,8 @@ namespace XenAPI API_2_0 = 11, // XenServer 6.2 (Clearwater) API_2_1 = 12, // XenServer 6.2 with vGPU (vGPU) API_2_2 = 13, // vdi.copy change in XS62ESP1004 (Hotfix Fox) - LATEST = 13, + API_2_3 = 14, // XenServer xs64bit + LATEST = 14, // Don't forget to change LATEST above, and APIVersionString() below. UNKNOWN = 99 } @@ -89,6 +90,8 @@ namespace XenAPI return "2.1"; case API_Version.API_2_2: return "2.2"; + case API_Version.API_2_3: + return "2.3"; default: return "Unknown"; } From 9cd44853fd023e8175e37f39f9f5a1b8460d6402 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Fri, 25 Apr 2014 11:57:43 +0100 Subject: [PATCH 09/20] CA-125896: Fixed text overflowing on Live Migration Network page Signed-off-by: Mihaela Stoica --- .../CrossPoolMigrateTransferNetworkPage.resx | 275 +++++++++--------- 1 file changed, 141 insertions(+), 134 deletions(-) diff --git a/XenAdmin/Wizards/CrossPoolMigrateWizard/CrossPoolMigrateTransferNetworkPage.resx b/XenAdmin/Wizards/CrossPoolMigrateWizard/CrossPoolMigrateTransferNetworkPage.resx index e9addf761..e7d478332 100644 --- a/XenAdmin/Wizards/CrossPoolMigrateWizard/CrossPoolMigrateTransferNetworkPage.resx +++ b/XenAdmin/Wizards/CrossPoolMigrateWizard/CrossPoolMigrateTransferNetworkPage.resx @@ -112,187 +112,194 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - - - 104, 3 - - - networkComboBox - - - 0 - - - 1 - - - 558, 65 - - - - 3, 0, 10, 0 - - - tableLayoutPanel2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Absolute,20" /><Rows Styles="Percent,27.71084,Percent,72.28915,Absolute,20,Absolute,20" /></TableLayoutSettings> - - - - 0 - + 1 - + 2 - - 1 + + + Left + + + True NoControl - - tableLayoutPanel1 + + + 3, 8 - - CrossPoolMigrateTransferNetworkPage - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 432, 21 - - - Left + + 3, 0, 10, 0 - 88, 13 + 115, 17 - - Select a storage network on the destination pool or standalone server that will be used for the live migration of the -VM’s 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. - - - 614, 332 - - - $this - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - False - - - 1 - - - 0, 0 - - - 0 - - - label3 - - - tableLayoutPanel2 - - - 2 - - - 3, 0 - - - XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - + 0 Storage n&etwork: - - 614, 332 - label1 - - 2 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - + tableLayoutPanel2 - - True + + 0 - - NoControl + + False + + + 131, 3 + + + 432, 24 11 - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="networkComboBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + networkComboBox - - 96, 96 + + XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + tableLayoutPanel2 + + + 1 + + + 3, 108 + + + 1 - 608, 28 + 608, 33 - + + 2 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tableLayoutPanel1 - - 3, 7 + + 0 - - CrossPoolMigrateTransferNetworkPage + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="networkComboBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> True + + Fill + + + NoControl + + + 3, 0 + + + 0, 0, 0, 20 + + + 762, 105 + 14 - - 3, 95 + + Select a storage network on the destination pool or standalone server that will be used for the live migration of the VM’s 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. - + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 + + + Fill + + + 0, 0 + + + 2 + + + 768, 415 + + + 0 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,Percent,100" /></TableLayoutSettings> + + True + + 120, 120 + + + 4, 4, 4, 4 + + + 768, 415 + + + CrossPoolMigrateTransferNetworkPage + + + CrossPoolMigrateTransferNetworkPage + + + XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file From 9f0998b3369d72ad4144dba075a7ac45f1e9ab8d Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Mon, 28 Apr 2014 13:44:20 +0100 Subject: [PATCH 10/20] CA-119177: On Prechecks page of Rolling Pool Upgrade wizard, the error should only be visible when errors are found. If errors are found the error info at the bottom of the page shows up, however this should not happen while still checking and before any errors have been found. Same applies for Prechecks page of Install Update Wizard. Signed-off-by: Mihaela Stoica --- XenAdmin/Wizards/PatchingWizard/PatchingWizard_PrecheckPage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_PrecheckPage.cs b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_PrecheckPage.cs index 8f91040fd..ee4af50ee 100644 --- a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_PrecheckPage.cs +++ b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_PrecheckPage.cs @@ -376,7 +376,7 @@ namespace XenAdmin.Wizards.PatchingWizard } bool result = _worker != null && !_worker.IsBusy && !problemsFound; - panelErrorsFound.Visible = !result; + panelErrorsFound.Visible = problemsFound; return result; } From 9c834d1b9173d75014f9ca867d39eff0a376c833 Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Mon, 28 Apr 2014 14:27:12 +0100 Subject: [PATCH 11/20] CA-126770: Fixed issue where the location column on the Updates page was showing multiple entries after refreshing. Signed-off-by: Konstantina Chremmou --- XenAdmin/Alerts/Types/XenServerUpdateAlert.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/XenAdmin/Alerts/Types/XenServerUpdateAlert.cs b/XenAdmin/Alerts/Types/XenServerUpdateAlert.cs index 32bfdace2..26de596f2 100644 --- a/XenAdmin/Alerts/Types/XenServerUpdateAlert.cs +++ b/XenAdmin/Alerts/Types/XenServerUpdateAlert.cs @@ -68,12 +68,14 @@ namespace XenAdmin.Alerts public void IncludeConnection(IXenConnection newConnection) { - connections.Add(newConnection); + if (!connections.Contains(newConnection)) + connections.Add(newConnection); } public void IncludeHosts(IEnumerable newHosts) { - hosts.AddRange(newHosts); + var notContained = newHosts.Where(h => !hosts.Contains(h)); + hosts.AddRange(notContained); } public void CopyConnectionsAndHosts(XenServerUpdateAlert alert) From f1ebc3b5eb6ac640341b0446389bad0062450e6f Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Mon, 28 Apr 2014 15:01:11 +0100 Subject: [PATCH 12/20] CA-130615: Do not show an event notification when the connection fails due to being existing or due to the host being a slave. Use the action description instead of the action title to construct the error for failed connection results. Indentation. Signed-off-by: Konstantina Chremmou --- XenAdmin/MainWindow.cs | 14 +++++---- XenModel/Actions/Action.cs | 15 ++++++++-- XenModel/Network/XenConnection.cs | 48 +++++++++++++++++-------------- 3 files changed, 48 insertions(+), 29 deletions(-) diff --git a/XenAdmin/MainWindow.cs b/XenAdmin/MainWindow.cs index 2d2c3f379..d63c7531e 100644 --- a/XenAdmin/MainWindow.cs +++ b/XenAdmin/MainWindow.cs @@ -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); diff --git a/XenModel/Actions/Action.cs b/XenModel/Actions/Action.cs index 873a8ee8c..0df480b58 100644 --- a/XenModel/Actions/Action.cs +++ b/XenModel/Actions/Action.cs @@ -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 diff --git a/XenModel/Network/XenConnection.cs b/XenModel/Network/XenConnection.cs index 27b5c59be..4f30b50a6 100644 --- a/XenModel/Network/XenConnection.cs +++ b/XenModel/Network/XenConnection.cs @@ -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); From 8d5bc0920af86d0d803baf55436312cff54ef538 Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Mon, 28 Apr 2014 15:04:23 +0100 Subject: [PATCH 13/20] CA-123737: Do not rebuild the alerts/updates/events pages unless they are visible. Signed-off-by: Konstantina Chremmou --- XenAdmin/TabPages/AlertSummaryPage.cs | 3 +++ XenAdmin/TabPages/HistoryPage.cs | 3 +++ XenAdmin/TabPages/ManageUpdatesPage.cs | 3 +++ 3 files changed, 9 insertions(+) diff --git a/XenAdmin/TabPages/AlertSummaryPage.cs b/XenAdmin/TabPages/AlertSummaryPage.cs index 6651edcf7..a960fd41d 100644 --- a/XenAdmin/TabPages/AlertSummaryPage.cs +++ b/XenAdmin/TabPages/AlertSummaryPage.cs @@ -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"; diff --git a/XenAdmin/TabPages/HistoryPage.cs b/XenAdmin/TabPages/HistoryPage.cs index ae1a91e0a..4a7ec4959 100644 --- a/XenAdmin/TabPages/HistoryPage.cs +++ b/XenAdmin/TabPages/HistoryPage.cs @@ -144,6 +144,9 @@ namespace XenAdmin.TabPages private void BuildRowList() { + if (!Visible) + return; + try { dataGridView.SuspendLayout(); diff --git a/XenAdmin/TabPages/ManageUpdatesPage.cs b/XenAdmin/TabPages/ManageUpdatesPage.cs index 6e3e18c4d..1efc959b8 100644 --- a/XenAdmin/TabPages/ManageUpdatesPage.cs +++ b/XenAdmin/TabPages/ManageUpdatesPage.cs @@ -182,6 +182,9 @@ namespace XenAdmin.TabPages { Program.AssertOnEventThread(); + if (!Visible) + return; + if (checksQueue > 0) return; From 51dab8d65deb1ea66916f00366dedc88656b3a16 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Tue, 29 Apr 2014 10:07:54 +0100 Subject: [PATCH 14/20] CA-126455: VM Properties dialog: Fixed the bug where the home server value was reset on revisiting the page from other page Signed-off-by: Mihaela Stoica --- .../SettingsPanels/HomeServerEditPage.Designer.cs | 1 - XenAdmin/SettingsPanels/HomeServerEditPage.cs | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/XenAdmin/SettingsPanels/HomeServerEditPage.Designer.cs b/XenAdmin/SettingsPanels/HomeServerEditPage.Designer.cs index b4496fe83..fbb692a5e 100644 --- a/XenAdmin/SettingsPanels/HomeServerEditPage.Designer.cs +++ b/XenAdmin/SettingsPanels/HomeServerEditPage.Designer.cs @@ -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 // diff --git a/XenAdmin/SettingsPanels/HomeServerEditPage.cs b/XenAdmin/SettingsPanels/HomeServerEditPage.cs index 8223cf0e8..844b35e1d 100644 --- a/XenAdmin/SettingsPanels/HomeServerEditPage.cs +++ b/XenAdmin/SettingsPanels/HomeServerEditPage.cs @@ -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)); - } - } } } From 49471b11b79f4c006056d27324e3042045453069 Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Tue, 29 Apr 2014 14:23:53 +0100 Subject: [PATCH 15/20] [CA-126770],[CA-123737]: Updated test cases. Signed-off-by: Konstantina Chremmou --- XenAdminTests/MainWindowWrapper/TestUtils.cs | 5 +++++ XenAdminTests/TabsAndMenus/LogsTabTests.cs | 10 +++++++++- .../UnitTests/AlertTests/XenServerPatchAlertTests.cs | 4 +++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/XenAdminTests/MainWindowWrapper/TestUtils.cs b/XenAdminTests/MainWindowWrapper/TestUtils.cs index 723311cc2..616fd5ed3 100644 --- a/XenAdminTests/MainWindowWrapper/TestUtils.cs +++ b/XenAdminTests/MainWindowWrapper/TestUtils.cs @@ -146,6 +146,11 @@ namespace XenAdminTests return GetFieldDeep(o, name); } + public static NotificationsView GetNotificationsView(object o, string name) + { + return GetFieldDeep(o, name); + } + public static DataGridViewEx GetDataGridViewEx(object o, string name) { return GetFieldDeep(o, name); diff --git a/XenAdminTests/TabsAndMenus/LogsTabTests.cs b/XenAdminTests/TabsAndMenus/LogsTabTests.cs index ab4271ba3..216126dc6 100644 --- a/XenAdminTests/TabsAndMenus/LogsTabTests.cs +++ b/XenAdminTests/TabsAndMenus/LogsTabTests.cs @@ -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,10 +169,17 @@ 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, - "eventsPage.toolStripDdbFilterStatus.toolStripMenuItemComplete").PerformClick()); + "eventsPage.toolStripDdbFilterStatus.toolStripMenuItemComplete").PerformClick()); rows = GetVisibleRows(); Assert.AreEqual(0, rows.Count, "Items weren't cleared."); Assert.IsTrue(showAllButton.Enabled); diff --git a/XenAdminTests/UnitTests/AlertTests/XenServerPatchAlertTests.cs b/XenAdminTests/UnitTests/AlertTests/XenServerPatchAlertTests.cs index 97aa45c08..03a3243e1 100644 --- a/XenAdminTests/UnitTests/AlertTests/XenServerPatchAlertTests.cs +++ b/XenAdminTests/UnitTests/AlertTests/XenServerPatchAlertTests.cs @@ -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() { hostA.Object, hostB.Object }); + alert.IncludeHosts(new List { hostA.Object, hostB.Object }); IUnitTestVerifier validator = new VerifyGetters(alert); @@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests hostA = new Mock(MockBehavior.Strict); hostA.Setup(n => n.Name).Returns("HostAName"); + hostA.Setup(n => n.Equals(It.IsAny())).Returns((object o) => ReferenceEquals(o, hostA.Object)); hostB = new Mock(MockBehavior.Strict); hostB.Setup(n => n.Name).Returns("HostBName"); + hostB.Setup(n => n.Equals(It.IsAny())).Returns((object o) => ReferenceEquals(o, hostB.Object)); } [TearDown] From bbd78cd36d1bf9ee4f203dd2c03c2d8036b12925 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Tue, 29 Apr 2014 15:46:15 +0100 Subject: [PATCH 16/20] CA-123534: In the Install Update wizard, when hosts are disabled because the update cannot be applied, display the reason as a tooltip. Signed-off-by: Mihaela Stoica --- .../PatchingWizard_SelectServers.cs | 7 +++++++ XenModel/Messages.Designer.cs | 18 ++++++++++++++++++ XenModel/Messages.resx | 6 ++++++ 3 files changed, 31 insertions(+) diff --git a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_SelectServers.cs b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_SelectServers.cs index 2665921a4..a7284f69d 100644 --- a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_SelectServers.cs +++ b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_SelectServers.cs @@ -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(); diff --git a/XenModel/Messages.Designer.cs b/XenModel/Messages.Designer.cs index 84e38af10..152338b98 100644 --- a/XenModel/Messages.Designer.cs +++ b/XenModel/Messages.Designer.cs @@ -24026,6 +24026,24 @@ namespace XenAdmin { } } + /// + /// Looks up a localized string similar to Subscription Advantage required. + /// + public static string PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED { + get { + return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update already applied. + /// + public static string PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED { + get { + return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED", resourceCulture); + } + } + /// /// Looks up a localized string similar to Select Servers. /// diff --git a/XenModel/Messages.resx b/XenModel/Messages.resx index aa136929e..833b32503 100644 --- a/XenModel/Messages.resx +++ b/XenModel/Messages.resx @@ -8316,6 +8316,12 @@ It is strongly recommended that you Cancel and apply the latest version of the p XenServer Updates|*.xsupdate;*.xsoem + + Subscription Advantage required + + + Update already applied + Select Servers From 9731f3f1968829abfb8e80047f3b8c24a24bfa0e Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Wed, 30 Apr 2014 11:23:23 +0100 Subject: [PATCH 17/20] [CA-126770],[CA-123737]: Updated further test cases. Signed-off-by: Konstantina Chremmou --- XenAdminTests/UnitTests/AlertTests/XenServerUpdateAlertTests.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/XenAdminTests/UnitTests/AlertTests/XenServerUpdateAlertTests.cs b/XenAdminTests/UnitTests/AlertTests/XenServerUpdateAlertTests.cs index 172c812a8..dd5949400 100644 --- a/XenAdminTests/UnitTests/AlertTests/XenServerUpdateAlertTests.cs +++ b/XenAdminTests/UnitTests/AlertTests/XenServerUpdateAlertTests.cs @@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests hostA = new Mock(MockBehavior.Strict); hostA.Setup(n => n.Name).Returns("HostAName"); + hostA.Setup(n => n.Equals(It.IsAny())).Returns((object o) => ReferenceEquals(o, hostA.Object)); hostB = new Mock(MockBehavior.Strict); hostB.Setup(n => n.Name).Returns("HostBName"); + hostB.Setup(n => n.Equals(It.IsAny())).Returns((object o) => ReferenceEquals(o, hostB.Object)); } [TearDown] From 6a6be458fded60ef5110b2ea70c766e71149eb39 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Wed, 30 Apr 2014 13:31:39 +0100 Subject: [PATCH 18/20] CA-110209: Install Update Wizard: If the patch is already uploaded, then we use it and ignore the "already exists" error. --- XenModel/Actions/Pool_Patch/UploadPatchAction.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/XenModel/Actions/Pool_Patch/UploadPatchAction.cs b/XenModel/Actions/Pool_Patch/UploadPatchAction.cs index 7add7362b..af384606d 100644 --- a/XenModel/Actions/Pool_Patch/UploadPatchAction.cs +++ b/XenModel/Actions/Pool_Patch/UploadPatchAction.cs @@ -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(); From 2c730986d5ad2ad9aa4944951b54ea98da5a0f76 Mon Sep 17 00:00:00 2001 From: Gabor Apati-Nagy Date: Wed, 30 Apr 2014 14:00:32 +0100 Subject: [PATCH 19/20] CP-7527: fixing tests: removing orphan files from the repo Signed-off-by: Gabor Apati-Nagy --- XenAdmin/Diagnostics/Checks/HostHasWlbCheck.cs | 1 - .../Diagnostics/Problems/PoolProblem/PoolHasWlbRemovalProblem.cs | 1 - 2 files changed, 2 deletions(-) delete mode 100644 XenAdmin/Diagnostics/Checks/HostHasWlbCheck.cs delete mode 100644 XenAdmin/Diagnostics/Problems/PoolProblem/PoolHasWlbRemovalProblem.cs diff --git a/XenAdmin/Diagnostics/Checks/HostHasWlbCheck.cs b/XenAdmin/Diagnostics/Checks/HostHasWlbCheck.cs deleted file mode 100644 index 5f282702b..000000000 --- a/XenAdmin/Diagnostics/Checks/HostHasWlbCheck.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/XenAdmin/Diagnostics/Problems/PoolProblem/PoolHasWlbRemovalProblem.cs b/XenAdmin/Diagnostics/Problems/PoolProblem/PoolHasWlbRemovalProblem.cs deleted file mode 100644 index 5f282702b..000000000 --- a/XenAdmin/Diagnostics/Problems/PoolProblem/PoolHasWlbRemovalProblem.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From d856e3e7dad500737fb24028674f211bec59fb91 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Thu, 1 May 2014 16:42:26 +0100 Subject: [PATCH 20/20] CA-109242: When a network has no PIF on a host, don't list it in that host's networking tab Signed-off-by: Mihaela Stoica --- XenAdmin/Controls/NetworkingTab/NetworkList.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/XenAdmin/Controls/NetworkingTab/NetworkList.cs b/XenAdmin/Controls/NetworkingTab/NetworkList.cs index 76d1728da..8bbb698dd 100644 --- a/XenAdmin/Controls/NetworkingTab/NetworkList.cs +++ b/XenAdmin/Controls/NetworkingTab/NetworkList.cs @@ -341,7 +341,8 @@ namespace XenAdmin.Controls.NetworkingTab List networkRowsToAdd = new List(); for (int i = 0; i < networks.Length; i++) { - if (!networks[i].Show(XenAdmin.Properties.Settings.Default.ShowHiddenVMs)) + if (!networks[i].Show(XenAdmin.Properties.Settings.Default.ShowHiddenVMs) || + Helpers.FindPIF(networks[i], XenObject as Host) == null) continue; networkRowsToAdd.Add(new NetworkRow(networks[i], XenObject)); }