Skip to content

Commit 8a285e1

Browse files
committed
Cleanup
- allow checks to be read from STDIN - reduce log level to debug for a lot of logs
1 parent 6ec6561 commit 8a285e1

File tree

9 files changed

+55
-23
lines changed

9 files changed

+55
-23
lines changed

assets/examples/checks.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
http.GET("https://stackoverflow.com/index.html") => Status(200) -> Header("Content-Type", "text/html") -> Contains(`<title>INetSim default HTML page</title>`)
2+
http.GET("https://google.com/favicon.ico") => Status(200) -> SHA256("cb3f33cb0c7bae881d13be647cb928aa7fec9e9fcd6ec758751374bf7436d41a")
3+
http.POST("https://api.icndb.com/jokes/new", `{"joke":"asdf","categories":[]}`) => Status(204)
4+
http.PUT("https://api.icndb.com/jokes/37", `{"joke":"asdf","categories":[]}`) => Status(204)

cmd/imctl/check.go

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package main
22

33
import (
4+
"bufio"
45
"bytes"
56
"context"
67
"crypto/tls"
78
"crypto/x509"
9+
"errors"
810
"fmt"
911
"io"
1012
"net"
@@ -30,13 +32,32 @@ var (
3032
runCheckCmd = &cobra.Command{
3133
Use: "run",
3234
Short: "Run a check script",
33-
Args: cobra.ExactArgs(1),
35+
Args: cobra.MaximumNArgs(1),
3436
Aliases: []string{"exec"},
3537
RunE: func(_ *cobra.Command, args []string) error {
36-
if len(args) != 1 {
38+
if len(args) > 1 {
3739
return fmt.Errorf("expected 1 argument, got %d", len(args))
3840
}
39-
return runCheck(args[0])
41+
42+
switch len(args) {
43+
case 0:
44+
var stdinReader = bufio.NewReader(os.Stdin)
45+
var script = make([]string, 0)
46+
for {
47+
if line, err := stdinReader.ReadString('\n'); err != nil {
48+
if errors.Is(err, io.EOF) {
49+
return runCheck(script)
50+
}
51+
return err
52+
} else {
53+
script = append(script, line)
54+
}
55+
}
56+
case 1:
57+
return runCheck(args)
58+
default:
59+
return errors.New("missing script")
60+
}
4061
},
4162
SilenceUsage: true,
4263
}
@@ -62,7 +83,7 @@ func init() {
6283
checkCmd.AddCommand(runCheckCmd)
6384
}
6485

65-
func runCheck(script string) error {
86+
func runCheck(script []string) error {
6687
var healthCfg = health.Config{
6788
Client: health.HTTPClientConfig{
6889
HTTP: health.Server{
@@ -101,19 +122,23 @@ func runCheck(script string) error {
101122
}
102123

103124
var client = health.HTTPClient(healthCfg, tlsConfig)
125+
var check = new(rules.Check)
104126

105-
check := new(rules.Check)
106-
if err := rules.Parse(script, check); err != nil {
107-
return err
108-
}
127+
for idx := range script {
128+
rawRule := script[idx]
129+
if err := rules.Parse(rawRule, check); err != nil {
130+
return err
131+
}
109132

110-
if compiledCheck, err := health.NewHTTPRuleCheck("CLI", client, cliApp.Logger().Named("check"), check); err != nil {
111-
return err
112-
} else {
113-
ctx, cancel := context.WithTimeout(cliApp.Context(), runCheckArgs.Timeout)
114-
defer cancel()
115-
if err := compiledCheck.Status(ctx); err != nil {
133+
if compiledCheck, err := health.NewHTTPRuleCheck("CLI", client, cliApp.Logger().Named("check"), check); err != nil {
116134
return err
135+
} else {
136+
ctx, cancel := context.WithTimeout(cliApp.Context(), runCheckArgs.Timeout)
137+
err := compiledCheck.Status(ctx)
138+
cancel()
139+
if err != nil {
140+
return err
141+
}
117142
}
118143
}
119144
cliApp.Logger().Info("Successfully executed")

cmd/inetmock/serve.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ func startINetMock(_ *cobra.Command, _ []string) error {
4242
var err error
4343
appLogger := serverApp.Logger()
4444

45+
appLogger.Info("Starting the server")
46+
4547
if err = cfg.Data.setup(); err != nil {
4648
appLogger.Error("Failed to setup data directories", zap.Error(err))
4749
return err

internal/app/app.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ func (a *app) RootCommand() *cobra.Command {
8080
}
8181

8282
func (a *app) Shutdown() {
83+
a.logger.Info("Shutdown initiated")
8384
a.cancel()
8485
}
8586

internal/endpoint/handler/dns/mock/handler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func (d *dnsHandler) Start(ctx context.Context, lifecycle endpoint.Lifecycle) er
4040
}
4141

4242
for _, rule := range options.Rules {
43-
d.logger.Info(
44-
"register DNS rule",
43+
d.logger.Debug(
44+
"Register DNS rule",
4545
zap.String("pattern", rule.pattern.String()),
4646
zap.String("response", rule.response.String()),
4747
)

internal/endpoint/handler/http/mock/router.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type Router struct {
3737
}
3838

3939
func (r *Router) RegisterRule(rawRule string) error {
40-
r.Logger.Info("Adding routing rule", zap.String("rawRule", rawRule))
40+
r.Logger.Debug("Adding routing rule", zap.String("rawRule", rawRule))
4141
var rule = new(rules.Routing)
4242
if err := rules.Parse(rawRule, rule); err != nil {
4343
return err
@@ -54,7 +54,7 @@ func (r *Router) RegisterRule(rawRule string) error {
5454
return err
5555
}
5656

57-
r.Logger.Info("Configure successfully parsed routing rule")
57+
r.Logger.Debug("Configure successfully parsed routing rule")
5858

5959
r.handlers = append(r.handlers, ConditionalHandler{
6060
Handler: handler,

internal/endpoint/handler/http/mock/router_behavior.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func FileHandler(logger logging.Logger, fakeFileFS fs.FS, args ...rules.Param) (
7474
_ = file.Close()
7575
}()
7676

77-
logger.Info("Returning file response")
77+
logger.Debug("Returning file response")
7878
//nolint:gosec
7979
http.ServeContent(writer, request, path.Base(request.RequestURI), time.Now().Add(-(time.Duration(rand.Int()) * time.Millisecond)), rs)
8080
}), nil
@@ -97,7 +97,7 @@ func StatusHandler(logger logging.Logger, _ fs.FS, args ...rules.Param) (http.Ha
9797
)
9898

9999
return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
100-
logger.Info("Returning status code")
100+
logger.Debug("Returning status code")
101101
writer.WriteHeader(statusCodeToReturn)
102102
}), nil
103103
}

internal/endpoint/orchestrator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ func (e *orchestrator) StartEndpoints(ctx context.Context) chan error {
7171
endpointLogger := e.logger.With(
7272
zap.String("epListener", epListener.name),
7373
)
74-
endpointLogger.Info("Starting epListener")
74+
endpointLogger.Debug("Starting endpoint listener")
7575
lifecycle := NewEndpointLifecycle(
7676
epListener.name,
7777
epListener.uplink,
7878
epListener.Options,
7979
)
8080

8181
if err := epListener.Start(ctx, e.logger.With(zap.String("epListener", epListener.name)), lifecycle); err == nil {
82-
endpointLogger.Info("successfully started epListener")
82+
endpointLogger.Debug("Successfully started epListener")
8383
} else {
8484
endpointLogger.Error("error occurred during epListener startup - will be skipped for now")
8585
}

pkg/health/http/check_initiator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func RequestInitiatorForMethod(method string) func(logger logging.Logger, params
106106
zap.String("uri", uri),
107107
)
108108

109-
logger.Info("Setup health initiator")
109+
logger.Debug("Setup health initiator")
110110

111111
return &simpleRequest{
112112
logger: logger,

0 commit comments

Comments
 (0)