Skip to content

Commit 6380c92

Browse files
authored
Add ignore-default flag to network report (#644)
* Add ignore-default flag to network report
1 parent a25fbcc commit 6380c92

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

cli/cmd/network_report.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ replicated network report <network-id> --watch`,
4747

4848
cmd.Flags().BoolVarP(&r.args.networkReportWatch, "watch", "w", false, "Watch for new network events in real-time (polls every 2 seconds)")
4949
cmd.Flags().BoolVar(&r.args.networkReportSummary, "summary", false, "Get aggregated report summary with statistics instead of individual events")
50+
cmd.Flags().BoolVar(&r.args.networkReportShowExternalOnly, "show-external-only", true, "Show only external network traffic")
5051

5152
return cmd
5253
}
@@ -68,6 +69,11 @@ func (r *runners) getNetworkReport(cmd *cobra.Command, args []string) error {
6869

6970
// Don't call getNetworkIDFromArg here. Reporting API supports short IDs and will also work for networks that have been deleted.
7071

72+
// Validate flags
73+
if r.args.networkReportSummary && cmd.Flags().Lookup("show-external-only").Changed {
74+
return fmt.Errorf("cannot use --show-external-only and --summary flags together")
75+
}
76+
7177
// Get the initial network report or summary depending on args provided
7278
if r.args.networkReportSummary {
7379
return r.getNetworkReportSummary(cmd.Context())
@@ -77,7 +83,7 @@ func (r *runners) getNetworkReport(cmd *cobra.Command, args []string) error {
7783
}
7884

7985
func (r *runners) getNetworkReportEvents() error {
80-
report, err := r.kotsAPI.GetNetworkReport(r.args.networkReportID)
86+
report, err := r.kotsAPI.GetNetworkReport(r.args.networkReportID, r.args.networkReportShowExternalOnly)
8187
if errors.Cause(err) == platformclient.ErrForbidden {
8288
return ErrCompatibilityMatrixTermsNotAccepted
8389
} else if err != nil {
@@ -111,9 +117,9 @@ func (r *runners) getNetworkReportEvents() error {
111117
for range time.Tick(2 * time.Second) {
112118
var newReport *types.NetworkReport
113119
if lastEventTime != nil {
114-
newReport, err = r.kotsAPI.GetNetworkReportAfter(r.args.networkReportID, lastEventTime)
120+
newReport, err = r.kotsAPI.GetNetworkReportAfter(r.args.networkReportID, lastEventTime, r.args.networkReportShowExternalOnly)
115121
} else {
116-
newReport, err = r.kotsAPI.GetNetworkReport(r.args.networkReportID)
122+
newReport, err = r.kotsAPI.GetNetworkReport(r.args.networkReportID, r.args.networkReportShowExternalOnly)
117123
}
118124

119125
if err != nil {

cli/cmd/runner.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,10 @@ type runnerArgs struct {
254254
lsNetworkEndTime string
255255
lsNetworkWatch bool
256256

257-
networkReportID string
258-
networkReportWatch bool
259-
networkReportSummary bool
257+
networkReportID string
258+
networkReportWatch bool
259+
networkReportSummary bool
260+
networkReportShowExternalOnly bool
260261

261262
updateNetworkPolicy string
262263
updateNetworkCollectReport bool

pkg/kotsclient/network_report.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@ import (
1111
"github.com/replicatedhq/replicated/pkg/types"
1212
)
1313

14-
func (c *VendorV3Client) GetNetworkReport(id string) (*types.NetworkReport, error) {
15-
return c.GetNetworkReportAfter(id, nil)
14+
func (c *VendorV3Client) GetNetworkReport(id string, showExternalOnly bool) (*types.NetworkReport, error) {
15+
return c.GetNetworkReportAfter(id, nil, showExternalOnly)
1616
}
1717

18-
func (c *VendorV3Client) GetNetworkReportAfter(id string, after *time.Time) (*types.NetworkReport, error) {
18+
func (c *VendorV3Client) GetNetworkReportAfter(id string, after *time.Time, showExternalOnly bool) (*types.NetworkReport, error) {
1919
urlPath := fmt.Sprintf("/v3/network/%s/report", id)
20+
v := url.Values{}
2021
if after != nil {
21-
v := url.Values{}
2222
v.Set("after", after.Format(time.RFC3339Nano))
23+
}
24+
v.Set("show-external-only", fmt.Sprintf("%t", showExternalOnly))
25+
if len(v) > 0 {
2326
urlPath = fmt.Sprintf("%s?%s", urlPath, v.Encode())
2427
}
2528

0 commit comments

Comments
 (0)