Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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;
            }
        }