XenAdmin.Wizards.PatchingWizard.PatchingWizard_PrecheckPage.GenerateCommonChecks C# (CSharp) Метод

GenerateCommonChecks() защищенный Метод

protected GenerateCommonChecks ( ) : List>>.List
Результат List>>.List
        protected virtual List<KeyValuePair<string, List<Check>>> GenerateCommonChecks()
        {
            List<KeyValuePair<string, List<Check>>> checks = new List<KeyValuePair<string, List<Check>>>();

            //HostLivenessCheck checks
            checks.Add(new KeyValuePair<string, List<Check>>(Messages.CHECKING_HOST_LIVENESS_STATUS, new List<Check>()));
            List<Check> checkGroup = checks[checks.Count - 1].Value;
            foreach (Host host in SelectedServers)
            {
                checkGroup.Add(new HostLivenessCheck(host));
            }

            //HA checks
            checks.Add(new KeyValuePair<string, List<Check>>(Messages.CHECKING_HA_STATUS, new List<Check>()));
            checkGroup = checks[checks.Count - 1].Value;
            foreach (Host host in SelectedServers)
            {
                if (Helpers.HostIsMaster(host))
                    checkGroup.Add(new HAOffCheck(host));
            }

            //PBDsPluggedCheck
            checks.Add(new KeyValuePair<string, List<Check>>(Messages.CHECKING_STORAGE_CONNECTIONS_STATUS, new List<Check>()));
            checkGroup = checks[checks.Count - 1].Value;
            foreach (Host host in SelectedServers)
            {
                checkGroup.Add(new PBDsPluggedCheck(host));
            }

            //Disk space check for automated updates
            if (IsInAutomatedUpdatesMode)
            {
                checks.Add(new KeyValuePair<string, List<Check>>(Messages.PATCHINGWIZARD_PRECHECKPAGE_CHECKING_DISK_SPACE, new List<Check>()));
                checkGroup = checks[checks.Count - 1].Value;

                foreach (Pool pool in SelectedPools)
                {
                    var us = Updates.GetUpgradeSequence(pool.Connection);

                    bool elyOrGreater = Helpers.ElyOrGreater(pool.Connection);

                    foreach (Host host in us.Keys)
                    {
                        checkGroup.Add(
                            new DiskSpaceForAutomatedUpdatesCheck(
                                host,
                                elyOrGreater
                                    ? us[host].Sum(p => p.InstallationSize) // all updates on this host
                                    : host.IsMaster()
                                        ? us[host].Sum(p => p.InstallationSize) + us.Values.SelectMany(a => a).Max(p => p.InstallationSize) // master: all updates on master + largest update in pool
                                        : us[host].Sum(p => p.InstallationSize) + us[host].Max(p => p.InstallationSize) // non-master: all updates on this host + largest on this host
                        ));
                    }
                }
            }

            return checks;
        }