Ejemplo n.º 1
0
        public ActionResult <UpdateSessionResponse> Update([FromBody] UpdateSessionRequest request)
        {
            request.CommanderID = User.GetUserId();
            var result = _sessionService.Update(request);

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Updates the session identified by the session ID. A bastion session lets authorized users connect to a target resource for a predetermined amount of time.
        /// </summary>
        /// <param name="request">The request object containing the details to send. Required.</param>
        /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param>
        /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param>
        /// <returns>A response object containing details about the completed operation</returns>
        /// <example>Click <a href="https://docs.cloud.oracle.com/en-us/iaas/tools/dot-net-examples/latest/bastion/UpdateSession.cs.html">here</a> to see an example of how to use UpdateSession API.</example>
        public async Task <UpdateSessionResponse> UpdateSession(UpdateSessionRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default)
        {
            logger.Trace("Called updateSession");
            Uri                uri            = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/sessions/{sessionId}".Trim('/')));
            HttpMethod         method         = new HttpMethod("PUT");
            HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request);

            requestMessage.Headers.Add("Accept", "application/json");
            GenericRetrier      retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration);
            HttpResponseMessage responseMessage;

            try
            {
                if (retryingClient != null)
                {
                    responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken).ConfigureAwait(false);
                }
                else
                {
                    responseMessage = await this.restClient.HttpSend(requestMessage).ConfigureAwait(false);
                }
                this.restClient.CheckHttpResponseMessage(requestMessage, responseMessage);

                return(Converter.FromHttpResponseMessage <UpdateSessionResponse>(responseMessage));
            }
            catch (Exception e)
            {
                logger.Error($"UpdateSession failed with error: {e.Message}");
                throw;
            }
        }
Ejemplo n.º 3
0
        public async Task <UpdateSessionResponse> Update(UpdateSessionRequest request)
        {
            var source = new CancellationTokenSource();
            var result = SessionRegistryResult.Ok;

            source.CancelAfter(SessionLockTimeoutDuration);

            var session = request.Session;
            var @lock   = await _locker.AcquireAsync(session.Account.ToString(), cancellationToken : source.Token);

            if (@lock != null)
            {
                var timeout = DateTime.UtcNow.Add(SessionTimeoutDuration);

                if (!await _sessionAccountCache.ExistsAsync(request.Session.Account.ToString()))
                {
                    result = SessionRegistryResult.FailedNotStarted;
                }

                if (result == SessionRegistryResult.Ok)
                {
                    if (request.Session.State == SessionState.Offline)
                    {
                        await _sessionAccountCache.RemoveAsync(session.Account.ToString());

                        if (session.Character.HasValue)
                        {
                            await _sessionCharacterCache.RemoveAsync(session.Character.ToString());
                        }
                    }
                    else
                    {
                        await _sessionAccountCache.SetAsync(session.Account.ToString(), session, timeout);

                        if (session.Character.HasValue)
                        {
                            await _sessionCharacterCache.SetAsync(session.Character.Value.ToString(), session, timeout);
                        }
                    }
                }

                await @lock.ReleaseAsync();
            }
            else
            {
                result = SessionRegistryResult.FailedTimeout;
            }

            return(new UpdateSessionResponse {
                Result = result
            });
        }
        public async Task <Session> UpdateSessionAsync(string id, string newName, bool?access, bool?notifications, string newOwnerEmail, string newStatus, DateTime?newEndDate)
        {
            var req = new UpdateSessionRequest
            {
                Name           = newName,
                Restricted     = access,
                Notification   = notifications,
                OwnerEmailOrId = newOwnerEmail,
                SessionEndDate = newEndDate,
                Status         = newStatus
            };

            var response = await Put <UpdateSessionRequest, Session>($"sessions/{id}", req);

            return(response);
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            UpdateSessionRequest request;

            try
            {
                request = new UpdateSessionRequest
                {
                    SessionId            = SessionId,
                    UpdateSessionDetails = UpdateSessionDetails,
                    IfMatch      = IfMatch,
                    OpcRequestId = OpcRequestId
                };

                response = client.UpdateSession(request).GetAwaiter().GetResult();
                WriteOutput(response, response.Session);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }