Skip to content

Commit 5a8621a

Browse files
authored
feat: Add cloud storage integration with S3 upload/download and snapshot management (#107)
* feat: Add upload to aws and retrieving results from aws * feat: update how report backend works * Setup initial snapshot from remote source and copy per tests * Add frontend build * Add machine info * More frontend changes * Use debug setHead for quick snapshot rollbacks, add client version per run * Remove redundant client version * Add additional snapshot method * Fix warnings * Fix lint issues * Update frontend * Update output dir * Remove backend and ref to s3, fix lint * Remove all refs to s3 * revert main.go, rename and delete some files * More changes
1 parent 78dd71d commit 5a8621a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+7253
-342
lines changed

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.DS_Store
22
/.idea/
3-
/bin/
3+
**/bin/
44
data-dir/
55
output/
66
.vercel
@@ -10,3 +10,12 @@ contracts/cache/
1010
contracts/out/
1111
contracts/abi/
1212
benchmark/benchmark
13+
14+
.env
15+
16+
# Node
17+
coverage/
18+
!**/__fixtures__/coverage
19+
node_modules
20+
yarn-debug.log*
21+
yarn-error.log*

Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ LDFLAGSSTRING +=-X main.GitDate=$(GITDATE)
1919
LDFLAGSSTRING +=-X main.Version=$(VERSION)
2020
LDFLAGS := -ldflags "$(LDFLAGSSTRING)"
2121

22+
# Include .env file if it exists
23+
-include .env
24+
2225
# first so that make defaults to building the benchmark
2326
.PHONY: build
2427
build:
@@ -50,3 +53,11 @@ build-rbuilder:
5053

5154
.PHONY: build-binaries
5255
build-binaries: build-reth build-geth build-rbuilder
56+
57+
.PHONY: build-frontend
58+
build-frontend:
59+
cd report && yarn build
60+
61+
.PHONY: run-frontend
62+
run-frontend:
63+
cd report && set -a && [ -f ../.env ] && . ../.env && set +a && yarn dev

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ git submodule update --init --recursive
3131
# Build the application
3232
make build
3333

34+
# Build the binaries, geth, reth, rbuilder
35+
make build-binaries
36+
3437
# Run the basic benchmark
3538
./bin/base-bench run \
3639
--config ./configs/public/basic.yml \

benchmark/flags/flags.go

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,16 @@ func prefixEnvVars(name string) []string {
1515
}
1616

1717
const (
18-
ConfigFlagName = "config"
19-
RootDirFlagName = "root-dir"
20-
OutputDirFlagName = "output-dir"
21-
TxFuzzBinFlagName = "tx-fuzz-bin"
22-
ProxyPortFlagName = "proxy-port"
18+
ConfigFlagName = "config"
19+
RootDirFlagName = "root-dir"
20+
OutputDirFlagName = "output-dir"
21+
TxFuzzBinFlagName = "tx-fuzz-bin"
22+
ProxyPortFlagName = "proxy-port"
23+
BenchmarkRunIDFlagName = "benchmark-run-id"
24+
MachineTypeFlagName = "machine-type"
25+
MachineProviderFlagName = "machine-provider"
26+
MachineRegionFlagName = "machine-region"
27+
FileSystemFlagName = "file-system"
2328
)
2429

2530
// TxFuzz defaults
@@ -62,6 +67,37 @@ var (
6267
Value: 8546,
6368
EnvVars: prefixEnvVars("PROXY_PORT"),
6469
}
70+
71+
BenchmarkRunIDFlag = &cli.StringFlag{
72+
Name: BenchmarkRunIDFlagName,
73+
Usage: "Custom benchmark run ID (auto-generated if not provided)",
74+
EnvVars: prefixEnvVars("BENCHMARK_RUN_ID"),
75+
}
76+
77+
MachineTypeFlag = &cli.StringFlag{
78+
Name: "machine-type",
79+
Usage: "Machine type (e.g., i4i.32xlarge)",
80+
EnvVars: prefixEnvVars("MACHINE_TYPE"),
81+
}
82+
83+
MachineProviderFlag = &cli.StringFlag{
84+
Name: "machine-provider",
85+
Usage: "Cloud provider (aws or gcp)",
86+
EnvVars: prefixEnvVars("MACHINE_PROVIDER"),
87+
}
88+
89+
MachineRegionFlag = &cli.StringFlag{
90+
Name: "machine-region",
91+
Usage: "Machine region",
92+
EnvVars: prefixEnvVars("MACHINE_REGION"),
93+
}
94+
95+
FileSystemFlag = &cli.StringFlag{
96+
Name: "file-system",
97+
Usage: "File system type",
98+
Value: "ext4",
99+
EnvVars: prefixEnvVars("FILE_SYSTEM"),
100+
}
65101
)
66102

67103
// Flags contains the list of configuration options available to the binary.
@@ -73,6 +109,11 @@ var RunFlags = []cli.Flag{
73109
OutputDirFlag,
74110
TxFuzzBinFlag,
75111
ProxyPortFlag,
112+
BenchmarkRunIDFlag,
113+
MachineTypeFlag,
114+
MachineProviderFlag,
115+
MachineRegionFlag,
116+
FileSystemFlag,
76117
}
77118

78119
func init() {

clients/build-reth.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ git checkout "$RETH_VERSION"
4040

4141
# Build the binary using cargo
4242
echo "Building reth with cargo..."
43-
cargo build --release --bin reth
43+
cargo build --bin op-reth --profile maxperf --manifest-path crates/optimism/bin/Cargo.toml
4444

4545
# Copy binary to output directory
4646
echo "Copying binary to output directory..."
4747
mkdir -p "../../$OUTPUT_DIR"
48-
cp target/release/reth "../../$OUTPUT_DIR/"
48+
cp target/maxperf/op-reth "../../$OUTPUT_DIR/"
4949

5050
echo "reth binary built successfully and placed in $OUTPUT_DIR/reth"

clients/versions.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Reth Configuration
66
RETH_REPO="https://github.com/paradigmxyz/reth/"
7-
RETH_VERSION="v1.5.1"
7+
RETH_VERSION="v1.8.1"
88

99
# Op-Geth Configuration
1010
GETH_REPO="https://github.com/ethereum-optimism/op-geth/"

configs/examples/snapshot.yml

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,38 @@
1-
name: Snapshot Functionality Test
1+
name: Two-Tier Snapshot Functionality Test
22
description: |
3-
Snapshot Functionality Test - Tests client snapshot creation and loading capabilities to validate state snapshot performance for fast sync operations.
3+
Two-Tier Snapshot Functionality Test - Demonstrates the new optimized snapshot system with initial snapshots and per-test copying.
44
5-
This benchmark suite tests snapshot functionality with both Sepolia Alpha and development network data, including snapshot creation, loading, and validation processes. Features skip-if-nonempty optimization for development efficiency and tests multiple gas limit configurations.
5+
This benchmark suite uses a two-tier snapshot approach:
6+
1. Initial snapshots are downloaded once at benchmark startup and stored persistently
7+
2. Per-test snapshots are copied from initial snapshots for each test run using rsync
8+
3. Test-specific copies are cleaned up after each test while preserving initial snapshots
69
7-
Use Case: Validate state snapshot performance for fast sync operations, test snapshot creation and loading capabilities across different environments, and ensure snapshot performance remains consistent in development workflows.
10+
Use Case: Optimized snapshot performance for fast test execution, reduced network overhead, and efficient storage management across multiple node types.
811
912
payloads:
1013
- name: Transfer-only
1114
id: transfer-only
1215
type: transfer-only
1316

1417
benchmarks:
15-
- snapshot:
16-
# skip non-empty for testing so we don't copy every time we run this
17-
# just delete the snapshot directory to force a full copy
18-
command: ./scripts/setup-snapshot.sh --skip-if-nonempty
19-
genesis_file: ../../sepolia-alpha/sepolia-alpha-genesis.json
20-
# force_clean is true by default to ensure consistency, but we can skip it for testing
21-
force_clean: false
18+
- initial_snapshots:
19+
- node_type: reth
20+
# Download an initial reth snapshot that can be copied for each test
21+
command: ./scripts/setup-base-snapshot.sh --network=sepolia --node-type=reth --destination=/data/snapshots/reth/initial
22+
destination: /data/snapshots/reth/initial
23+
superchain_chain_id: 84532
24+
- node_type: geth
25+
# Download an initial geth snapshot that can be copied for each test
26+
command: ./scripts/setup-base-snapshot.sh --network=sepolia --node-type=geth --destination=/data/snapshots/geth/initial
27+
destination: /data/snapshots/geth/initial
28+
superchain_chain_id: 84532
2229
variables:
2330
- type: payload
2431
value: transfer-only
2532
- type: node_type
2633
values:
2734
- reth
28-
- type: num_blocks
29-
value: 10
30-
- type: gas_limit
31-
values:
32-
- 15000000
33-
- 30000000
34-
- 60000000
35-
- 90000000
36-
- variables:
37-
- type: payload
38-
value: transfer-only
39-
- type: node_type
40-
values:
41-
- reth
35+
- geth
4236
- type: num_blocks
4337
value: 10
4438
- type: gas_limit

configs/public/basic.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ benchmarks:
2323
value: 10
2424
- type: gas_limit
2525
values:
26-
- 15000000
26+
- 20000000
2727
- 30000000
2828
- 60000000
2929
- 90000000

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ go 1.23.0
55
toolchain go1.23.10
66

77
require (
8+
github.com/aws/aws-sdk-go v1.47.13
89
github.com/charmbracelet/huh v0.7.0
910
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
1011
github.com/ethereum-optimism/optimism v1.13.3
1112
github.com/ethereum/go-ethereum v1.16.0
1213
github.com/holiman/uint256 v1.3.2
1314
github.com/pkg/errors v0.9.1
15+
github.com/prometheus/client_model v0.6.2
1416
github.com/prometheus/common v0.62.0
1517
github.com/stretchr/testify v1.10.0
1618
github.com/urfave/cli/v2 v2.27.6
@@ -35,15 +37,13 @@ require (
3537
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3638
github.com/charmbracelet/bubbles v0.21.0 // indirect
3739
github.com/charmbracelet/bubbletea v1.3.4 // indirect
38-
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1 // indirect
3940
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
4041
github.com/charmbracelet/lipgloss v1.1.0 // indirect
4142
github.com/charmbracelet/x/ansi v0.8.0 // indirect
4243
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
44+
github.com/charmbracelet/x/exp/golden v0.0.0-20241212170349-ad4b7ae0f25f // indirect
4345
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 // indirect
44-
github.com/charmbracelet/x/input v0.3.4 // indirect
4546
github.com/charmbracelet/x/term v0.2.1 // indirect
46-
github.com/charmbracelet/x/windows v0.2.0 // indirect
4747
github.com/cockroachdb/errors v1.11.3 // indirect
4848
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce // indirect
4949
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
@@ -82,6 +82,7 @@ require (
8282
github.com/ipfs/go-datastore v0.6.0 // indirect
8383
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
8484
github.com/jbenet/goprocess v0.1.4 // indirect
85+
github.com/jmespath/go-jmespath v0.4.0 // indirect
8586
github.com/klauspost/compress v1.18.0 // indirect
8687
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
8788
github.com/kr/pretty v0.3.1 // indirect
@@ -121,7 +122,6 @@ require (
121122
github.com/pion/transport/v3 v3.0.7 // indirect
122123
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
123124
github.com/prometheus/client_golang v1.22.0 // indirect
124-
github.com/prometheus/client_model v0.6.2 // indirect
125125
github.com/prometheus/procfs v0.15.1 // indirect
126126
github.com/rivo/uniseg v0.4.7 // indirect
127127
github.com/rogpeppe/go-internal v1.13.1 // indirect

go.sum

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg
22
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
33
github.com/DataDog/zstd v1.5.6-0.20230824185856-869dae002e5e h1:ZIWapoIRN1VqT8GR8jAwb1Ie9GyehWjVcGh32Y2MznE=
44
github.com/DataDog/zstd v1.5.6-0.20230824185856-869dae002e5e/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
5+
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
6+
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
57
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
68
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
79
github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI=
@@ -14,8 +16,12 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1
1416
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
1517
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
1618
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
19+
github.com/aws/aws-sdk-go v1.47.13 h1:pJgCtldg5azDAFoEcE0fz6n+FnCc1/FY4krtUa5uvZQ=
20+
github.com/aws/aws-sdk-go v1.47.13/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
1721
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
1822
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
23+
github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8=
24+
github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA=
1925
github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
2026
github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
2127
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -59,8 +65,6 @@ github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u
5965
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
6066
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
6167
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
62-
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1 h1:yaxFt97mvofGY7bYZn8U/aSVoamXGE3O4AEvWhshUDI=
63-
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1/go.mod h1:qbcZLI5z8R49v9xBdU5V5Dh5D2uccx8wSwBqxQyErqc=
6468
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs=
6569
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk=
6670
github.com/charmbracelet/huh v0.7.0 h1:W8S1uyGETgj9Tuda3/JdVkc3x7DBLZYPZc4c+/rnRdc=
@@ -71,14 +75,20 @@ github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2ll
7175
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
7276
github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
7377
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
78+
github.com/charmbracelet/x/conpty v0.1.0 h1:4zc8KaIcbiL4mghEON8D72agYtSeIgq8FSThSPQIb+U=
79+
github.com/charmbracelet/x/conpty v0.1.0/go.mod h1:rMFsDJoDwVmiYM10aD4bH2XiRgwI7NYJtQgl5yskjEQ=
80+
github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86 h1:JSt3B+U9iqk37QUU2Rvb6DSBYRLtWqFqfxf8l5hOZUA=
81+
github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86/go.mod h1:2P0UgXMEa6TsToMSuFqKFQR+fZTO9CNGUNokkPatT/0=
82+
github.com/charmbracelet/x/exp/golden v0.0.0-20241212170349-ad4b7ae0f25f h1:UytXHv0UxnsDFmL/7Z9Q5SBYPwSuRLXHbwx+6LycZ2w=
83+
github.com/charmbracelet/x/exp/golden v0.0.0-20241212170349-ad4b7ae0f25f/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
7484
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 h1:qko3AQ4gK1MTS/de7F5hPGx6/k1u0w4TeYmBFwzYVP4=
7585
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0/go.mod h1:pBhA0ybfXv6hDjQUZ7hk1lVxBiUbupdw5R31yPUViVQ=
76-
github.com/charmbracelet/x/input v0.3.4 h1:Mujmnv/4DaitU0p+kIsrlfZl/UlmeLKw1wAP3e1fMN0=
77-
github.com/charmbracelet/x/input v0.3.4/go.mod h1:JI8RcvdZWQIhn09VzeK3hdp4lTz7+yhiEdpEQtZN+2c=
7886
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
7987
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
80-
github.com/charmbracelet/x/windows v0.2.0 h1:ilXA1GJjTNkgOm94CLPeSz7rar54jtFatdmoiONPuEw=
81-
github.com/charmbracelet/x/windows v0.2.0/go.mod h1:ZibNFR49ZFqCXgP76sYanisxRyC+EYrBE7TTknD8s1s=
88+
github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY=
89+
github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo=
90+
github.com/charmbracelet/x/xpty v0.1.2 h1:Pqmu4TEJ8KeA9uSkISKMU3f+C1F6OGBn8ABuGlqCbtI=
91+
github.com/charmbracelet/x/xpty v0.1.2/go.mod h1:XK2Z0id5rtLWcpeNiMYBccNNBrP2IJnzHI0Lq13Xzq4=
8292
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
8393
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
8494
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -109,6 +119,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwz
109119
github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4=
110120
github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks=
111121
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
122+
github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
123+
github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
112124
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
113125
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
114126
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -234,6 +246,10 @@ github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0
234246
github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
235247
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
236248
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
249+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
250+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
251+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
252+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
237253
github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
238254
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
239255
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
@@ -470,8 +486,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
470486
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
471487
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
472488
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
473-
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
474-
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
475489
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
476490
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
477491
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -504,8 +518,6 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
504518
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
505519
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
506520
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
507-
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
508-
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
509521
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
510522
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
511523
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -526,8 +538,6 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
526538
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
527539
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
528540
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
529-
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
530-
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
531541
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
532542
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
533543
golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
@@ -565,6 +575,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD
565575
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
566576
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
567577
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
578+
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
568579
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
569580
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
570581
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

0 commit comments

Comments
 (0)