@@ -84,18 +84,31 @@ public async Task<List<Cluster>> DescribeClustersAsync(string? clusterIdentifier
8484 {
8585 try
8686 {
87+ var clusters = new List < Cluster > ( ) ;
8788 var request = new DescribeClustersRequest ( ) ;
8889 if ( ! string . IsNullOrEmpty ( clusterIdentifier ) )
8990 {
9091 request . ClusterIdentifier = clusterIdentifier ;
9192 }
9293
93- var response = await _redshiftClient . DescribeClustersAsync ( request ) ;
94- return response . Clusters ;
94+ var clustersPaginator = _redshiftClient . Paginators . DescribeClusters ( request ) ;
95+ await foreach ( var response in clustersPaginator . Responses )
96+ {
97+ if ( response . Clusters != null )
98+ clusters . AddRange ( response . Clusters ) ;
99+ }
100+
101+ Console . WriteLine ( $ "{ clusters . Count } cluster(s) retrieved.") ;
102+ foreach ( var cluster in clusters )
103+ {
104+ Console . WriteLine ( $ "\t { cluster . ClusterIdentifier } (Status: { cluster . ClusterStatus } )") ;
105+ }
106+
107+ return clusters ;
95108 }
96109 catch ( ClusterNotFoundException ex )
97110 {
98- Console . WriteLine ( $ "Cluster not found: { ex . Message } ") ;
111+ Console . WriteLine ( $ "Cluster { clusterIdentifier } not found: { ex . Message } ") ;
99112 throw ;
100113 }
101114 catch ( Exception ex )
@@ -112,8 +125,8 @@ public async Task<List<Cluster>> DescribeClustersAsync(string? clusterIdentifier
112125 /// </summary>
113126 /// <param name="clusterIdentifier">The identifier for the cluster.</param>
114127 /// <param name="preferredMaintenanceWindow">The preferred maintenance window.</param>
115- /// <returns>The modified cluster .</returns>
116- public async Task < Cluster > ModifyClusterAsync ( string clusterIdentifier , string preferredMaintenanceWindow )
128+ /// <returns>True if successful .</returns>
129+ public async Task < bool > ModifyClusterAsync ( string clusterIdentifier , string preferredMaintenanceWindow )
117130 {
118131 try
119132 {
@@ -124,29 +137,29 @@ public async Task<Cluster> ModifyClusterAsync(string clusterIdentifier, string p
124137 } ;
125138
126139 var response = await _redshiftClient . ModifyClusterAsync ( request ) ;
127- Console . WriteLine ( $ "The modified cluster was successfully modified and has { preferredMaintenanceWindow } as the maintenance window") ;
128- return response . Cluster ;
140+ Console . WriteLine ( $ "The modified cluster was successfully modified and has { response . Cluster . PreferredMaintenanceWindow } as the maintenance window") ;
141+ return true ;
129142 }
130143 catch ( ClusterNotFoundException ex )
131144 {
132- Console . WriteLine ( $ "Cluster not found: { ex . Message } ") ;
133- throw ;
145+ Console . WriteLine ( $ "Cluster { clusterIdentifier } not found: { ex . Message } ") ;
146+ return false ;
134147 }
135148 catch ( Exception ex )
136149 {
137150 Console . WriteLine ( $ "Couldn't modify cluster. Here's why: { ex . Message } ") ;
138- throw ;
151+ return false ;
139152 }
140153 }
141154 // snippet-end:[Redshift.dotnetv4.ModifyCluster]
142155
143156 // snippet-start:[Redshift.dotnetv4.DeleteCluster]
144157 /// <summary>
145- /// Delete an Amazon Redshift cluster.
158+ /// Delete an Amazon Redshift cluster without a final snapshot .
146159 /// </summary>
147160 /// <param name="clusterIdentifier">The identifier for the cluster.</param>
148- /// <returns>The deleted cluster .</returns>
149- public async Task < Cluster > DeleteClusterAsync ( string clusterIdentifier )
161+ /// <returns>True if successful .</returns>
162+ public async Task < bool > DeleteClusterWithoutSnapshotAsync ( string clusterIdentifier )
150163 {
151164 try
152165 {
@@ -158,17 +171,17 @@ public async Task<Cluster> DeleteClusterAsync(string clusterIdentifier)
158171
159172 var response = await _redshiftClient . DeleteClusterAsync ( request ) ;
160173 Console . WriteLine ( $ "The { clusterIdentifier } was deleted") ;
161- return response . Cluster ;
174+ return true ;
162175 }
163176 catch ( ClusterNotFoundException ex )
164177 {
165178 Console . WriteLine ( $ "Cluster not found: { ex . Message } ") ;
166- throw ;
179+ return false ;
167180 }
168181 catch ( Exception ex )
169182 {
170183 Console . WriteLine ( $ "Couldn't delete cluster. Here's why: { ex . Message } ") ;
171- throw ;
184+ return false ;
172185 }
173186 }
174187 // snippet-end:[Redshift.dotnetv4.DeleteCluster]
@@ -468,18 +481,10 @@ private async Task WaitForStatementToCompleteAsync(string statementId)
468481 /// Wait for a cluster to become available.
469482 /// </summary>
470483 /// <param name="clusterIdentifier">The cluster identifier.</param>
471- /// <param name="isInteractive">Whether to prompt for user input.</param>
472484 /// <returns>A task representing the asynchronous operation.</returns>
473- public async Task WaitForClusterAvailableAsync ( string clusterIdentifier , bool isInteractive = true )
485+ public async Task WaitForClusterAvailableAsync ( string clusterIdentifier )
474486 {
475- Console . WriteLine ( $ "Wait until { clusterIdentifier } is available.") ;
476- if ( isInteractive )
477- {
478- Console . WriteLine ( "Press Enter to continue..." ) ;
479- Console . ReadLine ( ) ;
480- }
481-
482- Console . WriteLine ( "Waiting for cluster to become available. This may take a few minutes." ) ;
487+ Console . WriteLine ( $ "Wait until { clusterIdentifier } is available. This may take a few minutes.") ;
483488
484489 var startTime = DateTime . Now ;
485490 var clusters = await DescribeClustersAsync ( clusterIdentifier ) ;
0 commit comments