private void SendNewJobStep(PolicyAgentRequest request) { foreach (JobStepResponse jobStepResponse in request.JobResponse.JobStepResponses) { Guid guid = jobStepResponse.JobId.ToGuid(); var id = guid; MockTenantJob tenantJob = (MockTenantJob)GetTenantJob(id); tenantJob.JobStep = TenantJobHelper.CreateNewJobStepInfo(1, new List <string> { "Role_IN_2", "Role_IN_3" }); // update job after it does its job, so that IS gets it again when it polls for it. UpdateTenantJob(tenantJob); } }
protected void SendImpactEnd(PolicyAgentRequest request) { foreach (JobStepResponse jobStepResponse in request.JobResponse.JobStepResponses) { Guid guid = jobStepResponse.JobId.ToGuid(); var id = guid; MockTenantJob tenantJob = (MockTenantJob)GetTenantJob(id); TakeSomeActionOnJob(tenantJob); ((MockJobStepInfo)tenantJob.JobStep).ImpactStep = ImpactStepEnum.ImpactEnd; ((MockJobStepInfo)tenantJob.JobStep).AcknowledgementStatus = AcknowledgementStatusEnum.WaitingForAcknowledgement; // update job after it does its job, so that IS gets it again when it polls for it. UpdateTenantJob(tenantJob); } }
public static ITenantJob CreateNewTenantJob( ImpactActionEnum impactAction = ImpactActionEnum.TenantUpdate, uint ud = 0, List <string> roleInstances = null, string context = null) { var impactedResources = new AffectedResourceImpact { ListOfImpactTypes = new List <ImpactTypeEnum> { ImpactTypeEnum.Reboot } }; if (roleInstances == null) { roleInstances = new List <string> { "Role_IN_0", "Role_IN_1" }; } var tenantJob = new MockTenantJob(Guid.NewGuid()) { JobStep = CreateNewJobStepInfo(ud, roleInstances), ImpactDetail = new MockImpactInfo { ImpactAction = impactAction, ImpactedResources = impactedResources }, JobStatus = JobStatusEnum.Executing, }; if (context != null) { // the explicit null check is to signify that the context should not be added for jobs like platformupdate etc. tenantJob.ContextStringGivenByTenant = context; } tenantJob.RoleInstancesToBeImpacted = tenantJob.JobStep.CurrentlyImpactedRoleInstances.Select(e => e.RoleInstanceName).ToList(); return(tenantJob); }
public void BasicTest() { var job = new MockTenantJob(); job.JobStatus = (JobStatusEnum)999; Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Pending; Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); configStore.UpdateKey( configSection.Name, "Azure.JobClassifier.JobStatusCategory.Pending", "Inactive"); Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Alerted; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Cancelled; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Completed; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Failed; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Suspended; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); job.JobStatus = JobStatusEnum.Executing; // Unknown because JobStep is null Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); var jobStep = new MockJobStepInfo(); job.JobStep = jobStep; jobStep.ImpactStep = ImpactStepEnum.Default; // Unknown because of impact step Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); jobStep.ImpactStep = (ImpactStepEnum)999; // Unknown because of impact step Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); jobStep.ImpactStep = ImpactStepEnum.ImpactStart; jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.WaitingForAcknowledgement; Assert.AreEqual(JobPhase.ImpactStartWaitingForAck, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Acknowledged; Assert.AreEqual(JobPhase.ImpactStartAcked, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Timedout; Assert.AreEqual(JobPhase.ImpactStartAcked, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Alerted; Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); configStore.UpdateKey( configSection.Name, "Azure.JobClassifier.ImpactStartAcknowledgementStatusAlerted", "Inactive"); Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = (AcknowledgementStatusEnum)999; Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); jobStep.ImpactStep = ImpactStepEnum.ImpactEnd; jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.WaitingForAcknowledgement; Assert.AreEqual(JobPhase.ImpactEndWaitingForAck, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Acknowledged; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Timedout; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.Alerted; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); jobStep.AcknowledgementStatus = (AcknowledgementStatusEnum)999; Assert.AreEqual(JobPhase.Unknown, jobClassifier.GetJobPhase(job)); // Compare versions configStore.ClearKeys(); job.JobStatus = JobStatusEnum.Failed; jobStep.ImpactStep = ImpactStepEnum.ImpactEnd; jobStep.AcknowledgementStatus = AcknowledgementStatusEnum.WaitingForAcknowledgement; Assert.AreEqual(JobPhase.Inactive, jobClassifier.GetJobPhase(job)); configStore.UpdateKey( configSection.Name, "Azure.JobClassifier.Version", "1"); Assert.AreEqual(JobPhase.ImpactEndWaitingForAck, jobClassifier.GetJobPhase(job)); }