Пример #1
0
        private int OnDataCollectWorker_WaitForExport(int p, int max, string title, CDatabaseManager databaseManager)
        {
            ProgressPanelUpdate(p, title, DatabaseManager.SessionInfo);

            do
            {
                p = ProgressPanelUpdate(p, max);
            }while (DatabaseManager != null && DatabaseManager.SessionManager != null && !DatabaseManager.SessionManager.Completed); // wait for report generation to complete
            return(p);
        }
Пример #2
0
        void OnDataCollectWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                ProgressPanelUpdate(-1);

                // run collector to get host information
                CollectionManager = new CCollectionManager();
                List <CQuery.Types> queries = new List <CQuery.Types> {
                }; queries.Add(new CQuery.Types(CQuery.Types.Hosts)); queries.Add(new CQuery.Types(CQuery.Types.Components));

                CollectionManager.Collect(DiscoveredSites, DiscoveredServers, queries, new CCollectionSchedule(CCollectionSchedule.RunOnce));

                // update progress panel
                int p = 10;

                // wait for collector to complete
                p = OnDataCollectWorker_WaitForCollector(p, 20, "Collecting Data...", CollectionManager);

                // removing objects from discovered server list that are in fact children of other objects
                OnDataCollectWorker_RemoveDuplicateServers();

                // run collector to get vm and datastore information
                queries = new List <CQuery.Types> {
                }; queries.Add(new CQuery.Types(CQuery.Types.VMs)); queries.Add(new CQuery.Types(CQuery.Types.Datastores)); queries.Add(new CQuery.Types(CQuery.Types.Events));
                CollectionManager.Collect(DiscoveredSites, DiscoveredServers, queries, new CCollectionSchedule(CCollectionSchedule.RunOnce));

                // wait for collector to complete
                p = OnDataCollectWorker_WaitForCollector(p, 70, "Collecting Data...", CollectionManager);

                if (CollectionManager.SessionManager.ErrorCount != DiscoveredServers.Count) // run if we don't have as many errors as discovered servers
                {
                    //ReportManager = new CReportManager();

                    // [tbd] create templated layout, maybe add scheduling
                    //ReportManager.RunReport(DiscoveredSites, DiscoveredServers);

                    DatabaseManager = new CDatabaseManager();
                    DatabaseManager.Export(DiscoveredSites, DiscoveredServers);

                    // wait for reporter to complete
                    //OnDataCollectWorker_WaitForReporter(p, 95, "Generating Report...", ReportManager);
                    OnDataCollectWorker_WaitForExport(p, 95, "Exporting Data...", DatabaseManager);

                    ProgressPanelUpdate(100, "Data Collection Complete.");
                }
                else
                {
                    ProgressPanelUpdate(100, "Data Collection Failed.");
                }
            }
            catch (Exception ex) {
                CExceptionHandler.ShowExceptionDialog(ex.ToString());
            }
        }
Пример #3
0
 static CDatabase()
 {
     Instance = new CDatabaseManager();
 }