public override void ClearInfo()
        {
            PartitionSelector    ps   = this.Info.PartitionSelector;
            RestartPartitionMode mode = this.Info.RestartPartitionMode;

            this.Info = new RestartPartitionInfo(ps, mode);
        }
 private static void ThrowIfRestartPartitionModeInvalid(RestartPartitionMode restartPartitionMode)
 {
     if (restartPartitionMode == RestartPartitionMode.Invalid)
     {
         throw FaultAnalysisServiceUtility.CreateException(TraceType, Interop.NativeTypes.FABRIC_ERROR_CODE.E_INVALIDARG, Strings.StringResources.Error_UnsupportedRestartPartitionMode);
     }
 }
        public RestartPartitionInfo(PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode)
        {
            this.PartitionSelector    = partitionSelector;
            this.RestartPartitionMode = restartPartitionMode;

            // This is a default value and will be overwritten when the command executes.  The default value is not used during the command.
            this.NodeName = "UNKNOWNNODE";
            this.UnreliableTransportInfo = new List <Tuple <string, string> >();
        }
 public RestartPartitionDescription(
     Guid operationId,
     PartitionSelector partitionSelector,
     RestartPartitionMode restartPartitionMode)
 {
     Requires.Argument <Guid>("operationId", operationId).NotNull();
     this.OperationId          = operationId;
     this.PartitionSelector    = partitionSelector;
     this.RestartPartitionMode = restartPartitionMode;
 }
 public RestartPartitionAction(PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode)
 {
     this.PartitionSelector    = partitionSelector;
     this.RestartPartitionMode = restartPartitionMode;
 }
 public RestartPartitionState(Guid operationId, ServiceInternalFaultInfo serviceInternalFaultInfo, PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode)
     : base(operationId, ActionType.RestartPartition, serviceInternalFaultInfo)
 {
     this.Info = new RestartPartitionInfo(partitionSelector, restartPartitionMode);
 }
        public StartPartitionRestartRequest(IFabricClient fabricClient, Guid operationId, PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode, TimeSpan timeout)
            : base(fabricClient, timeout)
        {
            this.OperationId          = operationId;
            this.PartitionSelector    = partitionSelector;
            this.RestartPartitionMode = restartPartitionMode;

            this.RetryErrorCodes.Add((uint)NativeTypes.FABRIC_ERROR_CODE.FABRIC_E_NOT_READY);
            this.RetryErrorCodes.Add((uint)NativeTypes.FABRIC_ERROR_CODE.FABRIC_E_RECONFIGURATION_PENDING);

            this.SucceedErrorCodes.Add((uint)NativeTypes.FABRIC_ERROR_CODE.FABRIC_E_TEST_COMMAND_OPERATION_ID_ALREADY_EXISTS);
        }
Example #8
0
        public RestartPartitionAction(IReliableStateManager stateManager, IStatefulServicePartition partition, RestartPartitionState state, PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode, TimeSpan requestTimeout, TimeSpan operationTimeout)
            : base(stateManager, partition, state, requestTimeout, operationTimeout)
        {
            ThrowIf.Null(partitionSelector, "partitionSelector");

            this.PartitionSelector    = partitionSelector;
            this.RestartPartitionMode = restartPartitionMode;
        }
 public LookingUpStep(FabricClient fabricClient, RestartPartitionState state, TimeSpan requestTimeout, TimeSpan operationTimeout, PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode)
     : base(fabricClient, state, requestTimeout, operationTimeout)
 {
     this.partitionSelector    = partitionSelector;
     this.restartPartitionMode = restartPartitionMode;
 }
 public RestartingSelectedReplicas(FabricClient fabricClient, RestartPartitionState state, TimeSpan requestTimeout, TimeSpan operationTimeout, RestartPartitionMode restartPartitionMode)
     : base(fabricClient, state, requestTimeout, operationTimeout)
 {
     this.restartPartitionMode = restartPartitionMode;
 }
        // Use this method signature for now until the actual client interface is decided
        public async Task ProcessRestartPartitionCommandAsync(Guid operationId, PartitionSelector partitionSelector, RestartPartitionMode restartPartitionMode, TimeSpan timeout, ServiceInternalFaultInfo serviceInternalFaultInfo)
        {
            ThrowIfRestartPartitionModeInvalid(restartPartitionMode);

            RestartPartitionState actionState = new RestartPartitionState(operationId, serviceInternalFaultInfo, partitionSelector, restartPartitionMode);

            try
            {
                // After this call finishes the intent has been persisted
                await this.actionStore.InitializeNewActionAsync(actionState, timeout);

                this.Enqueue(actionState);
            }
            catch (Exception e)
            {
                TestabilityTrace.TraceSource.WriteWarning(TraceType, "{0} - Exception {1}", operationId, e);
                throw;
            }
        }