mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2024-11-25 06:16:37 +01:00
Merge pull request #1147 from MihaelaStoica/CA-220040
CA-220040: Patching wizard shows reboot required where it is not expected
This commit is contained in:
commit
b12f488ffd
@ -29,10 +29,12 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using XenAdmin.Core;
|
using XenAdmin.Core;
|
||||||
using XenAPI;
|
using XenAPI;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace XenAdmin.Wizards.PatchingWizard
|
namespace XenAdmin.Wizards.PatchingWizard
|
||||||
{
|
{
|
||||||
@ -40,18 +42,13 @@ namespace XenAdmin.Wizards.PatchingWizard
|
|||||||
{
|
{
|
||||||
public static string ModeRetailPatch(List<Host> servers, Pool_patch patch, Dictionary<string, LivePatchCode> LivePatchCodesByHost)
|
public static string ModeRetailPatch(List<Host> servers, Pool_patch patch, Dictionary<string, LivePatchCode> LivePatchCodesByHost)
|
||||||
{
|
{
|
||||||
return Build(servers, patch != null ? patch.after_apply_guidance : new List<after_apply_guidance>(), LivePatchCodesByHost);
|
return Build(servers.Where(h => patch != null && patch.AppliedOn(h) == DateTime.MaxValue).ToList(), patch != null ? patch.after_apply_guidance : new List<after_apply_guidance>(), LivePatchCodesByHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ModeSuppPack(List<Host> servers)
|
public static string ModeSuppPack(List<Host> servers)
|
||||||
{
|
{
|
||||||
List<after_apply_guidance> guidance = new List<after_apply_guidance> { after_apply_guidance.restartHost };
|
List<after_apply_guidance> guidance = new List<after_apply_guidance> { after_apply_guidance.restartHost };
|
||||||
return Build(servers, guidance);
|
return Build(servers, guidance, new Dictionary<string, LivePatchCode>());
|
||||||
}
|
|
||||||
|
|
||||||
private static string Build(List<Host> servers, List<after_apply_guidance> guidance)
|
|
||||||
{
|
|
||||||
return Build(servers, guidance);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string Build(List<Host> servers, List<after_apply_guidance> guidance, Dictionary<string, LivePatchCode> LivePatchCodesByHost)
|
private static string Build(List<Host> servers, List<after_apply_guidance> guidance, Dictionary<string, LivePatchCode> LivePatchCodesByHost)
|
||||||
@ -62,7 +59,7 @@ namespace XenAdmin.Wizards.PatchingWizard
|
|||||||
{
|
{
|
||||||
if (guide == after_apply_guidance.restartHost
|
if (guide == after_apply_guidance.restartHost
|
||||||
&& (LivePatchCodesByHost != null && servers.TrueForAll(h => LivePatchCodesByHost.ContainsKey(h.uuid) && LivePatchCodesByHost[h.uuid] == LivePatchCode.PATCH_PRECHECK_LIVEPATCH_COMPLETE)))
|
&& (LivePatchCodesByHost != null && servers.TrueForAll(h => LivePatchCodesByHost.ContainsKey(h.uuid) && LivePatchCodesByHost[h.uuid] == LivePatchCode.PATCH_PRECHECK_LIVEPATCH_COMPLETE)))
|
||||||
break;
|
continue;
|
||||||
|
|
||||||
sbLog.AppendLine(GetGuideMessage(guide));
|
sbLog.AppendLine(GetGuideMessage(guide));
|
||||||
|
|
||||||
@ -72,7 +69,7 @@ namespace XenAdmin.Wizards.PatchingWizard
|
|||||||
case after_apply_guidance.restartXAPI:
|
case after_apply_guidance.restartXAPI:
|
||||||
foreach (Host host in servers)
|
foreach (Host host in servers)
|
||||||
{
|
{
|
||||||
if (LivePatchCodesByHost != null && LivePatchCodesByHost.ContainsKey(host.uuid) && LivePatchCodesByHost[host.uuid] == LivePatchCode.PATCH_PRECHECK_LIVEPATCH_COMPLETE)
|
if (guide == after_apply_guidance.restartHost && LivePatchCodesByHost != null && LivePatchCodesByHost.ContainsKey(host.uuid) && LivePatchCodesByHost[host.uuid] == LivePatchCode.PATCH_PRECHECK_LIVEPATCH_COMPLETE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (host.IsMaster())
|
if (host.IsMaster())
|
||||||
|
@ -119,6 +119,9 @@ namespace XenAdmin.Actions
|
|||||||
|
|
||||||
protected override void RunSubActions(List<Exception> exceptions)
|
protected override void RunSubActions(List<Exception> exceptions)
|
||||||
{
|
{
|
||||||
|
if (actionsCount == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
foreach (IXenConnection connection in actionsByConnection.Keys)
|
foreach (IXenConnection connection in actionsByConnection.Keys)
|
||||||
{
|
{
|
||||||
queuesByConnection[connection] = new ProduceConsumerQueue(Math.Min(maxNumberOfParallelActions, actionsByConnection[connection].Count));
|
queuesByConnection[connection] = new ProduceConsumerQueue(Math.Min(maxNumberOfParallelActions, actionsByConnection[connection].Count));
|
||||||
|
Loading…
Reference in New Issue
Block a user