public List <IDiscoveredObject> _GetInventory(CCollectionSchedule collectionschedule, CDiscoveryType discoverytype) { _DiscoveryType = discoverytype; List <IDiscoveredObject> DiscoveredObjects = new List <IDiscoveredObject> { }; DiscoveredObjects.AddRange(GetServers().Values); return(DiscoveredObjects); }
public IEnumerable <IDiscoveredObject> GetInventory(int discoverytype = -1) { // Log.Write(" : GetInventory (discoverytype: " + discoverytype + ")", Log.Verbosity.Everything); CCollectionSchedule m = new CCollectionSchedule(CCollectionSchedule.RunOnce); CDiscoveryType t = new CDiscoveryType(discoverytype); IEnumerable <IDiscoveredObject> result = _GetInventory(m, t); // Log.Write(" : GetInventory (completed)", Log.Verbosity.Everything); return(result); }
internal void Collect(List <IDiscoveredObject> DiscoveredSites, List <IDiscoveredObject> DiscoveredServers, List <CQuery.Types> queries, CCollectionSchedule schedule) { string uid; //Log.Write(" : RunStatisticsCollector (discoveredsites: " + DiscoveredSites.Count + ", discoveredservers: " + DiscoveredServers.Count + ", queries: " + queries.Count + ", schedule: " + schedule + ")", Log.Verbosity.Everything); IEnumerable <CSite> sites = DiscoveredSites.OfType <CSite>(); List <CSite> SiteList = new List <CSite> { }; SiteList.AddRange(sites); IEnumerable <CService> servers = DiscoveredServers.OfType <CService>(); List <CService> ServerList = new List <CService> { }; ServerList.AddRange(servers); /* string output = " : RunStatisticsCollector(registering sessions for: "; * foreach (CService s in ServerList) * { * output += s.Name + ", "; * } * Log.Write(output + ")", Log.Verbosity.Everything); */ if (schedule == CCollectionSchedule.RunOnce) { // get information for (int i = 0; i < ServerList.Count(); i++) { //Log.Write(" : RunStatisticsCollector (looping through servers " + ServerList[i].Name + ")", Log.Verbosity.Everything); uid = CFunctions.GenerateUID(); if (!Started) { ServerList[i].Initialize(); } foreach (CQuery.Types type in queries) { bool QueryApplicable = false; if (((type == CQuery.Types.Components) || (type == CQuery.Types.Events) || (type == CQuery.Types.Logs)) && (ServerList[i].Type == CServiceType.VBRServer)) { QueryApplicable = true; } else if (((type == CQuery.Types.Hosts) || (type == CQuery.Types.Datastores) || (type == CQuery.Types.VMs)) && ((ServerList[i].Type == CServiceType.VCenterServer) || (ServerList[i].Type == CServiceType.ESXServer) || (ServerList[i].Type == CServiceType.HYVServer))) { QueryApplicable = true; } if (QueryApplicable) { CQuery query = new CQuery(ref ServerList[i].Session, type, SiteList, uid); SessionInfo.Add(query.Progress); ServerList[i].Session.AddQuery(query); } } // Log.Write(" : RunStatisticsCollector (registering session " + ServerList[i].Session.Server.Name + ")", Log.Verbosity.Everything); SessionManager.Add(ref ServerList[i].Session); } Started = true; // Log.Write(" : RunStatisticsCollector (completed)", Log.Verbosity.Everything); // later // get vbr job information // get vbr configuration, later get host configuration etc... // get physical server and client configuration (discovery by wildcard name, using AD) // make get host, datastore and guest work for KVM and then Azure, AWS, GCE // ... // get information by using network scanning (discovery by ip address, using port scanning) // get information from storage systems } }