internal void close() { UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Scheme = properties[SFSessionProperty.SCHEME]; uriBuilder.Host = properties[SFSessionProperty.HOST]; uriBuilder.Port = Int32.Parse(properties[SFSessionProperty.PORT]); uriBuilder.Path = SF_SESSION_PATH; var queryString = HttpUtility.ParseQueryString(string.Empty); queryString[SF_QUERY_SESSION_DELETE] = "true"; queryString[SF_QUERY_REQUEST_ID] = Guid.NewGuid().ToString(); uriBuilder.Query = queryString.ToString(); SFRestRequest closeSessionRequest = new SFRestRequest(); closeSessionRequest.jsonBody = null; closeSessionRequest.uri = uriBuilder.Uri; closeSessionRequest.authorizationToken = String.Format(SF_AUTHORIZATION_SNOWFLAKE_FMT, sessionToken); JObject response = restRequest.post(closeSessionRequest); NullDataResponse deleteSessionResponse = response.ToObject <NullDataResponse>(); if (!deleteSessionResponse.success) { logger.WarnFormat("Failed to delete session, error ignored. Code: {0} Message: {0}", deleteSessionResponse.code, deleteSessionResponse.message); } }
internal void cancel() { if (this.requestId == null) { logger.Info("No query to be cancelled."); return; } UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Scheme = sfSession.properties[SFSessionProperty.SCHEME]; uriBuilder.Host = sfSession.properties[SFSessionProperty.HOST]; uriBuilder.Port = Int32.Parse(sfSession.properties[SFSessionProperty.PORT]); uriBuilder.Path = SF_QUERY_CANCEL_PATH; var queryString = HttpUtility.ParseQueryString(string.Empty); queryString[SF_QUERY_REQUEST_ID] = Guid.NewGuid().ToString(); uriBuilder.Query = queryString.ToString(); QueryCancelRequest postBody = new QueryCancelRequest() { requestId = this.requestId }; SFRestRequest cancelRequest = new SFRestRequest(); cancelRequest.uri = uriBuilder.Uri; cancelRequest.authorizationToken = String.Format(SF_AUTHORIZATION_SNOWFLAKE_FMT, sfSession.sessionToken); cancelRequest.jsonBody = postBody; NullDataResponse cancelResponse = restRequest.post(cancelRequest).ToObject <NullDataResponse>(); if (cancelResponse.success) { logger.Info("Query cancellation succeed"); } else { SnowflakeDbException e = new SnowflakeDbException( "", cancelResponse.code, cancelResponse.message, ""); logger.Error("Query cancellation failed.", e); throw e; } }
internal void renewSession() { UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Scheme = properties[SFSessionProperty.SCHEME]; uriBuilder.Host = properties[SFSessionProperty.HOST]; uriBuilder.Port = Int32.Parse(properties[SFSessionProperty.PORT]); uriBuilder.Path = SF_TOKEN_REQUEST_PATH; var queryString = HttpUtility.ParseQueryString(string.Empty); queryString[SF_QUERY_REQUEST_ID] = Guid.NewGuid().ToString(); uriBuilder.Query = queryString.ToString(); RenewSessionRequest postBody = new RenewSessionRequest() { oldSessionToken = this.sessionToken, requestType = "RENEW" }; SFRestRequest renewSessionRequest = new SFRestRequest(); renewSessionRequest.jsonBody = postBody; renewSessionRequest.uri = uriBuilder.Uri; renewSessionRequest.authorizationToken = String.Format(SF_AUTHORIZATION_SNOWFLAKE_FMT, masterToken); renewSessionRequest.sfRestRequestTimeout = -1; JObject response = restRequest.post(renewSessionRequest); NullDataResponse sessionRenewResponse = response.ToObject <NullDataResponse>(); if (!sessionRenewResponse.success) { SnowflakeDbException e = new SnowflakeDbException("", sessionRenewResponse.code, sessionRenewResponse.message, ""); logger.Error("Renew session failed", e); throw e; } }