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); }
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); }