@@ -22,6 +22,8 @@ func (r *runners) InitNetworkList(parent *cobra.Command) *cobra.Command {
2222 }
2323 parent .AddCommand (cmd )
2424
25+ cmd .Flags ().BoolVar (& r .args .lsNetworkShowTerminated , "show-terminated" , false , "when set, only show terminated networks" )
26+ cmd .Flags ().BoolVar (& r .args .lsNetworkShowReports , "show-reports" , false , "when set, only show networks that have reports" )
2527 cmd .Flags ().StringVar (& r .args .lsNetworkStartTime , "start-time" , "" , "start time for the query (Format: 2006-01-02T15:04:05Z)" )
2628 cmd .Flags ().StringVar (& r .args .lsNetworkEndTime , "end-time" , "" , "end time for the query (Format: 2006-01-02T15:04:05Z)" )
2729 cmd .Flags ().StringVarP (& r .outputFormat , "output" , "o" , "table" , "The output format to use. One of: json|table|wide" )
@@ -48,13 +50,24 @@ func (r *runners) listNetworks(_ *cobra.Command, args []string) error {
4850 endTime = & et
4951 }
5052
51- networks , err := r .kotsAPI .ListNetworks (startTime , endTime )
53+ networks , err := r .kotsAPI .ListNetworks (r . args . lsNetworkShowTerminated , startTime , endTime )
5254 if errors .Cause (err ) == platformclient .ErrForbidden {
5355 return ErrCompatibilityMatrixTermsNotAccepted
5456 } else if err != nil {
5557 return errors .Wrap (err , "list networks" )
5658 }
5759
60+ // Filter networks if --show-reports is set
61+ if r .args .lsNetworkShowReports {
62+ filteredNetworks := make ([]* types.Network , 0 )
63+ for _ , network := range networks {
64+ if network .HasReport {
65+ filteredNetworks = append (filteredNetworks , network )
66+ }
67+ }
68+ networks = filteredNetworks
69+ }
70+
5871 header := true
5972 if r .args .lsNetworkWatch {
6073
@@ -74,7 +87,7 @@ func (r *runners) listNetworks(_ *cobra.Command, args []string) error {
7487
7588 // Runs until ctrl C is recognized
7689 for range time .Tick (2 * time .Second ) {
77- newNetworks , err := r .kotsAPI .ListNetworks (startTime , endTime )
90+ newNetworks , err := r .kotsAPI .ListNetworks (r . args . lsNetworkShowTerminated , startTime , endTime )
7891 if err != nil {
7992 if err == promptui .ErrInterrupt {
8093 return errors .New ("interrupted" )
@@ -83,6 +96,17 @@ func (r *runners) listNetworks(_ *cobra.Command, args []string) error {
8396 return errors .Wrap (err , "watch networks" )
8497 }
8598
99+ // Filter networks if --show-reports is set
100+ if r .args .lsNetworkShowReports {
101+ filteredNetworks := make ([]* types.Network , 0 )
102+ for _ , network := range newNetworks {
103+ if network .HasReport {
104+ filteredNetworks = append (filteredNetworks , network )
105+ }
106+ }
107+ newNetworks = filteredNetworks
108+ }
109+
86110 // Create a map from the IDs of the new networks
87111 newNetworkMap := make (map [string ]* types.Network )
88112 for _ , newNetwork := range newNetworks {
0 commit comments