private int PerformImportDiscovery()

in src/Discovery/Discover.cs [239:290]


        private int PerformImportDiscovery(MasterSitesJSON masterSitesObj)
        {
            List<string> importSites = new List<string>();

            foreach (string site in masterSitesObj.Properties.Sites)
            {
                if (site.Contains("importsites"))
                    importSites.Add(site);
            }

            UserInputObj.LoggerObj.LogInformation(2, "Finished parsing discovery sites"); // 10 % complete

            int discoveryDataPerSitePercentProgress = UserInputObj.WorkflowObj.IsExpressWorkflow ? 7 : 70;
            int excelCreationPercentProgress = UserInputObj.WorkflowObj.IsExpressWorkflow ? 3 : 20;
            List<DiscoveryData> importMachinesDiscovery = new List<DiscoveryData>();

            try
            {
                UserInputObj.LoggerObj.LogInformation("Retrieving discovery data from Import sites");
                importMachinesDiscovery = new RetrieveDiscoveryData().BeginRetrieval(UserInputObj, importSites, DiscoverySites.Import);
                UserInputObj.LoggerObj.LogInformation(discoveryDataPerSitePercentProgress, $"Retrieved discovery data for {importMachinesDiscovery.Count.ToString()} machines from Import sites");
            }
            catch (AggregateException ae)
            {
                string errorMessage = "";
                foreach (var e in ae.Flatten().InnerExceptions)
                {
                    if (e is OperationCanceledException)
                        throw e;
                    else
                    {
                        errorMessage = errorMessage + e.Message + " ";
                    }
                }
                throw new Exception(errorMessage);
            }
            catch (Exception exDiscover)
            {
                throw exDiscover;
            }

            try
            {
                DiscoveredData.AddRange(importMachinesDiscovery);
            }
            catch (Exception exConsolidateImport)
            {
                UserInputObj.LoggerObj.LogWarning($"Failed data consolidation from Import sites: {exConsolidateImport.Message}");
            }

            return excelCreationPercentProgress;
        }