Beispiel #1
0
        private static NodeRepairImpactDescription GetImpactFromDetails(ITenantJob tenantJob, CoordinatorEnvironment environment)
        {
            environment.Validate("environment");

            var translator = new ImpactTranslator(environment);
            var impact     = new NodeRepairImpactDescription();

            if (tenantJob.JobStep == null || tenantJob.JobStep.CurrentlyImpactedRoleInstances == null)
            {
                return(impact);
            }

            foreach (var roleInstance in tenantJob.JobStep.CurrentlyImpactedRoleInstances)
            {
                string nodeName = roleInstance.RoleInstanceName.TranslateRoleInstanceToNodeName();

                NodeImpactLevel impactLevel = translator.TranslateImpactDetailToNodeImpactLevel(
                    tenantJob.ImpactDetail.ImpactAction,
                    roleInstance.ExpectedImpact);

                if (impactLevel != NodeImpactLevel.None)
                {
                    var nodeImpact = new NodeImpact(nodeName, impactLevel);
                    impact.ImpactedNodes.Add(nodeImpact);
                }
            }

            return(impact);
        }
Beispiel #2
0
 /// <summary>
 /// Serializes the object to JSON.
 /// </summary>
 /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param>
 /// <param name="obj">The object to serialize to JSON.</param>
 internal static void Serialize(JsonWriter writer, NodeImpact obj)
 {
     // Required properties are always serialized, optional properties are serialized when not null.
     writer.WriteStartObject();
     writer.WriteProperty(obj.NodeName, "NodeName", JsonWriterExtensions.WriteStringValue);
     writer.WriteProperty(obj.ImpactLevel, "ImpactLevel", ImpactLevelConverter.Serialize);
     writer.WriteEndObject();
 }
Beispiel #3
0
 private static WinFabricNodeImpact Convert(NodeImpact nodeImpact)
 {
     ThrowIf.Null(nodeImpact, "nodeImpact");
     return(new WinFabricNodeImpact()
     {
         NodeName = nodeImpact.NodeName,
         ImpactLevel = Convert(nodeImpact.ImpactLevel)
     });
 }