コード例 #1
0
        private FabricTestAction GetRestartCodePackageAction(RestartCodePackageStateTransitionAction ragAction)
        {
            Uri    applicationName            = ragAction.ApplicationName;
            string nodeName                   = ragAction.NodeName;
            string serviceManifest            = ragAction.ServiceManifestName;
            string servicePackageActivationId = ragAction.ServicePackageActivationId;
            string codePackageName            = ragAction.CodePackageName;

            string report = StringHelper.Format("Generating Action: {0}\n\t\tApplication: {1}\n\t\tNode: {2}\n\t\tCodePackage: {3}:{4}", ragAction.ActionType, applicationName, nodeName, serviceManifest, codePackageName);

            Log.WriteInfo(TraceType, report);
            if (this.reportFunction != null)
            {
                this.reportFunction(report);
            }

            RestartDeployedCodePackageAction restartCodePackageAction = new RestartDeployedCodePackageAction(
                nodeName,
                applicationName,
                serviceManifest,
                servicePackageActivationId,
                codePackageName,
                0);

            return(restartCodePackageAction);
        }
コード例 #2
0
        private StateTransitionAction GenerateOneRestartCodePackageAction(Guid activityId = default(Guid))
        {
            var availableCodePackages = this.stateSnapshot.GetFaultableCodePackages();

            if (availableCodePackages.Count() <= 0)
            {
                return(null);
            }

            var chosenCodePackage = availableCodePackages.ElementAt(this.Random.Next(availableCodePackages.Count()));

            TestabilityTrace.TraceSource.WriteInfo(
                this.TraceType,
                "{0}: CP:'{1}' has been chosen for RestartCodePackage.",
                activityId,
                chosenCodePackage);

            chosenCodePackage.FaultCodePackage(activityId);

            var replicaAction = new RestartCodePackageStateTransitionAction(
                chosenCodePackage.NodeName,
                chosenCodePackage.ParentApplicationEntity.Application.ApplicationName,
                chosenCodePackage.CodePackageResult.ServiceManifestName,
                chosenCodePackage.CodePackageResult.ServicePackageActivationId,
                chosenCodePackage.CodePackageResult.CodePackageName,
                this.stateSnapshot.ClusterSnapshotId);

            return(replicaAction);
        }