Exemplo n.º 1
0
        internal static IEnumerable <CimModule> GetCimModules(
            CimSession cimSession,
            Uri resourceUri,
            string cimNamespace,
            IEnumerable <string> moduleNamePatterns,
            bool onlyManifests,
            Cmdlet cmdlet,
            CancellationToken cancellationToken)
        {
            moduleNamePatterns = moduleNamePatterns ?? new[] { "*" };
            HashSet <string> alreadyEmittedNamesOfCimModules = new HashSet <string>(StringComparer.OrdinalIgnoreCase);

            IEnumerable <CimModule> remoteModules = moduleNamePatterns
                                                    .SelectMany(moduleNamePattern =>
                                                                RemoteDiscoveryHelper.GetCimModules(cimSession, resourceUri, cimNamespace, moduleNamePattern, onlyManifests, cmdlet, cancellationToken));

            foreach (CimModule remoteModule in remoteModules)
            {
                if (!alreadyEmittedNamesOfCimModules.Contains(remoteModule.ModuleName))
                {
                    alreadyEmittedNamesOfCimModules.Add(remoteModule.ModuleName);
                    yield return(remoteModule);
                }
            }
        }