Skip to content

Commit df0070d

Browse files
authored
refactor(cli)!: Switch logger to stderr (#2210)
Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@unikraft.io> Approved-by: Cezar Craciunoiu <cezar.craciunoiu@unikraft.io>
2 parents 5d42cb0 + 0293f0a commit df0070d

12 files changed

+62
-82
lines changed

internal/cli/options.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func WithDefaultLogger() CliOption {
114114
}
115115

116116
if copts.IOStreams != nil {
117-
logger.SetOutput(copts.IOStreams.Out)
117+
logger.SetOutput(copts.IOStreams.ErrOut)
118118
}
119119

120120
// Save the logger

test/e2e/cli/net_create_test.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ var _ = Describe("kraft net create", func() {
4343
err := cmd.Run()
4444
Expect(err).To(HaveOccurred())
4545

46-
Expect(stderr.String()).To(BeEmpty())
47-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
46+
Expect(stdout.String()).To(BeEmpty())
47+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
4848
})
4949
})
5050

@@ -75,8 +75,8 @@ var _ = Describe("kraft net create", func() {
7575
err := cmd.Run()
7676
Expect(err).To(HaveOccurred())
7777

78-
Expect(stderr.String()).To(BeEmpty())
79-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 2"}\n$`))
78+
Expect(stdout.String()).To(BeEmpty())
79+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 2"}\n$`))
8080
})
8181
})
8282

@@ -90,8 +90,8 @@ var _ = Describe("kraft net create", func() {
9090
err := cmd.Run()
9191
Expect(err).To(HaveOccurred())
9292

93-
Expect(stderr.String()).To(BeEmpty())
94-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 172\.45\.1\.1"}\n$`))
93+
Expect(stdout.String()).To(BeEmpty())
94+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 172\.45\.1\.1"}\n$`))
9595
})
9696
})
9797

@@ -105,8 +105,8 @@ var _ = Describe("kraft net create", func() {
105105
err := cmd.Run()
106106
Expect(err).To(HaveOccurred())
107107

108-
Expect(stderr.String()).To(BeEmpty())
109-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 172\.45\.2/24"}\n$`))
108+
Expect(stdout.String()).To(BeEmpty())
109+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 172\.45\.2/24"}\n$`))
110110
})
111111
})
112112

@@ -120,8 +120,8 @@ var _ = Describe("kraft net create", func() {
120120
err := cmd.Run()
121121
Expect(err).To(HaveOccurred())
122122

123-
Expect(stderr.String()).To(BeEmpty())
124-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 1234"}\n$`))
123+
Expect(stdout.String()).To(BeEmpty())
124+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"invalid CIDR address: 1234"}\n$`))
125125
})
126126
})
127127

@@ -136,8 +136,8 @@ var _ = Describe("kraft net create", func() {
136136
err := cmd.Run()
137137
Expect(err).To(HaveOccurred())
138138

139-
Expect(stderr.String()).To(BeEmpty())
140-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"unsupported network driver strategy: unknown \(contributions welcome\!\)"}\n$`))
139+
Expect(stdout.String()).To(BeEmpty())
140+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"unsupported network driver strategy: unknown \(contributions welcome\!\)"}\n$`))
141141
})
142142
})
143143

@@ -190,6 +190,8 @@ var _ = Describe("kraft net create", func() {
190190

191191
When("invoked with one positional argument without a network", func() {
192192
BeforeEach(func() {
193+
cmd.Args = append(cmd.Args, "--driver", "bridge")
194+
cmd.Args = append(cmd.Args, "--network", "172.18.0.1/24")
193195
cmd.Args = append(cmd.Args, "t-cr-5")
194196
})
195197

@@ -228,7 +230,7 @@ var _ = Describe("kraft net create", func() {
228230
Expect(err).ToNot(HaveOccurred())
229231
Expect(stderrLs.String()).To(BeEmpty())
230232
Expect(stdoutLs.String()).To(MatchRegexp(`^NAME[\t ]+NETWORK[\t ]+DRIVER[\t ]+STATUS\n`))
231-
Expect(stdoutLs.String()).To(MatchRegexp(`t-cr-5[\t ]+172.18.0.1/16[\t ]+bridge[\t ]+up`))
233+
Expect(stdoutLs.String()).To(MatchRegexp(`t-cr-5[\t ]+172.18.0.1/24[\t ]+bridge[\t ]+up`))
232234
})
233235
})
234236
})

test/e2e/cli/net_down_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ var _ = Describe("kraft net down", func() {
4343
err := cmd.Run()
4444
Expect(err).To(HaveOccurred())
4545

46-
Expect(stderr.String()).To(BeEmpty())
47-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
46+
Expect(stdout.String()).To(BeEmpty())
47+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
4848
})
4949
})
5050

@@ -59,8 +59,8 @@ var _ = Describe("kraft net down", func() {
5959
err := cmd.Run()
6060
Expect(err).To(HaveOccurred())
6161

62-
Expect(stderr.String()).To(BeEmpty())
63-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-do-0 failed: Link not found"}\n$`))
62+
Expect(stdout.String()).To(BeEmpty())
63+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-do-0 failed: Link not found"}\n$`))
6464
})
6565
})
6666

test/e2e/cli/net_inspect_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ var _ = Describe("kraft net inspect", func() {
4444
err := cmd.Run()
4545
Expect(err).To(HaveOccurred())
4646

47-
Expect(stderr.String()).To(BeEmpty())
48-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
47+
Expect(stdout.String()).To(BeEmpty())
48+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
4949
})
5050
})
5151

@@ -60,8 +60,8 @@ var _ = Describe("kraft net inspect", func() {
6060
err := cmd.Run()
6161
Expect(err).To(HaveOccurred())
6262

63-
Expect(stderr.String()).To(BeEmpty())
64-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"no such network: t-in-0"}\n$`))
63+
Expect(stdout.String()).To(BeEmpty())
64+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"no such network: t-in-0"}\n$`))
6565
})
6666
})
6767

test/e2e/cli/net_ls_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ var _ = Describe("kraft net ls", func() {
4747
err := cmd.Run()
4848
Expect(err).To(HaveOccurred())
4949

50-
Expect(stderr.String()).To(BeEmpty())
51-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"unknown command \\"test\\" for \\"kraft net list\\""}`))
50+
Expect(stdout.String()).To(BeEmpty())
51+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"unknown command \\"test\\" for \\"kraft net list\\""}`))
5252
})
5353
})
5454

test/e2e/cli/net_rm_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ var _ = Describe("kraft net rm", func() {
4343
err := cmd.Run()
4444
Expect(err).To(HaveOccurred())
4545

46-
Expect(stderr.String()).To(BeEmpty())
47-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
46+
Expect(stdout.String()).To(BeEmpty())
47+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
4848
})
4949
})
5050

@@ -58,8 +58,8 @@ var _ = Describe("kraft net rm", func() {
5858
err := cmd.Run()
5959
Expect(err).To(HaveOccurred())
6060

61-
Expect(stderr.String()).To(BeEmpty())
62-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 2"}\n$`))
61+
Expect(stdout.String()).To(BeEmpty())
62+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 2"}\n$`))
6363
})
6464
})
6565

@@ -139,8 +139,8 @@ var _ = Describe("kraft net rm", func() {
139139
err := cmd.Run()
140140
Expect(err).To(HaveOccurred())
141141

142-
Expect(stderr.String()).To(BeEmpty())
143-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-rm-1 failed: Link not found"}\n$`))
142+
Expect(stdout.String()).To(BeEmpty())
143+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-rm-1 failed: Link not found"}\n$`))
144144
})
145145
})
146146
})

test/e2e/cli/net_up_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ var _ = Describe("kraft net up", func() {
4343
err := cmd.Run()
4444
Expect(err).To(HaveOccurred())
4545

46-
Expect(stderr.String()).To(BeEmpty())
47-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
46+
Expect(stdout.String()).To(BeEmpty())
47+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"accepts 1 arg\(s\), received 0"}\n`))
4848
})
4949
})
5050

@@ -59,8 +59,8 @@ var _ = Describe("kraft net up", func() {
5959
err := cmd.Run()
6060
Expect(err).To(HaveOccurred())
6161

62-
Expect(stderr.String()).To(BeEmpty())
63-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-up-0 failed: Link not found"}\n$`))
62+
Expect(stdout.String()).To(BeEmpty())
63+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"error","msg":"getting bridge t-up-0 failed: Link not found"}\n$`))
6464
})
6565
})
6666

test/e2e/cli/pkg_source_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ var _ = Describe("kraft pkg source", func() {
219219
fmt.Print(cmd.DumpError(stdout, stderr, err))
220220
}
221221
Expect(err).ToNot(HaveOccurred())
222-
Expect(stderr.String()).To(BeEmpty())
222+
Expect(stdout.String()).To(BeEmpty())
223223

224224
// Calculate config file hash
225225
bytes, err := os.ReadFile(cfg.Path())
@@ -244,10 +244,10 @@ var _ = Describe("kraft pkg source", func() {
244244
fmt.Print(cmd.DumpError(stdout, stderr, err))
245245
}
246246
Expect(err).ToNot(HaveOccurred())
247-
Expect(stderr.String()).To(BeEmpty())
247+
Expect(stdout.String()).To(BeEmpty())
248248

249-
// Check warning message exists in stdout
250-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest already saved: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
249+
// Check warning message exists in stderr
250+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest already saved: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
251251

252252
// Check if the config file was not modified
253253
newBytes, err := os.ReadFile(cfg.Path())
@@ -274,7 +274,7 @@ var _ = Describe("kraft pkg source", func() {
274274
fmt.Print(cmd.DumpError(stdout, stderr, err))
275275
}
276276
Expect(err).ToNot(HaveOccurred())
277-
Expect(stderr.String()).To(BeEmpty())
277+
Expect(stdout.String()).To(BeEmpty())
278278

279279
// Read the config file
280280
osFile, err := os.Open(cfg.Path())
@@ -327,8 +327,8 @@ var _ = Describe("kraft pkg source", func() {
327327
Expect(cfgMapUnikernelManifests[1]).To(Equal("https://example2.com"))
328328
Expect(cfgMapUnikernelManifests[2]).To(Equal("https://example3.com"))
329329

330-
// Check if stdout is empty
331-
Expect(stdout.String()).To(BeEmpty())
330+
// Check if stderr is empty
331+
Expect(stderr.String()).To(BeEmpty())
332332
})
333333
})
334334

@@ -343,7 +343,7 @@ var _ = Describe("kraft pkg source", func() {
343343
fmt.Print(cmd.DumpError(stdout, stderr, err))
344344
}
345345
Expect(err).ToNot(HaveOccurred())
346-
Expect(stderr.String()).To(BeEmpty())
346+
Expect(stdout.String()).To(BeEmpty())
347347

348348
// Read the config file
349349
osFile, err := os.Open(cfg.Path())
@@ -395,7 +395,7 @@ var _ = Describe("kraft pkg source", func() {
395395
Expect(cfgMapUnikernelManifests[0]).To(Equal("https://example.com"))
396396

397397
// Check if stdout contains the warning message
398-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest already saved: https://example\.com"}\n$`))
398+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest already saved: https://example\.com"}\n$`))
399399
})
400400
})
401401
})

test/e2e/cli/pkg_unsource_test.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ var _ = Describe("kraft pkg unsource", func() {
4545
fmt.Print(cmd.DumpError(stdout, stderr, err))
4646
}
4747
Expect(err).ToNot(HaveOccurred())
48-
Expect(stderr.String()).To(BeEmpty())
48+
Expect(stdout.String()).To(BeEmpty())
4949

5050
// Read the config file
5151
osFile, err := os.Open(cfg.Path())
@@ -86,8 +86,8 @@ var _ = Describe("kraft pkg unsource", func() {
8686
_, ok := cfgMap["unikraft"].(map[string]interface{})
8787
Expect(ok).To(BeFalse())
8888

89-
// Check if stdout is empty
90-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
89+
// Check if stderr contains a log message
90+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
9191
})
9292
})
9393

@@ -115,7 +115,7 @@ var _ = Describe("kraft pkg unsource", func() {
115115
fmt.Print(cmd.DumpError(stdout, stderr, err))
116116
}
117117
Expect(err).ToNot(HaveOccurred())
118-
Expect(stderr.String()).To(BeEmpty())
118+
Expect(stdout.String()).To(BeEmpty())
119119

120120
// Read the config file
121121
osFile, err := os.Open(cfg.Path())
@@ -163,8 +163,8 @@ var _ = Describe("kraft pkg unsource", func() {
163163
// Check if the default manifests are removed
164164
Expect(cfgMapUnikernelManifests).To(HaveLen(0))
165165

166-
// Check if stdout is empty
167-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
166+
// Check if stderr to contain a log message
167+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://manifests\.kraftkit\.sh/index\.yaml"}\n$`))
168168
})
169169
})
170170

@@ -192,7 +192,7 @@ var _ = Describe("kraft pkg unsource", func() {
192192
fmt.Print(cmd.DumpError(stdout, stderr, err))
193193
}
194194
Expect(err).ToNot(HaveOccurred())
195-
Expect(stderr.String()).To(BeEmpty())
195+
Expect(stdout.String()).To(BeEmpty())
196196

197197
// Read the config file
198198
osFile, err := os.Open(cfg.Path())
@@ -240,8 +240,8 @@ var _ = Describe("kraft pkg unsource", func() {
240240
// Check if the default manifests are still there
241241
Expect(cfgMapUnikernelManifests).To(HaveLen(0))
242242

243-
// Check if stdout contains the warning
244-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://example\.com"}\n$`))
243+
// Check if stderr contains the warning
244+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://example\.com"}\n$`))
245245
})
246246
})
247247
})
@@ -380,7 +380,7 @@ var _ = Describe("kraft pkg unsource", func() {
380380
fmt.Print(cmd.DumpError(stdout, stderr, err))
381381
}
382382
Expect(err).ToNot(HaveOccurred())
383-
Expect(stderr.String()).To(BeEmpty())
383+
Expect(stdout.String()).To(BeEmpty())
384384

385385
// Read the config file
386386
osFile, err := os.Open(cfg.Path())
@@ -429,8 +429,8 @@ var _ = Describe("kraft pkg unsource", func() {
429429
Expect(cfgMapUnikernelManifests).To(HaveLen(1))
430430
Expect(cfgMapUnikernelManifests[0]).To(Equal("https://example3.com"))
431431

432-
// Check if stdout has a warning
433-
Expect(stdout.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://example2\.com"}\n$`))
432+
// Check if stderr has a warning
433+
Expect(stderr.String()).To(MatchRegexp(`^{"level":"warning","msg":"manifest not found: https://example2\.com"}\n$`))
434434
})
435435
})
436436
})

test/e2e/cli/pkg_update_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ var _ = Describe("kraft pkg", func() {
5353
}
5454
Expect(err).ToNot(HaveOccurred())
5555

56-
Expect(stderr.String()).To(BeEmpty())
57-
Expect(stdout.String()).To(MatchRegexp(`{"level":"info","msg":"updating manifest index"}`))
58-
Expect(stdout.String()).To(MatchRegexp(`{"level":"info","msg":"updating oci index"}`))
56+
Expect(stdout.String()).To(BeEmpty())
57+
Expect(stderr.String()).To(MatchRegexp(`{"level":"info","msg":"updating manifest index"}`))
58+
Expect(stderr.String()).To(MatchRegexp(`{"level":"info","msg":"updating oci index"}`))
5959

6060
Expect(manifestsPath).To(ContainFiles("index.yaml", "unikraft.yaml"))
6161
Expect(manifestsPath).To(ContainDirectories("libs"))

test/e2e/cli/version_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ var _ = Describe("kraft version", func() {
7373
Expect(err).To(HaveOccurred())
7474
Expect(err).To(MatchError("exit status 1"))
7575

76-
Expect(stderr.String()).To(BeEmpty())
77-
Expect(stdout.String()).To(MatchRegexp(
76+
Expect(stdout.String()).To(BeEmpty())
77+
Expect(stderr.String()).To(MatchRegexp(
7878
`^{"level":"error","msg":"unknown command \\"some-arg\\" for \\"kraft version\\""}\n$`,
7979
))
8080
})

0 commit comments

Comments
 (0)