public void RunComputeCloudExceptionTests() { // Message Only var ex1 = new Rest.Azure.CloudException("Test1"); var cx1 = new ComputeCloudException(ex1); Assert.True(string.Equals(cx1.Message, ex1.Message)); Assert.True(cx1.InnerException is Rest.Azure.CloudException); Assert.True(string.Equals(cx1.InnerException.Message, ex1.Message)); // Message + Inner Exception var ex2 = new Rest.Azure.CloudException("Test2", ex1); var cx2 = new ComputeCloudException(ex2); Assert.True(string.Equals(cx2.Message, ex2.Message)); Assert.True(cx2.InnerException is Rest.Azure.CloudException); Assert.True(string.Equals(cx2.InnerException.Message, ex2.Message)); // Empty Message var ex3 = new Rest.Azure.CloudException(string.Empty); var cx3 = new ComputeCloudException(ex3); Assert.True(string.IsNullOrEmpty(cx3.Message)); Assert.True(cx3.InnerException is Rest.Azure.CloudException); Assert.True(string.IsNullOrEmpty(cx3.InnerException.Message)); // Default message is used, if 'null' passed to the constructor. var ex4 = new Rest.Azure.CloudException(null); var cx4 = new ComputeCloudException(ex4); Assert.True(!string.IsNullOrEmpty(cx4.Message)); Assert.True(cx4.InnerException is Rest.Azure.CloudException); Assert.True(!string.IsNullOrEmpty(cx4.InnerException.Message)); ComputeTestController.NewInstance.RunPsTest("Run-ComputeCloudExceptionTests"); }
protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException) { if (cloudException == null) { throw new ArgumentNullException("cloudException"); } var sb = new StringBuilder(); if (!string.IsNullOrEmpty(cloudException.Message)) { sb.Append(cloudException.Message); } if (cloudException.Response == null) { return(sb.ToString()); } if (cloudException.Response.StatusCode.Equals(HttpStatusCode.OK) && cloudException.Response.Content != null) { var errorReturned = JsonConvert.DeserializeObject <ComputeLongRunningOperationError>(cloudException.Response.Content); sb.AppendLine().AppendFormat("StartTime: {0}", errorReturned.StartTime); sb.AppendLine().AppendFormat("EndTime: {0}", errorReturned.EndTime); sb.AppendLine().AppendFormat("OperationID: {0}", errorReturned.OperationId); sb.AppendLine().AppendFormat("Status: {0}", errorReturned.Status); if (errorReturned.Error == null) { return(sb.ToString()); } sb.AppendLine().AppendFormat("ErrorCode: {0}", errorReturned.Error.Code); sb.AppendLine().AppendFormat("ErrorMessage: {0}", errorReturned.Error.Message); } else { sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode()); sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase); if (cloudException.Response.Headers == null || !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse)) { return(sb.ToString()); } var headers = cloudException.Response.Headers; var match = Regex.Match(headers.ToString(), @"x-ms-request-id: ([a-z0-9]{8}\-[a-z0-9]{4}\-[a-z0-9]{4}\-[a-z0-9]{4}\-[a-z0-9]{12})", RegexOptions.IgnoreCase); string operationId = (match.Success) ? match.Groups[1].Value : ""; sb.AppendLine().AppendFormat( "OperationID : '{0}'", operationId); } return(sb.ToString()); }
protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException) { if (cloudException == null) { throw new ArgumentNullException("cloudException"); } var sb = new StringBuilder(); if (!string.IsNullOrEmpty(cloudException.Message)) { sb.Append(cloudException.Message); } if (cloudException.Response == null) { return(sb.ToString()); } if (cloudException.Response.StatusCode.Equals(HttpStatusCode.OK) && cloudException.Response.Content != null) { var errorReturned = JsonConvert.DeserializeObject <PSComputeLongRunningOperation>( cloudException.Response.Content); sb.AppendLine().AppendFormat("StartTime: {0}", errorReturned.StartTime); sb.AppendLine().AppendFormat("EndTime: {0}", errorReturned.EndTime); sb.AppendLine().AppendFormat("OperationID: {0}", errorReturned.OperationId); sb.AppendLine().AppendFormat("Status: {0}", errorReturned.Status); if (errorReturned.Error == null) { return(sb.ToString()); } sb.AppendLine().AppendFormat("ErrorCode: {0}", errorReturned.Error.Code); sb.AppendLine().AppendFormat("ErrorMessage: {0}", errorReturned.Error.Message); } else { sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode()); sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase); if (cloudException.Response.Headers == null || !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse)) { return(sb.ToString()); } string operationId = cloudException.RequestId; sb.AppendLine().AppendFormat( "OperationID : '{0}'", operationId); } return(sb.ToString()); }
public static Rest.Azure.CloudException CreateFormattedException(this Rest.Azure.CloudException cloudException) { return(new Rest.Azure.CloudException( string.Format( CultureInfo.InvariantCulture, Resources.FormattedCloudExceptionMessageTemplate, cloudException.Response.StatusCode, cloudException.Message, cloudException.RequestId, DateTime.UtcNow))); }
protected override void WriteExceptionError(Exception exception) { // Override the default error message into a formatted message which contains Request Id Rest.Azure.CloudException cloudException = exception as Rest.Azure.CloudException; if (cloudException != null) { exception = cloudException.CreateFormattedException(); } base.WriteExceptionError(exception); }
/// <summary> /// Gets the error message with request identifier information. /// </summary> /// <param name="cloudException">The cloud exception.</param> /// <returns>System.String.</returns> protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException) { if (cloudException == null) { return(StorageSyncResources.CloudNoInformationError); } var sb = new StringBuilder(); if (!string.IsNullOrEmpty(cloudException.Message)) { sb.Append(cloudException.Message); } if (cloudException.Response == null) { return(sb.ToString()); } if (cloudException.Response.Content != null) { StorageSyncError storageSyncError = JsonConvert.DeserializeObject <StorageSyncError>(cloudException.Response.Content); if (storageSyncError.Error != null) { sb.AppendLine().AppendFormat($"{nameof(storageSyncError.Error.Code)}: {storageSyncError.Error.Code}"); sb.AppendLine().AppendFormat($"{nameof(storageSyncError.Error.Message)}: {storageSyncError.Error.Message}"); sb.AppendLine().AppendFormat($"{nameof(storageSyncError.Error.Target)}: {storageSyncError.Error.Target}"); } } if (!cloudException.Response.StatusCode.Equals(HttpStatusCode.OK)) { sb.AppendLine().AppendFormat($"{nameof(cloudException.Response.StatusCode)}: {cloudException.Response.StatusCode.GetHashCode()}"); sb.AppendLine().AppendFormat($"{nameof(cloudException.Response.ReasonPhrase)}: {cloudException.Response.ReasonPhrase}"); if (cloudException.Response.Headers == null || !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse)) { return(sb.ToString()); } sb.AppendLine().AppendFormat($"{nameof(cloudException.RequestId)} : {cloudException.RequestId}"); } return(sb.ToString()); }
protected override void WriteExceptionError(Exception exception) { // Override the default error message into a formatted message which contains Request Id Rest.Azure.CloudException cloudException = exception as Rest.Azure.CloudException; if (cloudException != null) { exception = cloudException.CreateFormattedException(); } // Override the default error message so it will include information passed from Backend Management.OperationalInsights.Models.ErrorResponseException errorException = exception as Management.OperationalInsights.Models.ErrorResponseException; if (errorException != null) { exception = new Exception(string.Format("{0}\n{1}", errorException.Message, errorException.Response.ReasonPhrase), errorException); } base.WriteExceptionError(exception); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); try { Execute(); } catch (Rest.Azure.CloudException ex) { throw new NetworkCloudException(ex); } catch (Microsoft.Azure.Management.Network.Models.ErrorException ex) { Rest.Azure.CloudException rex = NetworkResourceManagerProfile.Mapper.Map <Rest.Azure.CloudException>(ex); throw new NetworkCloudException(rex); } }
protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException) { if (cloudException == null) { return("No information in the cloud exception."); } var sb = new StringBuilder(); if (!string.IsNullOrEmpty(cloudException.Message)) { sb.Append(cloudException.Message); } if (cloudException.Response == null) { return(sb.ToString()); } if (!cloudException.Response.StatusCode.Equals(HttpStatusCode.OK)) { sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode()); sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase); if (cloudException.Response.Headers == null || !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse)) { return(sb.ToString()); } string operationId = cloudException.RequestId; sb.AppendLine().AppendFormat( "OperationID : {0}", operationId); } return(sb.ToString()); }
public ComputeCloudException(Rest.Azure.CloudException ex) : base(GetErrorMessageWithRequestIdInfo(ex), ex) { }
protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException) { if (cloudException == null) { throw new ArgumentNullException("cloudException"); } var sb = new StringBuilder(); if (!string.IsNullOrEmpty(cloudException.Message)) { sb.Append(cloudException.Message); } if (cloudException.Response != null) { sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode()); if (cloudException.Response.ReasonPhrase != null) { sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase); } if (cloudException.Response.Content != null) { var errorReturned = JsonConvert.DeserializeObject <PSNetworkLongRunningOperation>( cloudException.Response.Content); if (!string.IsNullOrEmpty(errorReturned.Status)) { sb.AppendLine().AppendFormat("Status: {0}", errorReturned.Status); } if (errorReturned.Error != null) { if (!string.IsNullOrEmpty(errorReturned.Error.Code)) { sb.AppendLine().AppendFormat("ErrorCode: {0}", errorReturned.Error.Code); } if (!string.IsNullOrEmpty(errorReturned.Error.Target)) { sb.AppendLine().AppendFormat("Target: {0}", errorReturned.Error.Target); } if (!string.IsNullOrEmpty(errorReturned.Error.Message)) { sb.AppendLine().AppendFormat("ErrorMessage: {0}", errorReturned.Error.Message); } } } } if (cloudException.Body != null && cloudException.Body.Details != null) { if (cloudException.Body.Details.Count != 0) { sb.AppendLine().Append("Additional details:"); for (int i = 0, l = cloudException.Body.Details.Count; i < l; i++) { var details = cloudException.Body.Details[i]; string index = l == 1 ? string.Empty : string.Format("{0}. ", i + 1); if (!string.IsNullOrEmpty(details.Code)) { sb.AppendLine().AppendFormat(" {0}Code: {1}", index, details.Code); } if (!string.IsNullOrEmpty(details.Message)) { sb.AppendLine().AppendFormat(" {0}Message: {1}", index, details.Message); } } } } if (!string.IsNullOrEmpty(cloudException.RequestId)) { sb.AppendLine().AppendFormat("OperationID : {0}", cloudException.RequestId); } return(sb.ToString()); }
public ResourceManagerCloudException(Rest.Azure.CloudException ex) : base(GetErrorMessageWithRequestIdInfo(ex), ex) { }
/// <summary> /// Initializes a new instance of the <see cref="StorageSyncCloudException" /> class. /// </summary> /// <param name="ex">The ex.</param> public StorageSyncCloudException(Rest.Azure.CloudException ex) : base(GetErrorMessageWithRequestIdInfo(ex), ex) { }
public MaintenanceCloudException(Rest.Azure.CloudException ex) : base(GetErrorMessageWithRequestIdInfo(ex), ex) { }