Exemplo n.º 1
0
        /// <summary>
        /// <para>
        /// Create <see cref="CimInstance"/> with given properties.
        /// </para>
        /// </summary>
        /// <param name="cimClass"></param>
        /// <param name="properties"></param>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">See CimProperty.Create.</exception>
        /// <exception cref="ArgumentException">CimProperty.Create.</exception>
        private CimInstance CreateCimInstance(
            CimClass cimClass,
            IDictionary properties,
            NewCimInstanceCommand cmdlet)
        {
            CimInstance cimInstance = new(cimClass);

            if (properties == null)
            {
                return(cimInstance);
            }

            List <string> notfoundProperties = new();

            foreach (string property in properties.Keys)
            {
                if (cimInstance.CimInstanceProperties[property] == null)
                {
                    notfoundProperties.Add(property);
                    cmdlet.ThrowInvalidProperty(notfoundProperties, cmdlet.CimClass.CimSystemProperties.ClassName, @"Property", action, properties);
                    return(null);
                }

                object propertyValue = GetBaseObject(properties[property]);
                cimInstance.CimInstanceProperties[property].Value = propertyValue;
            }

            return(cimInstance);
        }
Exemplo n.º 2
0
 private void SetSessionProxyProperties(ref CimSessionProxy proxy, NewCimInstanceCommand cmdlet)
 {
     proxy.OperationTimeout = cmdlet.OperationTimeoutSec;
     if (cmdlet.ResourceUri != null)
     {
         proxy.ResourceUri = cmdlet.ResourceUri;
     }
 }
Exemplo n.º 3
0
        private CimSessionProxy CreateSessionProxy(CimSession session, NewCimInstanceCommand cmdlet)
        {
            CimSessionProxy cimSessionProxyNewCimInstance = new CimSessionProxyNewCimInstance(session, this);

            base.SubscribeEventAndAddProxytoCache(cimSessionProxyNewCimInstance);
            this.SetSessionProxyProperties(ref cimSessionProxyNewCimInstance, cmdlet);
            return(cimSessionProxyNewCimInstance);
        }
Exemplo n.º 4
0
        /// <summary>
        /// <para>
        /// Create <see cref="CimInstance"/> with given properties.
        /// </para>
        /// </summary>
        /// <param name="className"></param>
        /// <param name="key"></param>
        /// <param name="properties"></param>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">See CimProperty.Create.</exception>
        /// <exception cref="ArgumentException">CimProperty.Create.</exception>
        private CimInstance CreateCimInstance(
            string className,
            string cimNamespace,
            IEnumerable <string> key,
            IDictionary properties,
            NewCimInstanceCommand cmdlet)
        {
            CimInstance cimInstance = new(className, cimNamespace);

            if (properties == null)
            {
                return(cimInstance);
            }

            List <string> keys = new();

            if (key != null)
            {
                foreach (string keyName in key)
                {
                    keys.Add(keyName);
                }
            }

            IDictionaryEnumerator enumerator = properties.GetEnumerator();

            while (enumerator.MoveNext())
            {
                CimFlags flag         = CimFlags.None;
                string   propertyName = enumerator.Key.ToString().Trim();
                if (keys.Contains(propertyName, StringComparer.OrdinalIgnoreCase))
                {
                    flag = CimFlags.Key;
                }

                object propertyValue = GetBaseObject(enumerator.Value);

                DebugHelper.WriteLog("Create and add new property to ciminstance: name = {0}; value = {1}; flags = {2}", 5, propertyName, propertyValue, flag);

                PSReference cimReference = propertyValue as PSReference;
                if (cimReference != null)
                {
                    CimProperty newProperty = CimProperty.Create(propertyName, GetBaseObject(cimReference.Value), CimType.Reference, flag);
                    cimInstance.CimInstanceProperties.Add(newProperty);
                }
                else
                {
                    CimProperty newProperty = CimProperty.Create(
                        propertyName,
                        propertyValue,
                        flag);
                    cimInstance.CimInstanceProperties.Add(newProperty);
                }
            }

            return(cimInstance);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Create <see cref="CimSessionProxy"/> and set properties.
        /// </summary>
        /// <param name="session"></param>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        private CimSessionProxy CreateSessionProxy(
            CimSession session,
            NewCimInstanceCommand cmdlet)
        {
            CimSessionProxy proxy = new CimSessionProxyNewCimInstance(session, this);

            this.SubscribeEventAndAddProxytoCache(proxy);
            SetSessionProxyProperties(ref proxy, cmdlet);
            return(proxy);
        }
Exemplo n.º 6
0
		private CimInstance CreateCimInstance(string className, string cimNamespace, IEnumerable<string> key, IDictionary properties, NewCimInstanceCommand cmdlet)
		{
			CimInstance cimInstance = new CimInstance(className, cimNamespace);
			if (properties != null)
			{
				List<string> strs = new List<string>();
				if (key != null)
				{
					foreach (string str in key)
					{
						strs.Add(str);
					}
				}
				IDictionaryEnumerator enumerator = properties.GetEnumerator();
				while (enumerator.MoveNext())
				{
					CimFlags cimFlag = CimFlags.None;
					string str1 = enumerator.Key.ToString().Trim();
					if (strs.Contains<string>(str1, StringComparer.OrdinalIgnoreCase))
					{
						cimFlag = CimFlags.Key;
					}
					object baseObject = base.GetBaseObject(enumerator.Value);
					object[] objArray = new object[3];
					objArray[0] = str1;
					objArray[1] = baseObject;
					objArray[2] = cimFlag;
					DebugHelper.WriteLog("Create and add new property to ciminstance: name = {0}; value = {1}; flags = {2}", 5, objArray);
					PSReference pSReference = baseObject as PSReference;
					if (pSReference == null)
					{
						CimProperty cimProperty = CimProperty.Create(str1, baseObject, cimFlag);
						cimInstance.CimInstanceProperties.Add(cimProperty);
					}
					else
					{
						CimProperty cimProperty1 = CimProperty.Create(str1, base.GetBaseObject(pSReference.Value), CimType.Reference, cimFlag);
						cimInstance.CimInstanceProperties.Add(cimProperty1);
					}
				}
				return cimInstance;
			}
			else
			{
				return cimInstance;
			}
		}
Exemplo n.º 7
0
		private CimInstance CreateCimInstance(CimClass cimClass, IDictionary properties, NewCimInstanceCommand cmdlet)
		{
			CimInstance cimInstance;
			CimInstance cimInstance1 = new CimInstance(cimClass);
			if (properties != null)
			{
				List<string> strs = new List<string>();
				IEnumerator enumerator = properties.Keys.GetEnumerator();
				try
				{
					while (enumerator.MoveNext())
					{
						string current = (string)enumerator.Current;
						if (cimInstance1.CimInstanceProperties[current] != null)
						{
							object baseObject = base.GetBaseObject(properties[current]);
							cimInstance1.CimInstanceProperties[current].Value = baseObject;
						}
						else
						{
							strs.Add(current);
							cmdlet.ThrowInvalidProperty(strs, cmdlet.CimClass.CimSystemProperties.ClassName, "Property", "New-CimInstance", properties);
							cimInstance = null;
							return cimInstance;
						}
					}
					return cimInstance1;
				}
				finally
				{
					IDisposable disposable = enumerator as IDisposable;
					if (disposable != null)
					{
						disposable.Dispose();
					}
				}
				return cimInstance;
			}
			else
			{
				return cimInstance1;
			}
		}
Exemplo n.º 8
0
        /// <summary>
        /// <para>
        /// Base on parametersetName to create ciminstances,
        /// either remotely or locally
        /// </para>
        /// </summary>
        /// <param name="cmdlet"><see cref="GetCimInstanceCommand"/> object</param>
        public void NewCimInstance(NewCimInstanceCommand cmdlet)
        {
            DebugHelper.WriteLogEx();

            string nameSpace;
            CimInstance cimInstance = null;
            try
            {
                switch (cmdlet.ParameterSetName)
                {
                    case CimBaseCommand.ClassNameComputerSet:
                    case CimBaseCommand.ClassNameSessionSet:
                        {
                            nameSpace = ConstValue.GetNamespace(cmdlet.Namespace);
                            cimInstance = CreateCimInstance(cmdlet.ClassName,
                                nameSpace,
                                cmdlet.Key,
                                cmdlet.Property,
                                cmdlet);
                            
                        }
                        break;                        
                    case CimBaseCommand.ResourceUriSessionSet:
                    case CimBaseCommand.ResourceUriComputerSet:                        
                        {
                            nameSpace = cmdlet.Namespace; //passing null is ok for resourceUri set
                            cimInstance = CreateCimInstance("DummyClass",
                                nameSpace,
                                cmdlet.Key,
                                cmdlet.Property,
                                cmdlet);
                            
                        }
                        break;
                    case CimBaseCommand.CimClassComputerSet:
                    case CimBaseCommand.CimClassSessionSet:
                        {
                            nameSpace = ConstValue.GetNamespace(cmdlet.CimClass.CimSystemProperties.Namespace);
                            cimInstance = CreateCimInstance(cmdlet.CimClass,
                                cmdlet.Property,
                                cmdlet);
                            
                        }
                        break;
                    default:
                        return;
                }
            }
            catch (ArgumentNullException e)
            {
                cmdlet.ThrowTerminatingError(e, action);
                return;
            }
            catch (ArgumentException e)
            {
                cmdlet.ThrowTerminatingError(e, action);
                return;
            }

            // return if create client only ciminstance
            if (cmdlet.ClientOnly)
            {
                cmdlet.CmdletOperation.WriteObject(cimInstance, null);
                return;
            }

            string target = cimInstance.ToString();
            if (!cmdlet.ShouldProcess(target, action))
            {
                return;
            }

            // create ciminstance on server
            List<CimSessionProxy> proxys = new List<CimSessionProxy>();

            switch (cmdlet.ParameterSetName)
            {
                case CimBaseCommand.ClassNameComputerSet:
                case CimBaseCommand.CimClassComputerSet:
                case CimBaseCommand.ResourceUriComputerSet:
                    {
                        IEnumerable<string> computerNames = ConstValue.GetComputerNames(
                            cmdlet.ComputerName);
                        foreach (string computerName in computerNames)
                        {
                            proxys.Add(CreateSessionProxy(computerName, cmdlet));
                        }
                    }
                    break;
                case CimBaseCommand.CimClassSessionSet:
                case CimBaseCommand.ClassNameSessionSet:
                case CimBaseCommand.ResourceUriSessionSet:
                    foreach (CimSession session in cmdlet.CimSession)
                    {
                        proxys.Add(CreateSessionProxy(session, cmdlet));
                    }
                    break;
            }

            foreach (CimSessionProxy proxy in proxys)
            {
                proxy.ContextObject = new CimNewCimInstanceContext(proxy, nameSpace);
                proxy.CreateInstanceAsync(nameSpace, cimInstance);
            }
        }
Exemplo n.º 9
0
 /// <summary>
 /// <para>
 /// Create <see cref="CimInstance"/> with given properties.
 /// </para>
 /// </summary>
 /// <param name="cimClass"></param>
 /// <param name="properties"></param>
 /// <param name="cmdlet"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException">See CimProperty.Create</exception>
 /// <exception cref="ArgumentException">CimProperty.Create</exception>
 private CimInstance CreateCimInstance(
     CimClass cimClass,
     IDictionary properties,
     NewCimInstanceCommand cmdlet)
 {
     CimInstance cimInstance = new CimInstance(cimClass);
     if (properties == null)
     {
         return cimInstance;
     }
     List<string> notfoundProperties = new List<string>();
     foreach (string property in properties.Keys)
     {
         if (cimInstance.CimInstanceProperties[property] == null)
         {
             notfoundProperties.Add(property);
             cmdlet.ThrowInvalidProperty(notfoundProperties, cmdlet.CimClass.CimSystemProperties.ClassName, @"Property", action, properties);
             return null;
         }
         object propertyValue = GetBaseObject(properties[property]);
         cimInstance.CimInstanceProperties[property].Value = propertyValue;
     }
     return cimInstance;
 }
Exemplo n.º 10
0
        /// <summary>
        /// <para>
        /// Create <see cref="CimInstance"/> with given properties.
        /// </para>
        /// </summary>
        /// <param name="className"></param>
        /// <param name="key"></param>
        /// <param name="properties"></param>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">See CimProperty.Create</exception>
        /// <exception cref="ArgumentException">CimProperty.Create</exception>
        private CimInstance CreateCimInstance(
            string className,
            string cimNamespace,
            IEnumerable<string> key,
            IDictionary properties,
            NewCimInstanceCommand cmdlet)
        {
            CimInstance cimInstance = new CimInstance(className,cimNamespace);
            if (properties == null)
            {
                return cimInstance;
            }
            
            List<string> keys = new List<string>();
            if (key != null)
            {
                foreach (string keyName in key)
                {
                    keys.Add(keyName);
                }
            }

            IDictionaryEnumerator enumerator = properties.GetEnumerator();
            while (enumerator.MoveNext())
            {
                CimFlags flag = CimFlags.None;
                string propertyName = enumerator.Key.ToString().Trim();
                if (keys.Contains(propertyName, StringComparer.OrdinalIgnoreCase))
                {
                    flag = CimFlags.Key;
                }
                object propertyValue = GetBaseObject(enumerator.Value);

                DebugHelper.WriteLog("Create and add new property to ciminstance: name = {0}; value = {1}; flags = {2}", 5, propertyName, propertyValue, flag);

                PSReference cimReference =  propertyValue as PSReference;
                if( cimReference != null )
                {
                    CimProperty newProperty = CimProperty.Create(propertyName, GetBaseObject(cimReference.Value), CimType.Reference, flag);
                    cimInstance.CimInstanceProperties.Add(newProperty);
                }
                else
                {
                    CimProperty newProperty = CimProperty.Create(
                        propertyName,
                        propertyValue,
                        flag);
                    cimInstance.CimInstanceProperties.Add(newProperty);
                }
                
            }
            return cimInstance;
        }
Exemplo n.º 11
0
 /// <summary>
 /// Create <see cref="CimSessionProxy"/> and set properties
 /// </summary>
 /// <param name="session"></param>
 /// <param name="cmdlet"></param>
 /// <returns></returns>
 private CimSessionProxy CreateSessionProxy(
     CimSession session,
     NewCimInstanceCommand cmdlet)
 {
     CimSessionProxy proxy = new CimSessionProxyNewCimInstance(session, this);
     this.SubscribeEventAndAddProxytoCache(proxy);
     SetSessionProxyProperties(ref proxy, cmdlet);
     return proxy;
 }
Exemplo n.º 12
0
        public void NewCimInstance(NewCimInstanceCommand cmdlet)
        {
            string @namespace;

            DebugHelper.WriteLogEx();
            CimInstance cimInstance = null;

            try
            {
                string parameterSetName = cmdlet.ParameterSetName;
                string str = parameterSetName;
                if (parameterSetName != null)
                {
                    if (str == "ClassNameComputerSet" || str == "ClassNameSessionSet")
                    {
                        @namespace  = ConstValue.GetNamespace(cmdlet.Namespace);
                        cimInstance = this.CreateCimInstance(cmdlet.ClassName, @namespace, cmdlet.Key, cmdlet.Property, cmdlet);
                    }
                    else if (str == "ResourceUriSessionSet" || str == "ResourceUriComputerSet")
                    {
                        @namespace  = cmdlet.Namespace;
                        cimInstance = this.CreateCimInstance("DummyClass", @namespace, cmdlet.Key, cmdlet.Property, cmdlet);
                    }
                    else if (str == "CimClassComputerSet" || str == "CimClassSessionSet")
                    {
                        @namespace  = ConstValue.GetNamespace(cmdlet.CimClass.CimSystemProperties.Namespace);
                        cimInstance = this.CreateCimInstance(cmdlet.CimClass, cmdlet.Property, cmdlet);
                    }
                    else
                    {
                        return;
                    }
                    goto Label0;
                }
            }
            catch (ArgumentNullException argumentNullException1)
            {
                ArgumentNullException argumentNullException = argumentNullException1;
                cmdlet.ThrowTerminatingError(argumentNullException, "New-CimInstance");
            }
            catch (ArgumentException argumentException1)
            {
                ArgumentException argumentException = argumentException1;
                cmdlet.ThrowTerminatingError(argumentException, "New-CimInstance");
            }
            return;

Label0:
            if (!cmdlet.ClientOnly)
            {
                string str1 = cimInstance.ToString();
                if (cmdlet.ShouldProcess(str1, "New-CimInstance"))
                {
                    List <CimSessionProxy> cimSessionProxies = new List <CimSessionProxy>();
                    string parameterSetName1 = cmdlet.ParameterSetName;
                    string str2 = parameterSetName1;
                    if (parameterSetName1 != null)
                    {
                        if (str2 == "ClassNameComputerSet" || str2 == "CimClassComputerSet" || str2 == "ResourceUriComputerSet")
                        {
                            IEnumerable <string> computerNames = ConstValue.GetComputerNames(cmdlet.ComputerName);
                            foreach (string computerName in computerNames)
                            {
                                cimSessionProxies.Add(this.CreateSessionProxy(computerName, cmdlet));
                            }
                        }
                        else
                        {
                            if (str2 == "CimClassSessionSet" || str2 == "ClassNameSessionSet" || str2 == "ResourceUriSessionSet")
                            {
                                CimSession[] cimSession = cmdlet.CimSession;
                                for (int i = 0; i < (int)cimSession.Length; i++)
                                {
                                    CimSession cimSession1 = cimSession[i];
                                    cimSessionProxies.Add(this.CreateSessionProxy(cimSession1, cmdlet));
                                }
                            }
                        }
                    }
                    foreach (CimSessionProxy cimSessionProxy in cimSessionProxies)
                    {
                        cimSessionProxy.ContextObject = new CimNewCimInstanceContext(cimSessionProxy, @namespace);
                        cimSessionProxy.CreateInstanceAsync(@namespace, cimInstance);
                    }
                    return;
                }
                else
                {
                    return;
                }
            }
            else
            {
                cmdlet.CmdletOperation.WriteObject(cimInstance, null);
                return;
            }
        }
Exemplo n.º 13
0
		public void NewCimInstance(NewCimInstanceCommand cmdlet)
		{
			string @namespace;
			DebugHelper.WriteLogEx();
			CimInstance cimInstance = null;
			try
			{
				string parameterSetName = cmdlet.ParameterSetName;
				string str = parameterSetName;
				if (parameterSetName != null)
				{
					if (str == "ClassNameComputerSet" || str == "ClassNameSessionSet")
					{
						@namespace = ConstValue.GetNamespace(cmdlet.Namespace);
						cimInstance = this.CreateCimInstance(cmdlet.ClassName, @namespace, cmdlet.Key, cmdlet.Property, cmdlet);
					}
					else if (str == "ResourceUriSessionSet" || str == "ResourceUriComputerSet")
					{
						@namespace = cmdlet.Namespace;
						cimInstance = this.CreateCimInstance("DummyClass", @namespace, cmdlet.Key, cmdlet.Property, cmdlet);
					}
					else if (str == "CimClassComputerSet" || str == "CimClassSessionSet")
					{
						@namespace = ConstValue.GetNamespace(cmdlet.CimClass.CimSystemProperties.Namespace);
						cimInstance = this.CreateCimInstance(cmdlet.CimClass, cmdlet.Property, cmdlet);
					}
					else
					{
						return;
					}
					goto Label0;
				}
			}
			catch (ArgumentNullException argumentNullException1)
			{
				ArgumentNullException argumentNullException = argumentNullException1;
				cmdlet.ThrowTerminatingError(argumentNullException, "New-CimInstance");
			}
			catch (ArgumentException argumentException1)
			{
				ArgumentException argumentException = argumentException1;
				cmdlet.ThrowTerminatingError(argumentException, "New-CimInstance");
			}
			return;
		Label0:
			if (!cmdlet.ClientOnly)
			{
				string str1 = cimInstance.ToString();
				if (cmdlet.ShouldProcess(str1, "New-CimInstance"))
				{
					List<CimSessionProxy> cimSessionProxies = new List<CimSessionProxy>();
					string parameterSetName1 = cmdlet.ParameterSetName;
					string str2 = parameterSetName1;
					if (parameterSetName1 != null)
					{
						if (str2 == "ClassNameComputerSet" || str2 == "CimClassComputerSet" || str2 == "ResourceUriComputerSet")
						{
							IEnumerable<string> computerNames = ConstValue.GetComputerNames(cmdlet.ComputerName);
							foreach (string computerName in computerNames)
							{
								cimSessionProxies.Add(this.CreateSessionProxy(computerName, cmdlet));
							}
						}
						else
						{
							if (str2 == "CimClassSessionSet" || str2 == "ClassNameSessionSet" || str2 == "ResourceUriSessionSet")
							{
								CimSession[] cimSession = cmdlet.CimSession;
								for (int i = 0; i < (int)cimSession.Length; i++)
								{
									CimSession cimSession1 = cimSession[i];
									cimSessionProxies.Add(this.CreateSessionProxy(cimSession1, cmdlet));
								}
							}
						}
					}
					foreach (CimSessionProxy cimSessionProxy in cimSessionProxies)
					{
						cimSessionProxy.ContextObject = new CimNewCimInstanceContext(cimSessionProxy, @namespace);
						cimSessionProxy.CreateInstanceAsync(@namespace, cimInstance);
					}
					return;
				}
				else
				{
					return;
				}
			}
			else
			{
				cmdlet.CmdletOperation.WriteObject(cimInstance, null);
				return;
			}
		}
Exemplo n.º 14
0
		private CimSessionProxy CreateSessionProxy(CimSession session, NewCimInstanceCommand cmdlet)
		{
			CimSessionProxy cimSessionProxyNewCimInstance = new CimSessionProxyNewCimInstance(session, this);
			base.SubscribeEventAndAddProxytoCache(cimSessionProxyNewCimInstance);
			this.SetSessionProxyProperties(ref cimSessionProxyNewCimInstance, cmdlet);
			return cimSessionProxyNewCimInstance;
		}
Exemplo n.º 15
0
        private CimInstance CreateCimInstance(CimClass cimClass, IDictionary properties, NewCimInstanceCommand cmdlet)
        {
            CimInstance cimInstance;
            CimInstance cimInstance1 = new CimInstance(cimClass);

            if (properties != null)
            {
                List <string> strs       = new List <string>();
                IEnumerator   enumerator = properties.Keys.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        string current = (string)enumerator.Current;
                        if (cimInstance1.CimInstanceProperties[current] != null)
                        {
                            object baseObject = base.GetBaseObject(properties[current]);
                            cimInstance1.CimInstanceProperties[current].Value = baseObject;
                        }
                        else
                        {
                            strs.Add(current);
                            cmdlet.ThrowInvalidProperty(strs, cmdlet.CimClass.CimSystemProperties.ClassName, "Property", "New-CimInstance", properties);
                            cimInstance = null;
                            return(cimInstance);
                        }
                    }
                    return(cimInstance1);
                }
                finally
                {
                    IDisposable disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                return(cimInstance);
            }
            else
            {
                return(cimInstance1);
            }
        }
Exemplo n.º 16
0
        private CimInstance CreateCimInstance(string className, string cimNamespace, IEnumerable <string> key, IDictionary properties, NewCimInstanceCommand cmdlet)
        {
            CimInstance cimInstance = new CimInstance(className, cimNamespace);

            if (properties != null)
            {
                List <string> strs = new List <string>();
                if (key != null)
                {
                    foreach (string str in key)
                    {
                        strs.Add(str);
                    }
                }
                IDictionaryEnumerator enumerator = properties.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    CimFlags cimFlag = CimFlags.None;
                    string   str1    = enumerator.Key.ToString().Trim();
                    if (strs.Contains <string>(str1, StringComparer.OrdinalIgnoreCase))
                    {
                        cimFlag = CimFlags.Key;
                    }
                    object   baseObject = base.GetBaseObject(enumerator.Value);
                    object[] objArray   = new object[3];
                    objArray[0] = str1;
                    objArray[1] = baseObject;
                    objArray[2] = cimFlag;
                    DebugHelper.WriteLog("Create and add new property to ciminstance: name = {0}; value = {1}; flags = {2}", 5, objArray);
                    PSReference pSReference = baseObject as PSReference;
                    if (pSReference == null)
                    {
                        CimProperty cimProperty = CimProperty.Create(str1, baseObject, cimFlag);
                        cimInstance.CimInstanceProperties.Add(cimProperty);
                    }
                    else
                    {
                        CimProperty cimProperty1 = CimProperty.Create(str1, base.GetBaseObject(pSReference.Value), CimType.Reference, cimFlag);
                        cimInstance.CimInstanceProperties.Add(cimProperty1);
                    }
                }
                return(cimInstance);
            }
            else
            {
                return(cimInstance);
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// <para>
        /// Base on parametersetName to create ciminstances,
        /// either remotely or locally
        /// </para>
        /// </summary>
        /// <param name="cmdlet"><see cref="GetCimInstanceCommand"/> object.</param>
        public void NewCimInstance(NewCimInstanceCommand cmdlet)
        {
            DebugHelper.WriteLogEx();

            string      nameSpace;
            CimInstance cimInstance = null;

            try
            {
                switch (cmdlet.ParameterSetName)
                {
                case CimBaseCommand.ClassNameComputerSet:
                case CimBaseCommand.ClassNameSessionSet:
                {
                    nameSpace   = ConstValue.GetNamespace(cmdlet.Namespace);
                    cimInstance = CreateCimInstance(cmdlet.ClassName,
                                                    nameSpace,
                                                    cmdlet.Key,
                                                    cmdlet.Property,
                                                    cmdlet);
                }

                break;

                case CimBaseCommand.ResourceUriSessionSet:
                case CimBaseCommand.ResourceUriComputerSet:
                {
                    nameSpace   = cmdlet.Namespace;       // passing null is ok for resourceUri set
                    cimInstance = CreateCimInstance("DummyClass",
                                                    nameSpace,
                                                    cmdlet.Key,
                                                    cmdlet.Property,
                                                    cmdlet);
                }

                break;

                case CimBaseCommand.CimClassComputerSet:
                case CimBaseCommand.CimClassSessionSet:
                {
                    nameSpace   = ConstValue.GetNamespace(cmdlet.CimClass.CimSystemProperties.Namespace);
                    cimInstance = CreateCimInstance(cmdlet.CimClass,
                                                    cmdlet.Property,
                                                    cmdlet);
                }

                break;

                default:
                    return;
                }
            }
            catch (ArgumentNullException e)
            {
                cmdlet.ThrowTerminatingError(e, action);
                return;
            }
            catch (ArgumentException e)
            {
                cmdlet.ThrowTerminatingError(e, action);
                return;
            }

            // return if create client only ciminstance
            if (cmdlet.ClientOnly)
            {
                cmdlet.CmdletOperation.WriteObject(cimInstance, null);
                return;
            }

            string target = cimInstance.ToString();

            if (!cmdlet.ShouldProcess(target, action))
            {
                return;
            }

            // create ciminstance on server
            List <CimSessionProxy> proxys = new();

            switch (cmdlet.ParameterSetName)
            {
            case CimBaseCommand.ClassNameComputerSet:
            case CimBaseCommand.CimClassComputerSet:
            case CimBaseCommand.ResourceUriComputerSet:
            {
                IEnumerable <string> computerNames = ConstValue.GetComputerNames(
                    cmdlet.ComputerName);
                foreach (string computerName in computerNames)
                {
                    proxys.Add(CreateSessionProxy(computerName, cmdlet));
                }
            }

            break;

            case CimBaseCommand.CimClassSessionSet:
            case CimBaseCommand.ClassNameSessionSet:
            case CimBaseCommand.ResourceUriSessionSet:
                foreach (CimSession session in cmdlet.CimSession)
                {
                    proxys.Add(CreateSessionProxy(session, cmdlet));
                }

                break;
            }

            foreach (CimSessionProxy proxy in proxys)
            {
                proxy.ContextObject = new CimNewCimInstanceContext(proxy, nameSpace);
                proxy.CreateInstanceAsync(nameSpace, cimInstance);
            }
        }
Exemplo n.º 18
0
 /// <summary>
 /// <para>
 /// Set <see cref="CimSessionProxy"/> properties
 /// </para>
 /// </summary>
 /// <param name="proxy"></param>
 /// <param name="cmdlet"></param>
 private void SetSessionProxyProperties(
     ref CimSessionProxy proxy,
     NewCimInstanceCommand cmdlet)
 {
     proxy.OperationTimeout = cmdlet.OperationTimeoutSec;
     if(cmdlet.ResourceUri != null)
     {
         proxy.ResourceUri = cmdlet.ResourceUri;
     }
 }