/// <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); }
private void SetSessionProxyProperties(ref CimSessionProxy proxy, NewCimInstanceCommand cmdlet) { proxy.OperationTimeout = cmdlet.OperationTimeoutSec; if (cmdlet.ResourceUri != null) { proxy.ResourceUri = cmdlet.ResourceUri; } }
private CimSessionProxy CreateSessionProxy(CimSession session, NewCimInstanceCommand cmdlet) { CimSessionProxy cimSessionProxyNewCimInstance = new CimSessionProxyNewCimInstance(session, this); base.SubscribeEventAndAddProxytoCache(cimSessionProxyNewCimInstance); this.SetSessionProxyProperties(ref cimSessionProxyNewCimInstance, cmdlet); return(cimSessionProxyNewCimInstance); }
/// <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); }
/// <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); }
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; } }
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; } }
/// <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); } }
/// <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; }
/// <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; }
/// <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; }
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; } }
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; } }
private CimSessionProxy CreateSessionProxy(CimSession session, NewCimInstanceCommand cmdlet) { CimSessionProxy cimSessionProxyNewCimInstance = new CimSessionProxyNewCimInstance(session, this); base.SubscribeEventAndAddProxytoCache(cimSessionProxyNewCimInstance); this.SetSessionProxyProperties(ref cimSessionProxyNewCimInstance, cmdlet); return cimSessionProxyNewCimInstance; }
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); } }
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); } }
/// <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); } }
/// <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; } }