コード例 #1
0
        internal void GetCimInstance(CimInstance cimInstance, XOperationContextBase context)
        {
            string @namespace;

            DebugHelper.WriteLogEx();
            CimNewCimInstanceContext cimNewCimInstanceContext = context as CimNewCimInstanceContext;

            if (cimNewCimInstanceContext != null)
            {
                CimSessionProxy cimSessionProxy = base.CreateCimSessionProxy(cimNewCimInstanceContext.Proxy);
                if (cimInstance.CimSystemProperties.Namespace == null)
                {
                    @namespace = cimNewCimInstanceContext.Namespace;
                }
                else
                {
                    @namespace = cimInstance.CimSystemProperties.Namespace;
                }
                string str = @namespace;
                cimSessionProxy.GetInstanceAsync(str, cimInstance);
                return;
            }
            else
            {
                DebugHelper.WriteLog("Invalid (null) CimNewCimInstanceContext", 1);
                return;
            }
        }
コード例 #2
0
		public override void WriteObject(object sendToPipeline, XOperationContextBase context)
		{
			DebugHelper.WriteLogEx();
			if (sendToPipeline as CimSession == null)
			{
				if (sendToPipeline as PSObject == null)
				{
					object[] objArray = new object[1];
					objArray[0] = sendToPipeline;
					DebugHelper.WriteLog("Ignore other type object {0}", 1, objArray);
					return;
				}
				else
				{
					DebugHelper.WriteLog("Write PSObject to pipeline", 1);
					base.WriteObject(sendToPipeline, context);
					return;
				}
			}
			else
			{
				DebugHelper.WriteLog("Call CimNewSession::AddSessionToCache", 1);
				this.cimNewSession.AddSessionToCache(sendToPipeline as CimSession, context, this);
				return;
			}
		}
コード例 #3
0
		public override void WriteObject(object sendToPipeline, XOperationContextBase context)
		{
			DebugHelper.WriteLogEx();
			if (sendToPipeline as CimInstance != null)
			{
				CimSetCimInstanceContext cimSetCimInstanceContext = context as CimSetCimInstanceContext;
				if (cimSetCimInstanceContext == null)
				{
					DebugHelper.WriteLog("Assert. CimSetCimInstance::SetCimInstance has NULL CimSetCimInstanceContext", 4);
				}
				else
				{
					if (string.Compare(cimSetCimInstanceContext.ParameterSetName, "QueryComputerSet", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(cimSetCimInstanceContext.ParameterSetName, "QuerySessionSet", StringComparison.OrdinalIgnoreCase) == 0)
					{
						this.setCimInstance.SetCimInstance(sendToPipeline as CimInstance, cimSetCimInstanceContext, this);
						return;
					}
					else
					{
						DebugHelper.WriteLog("Write the cimInstance to pipeline since this CimInstance is returned by SetCimInstance.", 4);
					}
				}
			}
			base.WriteObject(sendToPipeline, context);
		}
コード例 #4
0
 /// <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);
     }
 }
コード例 #5
0
		public override void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context)
		{
			if (sendToPipeline as CimInstance == null)
			{
				base.WriteObject(sendToPipeline, enumerateCollection, context);
				return;
			}
			else
			{
				this.WriteObject(sendToPipeline, context);
				return;
			}
		}
コード例 #6
0
        /// <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);
            }
        }
コード例 #7
0
		public override void WriteObject(object sendToPipeline, XOperationContextBase context)
		{
			if (sendToPipeline as CimInstance == null)
			{
				base.WriteObject(sendToPipeline, context);
				return;
			}
			else
			{
				DebugHelper.WriteLog(">>>>CmdletOperationRemoveCimInstance::WriteObject", 4);
				this.removeCimInstance.RemoveCimInstance(sendToPipeline as CimInstance, context, this);
				return;
			}
		}
コード例 #8
0
		public override void WriteObject(object sendToPipeline, XOperationContextBase context)
		{
			DebugHelper.WriteLogEx();
			if (sendToPipeline as CimInstance == null)
			{
				base.WriteObject(sendToPipeline, context);
				return;
			}
			else
			{
				this.cimInvokeCimMethod.InvokeCimMethodOnCimInstance(sendToPipeline as CimInstance, context, this);
				return;
			}
		}
コード例 #9
0
ファイル: CimRemoveCimInstance.cs プロジェクト: nickchal/pash
		internal void RemoveCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase cmdlet)
		{
			DebugHelper.WriteLogEx();
			string str = cimInstance.ToString();
			if (cmdlet.ShouldProcess(str, "Remove-CimInstance"))
			{
				CimRemoveCimInstanceContext cimRemoveCimInstanceContext = context as CimRemoveCimInstanceContext;
				CimSessionProxy cimSessionProxy = base.CreateCimSessionProxy(cimRemoveCimInstanceContext.Proxy);
				cimSessionProxy.DeleteInstanceAsync(cimRemoveCimInstanceContext.Namespace, cimInstance);
				return;
			}
			else
			{
				return;
			}
		}
コード例 #10
0
        /// <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);
        }
コード例 #11
0
        internal void RemoveCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase cmdlet)
        {
            DebugHelper.WriteLogEx();
            string str = cimInstance.ToString();

            if (cmdlet.ShouldProcess(str, "Remove-CimInstance"))
            {
                CimRemoveCimInstanceContext cimRemoveCimInstanceContext = context as CimRemoveCimInstanceContext;
                CimSessionProxy             cimSessionProxy             = base.CreateCimSessionProxy(cimRemoveCimInstanceContext.Proxy);
                cimSessionProxy.DeleteInstanceAsync(cimRemoveCimInstanceContext.Namespace, cimInstance);
                return;
            }
            else
            {
                return;
            }
        }
コード例 #12
0
        public void InvokeCimMethodOnCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase operation)
        {
            DebugHelper.WriteLogEx();
            CimInvokeCimMethod.CimInvokeCimMethodContext cimInvokeCimMethodContext = context as CimInvokeCimMethod.CimInvokeCimMethodContext;
            object[] methodName = new object[1];
            methodName[0] = cimInvokeCimMethodContext.MethodName;
            string str = string.Format(CultureInfo.CurrentUICulture, "Invoke-CimMethod: {0}", methodName);

            if (operation.ShouldProcess(cimInstance.ToString(), str))
            {
                CimSessionProxy cimSessionProxy = base.CreateCimSessionProxy(cimInvokeCimMethodContext.Proxy);
                cimSessionProxy.InvokeMethodAsync(cimInvokeCimMethodContext.Namespace, cimInstance, cimInvokeCimMethodContext.MethodName, cimInvokeCimMethodContext.ParametersCollection);
                return;
            }
            else
            {
                return;
            }
        }
コード例 #13
0
        /// <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);
        }
コード例 #14
0
        /// <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);
        }
コード例 #15
0
        /// <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);
            }
        }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
ファイル: CimNewSession.cs プロジェクト: nickchal/pash
		internal void AddSessionToCache(CimSession cimSession, XOperationContextBase context, CmdletOperationBase cmdlet)
		{
			string str;
			DebugHelper.WriteLogEx();
			CimNewSession.CimTestCimSessionContext cimTestCimSessionContext = context as CimNewSession.CimTestCimSessionContext;
			uint num = this.sessionState.GenerateSessionId();
			string name = cimTestCimSessionContext.CimSessionWrapper.Name;
			if (name != null)
			{
				str = name;
			}
			else
			{
				object[] cimSessionClassName = new object[2];
				cimSessionClassName[0] = CimSessionState.CimSessionClassName;
				cimSessionClassName[1] = num;
				str = string.Format(CultureInfo.CurrentUICulture, "{0}{1}", cimSessionClassName);
			}
			string str1 = str;
			CimSession cimSession1 = cimTestCimSessionContext.Proxy.Detach();
			PSObject cache = this.sessionState.AddObjectToCache(cimSession1, num, cimSession1.InstanceId, str1, cimTestCimSessionContext.CimSessionWrapper.ComputerName, cimTestCimSessionContext.Proxy.Protocol);
			cmdlet.WriteObject(cache, null);
		}
コード例 #18
0
 public virtual void WriteObject(object sendToPipeline, XOperationContextBase context)
 {
     cmdlet.WriteObject(sendToPipeline);
 }
コード例 #19
0
 public override void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context)
 {
     if (sendToPipeline is CimInstance)
     {
         this.WriteObject(sendToPipeline, context);
     }
     else
     {
         base.WriteObject(sendToPipeline, enumerateCollection, context);
     }
 }
コード例 #20
0
 public CimWriteResultObject(object result, XOperationContextBase theContext)
 {
     this.result  = result;
     base.Context = theContext;
 }
コード例 #21
0
ファイル: CmdletOperation.cs プロジェクト: 40a/PowerShell
        /// <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);
            }
        }
コード例 #22
0
ファイル: CimInvokeCimMethod.cs プロジェクト: 40a/PowerShell
        /// <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);
        }
コード例 #23
0
ファイル: CmdletOperation.cs プロジェクト: 40a/PowerShell
 public virtual void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context)
 {
     cmdlet.WriteObject(sendToPipeline, enumerateCollection);
 }
コード例 #24
0
ファイル: CmdletOperation.cs プロジェクト: 40a/PowerShell
 public virtual void WriteObject(object sendToPipeline, XOperationContextBase context)
 {
     cmdlet.WriteObject(sendToPipeline);
 }
コード例 #25
0
ファイル: CimInvokeCimMethod.cs プロジェクト: nickchal/pash
		public void InvokeCimMethodOnCimInstance(CimInstance cimInstance, XOperationContextBase context, CmdletOperationBase operation)
		{
			DebugHelper.WriteLogEx();
			CimInvokeCimMethod.CimInvokeCimMethodContext cimInvokeCimMethodContext = context as CimInvokeCimMethod.CimInvokeCimMethodContext;
			object[] methodName = new object[1];
			methodName[0] = cimInvokeCimMethodContext.MethodName;
			string str = string.Format(CultureInfo.CurrentUICulture, "Invoke-CimMethod: {0}", methodName);
			if (operation.ShouldProcess(cimInstance.ToString(), str))
			{
				CimSessionProxy cimSessionProxy = base.CreateCimSessionProxy(cimInvokeCimMethodContext.Proxy);
				cimSessionProxy.InvokeMethodAsync(cimInvokeCimMethodContext.Namespace, cimInstance, cimInvokeCimMethodContext.MethodName, cimInvokeCimMethodContext.ParametersCollection);
				return;
			}
			else
			{
				return;
			}
		}
コード例 #26
0
ファイル: CimNewCimInstance.cs プロジェクト: 40a/PowerShell
        /// <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);
        }
コード例 #27
0
ファイル: CimNewCimInstance.cs プロジェクト: nickchal/pash
		internal void GetCimInstance(CimInstance cimInstance, XOperationContextBase context)
		{
			string @namespace;
			DebugHelper.WriteLogEx();
			CimNewCimInstanceContext cimNewCimInstanceContext = context as CimNewCimInstanceContext;
			if (cimNewCimInstanceContext != null)
			{
				CimSessionProxy cimSessionProxy = base.CreateCimSessionProxy(cimNewCimInstanceContext.Proxy);
				if (cimInstance.CimSystemProperties.Namespace == null)
				{
					@namespace = cimNewCimInstanceContext.Namespace;
				}
				else
				{
					@namespace = cimInstance.CimSystemProperties.Namespace;
				}
				string str = @namespace;
				cimSessionProxy.GetInstanceAsync(str, cimInstance);
				return;
			}
			else
			{
				DebugHelper.WriteLog("Invalid (null) CimNewCimInstanceContext", 1);
				return;
			}
		}
コード例 #28
0
 public virtual void WriteObject(object sendToPipeline, bool enumerateCollection, XOperationContextBase context)
 {
     cmdlet.WriteObject(sendToPipeline, enumerateCollection);
 }
コード例 #29
0
        /// <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;
            UInt32 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);
        }
コード例 #30
0
        /// <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);
        }
コード例 #31
0
ファイル: CimWriteResultObject.cs プロジェクト: nickchal/pash
		public CimWriteResultObject(object result, XOperationContextBase theContext)
		{
			this.result = result;
			base.Context = theContext;
		}