Exemple #1
0
        /// <summary>
        /// Initiates the asynchronous execution of the ListStacks operation.
        /// <seealso cref="Amazon.CloudFormation.IAmazonCloudFormation.ListStacks"/>
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListStacks operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <ListStacksResponse> ListStacksAsync(ListStacksRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new ListStacksRequestMarshaller();
            var unmarshaller = ListStacksResponseUnmarshaller.GetInstance();

            return(Invoke <IRequest, ListStacksRequest, ListStacksResponse>(request, marshaller, unmarshaller, signer, cancellationToken));
        }
Exemple #2
0
        internal ListStacksResponse ListStacks(ListStacksRequest request)
        {
            var marshaller   = new ListStacksRequestMarshaller();
            var unmarshaller = ListStacksResponseUnmarshaller.Instance;

            return(Invoke <ListStacksRequest, ListStacksResponse>(request, marshaller, unmarshaller));
        }
        /// <summary>
        /// <para> Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that
        /// have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks
        /// is returned (including existing stacks and stacks that have been deleted). </para>
        /// </summary>
        ///
        /// <param name="listStacksRequest">Container for the necessary parameters to execute the ListStacks service method on
        ///           AmazonCloudFormation.</param>
        ///
        /// <returns>The response from the ListStacks service method, as returned by AmazonCloudFormation.</returns>
        ///
        public ListStacksResponse ListStacks(ListStacksRequest listStacksRequest)
        {
            IRequest <ListStacksRequest> request  = new ListStacksRequestMarshaller().Marshall(listStacksRequest);
            ListStacksResponse           response = Invoke <ListStacksRequest, ListStacksResponse> (request, this.signer, ListStacksResponseUnmarshaller.GetInstance());

            return(response);
        }
Exemple #4
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            ListStacksRequest request;

            try
            {
                request = new ListStacksRequest
                {
                    OpcRequestId   = OpcRequestId,
                    CompartmentId  = CompartmentId,
                    Id             = Id,
                    LifecycleState = LifecycleState,
                    DisplayName    = DisplayName,
                    SortBy         = SortBy,
                    SortOrder      = SortOrder,
                    Limit          = Limit,
                    Page           = Page
                };
                IEnumerable <ListStacksResponse> responses = GetRequestDelegate().Invoke(request);
                foreach (var item in responses)
                {
                    response = item;
                    WriteOutput(response, response.Items, true);
                }
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
Exemple #5
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonCloudFormationConfig config = new AmazonCloudFormationConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonCloudFormationClient client = new AmazonCloudFormationClient(creds, config);

            ListStacksResponse resp = new ListStacksResponse();

            do
            {
                ListStacksRequest req = new ListStacksRequest
                {
                    NextToken = resp.NextToken
                };

                resp = client.ListStacks(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.StackSummaries)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
        public static List <Stack> GetActiveStacks()
        {
            AmazonCloudFormationClient client            = new AmazonCloudFormationClient(RegionEndpoint.USEast1);
            ListStacksRequest          listStacksRequest = new ListStacksRequest();

            listStacksRequest.StackStatusFilter.Add("CREATE_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("CREATE_FAILED");
            listStacksRequest.StackStatusFilter.Add("CREATE_COMPLETE");
            listStacksRequest.StackStatusFilter.Add("ROLLBACK_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("ROLLBACK_FAILED");
            listStacksRequest.StackStatusFilter.Add("ROLLBACK_COMPLETE");
            listStacksRequest.StackStatusFilter.Add("DELETE_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("DELETE_FAILED");
            listStacksRequest.StackStatusFilter.Add("UPDATE_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("UPDATE_COMPLETE_CLEANUP_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("UPDATE_COMPLETE");
            listStacksRequest.StackStatusFilter.Add("UPDATE_ROLLBACK_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("UPDATE_ROLLBACK_FAILED");
            listStacksRequest.StackStatusFilter.Add("UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS");
            listStacksRequest.StackStatusFilter.Add("UPDATE_ROLLBACK_COMPLETE");

            var response = client.ListStacks(listStacksRequest);

            List <Stack> returnValue = new List <Stack>();

            response.StackSummaries.ForEach(s => returnValue.Add(new Stack(s.StackName)));

            return(returnValue);
        }
Exemple #7
0
        /// <summary>
        /// Initiates the asynchronous execution of the ListStacks operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListStacks operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <ListStacksResponse> ListStacksAsync(ListStacksRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new ListStacksRequestMarshaller();
            var unmarshaller = ListStacksResponseUnmarshaller.Instance;

            return(InvokeAsync <ListStacksRequest, ListStacksResponse>(request, marshaller,
                                                                       unmarshaller, cancellationToken));
        }
Exemple #8
0
        ListStacksResponse GetStackSummaries(string nextToken = null)
        {
            ListStacksResponse result = null;

            using (AmazonCloudFormationClient CFclient = new AmazonCloudFormationClient())
            {
                ListStacksRequest rq = new ListStacksRequest();
                rq.NextToken = nextToken;
                result       = CFclient.ListStacks(rq);
            }

            return(result);
        }
Exemple #9
0
        /// <summary>
        /// <para>Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that
        /// have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks
        /// is returned (including existing stacks and stacks that have been deleted).</para>
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListStacks service method on
        /// AmazonCloudFormation.</param>
        ///
        /// <returns>The response from the ListStacks service method, as returned by AmazonCloudFormation.</returns>
        public ListStacksResponse ListStacks(ListStacksRequest request)
        {
            var task = ListStacksAsync(request);

            try
            {
                return(task.Result);
            }
            catch (AggregateException e)
            {
                ExceptionDispatchInfo.Capture(e.InnerException).Throw();
                return(null);
            }
        }
 /// <summary>
 /// Creates a new enumerable which will iterate over the responses received from the ListStacks operation. This enumerable
 /// will fetch more data from the server as needed.
 /// </summary>
 /// <param name="request">The request object containing the details to send</param>
 /// <param name="retryConfiguration">The configuration for retrying, may be null</param>
 /// <param name="cancellationToken">The cancellation token object</param>
 /// <returns>The enumerator, which supports a simple iteration over a collection of a specified type</returns>
 public IEnumerable <ListStacksResponse> ListStacksResponseEnumerator(ListStacksRequest request, Common.Retry.RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default)
 {
     return(new Common.Utils.ResponseEnumerable <ListStacksRequest, ListStacksResponse>(
                response => response.OpcNextPage,
                input =>
     {
         if (!string.IsNullOrEmpty(input))
         {
             request.Page = input;
         }
         return request;
     },
                request => client.ListStacks(request, retryConfiguration, cancellationToken)
                ));
 }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            ListStacksRequest request;

            try
            {
                request = new ListStacksRequest
                {
                    OpcRequestId   = OpcRequestId,
                    CompartmentId  = CompartmentId,
                    Id             = Id,
                    LifecycleState = LifecycleState,
                    DisplayName    = DisplayName,
                    SortBy         = SortBy,
                    SortOrder      = SortOrder,
                    Limit          = Limit,
                    Page           = Page
                };
                IEnumerable <ListStacksResponse> responses = GetRequestDelegate().Invoke(request);
                foreach (var item in responses)
                {
                    response = item;
                    WriteOutput(response, response.Items, true);
                }
                if (!ParameterSetName.Equals(AllPageSet) && !ParameterSetName.Equals(LimitSet) && response.OpcNextPage != null)
                {
                    WriteWarning("This operation supports pagination and not all resources were returned. Re-run using the -All option to auto paginate and list all resources.");
                }
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
Exemple #12
0
        private async Task List(string tier)
        {
            var cfClient = new AmazonCloudFormationClient();
            var request  = new ListStacksRequest {
                StackStatusFilter = new List <string> {
                    "CREATE_IN_PROGRESS",
                    "CREATE_FAILED",
                    "CREATE_COMPLETE",
                    "ROLLBACK_IN_PROGRESS",
                    "ROLLBACK_FAILED",
                    "ROLLBACK_COMPLETE",
                    "DELETE_IN_PROGRESS",
                    "DELETE_FAILED",
                    // "DELETE_COMPLETE",
                    "UPDATE_IN_PROGRESS",
                    "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS",
                    "UPDATE_COMPLETE",
                    "UPDATE_ROLLBACK_IN_PROGRESS",
                    "UPDATE_ROLLBACK_FAILED",
                    "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS",
                    "UPDATE_ROLLBACK_COMPLETE",
                    "REVIEW_IN_PROGRESS"
                }
            };

            // fetch all stacks
            var prefix = $"{tier}-";
            var stacks = new List <StackSummary>();

            do
            {
                var response = await cfClient.ListStacksAsync(request);

                stacks.AddRange(response.StackSummaries.Where(summary => summary.StackName.StartsWith(prefix, StringComparison.Ordinal)));
                request.NextToken = response.NextToken;
            } while(request.NextToken != null);

            // sort and format output
            if (stacks.Any())
            {
                var moduleNameWidth = stacks.Max(stack => stack.StackName.Length) + 4 - prefix.Length;
                var statusWidth     = stacks.Max(stack => stack.StackStatus.ToString().Length) + 4;
                Console.WriteLine();
                Console.WriteLine($"{"MODULE".PadRight(moduleNameWidth)}{"STATUS".PadRight(statusWidth)}DATE");
                foreach (var summary in stacks.Select(stack => new {
                    ModuleName = stack.StackName.Substring(prefix.Length),
                    StackStatus = stack.StackStatus,
                    Date = (stack.LastUpdatedTime > stack.CreationTime) ? stack.LastUpdatedTime : stack.CreationTime
                }).OrderBy(summary => summary.Date))
                {
                    Console.WriteLine($"{summary.ModuleName.PadRight(moduleNameWidth)}{("[" + summary.StackStatus + "]").PadRight(statusWidth)}{summary.Date:yyyy-MM-dd HH:mm:ss}");
                }
                Console.WriteLine();
                Console.WriteLine($"Found {stacks.Count:N0} modules for deployment tier '{tier}'");
            }
            else
            {
                Console.WriteLine();
                Console.WriteLine($"Found no modules for deployment tier '{tier}'");
            }
        }