/// <summary> /// <para> /// Object here need to be removed if it is CimInstance /// </para> /// </summary> /// <param name="sendToPipeline"></param> public override void WriteObject(object sendToPipeline, XOperationContextBase context) { DebugHelper.WriteLogEx(); if (sendToPipeline is CimInstance) { CimSetCimInstanceContext setContext = context as CimSetCimInstanceContext; if (setContext != null) { if (string.Equals(setContext.ParameterSetName, CimBaseCommand.QueryComputerSet, StringComparison.OrdinalIgnoreCase) || string.Equals(setContext.ParameterSetName, CimBaseCommand.QuerySessionSet, StringComparison.OrdinalIgnoreCase)) { this.setCimInstance.SetCimInstance(sendToPipeline as CimInstance, setContext, this); return; } else { DebugHelper.WriteLog("Write the cimInstance to pipeline since this CimInstance is returned by SetCimInstance.", 4); } } else { DebugHelper.WriteLog("Assert. CimSetCimInstance::SetCimInstance has NULL CimSetCimInstanceContext", 4); } } base.WriteObject(sendToPipeline, context); }
/// <summary> /// <para> /// Object here need to be removed if it is CimInstance /// </para> /// </summary> /// <param name="sendToPipeline"></param> public override void WriteObject(object sendToPipeline, XOperationContextBase context) { if (sendToPipeline is CimInstance) { DebugHelper.WriteLog(">>>>CmdletOperationRemoveCimInstance::WriteObject", 4); this.removeCimInstance.RemoveCimInstance(sendToPipeline as CimInstance, context, this); } else { base.WriteObject(sendToPipeline, context); } }
/// <summary> /// <para> /// Object here need to be removed if it is CimInstance /// </para> /// </summary> /// <param name="sendToPipeline"></param> public override void WriteObject(object sendToPipeline, XOperationContextBase context) { DebugHelper.WriteLogEx(); if (sendToPipeline is CimInstance) { this.cimInvokeCimMethod.InvokeCimMethodOnCimInstance(sendToPipeline as CimInstance, context, this); } else { base.WriteObject(sendToPipeline, context); } }
/// <summary> /// <para> /// Get full <see cref="CimInstance"/> from server based on the key /// </para> /// </summary> /// <param name="cimInstance"></param> internal void GetCimInstance(CimInstance cimInstance, XOperationContextBase context) { DebugHelper.WriteLogEx(); CimNewCimInstanceContext newCimInstanceContext = context as CimNewCimInstanceContext; if (newCimInstanceContext == null) { DebugHelper.WriteLog("Invalid (null) CimNewCimInstanceContext", 1); return; } CimSessionProxy proxy = CreateCimSessionProxy(newCimInstanceContext.Proxy); string nameSpace = (cimInstance.CimSystemProperties.Namespace == null) ? newCimInstanceContext.Namespace : cimInstance.CimSystemProperties.Namespace; proxy.GetInstanceAsync(nameSpace, cimInstance); }
/// <summary> /// <para> /// Remove <see cref="CimInstance"/> from namespace specified in cmdlet /// </para> /// </summary> /// <param name="cimInstance"></param> internal void RemoveCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase cmdlet) { DebugHelper.WriteLogEx(); string target = cimInstance.ToString(); if (!cmdlet.ShouldProcess(target, action)) { return; } CimRemoveCimInstanceContext removeContext = context as CimRemoveCimInstanceContext; Debug.Assert(removeContext != null, "CimRemoveCimInstance::RemoveCimInstance should has CimRemoveCimInstanceContext != NULL."); CimSessionProxy proxy = CreateCimSessionProxy(removeContext.Proxy); proxy.DeleteInstanceAsync(removeContext.Namespace, cimInstance); }
/// <summary> /// <para> /// Add session to global cache, /// </para> /// </summary> /// <param name="cimSession"></param> /// <param name="context"></param> /// <param name="cmdlet"></param> internal void AddSessionToCache(CimSession cimSession, XOperationContextBase context, CmdletOperationBase cmdlet) { DebugHelper.WriteLogEx(); CimTestCimSessionContext testCimSessionContext = context as CimTestCimSessionContext; uint sessionId = this.sessionState.GenerateSessionId(); string originalSessionName = testCimSessionContext.CimSessionWrapper.Name; string sessionName = (originalSessionName != null) ? originalSessionName : string.Format(CultureInfo.CurrentUICulture, @"{0}{1}", CimSessionState.CimSessionClassName, sessionId); // detach CimSession from the proxy object CimSession createdCimSession = testCimSessionContext.Proxy.Detach(); PSObject psObject = this.sessionState.AddObjectToCache( createdCimSession, sessionId, createdCimSession.InstanceId, sessionName, testCimSessionContext.CimSessionWrapper.ComputerName, testCimSessionContext.Proxy.Protocol); cmdlet.WriteObject(psObject, null); }
/// <summary> /// <para> /// Add session object to cache /// </para> /// </summary> /// <param name="sendToPipeline"></param> public override void WriteObject(object sendToPipeline, XOperationContextBase context) { DebugHelper.WriteLogEx(); if (sendToPipeline is CimSession) { DebugHelper.WriteLog("Call CimNewSession::AddSessionToCache", 1); this.cimNewSession.AddSessionToCache(sendToPipeline as CimSession, context, this); } else if (sendToPipeline is PSObject) { DebugHelper.WriteLog("Write PSObject to pipeline", 1); base.WriteObject(sendToPipeline, context); } else { // NOTES: May need to output for warning message/verbose message DebugHelper.WriteLog("Ignore other type object {0}", 1, sendToPipeline); } }
/// <summary> /// <para> /// Invoke cimmethod on given <see cref="CimInstance"/> /// </para> /// </summary> /// <param name="cimInstance"></param> public void InvokeCimMethodOnCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase operation) { DebugHelper.WriteLogEx(); CimInvokeCimMethodContext cimInvokeCimMethodContext = context as CimInvokeCimMethodContext; Debug.Assert(cimInvokeCimMethodContext != null, "CimInvokeCimMethod::InvokeCimMethodOnCimInstance should has CimInvokeCimMethodContext != NULL."); string action = string.Format(CultureInfo.CurrentUICulture, actionTemplate, cimInvokeCimMethodContext.MethodName); if (!operation.ShouldProcess(cimInstance.ToString(), action)) { return; } CimSessionProxy proxy = CreateCimSessionProxy(cimInvokeCimMethodContext.Proxy); proxy.InvokeMethodAsync( cimInvokeCimMethodContext.Namespace, cimInstance, cimInvokeCimMethodContext.MethodName, cimInvokeCimMethodContext.ParametersCollection); }
/// <summary> /// Constructor /// </summary> public CimWriteResultObject(object result, XOperationContextBase theContext) { this.result = result; this.Context = theContext; }
public virtual void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context) { cmdlet.WriteObject(sendToPipeline, enumerateCollection); }
public virtual void WriteObject(object sendToPipeline, XOperationContextBase context) { cmdlet.WriteObject(sendToPipeline); }
public override void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context) { if (sendToPipeline is CimInstance) { this.WriteObject(sendToPipeline, context); } else { base.WriteObject(sendToPipeline, enumerateCollection, context); } }