public async Task UpdatePolicyAsync(JobBlockingPolicy newBlockingPolicy) { // no write-conflict handling here. we just throw the exception for callers to handle await versionedPropertyStore .UpdateValueAsync(Guid.NewGuid(), PolicyPropertyName, PolicyVersionName, newBlockingPolicy.ToString()) .ConfigureAwait(false); }
private bool IsBlocked(JobBlockingPolicy policy, IMappedTenantJob mappedTenantJob) { var job = mappedTenantJob.TenantJob; switch (policy) { case JobBlockingPolicy.BlockNone: return(false); case JobBlockingPolicy.BlockAllJobs: case JobBlockingPolicy.BlockAllNewJobs: return(true); case JobBlockingPolicy.BlockNewMaintenanceJob: return(job.IsRepairJobType()); case JobBlockingPolicy.BlockNewUpdateJob: return(job.IsUpdateJobType()); case JobBlockingPolicy.BlockNewImpactfulTenantUpdateJobs: return(job.IsTenantUpdateJobType() && (mappedTenantJob.ImpactedNodeCount > 0)); case JobBlockingPolicy.BlockNewImpactfulPlatformUpdateJobs: return(job.IsPlatformUpdateJobType() && (mappedTenantJob.ImpactedNodeCount > 0)); case JobBlockingPolicy.BlockNewImpactfulUpdateJobs: return(job.IsUpdateJobType() && (mappedTenantJob.ImpactedNodeCount > 0)); } traceType.WriteError("Invalid value for job blocking policy. Not approving any job till this is resolved. Policy: {0}", policy); return(true); }
public Task UpdatePolicyAsync(JobBlockingPolicy newBlockingPolicy) { Policy = newBlockingPolicy; return(Task.FromResult(0)); }
public MockJobBlockingPolicyManager() { Policy = JobBlockingPolicy.BlockNone; }