예제 #1
0
        private static MockManagementNotificationContext GetNotification(
            string jobId,
            int ud,
            string[] instancesAndReasons,
            JobType jobType)
        {
            var impactedInstances = new List <ImpactedInstance>();

            if (instancesAndReasons != null)
            {
                for (int i = 0; i < instancesAndReasons.Length - 1; i += 2)
                {
                    var instance     = instancesAndReasons[i];
                    var impactReason = (ImpactReason)Enum.Parse(typeof(ImpactReason), instancesAndReasons[i + 1]);

                    var impactedInstance = new ImpactedInstance(instance, new List <ImpactReason> {
                        impactReason
                    });
                    impactedInstances.Add(impactedInstance);
                }
            }

            var notification = new MockManagementNotificationContext
            {
                ActiveJobId           = jobId ?? Guid.NewGuid().ToString(),
                ActiveJobType         = jobType,
                ActiveJobStepTargetUD = ud,
                ImpactedInstances     = impactedInstances,
                NotificationType      = NotificationType.StartJobStep,
            };

            return(notification);
        }
예제 #2
0
        public void ImpactToString()
        {
            var impact = new MockImpactDetail()
            {
                ComputeImpact = ResourceImpactEnum.None,
                DiskImpact    = ResourceImpactEnum.Freeze,
                NetworkImpact = ResourceImpactEnum.Reset,
                OsImpact      = ResourceImpactEnum.Unknown,
                EstimatedImpactDurationInSeconds = 42,
            };

            var instance = new ImpactedInstance(
                "Role_IN_42",
                new[] { ImpactReason.ApplicationUpdate, ImpactReason.OSUpdate },
                impact);

            Verify.AreEqual(
                "Role_IN_42[ApplicationUpdate,OSUpdate][Compute=None,Disk=Freeze,Network=Reset,OS=Unknown,Duration=42]",
                instance.ToString());

            instance = new ImpactedInstance(
                "Role_IN_42",
                new[] { ImpactReason.ApplicationUpdate, ImpactReason.OSUpdate },
                null);

            Verify.AreEqual(
                "Role_IN_42[ApplicationUpdate,OSUpdate]",
                instance.ToString());

            instance = new ImpactedInstance(
                "Role_IN_42",
                new ImpactReason[0],
                impact);

            Verify.AreEqual(
                "Role_IN_42[][Compute=None,Disk=Freeze,Network=Reset,OS=Unknown,Duration=42]",
                instance.ToString());
        }