@@ -331,12 +331,41 @@ func getClusterParams(name string) *tpr.PgCluster {
331331}
332332
333333func deleteCluster (args []string ) {
334+
334335 // Fetch a list of our cluster TPRs
335336 clusterList := tpr.PgClusterList {}
336- err := Tprclient .Get ().Resource (tpr .CLUSTER_RESOURCE ).Do ().Into (& clusterList )
337- if err != nil {
338- log .Error ("error getting cluster list" + err .Error ())
339- return
337+
338+ if Selector != "" {
339+ //use the selector instead of an argument list to filter on
340+
341+ myselector , err := labels .Parse (Selector )
342+ if err != nil {
343+ log .Error ("could not parse selector flag" )
344+ return
345+ }
346+
347+ //get the clusters list
348+ err = Tprclient .Get ().
349+ Resource (tpr .CLUSTER_RESOURCE ).
350+ Namespace (Namespace ).
351+ LabelsSelectorParam (myselector ).
352+ Do ().
353+ Into (& clusterList )
354+ if err != nil {
355+ log .Error ("error getting cluster list" + err .Error ())
356+ return
357+ }
358+
359+ if len (clusterList .Items ) == 0 {
360+ log .Debug ("no clusters found" )
361+ } else {
362+ newargs := make ([]string , 0 )
363+ for _ , cluster := range clusterList .Items {
364+ newargs = append (newargs , cluster .Spec .Name )
365+ }
366+ args = newargs
367+ }
368+
340369 }
341370
342371 //to remove a cluster, you just have to remove
@@ -347,10 +376,10 @@ func deleteCluster(args []string) {
347376 for _ , cluster := range clusterList .Items {
348377 if arg == "all" || arg == cluster .Spec .Name {
349378 clusterFound = true
350- err = Tprclient .Delete ().
379+ err : = Tprclient .Delete ().
351380 Resource (tpr .CLUSTER_RESOURCE ).
352381 Namespace (Namespace ).
353- Name (cluster . Spec . Name ).
382+ Name (arg ).
354383 Do ().
355384 Error ()
356385 if err != nil {
0 commit comments