private static string RedirectURL(HttpResponseMessage response) { string str = response.Headers.GetValues("Location").FirstOrDefault <string>(); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.REDIRECTED_URL_MSG) + " - " + str); return(str); }
public static T GetResource <T>(string inputXml) { if (string.IsNullOrEmpty(inputXml)) { throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.NO_RESPONSE_RECEIVED_MSG)); } return(SerializationUtil.DeserializeObject <T>(inputXml, "com.vmware.vcloud.api.rest.schema")); }
public void HandleUnExpectedResponse() { string responseXml = this.ResponseXml; if (!string.IsNullOrEmpty(responseXml)) { throw new VCloudException(SerializationUtil.DeserializeObject <ErrorType>(responseXml, "com.vmware.vcloud.api.rest.schema")); } throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.NO_ERROR_MSG) + " - " + (object)this.ResponseStatusCode); }
public Metadata GetMetadata() { try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.GET_URL_MSG) + " - " + this.Reference.href + "/metadata"); return(new Metadata(this.VcloudClient, SdkUtil.Get <MetadataType>(this.VcloudClient, this.Reference.href + "/metadata", 200))); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
public bool IsExpected(int expectedStatusCode) { Exception exception = new Exception(); if (this.ResponseStatusCode == expectedStatusCode) { return(true); } Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.EXPECTED_STATUS_CODE_MSG) + " - " + (object)expectedStatusCode); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.ACTUAL_STATUS_CODE_MSG) + " - " + (object)this.ResponseStatusCode); return(false); }
protected static T GetResourceByReference(vCloudClient client, ReferenceType reference) { try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.GET_URL_MSG) + " - " + reference.href); return(SdkUtil.Get <T>(client, reference.href, 200)); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
public RecordResult <T> GetNextPage() { try { if (this.HasNextPage()) { return(this.VcloudClient.GetQueryService().ExecuteQuery <RecordResult <T>, QueryResultRecordsType, T>(this.GetNextPageReference().href)); } throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.REFERENCE_NOT_FOUND_MSG)); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
public ReferenceResult GetReferenceResult() { try { if (this.HasAlternateReferencesRefResult()) { return(this.VcloudClient.GetQueryService().ExecuteQuery <ReferenceResult, ReferencesType, T>(this.GetAlternateReferencesRef().href)); } throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.REFERENCE_NOT_FOUND_MSG)); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
public static Stream DownloadFile(vCloudClient client, string downloadURL) { HttpClient httpClient = client.HttpClient; Stream inputStream = (Stream)null; HttpStatusCode httpStatusCode = (HttpStatusCode)0; try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.DOWNLOAD_URL_MSG) + " - " + downloadURL); if (!httpClient.DefaultRequestHeaders.Contains("Accept")) { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); } if (!httpClient.DefaultRequestHeaders.Contains(client.VcloudTokenHeader)) { httpClient.DefaultRequestHeaders.Add(client.VcloudTokenHeader, client.VcloudToken); } using (HttpResponseMessage result = httpClient.GetAsync(new System.Uri(downloadURL)).Result) { if (result != null) { httpStatusCode = result.StatusCode; inputStream = (Stream) new MemoryStream(result.Content.ReadAsByteArrayAsync().Result); } Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)httpStatusCode); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message + " - " + downloadURL); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } if (httpStatusCode == HttpStatusCode.OK) { return(inputStream); } if (inputStream != null) { throw new VCloudException(SerializationUtil.DeserializeObject <ErrorType>(inputStream, "com.vmware.vcloud.api.rest.schema")); } throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.DOWNLOAD_FAILED_MSG) + " - " + downloadURL); }
public static Response Get(vCloudClient client, string url) { HttpClient httpClient = client.HttpClient; Response response = new Response(); string str = (string)null; int num = 0; try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.GET_URL_MSG) + " - " + url); if (!httpClient.DefaultRequestHeaders.Contains("Accept")) { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); } if (!httpClient.DefaultRequestHeaders.Contains(client.VcloudTokenHeader)) { httpClient.DefaultRequestHeaders.Add(client.VcloudTokenHeader, client.VcloudToken); } using (HttpResponseMessage result = httpClient.GetAsync(new System.Uri(url)).Result) { if (result != null) { num = (int)result.StatusCode; str = SerializationUtil.UTF8ByteArrayToString(result.Content.ReadAsByteArrayAsync().Result); } response.ResponseStatusCode = num; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)num); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); response.ResponseXml = str; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.RESPONSE_MSG) + " - " + str); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message + url); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } finally { httpClient.DefaultRequestHeaders.Clear(); } return(response); }
public static Response Delete(vCloudClient client, string url) { HttpClient httpClient = client.HttpClient; Response response = new Response(); string empty = string.Empty; int num = 0; try { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); httpClient.DefaultRequestHeaders.Add(client.VcloudTokenHeader, client.VcloudToken); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.DELETE_URL_MSG) + " - " + url); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Delete, url); HttpResponseMessage result; using (result = httpClient.DeleteAsync(new System.Uri(url)).Result) { if (result != null) { num = (int)result.StatusCode; empty = SerializationUtil.UTF8ByteArrayToString(result.Content.ReadAsByteArrayAsync().Result); } response.ResponseStatusCode = num; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)num); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); response.ResponseXml = empty; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.RESPONSE_MSG) + " - " + empty); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (ApplicationException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } return(response); }
protected static T GetEntityById(vCloudClient client, string vCloudId, string mediaType) { try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.GET_URL_MSG) + " - " + client.VCloudApiURL + "/entity/" + vCloudId); foreach (LinkType linkType in SdkUtil.Get <EntityType>(client, client.VCloudApiURL + "/entity/" + vCloudId, 200).Link) { if (linkType.type.Equals(mediaType)) { return(SdkUtil.Get <T>(client, linkType.href, 200)); } } throw new VCloudException(SdkUtil.GetI18nString(SdkMessage.REFERENCE_NOT_FOUND_MSG)); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
internal static Response GetSupportedVersions(vCloudClient client, string url) { HttpClient httpClient = client.HttpClient; Response response = new Response(); string str = (string)null; int num = 0; try { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.GET_SUPPORTED_VERSIONS_URL_MSG) + " - " + url); using (HttpResponseMessage result = httpClient.GetAsync(new System.Uri(url)).Result) { if (result != null) { num = (int)result.StatusCode; str = SerializationUtil.UTF8ByteArrayToString(result.Content.ReadAsByteArrayAsync().Result); } response.ResponseStatusCode = num; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)num); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); response.ResponseXml = str; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.RESPONSE_MSG) + " - " + str); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message + url); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } return(response); }
public static Response Put( vCloudClient client, string url, string content, string contentType, string charset) { HttpClient httpClient = client.HttpClient; Response response = new Response(); string str = (string)null; int num = 0; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.PUT_URL_MSG) + " - " + url); try { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); httpClient.DefaultRequestHeaders.Add(client.VcloudTokenHeader, client.VcloudToken); HttpContent content1 = (HttpContent)null; if (content != null && content.Length > 0 && (contentType != null && contentType.Length > 0)) { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.PUT_REQUEST_BODY) + " - " + content); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.PUT_CONTENT_TYPE) + " - " + contentType); content1 = (HttpContent) new StringContent(content, Encoding.UTF8, contentType); } HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, url); HttpResponseMessage httpResponseMessage1; HttpResponseMessage httpResponseMessage2; if (content1 != null) { httpResponseMessage2 = httpResponseMessage1 = httpClient.PutAsync(new System.Uri(url), content1).Result; } else { httpResponseMessage1 = httpResponseMessage2 = httpClient.SendAsync(request).Result; } using (httpResponseMessage2) { if (httpResponseMessage1 != null) { num = (int)httpResponseMessage1.StatusCode; str = SerializationUtil.UTF8ByteArrayToString(httpResponseMessage1.Content.ReadAsByteArrayAsync().Result); } response.ResponseStatusCode = num; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)num); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + httpResponseMessage1.StatusCode.ToString()); response.ResponseXml = str; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.RESPONSE_MSG) + " - " + str); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (ApplicationException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } finally { httpClient.DefaultRequestHeaders.Clear(); } return(response); }
private static void UploadFile( vCloudClient client, string fileName, string fileURL, Stream inputStreams, long size, long startByte, long endByte) { HttpClient httpClient = client.HttpClient; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.UPLOAD_FILE_SIZE_MSG) + " - " + fileName + "\t Total Size " + (object)size); try { long num = size; HttpContent httpContent = (HttpContent) new StreamContent(inputStreams); if (endByte > startByte) { num = endByte - startByte + 1L; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.UPLOAD_FILE_SIZE_MSG) + " - " + fileName + "\t" + (object)size + "\t Upload \t" + (object)startByte + " to \t" + (object)endByte); ContentRangeHeaderValue rangeHeaderValue = new ContentRangeHeaderValue(startByte, endByte, size); httpContent.Headers.ContentRange = rangeHeaderValue; } httpContent.Headers.ContentLength = new long?(num); if (!httpClient.DefaultRequestHeaders.Contains(client.VcloudTokenHeader)) { httpClient.DefaultRequestHeaders.Add(client.VcloudTokenHeader, client.VcloudToken); } HttpContent content = (HttpContent) new StreamContent(inputStreams); using (HttpResponseMessage result = httpClient.PutAsync(new System.Uri(fileURL), content).Result) { if (result == null) { return; } string message = SerializationUtil.UTF8ByteArrayToString(result.Content.ReadAsByteArrayAsync().Result); if (result.StatusCode == HttpStatusCode.OK) { Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.UPLOAD_COMPLETE_MSG) + " - " + fileName); } else { Logger.Log(TraceLevel.Critical, SdkUtil.GetI18nString(SdkMessage.UPLOAD_FAILED_MSG) + " - " + fileURL); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); Logger.Log(TraceLevel.Information, message); Logger.Log(TraceLevel.Critical, SdkUtil.GetI18nString(SdkMessage.FILE_UPLOAD_FAILED_MSG) + " - " + fileURL); } } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, SdkUtil.GetI18nString(SdkMessage.HTTP_EXCEPTION__UPLOADING_MSG) + " - " + fileURL); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, SdkUtil.GetI18nString(SdkMessage.IO_EXCEPTION_UPLOADING_MSG) + " - " + fileURL); throw new VCloudRuntimeException((Exception)ex); } finally { inputStreams.Dispose(); httpClient.DefaultRequestHeaders.Clear(); } }
internal static Response Login( vCloudClient client, string url, HttpRequestHeaders authHeader) { HttpClient httpClient = client.HttpClient; Response response = new Response(); string str = (string)null; int num = 0; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.LOGIN_URL_MSG) + " - " + url); try { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); HttpRequestMessage request1 = new HttpRequestMessage(HttpMethod.Post, url); HttpResponseMessage result; using (result = httpClient.SendAsync(request1).Result) { if (result != null) { if (result.StatusCode == HttpStatusCode.MovedPermanently) { if (!httpClient.DefaultRequestHeaders.Contains("Accept")) { httpClient.DefaultRequestHeaders.Add("Accept", vCloudClient.SUPPORTED_SDK_VERSIONS[client.VcloudClientVersion]); } System.Uri uri = new System.Uri(RestUtil.RedirectURL(result)); HttpRequestMessage request2 = (HttpRequestMessage)null; request2.RequestUri.MakeRelativeUri(uri); result = httpClient.SendAsync(request2).Result; } if (result.Headers.GetValues("x-vcloud-authorization") != null) { client.VcloudTokenHeader = "x-vcloud-authorization"; client.VcloudToken = result.Headers.GetValues("x-vcloud-authorization").FirstOrDefault <string>(); } num = (int)result.StatusCode; str = SerializationUtil.UTF8ByteArrayToString(result.Content.ReadAsByteArrayAsync().Result); } response.ResponseStatusCode = num; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_CODE_MSG) + " - " + (object)num); Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.STATUS_MSG) + " - " + result.StatusCode.ToString()); response.ResponseXml = str; Logger.Log(TraceLevel.Information, SdkUtil.GetI18nString(SdkMessage.RESPONSE_MSG) + " - " + str); } } catch (HttpRequestException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (NotSupportedException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (IOException ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException((Exception)ex); } catch (Exception ex) { Logger.Log(TraceLevel.Critical, ex.Message); throw new VCloudRuntimeException(ex); } finally { httpClient.DefaultRequestHeaders.Clear(); } return(response); }