Пример #1
0
        public static void TraceAndThrowValidationError(FabricErrorCode fabricErrorCode, string type, string format, params object[] args)
        {
            ImageBuilder.TraceSource.WriteError(
                type,
                format,
                args);

            throw new FabricImageBuilderValidationException(
                      string.Format(CultureInfo.InvariantCulture, format, args),
                      fabricErrorCode);
        }
Пример #2
0
        /// <summary>
        /// Checks whether a specific fabric error code
        /// can be considered transient.
        /// </summary>
        /// <param name="errorCode"></param>
        /// <returns></returns>
        private bool IsTransientError(FabricErrorCode errorCode)
        {
            switch (errorCode)
            {
            case FabricErrorCode.GatewayNotReachable:
                return(true);

            case FabricErrorCode.ServiceTooBusy:
                return(true);

            default:
                return(false);
            }
        }
Пример #3
0
        public static object GetNamedPropertyValue(NamedProperty property)
        {
            ThrowIf.Null(property, "property");
            object propertyValue = null;

            // Special case GetValue calls (See Bug: 860194 for details)...
            FabricErrorCode errorCode = (FabricErrorCode)FabricClientState.HandleException(() => propertyValue = property.GetValue <object>());

            if (errorCode != 0 && errorCode != FabricErrorCode.PropertyValueEmpty)
            {
                throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "GetProperty failed with an unexpected error code {0}", errorCode));
            }

            return(propertyValue);
        }
Пример #4
0
        public static void TraceAndThrowValidationErrorWithFileName(FabricErrorCode fabricErrorCode, string type, string fileName, string format, params object[] args)
        {
            string traceErrorMessage = string.Format(CultureInfo.InvariantCulture, format, args);

            if (!string.IsNullOrEmpty(fileName))
            {
                string fileNameMessage = string.Format(CultureInfo.InvariantCulture, StringResources.ImageBuilderError_FileName, fileName);
                traceErrorMessage = string.Format(CultureInfo.InvariantCulture, "{0}\n{1}", traceErrorMessage, fileNameMessage);
            }

            ImageBuilder.TraceSource.WriteError(
                type,
                traceErrorMessage);

            throw new FabricImageBuilderValidationException(
                      string.Format(CultureInfo.InvariantCulture, format, args),
                      fileName,
                      fabricErrorCode);
        }
Пример #5
0
        private static void CallAsyncVerifyError(KtlInteropTestComponent target, FabricErrorCode begin = FabricErrorCode.Unknown, FabricErrorCode end = FabricErrorCode.Unknown)
        {
            FabricException beginException = null;
            FabricException endException   = null;

            Task task = null;

            try
            {
                task = target.OperationAsync((int)begin, (int)end);
            }
            catch (FabricException e)
            {
                beginException = e;
            }

            if (begin != FabricErrorCode.Unknown)
            {
                Assert.IsNotNull(beginException);
                Assert.AreEqual(beginException.ErrorCode, begin);
                return;
            }

            try
            {
                task.Wait();
            }
            catch (AggregateException e)
            {
                endException = e.InnerException as FabricException;
            }

            if (end != FabricErrorCode.Unknown)
            {
                Assert.IsNotNull(endException);
                Assert.AreEqual(endException.ErrorCode, end);
            }
        }
Пример #6
0
        public OperationResult <WinFabricPropertyBatchResult> ConvertToWinFabricPropertyBatchResult(uint errorCode, PropertyBatchResult batchResult)
        {
            var result = new OperationResult <WinFabricPropertyBatchResult>(errorCode);

            if (batchResult != null)
            {
                int id = this.BatchResultHolder.StoreObject(batchResult);

                FabricErrorCode indexErrorCode = 0;
                if (batchResult.FailedOperationException != null)
                {
                    if (batchResult.FailedOperationException is OperationCanceledException || batchResult.FailedOperationException is TimeoutException)
                    {
                        throw batchResult.FailedOperationException;
                    }

                    FabricException exception = batchResult.FailedOperationException as FabricException;
                    if (exception == null)
                    {
                        throw new ArgumentException("batchResult.FailedOperationException {0} should be a FabricException", batchResult.FailedOperationException);
                    }

                    indexErrorCode = exception.ErrorCode;
                }

                WinFabricPropertyBatchResult testBatch = new WinFabricPropertyBatchResult(id)
                {
                    Result = batchResult,
                    FailedOperationErrorCode = indexErrorCode,
                };

                result = FabricClientState.CreateOperationResultFromNativeErrorCode <WinFabricPropertyBatchResult>(testBatch);
            }

            return(result);
        }
 /// <summary>
 /// FabricValidationException constructor
 /// </summary>
 /// <param name="info">info</param>
 /// <param name="context">context</param>
 /// <param name="errorCode">errorCode</param>
 protected FabricValidationException(SerializationInfo info, StreamingContext context, FabricErrorCode errorCode)
     : base(info, context, errorCode)
 {
 }
 /// <summary>
 /// Constructor for FabricValidationException which takes in a message and innner exception and fabric error code
 /// </summary>
 /// <param name="message">Error message</param>
 /// <param name="inner">Inner exception</param>
 /// <param name="errorCode">Fabric error code</param>
 public FabricValidationException(string message, Exception inner, FabricErrorCode errorCode)
     : base(message, inner, errorCode)
 {
 }
 /// <summary>
 /// Constructor for FabricValidationException which takes in FabricErrorCode
 /// </summary>
 /// <param name="errorCode">FabricErrorCode for the failure</param>
 public FabricValidationException(FabricErrorCode errorCode)
     : base(errorCode)
 {
 }
 public FabricImageBuilderValidationException(string message, string fileName, Exception inner, FabricErrorCode errorCode = FabricErrorCode.ImageBuilderValidationError)
     : base(message, inner, errorCode)
 {
     this.fileName = fileName;
 }
 public FabricImageBuilderValidationException(string message, Exception inner, FabricErrorCode errorCode = FabricErrorCode.ImageBuilderValidationError)
     : this(message, string.Empty, inner, errorCode)
 {
 }