示例#1
0
 private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule, string computerName)
 {
     try
     {
         bool containedErrors = false;
         if (cimModule.MainManifest == null)
         {
             return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule));
         }
         string    temporaryModuleManifestPath = Path.Combine(RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName, base.Context.CurrentRunspace), Path.GetFileName(cimModule.ModuleName));
         Hashtable originalManifest            = null;
         if (!containedErrors)
         {
             originalManifest = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable(cimModule.MainManifest, temporaryModuleManifestPath, this, ref containedErrors);
             if (originalManifest == null)
             {
                 return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule));
             }
         }
         if (!containedErrors)
         {
             originalManifest = RemoteDiscoveryHelper.RewriteManifest(originalManifest);
         }
         Hashtable    localizedData = originalManifest;
         PSModuleInfo moduleInfoForRemoteModuleWithoutManifest = null;
         if (!containedErrors)
         {
             ModuleCmdletBase.ImportModuleOptions options = new ModuleCmdletBase.ImportModuleOptions();
             moduleInfoForRemoteModuleWithoutManifest = base.LoadModuleManifest(temporaryModuleManifestPath, null, originalManifest, localizedData, 0, base.BaseMinimumVersion, base.BaseRequiredVersion, ref options, ref containedErrors);
         }
         if ((moduleInfoForRemoteModuleWithoutManifest == null) || containedErrors)
         {
             moduleInfoForRemoteModuleWithoutManifest = this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule);
         }
         return(moduleInfoForRemoteModuleWithoutManifest);
     }
     catch (Exception exception)
     {
         ErrorRecord errorRecordForProcessingOfCimModule = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(exception, cimModule.ModuleName);
         base.WriteError(errorRecordForProcessingOfCimModule);
         return(null);
     }
 }
示例#2
0
        private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule,
                                                                string computerName)
        {
            try
            {
                bool containedErrors = false;

                if (cimModule.MainManifest == null)
                {
                    return(GetModuleInfoForRemoteModuleWithoutManifest(cimModule));
                }

                string temporaryModuleManifestPath = Path.Combine(
                    RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName,
                                                        this.Context.CurrentRunspace),
                    Path.GetFileName(cimModule.ModuleName));

                Hashtable mainData = null;
                if (!containedErrors)
                {
                    mainData = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable(
                        cimModule.MainManifest,
                        temporaryModuleManifestPath,
                        this,
                        ref containedErrors);
                    if (mainData == null)
                    {
                        return(GetModuleInfoForRemoteModuleWithoutManifest(cimModule));
                    }
                }

                if (!containedErrors)
                {
                    mainData = RemoteDiscoveryHelper.RewriteManifest(mainData);
                }

                Hashtable localizedData = mainData; // TODO/FIXME - this needs full path support from the provider

                PSModuleInfo moduleInfo = null;
                if (!containedErrors)
                {
                    ImportModuleOptions throwAwayOptions = new ImportModuleOptions();
                    moduleInfo = LoadModuleManifest(
                        temporaryModuleManifestPath,
                        null, // scriptInfo
                        mainData,
                        localizedData,
                        0 /* - don't write errors, don't load elements, don't return null on first error */,
                        this.BaseMinimumVersion,
                        this.BaseMaximumVersion,
                        this.BaseRequiredVersion,
                        this.BaseGuid,
                        ref throwAwayOptions,
                        ref containedErrors);
                }

                if ((moduleInfo == null) || containedErrors)
                {
                    moduleInfo = GetModuleInfoForRemoteModuleWithoutManifest(cimModule);
                }

                return(moduleInfo);
            }
            catch (Exception e)
            {
                ErrorRecord errorRecord = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(e, cimModule.ModuleName);
                this.WriteError(errorRecord);
                return(null);
            }
        }
示例#3
0
 private static PSModuleInfo GetModuleInfoForRemoteModuleWithoutManifest(RemoteDiscoveryHelper.CimModule cimModule)
 {
     return(new PSModuleInfo(cimModule.ModuleName, null, null));
 }