/// <summary> /// Waits for async jobs returned by one of the CIM methods to complete /// </summary> private bool WaitForJobCompletion(Xen_Job_Reference_Type jobRef, string jobClassName, Type jobType) { bool jobComplete = false; string resourceURI = string.Format("{0}/{1}", m_cim_resourceURIBase, jobClassName);//"Xen_SystemStateChangeJob"); IWSManResourceLocator resLoc = ConvertToResourceLocator(resourceURI, jobRef); while (true) { string jobinststr = m_wsmanSession.Get(resLoc, 0); using (StringReader stream = new StringReader(jobinststr)) { XmlSerializer serializer = new XmlSerializer(jobType); Xen_Job_Type job = (Xen_Job_Type)serializer.Deserialize(stream); if ((job.JobState == 7) || (job.JobState == 10)) // 7 = complete, 10 = exception { if (job.JobState == 7) { jobComplete = true; } break; } } } return(jobComplete); }
/// <summary> /// Waits for async jobs returned by one of the CIM methods to complete /// </summary> private bool WaitForJobCompletion(Xen_Job_Reference_Type jobRef, string jobClassName, Type jobType) { bool jobComplete = false; string resourceURI = string.Format("{0}/{1}", m_cim_resourceURIBase, jobClassName);//"Xen_SystemStateChangeJob"); IWSManResourceLocator resLoc = ConvertToResourceLocator(resourceURI, jobRef); while (true) { string jobinststr = m_wsmanSession.Get(resLoc, 0); using (StringReader stream = new StringReader(jobinststr)) { XmlSerializer serializer = new XmlSerializer(jobType); Xen_Job_Type job = (Xen_Job_Type)serializer.Deserialize(stream); if ((job.JobState == 7) || (job.JobState == 10)) // 7 = complete, 10 = exception { if (job.JobState == 7) jobComplete = true; break; } } } return jobComplete; }