From 464d6bd91e637138daa4c33aa4e0ee98b316612c Mon Sep 17 00:00:00 2001 From: corverroos Date: Tue, 31 May 2022 10:15:05 +0200 Subject: [PATCH] cleanup --- app/app.go | 8 ++--- core/sigagg/sigagg.go | 4 +++ testutil/compose/compose/main.go | 13 ++++---- .../compose/compose/smoke_internal_test.go | 30 ++++++++++++++++--- testutil/compose/docker-compose.template | 6 ++++ testutil/compose/run.go | 1 + testutil/compose/template.go | 5 ++-- ...ockerCompose_define_create_template.golden | 3 +- ...stDockerCompose_define_dkg_template.golden | 3 +- ...tDockerCompose_lock_create_template.golden | 3 +- ...TestDockerCompose_lock_dkg_template.golden | 3 +- .../TestDockerCompose_run_template.golden | 3 +- .../testdata/TestDockerCompose_run_yml.golden | 2 +- 13 files changed, 62 insertions(+), 22 deletions(-) diff --git a/app/app.go b/app/app.go index 03f1392f9..e485cb728 100644 --- a/app/app.go +++ b/app/app.go @@ -587,16 +587,16 @@ func callValidatorMock(ctx context.Context, duty core.Duty, cl eth2client.Servic case core.DutyAttester: err := validatormock.Attest(ctx, cl.(*eth2http.Service), signer, eth2p0.Slot(duty.Slot), pubshares...) if err != nil { - log.Warn(ctx, "Attestation failed", err) + log.Warn(ctx, "Mock attestation failed", err) } else { - log.Info(ctx, "Attestation success", z.I64("slot", duty.Slot)) + log.Info(ctx, "Mock attestation submitted to validatorapi", z.I64("slot", duty.Slot)) } case core.DutyProposer: err := validatormock.ProposeBlock(ctx, cl.(*eth2http.Service), signer, eth2p0.Slot(duty.Slot), addr, pubshares...) if err != nil { - log.Warn(ctx, "Failed to propose block", err) + log.Warn(ctx, "Mock block proposal failed", err) } else { - log.Info(ctx, "Block proposed successfully", z.I64("slot", duty.Slot)) + log.Info(ctx, "Mock block proposal submitted to validatorapi", z.I64("slot", duty.Slot)) } default: log.Warn(ctx, "Invalid duty type", nil) diff --git a/core/sigagg/sigagg.go b/core/sigagg/sigagg.go index bfa4fc7a2..d957487cc 100644 --- a/core/sigagg/sigagg.go +++ b/core/sigagg/sigagg.go @@ -27,7 +27,9 @@ import ( "github.com/coinbase/kryptology/pkg/signatures/bls/bls_sig" "github.com/obolnetwork/charon/app/errors" + "github.com/obolnetwork/charon/app/log" "github.com/obolnetwork/charon/app/tracer" + "github.com/obolnetwork/charon/app/z" "github.com/obolnetwork/charon/core" "github.com/obolnetwork/charon/tbls" "github.com/obolnetwork/charon/tbls/tblsconv" @@ -101,6 +103,8 @@ func (a *Aggregator) Aggregate(ctx context.Context, duty core.Duty, pubkey core. return err } + log.Debug(ctx, "Aggregated threshold partial signatures", z.Any("duty", duty)) + // Call subscriptions. for _, sub := range a.subs { err := sub(ctx, duty, pubkey, aggSig) diff --git a/testutil/compose/compose/main.go b/testutil/compose/compose/main.go index 803b8e30e..494f6a25f 100644 --- a/testutil/compose/compose/main.go +++ b/testutil/compose/compose/main.go @@ -123,7 +123,7 @@ func newDockerCmd(use string, short string, runFunc runFunc) *cobra.Command { return cmd } -func newAutoCmd(tmplCallback func(data compose.TmplData)) *cobra.Command { +func newAutoCmd(tmplCallback func(data *compose.TmplData)) *cobra.Command { cmd := &cobra.Command{ Use: "auto", Short: "Convenience function that runs `compose define && compose lock && compose run`", @@ -150,7 +150,7 @@ func newAutoCmd(tmplCallback func(data compose.TmplData)) *cobra.Command { } if tmplCallback != nil { - tmplCallback(lastTmpl) + tmplCallback(&lastTmpl) err := compose.WriteDockerCompose(*dir, lastTmpl) if err != nil { return err @@ -172,11 +172,11 @@ func newAutoCmd(tmplCallback func(data compose.TmplData)) *cobra.Command { return err } - if err := execUp(ctx, *dir); !errors.Is(err, context.DeadlineExceeded) { - return err - } + defer func() { + _ = execDown(rootCtx, *dir) + }() - if err := execDown(rootCtx, *dir); err != nil { + if err := execUp(ctx, *dir); !errors.Is(err, context.DeadlineExceeded) { return err } @@ -260,6 +260,7 @@ func execUp(ctx context.Context, dir string) error { "--remove-orphans", "--build", "--abort-on-container-exit", + "--quiet-pull", ) cmd.Dir = dir cmd.Stdout = os.Stdout diff --git a/testutil/compose/compose/smoke_internal_test.go b/testutil/compose/compose/smoke_internal_test.go index d06a4d2da..51d1b07c0 100644 --- a/testutil/compose/compose/smoke_internal_test.go +++ b/testutil/compose/compose/smoke_internal_test.go @@ -19,6 +19,7 @@ import ( "context" "flag" "os" + "strings" "testing" "github.com/stretchr/testify/require" @@ -37,7 +38,7 @@ func TestSmoke(t *testing.T) { tests := []struct { Name string ConfigFunc func(*compose.Config) - TmplFunc func(compose.TmplData) + TmplFunc func(*compose.TmplData) }{ { Name: "default alpha", @@ -77,7 +78,7 @@ func TestSmoke(t *testing.T) { }, { Name: "version matrix", - TmplFunc: func(data compose.TmplData) { + TmplFunc: func(data *compose.TmplData) { data.Nodes[0].ImageTag = "latest" data.Nodes[1].ImageTag = "latest" data.Nodes[2].ImageTag = "v0.5.0" // TODO(corver): Update this with new releases. @@ -89,13 +90,24 @@ func TestSmoke(t *testing.T) { ConfigFunc: func(conf *compose.Config) { conf.VCs = []compose.VCType{compose.VCTeku} }, - TmplFunc: func(data compose.TmplData) { + TmplFunc: func(data *compose.TmplData) { data.VCs[0].Image = "consensys/teku:latest" data.VCs[1].Image = "consensys/teku:22.5" data.VCs[2].Image = "consensys/teku:22.4" data.VCs[3].Image = "consensys/teku:22.3" }, }, + { + Name: "1 of 4 down", + TmplFunc: func(data *compose.TmplData) { + node0 := data.Nodes[0] + for i := 0; i < len(node0.EnvVars); i++ { + if strings.HasPrefix(node0.EnvVars[i].Key, "p2p") { + data.Nodes[0].EnvVars[i].Key = "unset" // Zero p2p flags to it cannot communicate + } + } + }, + }, } for _, test := range tests { @@ -109,7 +121,12 @@ func TestSmoke(t *testing.T) { } require.NoError(t, compose.WriteConfig(dir, conf)) - cmd := newAutoCmd(test.TmplFunc) + cmd := newAutoCmd(func(data *compose.TmplData) { + data.MonitoringPorts = false + if test.TmplFunc != nil { + test.TmplFunc(data) + } + }) require.NoError(t, cmd.Flags().Set("compose-dir", dir)) require.NoError(t, cmd.Flags().Set("alert-timeout", "30s")) @@ -118,3 +135,8 @@ func TestSmoke(t *testing.T) { }) } } + +// TestFlagFalse ensures the integration flag default value is false. +func TestFlagFalse(t *testing.T) { + require.False(t, *integration) +} diff --git a/testutil/compose/docker-compose.template b/testutil/compose/docker-compose.template index e34fa48af..ed5074315 100644 --- a/testutil/compose/docker-compose.template +++ b/testutil/compose/docker-compose.template @@ -60,16 +60,20 @@ services: {{if .Monitoring}} prometheus: image: prom/prometheus:latest + {{- if .MonitoringPorts}} ports: - "9090:9090" + {{end -}} networks: [compose] volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml grafana: image: grafana/grafana:latest + {{- if .MonitoringPorts}} ports: - "3000:3000" + {{end -}} networks: [compose] volumes: - ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml @@ -82,8 +86,10 @@ services: jaeger: image: jaegertracing/all-in-one:latest networks: [compose] + {{- if .MonitoringPorts}} ports: - "16686:16686" + {{end -}} {{end}} networks: compose: diff --git a/testutil/compose/run.go b/testutil/compose/run.go index eb1a247aa..138f37a97 100644 --- a/testutil/compose/run.go +++ b/testutil/compose/run.go @@ -56,6 +56,7 @@ func Run(ctx context.Context, dir string, conf Config) (TmplData, error) { Nodes: nodes, Bootnode: true, Monitoring: true, + MonitoringPorts: true, VCs: vcs, } diff --git a/testutil/compose/template.go b/testutil/compose/template.go index e9eab9ce1..b8c6739b8 100644 --- a/testutil/compose/template.go +++ b/testutil/compose/template.go @@ -43,8 +43,9 @@ type TmplData struct { Nodes []node VCs []vc - Bootnode bool - Monitoring bool + Bootnode bool + Monitoring bool + MonitoringPorts bool } // vc represents a validator client service in a docker-compose.yml. diff --git a/testutil/compose/testdata/TestDockerCompose_define_create_template.golden b/testutil/compose/testdata/TestDockerCompose_define_create_template.golden index 568324893..3fbd40156 100644 --- a/testutil/compose/testdata/TestDockerCompose_define_create_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_define_create_template.golden @@ -12,5 +12,6 @@ ], "VCs": null, "Bootnode": false, - "Monitoring": false + "Monitoring": false, + "MonitoringPorts": false } \ No newline at end of file diff --git a/testutil/compose/testdata/TestDockerCompose_define_dkg_template.golden b/testutil/compose/testdata/TestDockerCompose_define_dkg_template.golden index 8d15f3f7c..9c10e407a 100644 --- a/testutil/compose/testdata/TestDockerCompose_define_dkg_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_define_dkg_template.golden @@ -41,5 +41,6 @@ ], "VCs": null, "Bootnode": false, - "Monitoring": false + "Monitoring": false, + "MonitoringPorts": false } \ No newline at end of file diff --git a/testutil/compose/testdata/TestDockerCompose_lock_create_template.golden b/testutil/compose/testdata/TestDockerCompose_lock_create_template.golden index 29edc6c94..4a41dc11d 100644 --- a/testutil/compose/testdata/TestDockerCompose_lock_create_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_lock_create_template.golden @@ -33,5 +33,6 @@ ], "VCs": null, "Bootnode": false, - "Monitoring": false + "Monitoring": false, + "MonitoringPorts": false } \ No newline at end of file diff --git a/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden b/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden index 6e89163be..98005b66a 100644 --- a/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden @@ -287,5 +287,6 @@ ], "VCs": null, "Bootnode": true, - "Monitoring": false + "Monitoring": false, + "MonitoringPorts": false } \ No newline at end of file diff --git a/testutil/compose/testdata/TestDockerCompose_run_template.golden b/testutil/compose/testdata/TestDockerCompose_run_template.golden index 36de318f1..f4c71e566 100644 --- a/testutil/compose/testdata/TestDockerCompose_run_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_run_template.golden @@ -316,5 +316,6 @@ } ], "Bootnode": true, - "Monitoring": true + "Monitoring": true, + "MonitoringPorts": true } \ No newline at end of file diff --git a/testutil/compose/testdata/TestDockerCompose_run_yml.golden b/testutil/compose/testdata/TestDockerCompose_run_yml.golden index 8e2e1660f..e4ee23be9 100644 --- a/testutil/compose/testdata/TestDockerCompose_run_yml.golden +++ b/testutil/compose/testdata/TestDockerCompose_run_yml.golden @@ -172,6 +172,6 @@ services: networks: [compose] ports: - "16686:16686" - + networks: compose: