From d9baed4ef4602a2c63445733c3087caacff30037 Mon Sep 17 00:00:00 2001 From: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:08:15 -0400 Subject: [PATCH 01/35] feat: Refactor to OCB based agent (#1755) * wip * refactor repo * update workflow go versions * update build flow to install-tools * update build license check * new make target * rename to manifests * update release workflow * package supervisor with agent * resolve errs with gcp exporters * update version to have go.mod * get google exporters correctly importing version * manifest documentation * use updated version commit in google exporters * include supervisor as prebuilt binary * remove config.yaml from release pkg since its not used by supervisor/agent now * feedback 1/n * rebase cleanup * update go version in a few actions, use https git clone for contrib * change tool cache and fix release-test * replace rest of tool caches --- .github/workflows/checks.yml | 15 +- .github/workflows/codeql.yml | 3 +- .github/workflows/manual_msi_build.yml | 3 +- .github/workflows/multi_build.yml | 62 +- .github/workflows/release.yml | 21 +- .github/workflows/tests.yml | 4 +- .gitignore | 7 +- .goreleaser.yml | 75 +- Makefile | 69 +- buildscripts/download-dependencies.sh | 25 + cmd/collector/main.go | 331 -- cmd/collector/main_test.go | 458 -- collector/collector.go | 266 -- collector/collector_test.go | 261 -- collector/featuregates.go | 36 - collector/featuregates_test.go | 25 - collector/mocks/mock_collector.go | 118 - collector/settings.go | 64 - collector/settings_test.go | 57 - collector/test/invalid.yaml | 12 - collector/test/slow_receiver.yaml | 11 - collector/test/valid.yaml | 12 - collector/test/valid_with_env_var.yaml | 13 - config/supervisor-config.example.yaml | 18 + docker/Dockerfile.scratch | 1 - docker/Dockerfile.ubi8 | 6 - docker/Dockerfile.ubuntu | 6 - exporter/chronicleexporter/config.go | 2 +- exporter/chronicleexporter/go.mod | 4 +- exporter/chronicleexporter/marshal.go | 2 +- exporter/chronicleforwarderexporter/config.go | 2 +- exporter/chronicleforwarderexporter/go.mod | 4 +- .../chronicleforwarderexporter/marshal.go | 2 +- exporter/googlecloudexporter/config.go | 4 +- exporter/googlecloudexporter/config_test.go | 5 +- exporter/googlecloudexporter/factory.go | 4 +- exporter/googlecloudexporter/factory_test.go | 24 +- exporter/googlecloudexporter/go.mod | 8 +- exporter/googlecloudexporter/go.sum | 8 +- .../googlemanagedprometheusexporter/config.go | 4 +- .../config_test.go | 5 +- .../factory.go | 4 +- .../factory_test.go | 12 +- .../googlemanagedprometheusexporter/go.mod | 6 +- .../googlemanagedprometheusexporter/go.sum | 5 +- exporter/qradar/go.mod | 2 +- exporter/qradar/go.sum | 2 + factories/connectors.go | 32 - factories/exporters.go | 101 - factories/extensions.go | 44 - factories/factories.go | 72 - factories/factories_test.go | 131 - factories/processors.go | 92 - factories/receivers.go | 174 - go.mod | 888 ---- go.sum | 3731 ----------------- {counter => internal/counter}/counter.go | 0 {counter => internal/counter}/counter_test.go | 0 {counter => internal/counter}/go.mod | 2 +- {counter => internal/counter}/go.sum | 0 {expr => internal/expr}/datapoint.go | 0 {expr => internal/expr}/datapoint_test.go | 0 {expr => internal/expr}/expression.go | 0 {expr => internal/expr}/expression_test.go | 0 {expr => internal/expr}/go.mod | 2 +- {expr => internal/expr}/go.sum | 0 {expr => internal/expr}/map.go | 0 {expr => internal/expr}/map_test.go | 0 {expr => internal/expr}/ottl.go | 0 {expr => internal/expr}/ottl_condition.go | 0 .../expr}/ottl_condition_test.go | 0 {expr => internal/expr}/ottl_expression.go | 0 .../expr}/ottl_expression_test.go | 0 {expr => internal/expr}/ottl_map.go | 0 {expr => internal/expr}/ottl_map_test.go | 0 {expr => internal/expr}/record.go | 0 {expr => internal/expr}/record_test.go | 0 {expr => internal/expr}/span.go | 0 {expr => internal/expr}/span_test.go | 0 internal/logging/config.go | 143 - internal/logging/config_test.go | 167 - internal/logging/testdata/expand-env.yaml | 7 - internal/logging/testdata/info.yaml | 7 - internal/logging/testdata/not-yaml.txt | 1 - internal/logging/testdata/stdout.yaml | 2 - internal/os/os.go | 141 - internal/os/os_test.go | 214 - .../processor/snapshotprocessor/README.md | 21 - .../processor/snapshotprocessor/config.go | 27 - .../snapshotprocessor/config_test.go | 25 - .../processor/snapshotprocessor/factory.go | 82 - .../snapshotprocessor/factory_test.go | 34 - .../processor/snapshotprocessor/processor.go | 77 - .../snapshotprocessor/processor_test.go | 187 - internal/service/managed.go | 102 - internal/service/managed_test.go | 131 - .../service/mocks/mock_runnable_service.go | 84 - internal/service/service.go | 67 - internal/service/service_others.go | 33 - internal/service/service_test.go | 178 - internal/service/service_windows.go | 208 - internal/service/service_windows_test.go | 604 --- internal/service/standalone.go | 100 - internal/service/standalone_test.go | 234 -- internal/tools/go.mod | 19 +- internal/tools/go.sum | 37 +- internal/tools/tools.go | 2 + internal/version/go.mod | 11 + internal/version/go.sum | 10 + internal/version/version.go | 18 +- internal/version/version_test.go | 2 - manifests/README.md | 14 + manifests/minimal/README.md | 15 + manifests/minimal/manifest.yaml | 39 + manifests/observIQ/README.md | 38 + manifests/observIQ/manifest.yaml | 286 ++ opamp/client.go | 29 - opamp/config.go | 404 -- opamp/config_manager.go | 58 - opamp/config_manager_test.go | 57 - opamp/config_test.go | 1197 ------ opamp/doc.go | 20 - opamp/downloadable_file_manager.go | 33 - opamp/helpers.go | 38 - opamp/helpers_test.go | 41 - opamp/managed_config.go | 85 - opamp/managed_config_test.go | 130 - opamp/mocks/mock_client.go | 64 - opamp/mocks/mock_config_manager.go | 92 - opamp/mocks/mock_downloadable_file_manager.go | 51 - opamp/mocks/mock_opamp_client.go | 248 -- opamp/mocks/mock_packages_state_provider.go | 289 -- opamp/mocks/mock_updater_manager.go | 42 - opamp/observiq/agent_config_manager.go | 221 - opamp/observiq/agent_config_manager_test.go | 574 --- opamp/observiq/identity.go | 130 - opamp/observiq/identity_test.go | 174 - opamp/observiq/observiq_client.go | 729 ---- opamp/observiq/observiq_client_test.go | 1548 ------- .../observiq_downloadable_file_manager.go | 320 -- ...observiq_downloadable_file_manager_test.go | 349 -- .../observiq_packages_state_provider.go | 152 - .../observiq_packages_state_provider_test.go | 469 --- opamp/observiq/reload_funcs.go | 289 -- opamp/observiq/reload_funcs_test.go | 392 -- opamp/observiq/testdata/latest/badupdater | 0 opamp/observiq/testdata/latest/quickupdater | 3 - .../observiq/testdata/latest/quickupdater.exe | Bin 1325056 -> 0 bytes .../testdata/latest/quickupdater.test | 23 - opamp/observiq/testdata/latest/slowupdater | 3 - .../observiq/testdata/latest/slowupdater.exe | Bin 1325056 -> 0 bytes .../observiq/testdata/latest/slowupdater.test | 23 - .../observiq/testdata/not-actually-tar.tar.gz | 1 - opamp/observiq/testdata/test.tar.gz | Bin 136 -> 0 bytes opamp/observiq/testdata/test.txt | 1 - opamp/observiq/testdata/test.zip | Bin 134 -> 0 bytes opamp/observiq/updater_manager.go | 84 - opamp/observiq/updater_manager_others.go | 95 - opamp/observiq/updater_manager_others_test.go | 140 - opamp/observiq/updater_manager_windows.go | 88 - .../observiq/updater_manager_windows_test.go | 149 - opamp/testdata/test-ca.crt | 33 - opamp/testdata/test.crt | 160 - opamp/testdata/test.key | 51 - opamp/version.go | 23 - opamp/version_test.go | 25 - processor/datapointcountprocessor/factory.go | 2 +- processor/datapointcountprocessor/go.mod | 8 +- .../datapointcountprocessor/processor.go | 4 +- processor/logcountprocessor/factory.go | 2 +- processor/logcountprocessor/go.mod | 8 +- processor/logcountprocessor/processor.go | 4 +- processor/metricextractprocessor/config.go | 2 +- processor/metricextractprocessor/factory.go | 2 +- processor/metricextractprocessor/go.mod | 4 +- .../metricextractprocessor/processor_expr.go | 2 +- .../metricextractprocessor/processor_ottl.go | 2 +- processor/samplingprocessor/go.mod | 2 +- processor/samplingprocessor/go.sum | 2 + processor/spancountprocessor/factory.go | 2 +- processor/spancountprocessor/go.mod | 8 +- processor/spancountprocessor/processor.go | 4 +- 182 files changed, 771 insertions(+), 19138 deletions(-) delete mode 100644 cmd/collector/main.go delete mode 100644 cmd/collector/main_test.go delete mode 100644 collector/collector.go delete mode 100644 collector/collector_test.go delete mode 100644 collector/featuregates.go delete mode 100644 collector/featuregates_test.go delete mode 100644 collector/mocks/mock_collector.go delete mode 100644 collector/settings.go delete mode 100644 collector/settings_test.go delete mode 100644 collector/test/invalid.yaml delete mode 100644 collector/test/slow_receiver.yaml delete mode 100644 collector/test/valid.yaml delete mode 100644 collector/test/valid_with_env_var.yaml create mode 100644 config/supervisor-config.example.yaml delete mode 100644 factories/connectors.go delete mode 100644 factories/exporters.go delete mode 100644 factories/extensions.go delete mode 100644 factories/factories.go delete mode 100644 factories/factories_test.go delete mode 100644 factories/processors.go delete mode 100644 factories/receivers.go delete mode 100644 go.mod delete mode 100644 go.sum rename {counter => internal/counter}/counter.go (100%) rename {counter => internal/counter}/counter_test.go (100%) rename {counter => internal/counter}/go.mod (77%) rename {counter => internal/counter}/go.sum (100%) rename {expr => internal/expr}/datapoint.go (100%) rename {expr => internal/expr}/datapoint_test.go (100%) rename {expr => internal/expr}/expression.go (100%) rename {expr => internal/expr}/expression_test.go (100%) rename {expr => internal/expr}/go.mod (97%) rename {expr => internal/expr}/go.sum (100%) rename {expr => internal/expr}/map.go (100%) rename {expr => internal/expr}/map_test.go (100%) rename {expr => internal/expr}/ottl.go (100%) rename {expr => internal/expr}/ottl_condition.go (100%) rename {expr => internal/expr}/ottl_condition_test.go (100%) rename {expr => internal/expr}/ottl_expression.go (100%) rename {expr => internal/expr}/ottl_expression_test.go (100%) rename {expr => internal/expr}/ottl_map.go (100%) rename {expr => internal/expr}/ottl_map_test.go (100%) rename {expr => internal/expr}/record.go (100%) rename {expr => internal/expr}/record_test.go (100%) rename {expr => internal/expr}/span.go (100%) rename {expr => internal/expr}/span_test.go (100%) delete mode 100644 internal/logging/config.go delete mode 100644 internal/logging/config_test.go delete mode 100644 internal/logging/testdata/expand-env.yaml delete mode 100644 internal/logging/testdata/info.yaml delete mode 100644 internal/logging/testdata/not-yaml.txt delete mode 100644 internal/logging/testdata/stdout.yaml delete mode 100644 internal/os/os.go delete mode 100644 internal/os/os_test.go delete mode 100644 internal/processor/snapshotprocessor/README.md delete mode 100644 internal/processor/snapshotprocessor/config.go delete mode 100644 internal/processor/snapshotprocessor/config_test.go delete mode 100644 internal/processor/snapshotprocessor/factory.go delete mode 100644 internal/processor/snapshotprocessor/factory_test.go delete mode 100644 internal/processor/snapshotprocessor/processor.go delete mode 100644 internal/processor/snapshotprocessor/processor_test.go delete mode 100644 internal/service/managed.go delete mode 100644 internal/service/managed_test.go delete mode 100644 internal/service/mocks/mock_runnable_service.go delete mode 100644 internal/service/service.go delete mode 100644 internal/service/service_others.go delete mode 100644 internal/service/service_test.go delete mode 100644 internal/service/service_windows.go delete mode 100644 internal/service/service_windows_test.go delete mode 100644 internal/service/standalone.go delete mode 100644 internal/service/standalone_test.go create mode 100644 internal/version/go.mod create mode 100644 internal/version/go.sum create mode 100644 manifests/README.md create mode 100644 manifests/minimal/README.md create mode 100644 manifests/minimal/manifest.yaml create mode 100644 manifests/observIQ/README.md create mode 100644 manifests/observIQ/manifest.yaml delete mode 100644 opamp/client.go delete mode 100644 opamp/config.go delete mode 100644 opamp/config_manager.go delete mode 100644 opamp/config_manager_test.go delete mode 100644 opamp/config_test.go delete mode 100644 opamp/doc.go delete mode 100644 opamp/downloadable_file_manager.go delete mode 100644 opamp/helpers.go delete mode 100644 opamp/helpers_test.go delete mode 100644 opamp/managed_config.go delete mode 100644 opamp/managed_config_test.go delete mode 100644 opamp/mocks/mock_client.go delete mode 100644 opamp/mocks/mock_config_manager.go delete mode 100644 opamp/mocks/mock_downloadable_file_manager.go delete mode 100644 opamp/mocks/mock_opamp_client.go delete mode 100644 opamp/mocks/mock_packages_state_provider.go delete mode 100644 opamp/mocks/mock_updater_manager.go delete mode 100644 opamp/observiq/agent_config_manager.go delete mode 100644 opamp/observiq/agent_config_manager_test.go delete mode 100644 opamp/observiq/identity.go delete mode 100644 opamp/observiq/identity_test.go delete mode 100644 opamp/observiq/observiq_client.go delete mode 100644 opamp/observiq/observiq_client_test.go delete mode 100644 opamp/observiq/observiq_downloadable_file_manager.go delete mode 100644 opamp/observiq/observiq_downloadable_file_manager_test.go delete mode 100644 opamp/observiq/observiq_packages_state_provider.go delete mode 100644 opamp/observiq/observiq_packages_state_provider_test.go delete mode 100644 opamp/observiq/reload_funcs.go delete mode 100644 opamp/observiq/reload_funcs_test.go delete mode 100755 opamp/observiq/testdata/latest/badupdater delete mode 100755 opamp/observiq/testdata/latest/quickupdater delete mode 100755 opamp/observiq/testdata/latest/quickupdater.exe delete mode 100644 opamp/observiq/testdata/latest/quickupdater.test delete mode 100755 opamp/observiq/testdata/latest/slowupdater delete mode 100755 opamp/observiq/testdata/latest/slowupdater.exe delete mode 100644 opamp/observiq/testdata/latest/slowupdater.test delete mode 100644 opamp/observiq/testdata/not-actually-tar.tar.gz delete mode 100644 opamp/observiq/testdata/test.tar.gz delete mode 100644 opamp/observiq/testdata/test.txt delete mode 100644 opamp/observiq/testdata/test.zip delete mode 100644 opamp/observiq/updater_manager.go delete mode 100644 opamp/observiq/updater_manager_others.go delete mode 100644 opamp/observiq/updater_manager_others_test.go delete mode 100644 opamp/observiq/updater_manager_windows.go delete mode 100644 opamp/observiq/updater_manager_windows_test.go delete mode 100644 opamp/testdata/test-ca.crt delete mode 100644 opamp/testdata/test.crt delete mode 100644 opamp/testdata/test.key delete mode 100644 opamp/version.go delete mode 100644 opamp/version_test.go diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index bf625e178..4b26e1a1c 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -11,13 +11,14 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: "1.21" + check-latest: true - name: Cache Tools id: tool-cache uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools @@ -39,7 +40,7 @@ jobs: uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools @@ -63,7 +64,7 @@ jobs: uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools @@ -87,7 +88,7 @@ jobs: uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools @@ -111,7 +112,7 @@ jobs: uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools @@ -135,7 +136,7 @@ jobs: uses: actions/cache@v3 with: path: /home/runner/go/bin - key: tooling-${{ runner.os }}-${{ hashFiles('./Makefile') }} + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} - name: Install Tools if: steps.tool-cache.outputs.cache-hit != 'true' run: make install-tools diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 07e224aea..9cc4bf03e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -40,7 +40,8 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: "1.21" + check-latest: true # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/manual_msi_build.yml b/.github/workflows/manual_msi_build.yml index 0da677f9c..c3947e0b6 100644 --- a/.github/workflows/manual_msi_build.yml +++ b/.github/workflows/manual_msi_build.yml @@ -16,7 +16,8 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: "1.21" + check-latest: true - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 with: diff --git a/.github/workflows/multi_build.yml b/.github/workflows/multi_build.yml index d7b07b1ca..fdbce4a32 100644 --- a/.github/workflows/multi_build.yml +++ b/.github/workflows/multi_build.yml @@ -6,15 +6,49 @@ on: pull_request: jobs: + setup-tools: + runs-on: "ubuntu-20.04" + steps: + - name: Checkout Sources + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.21" + check-latest: true + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools + build_linux: runs-on: ubuntu-latest-4-cores + needs: + - setup-tools steps: - name: Checkout Sources uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: "1.22" + check-latest: true + cache-dependency-path: | + **/go.sum + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools cache-dependency-path: | go.sum **/go.sum @@ -24,8 +58,11 @@ jobs: run: | go install github.com/uw-labs/lichen@v0.1.7 lichen --config=./license.yaml $(find dist/collector_* dist/updater_*) + build_darwin: runs-on: macos-14 + needs: + - setup-tools steps: - name: Checkout Sources uses: actions/checkout@v4 @@ -35,16 +72,27 @@ jobs: go-version: "1.22" check-latest: true cache-dependency-path: | - go.sum **/go.sum + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools - name: Build run: make build-darwin - name: Scan Third Party Dependency Licenses run: | go install github.com/uw-labs/lichen@v0.1.7 lichen --config=./license.yaml $(find dist/collector_* dist/updater_*) + build_windows: runs-on: ubuntu-20.04 + needs: + - setup-tools steps: - name: Checkout Sources uses: actions/checkout@v4 @@ -54,8 +102,16 @@ jobs: go-version: "1.22" check-latest: true cache-dependency-path: | - go.sum **/go.sum + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: tooling-${{ runner.os }}-${{ hashFiles('./internal/tools/go.sum') }} + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools - name: Build run: make build-windows - name: Scan Third Party Dependency Licenses diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 254505c5a..0dc1094bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,22 +13,14 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version-file: go.mod - cache-dependency-path: "**/go.sum" - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v5 - with: - # either 'goreleaser' (default) or 'goreleaser-pro' - distribution: goreleaser-pro - version: "v2.1.0" - args: build --single-target --skip=validate --clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + go-version: "1.21" + check-latest: true + - name: Build Windows Binaries + run: make build-binaries - name: Copy Windows Collector Binary - run: cp dist/windows_amd64/collector_windows_amd64_v1/observiq-otel-collector.exe windows/observiq-otel-collector.exe + run: cp dist/collector_windows_amd64.exe windows/observiq-otel-collector.exe - name: Copy Windows Updater Binary - run: cp dist/windows_amd64/updater_windows_amd64_v1/updater.exe windows/updater.exe + run: cp dist/updater_windows_amd64.exe windows/updater.exe - name: Copy Plugins to MSI Build Directory run: cp -r release_deps/plugins windows/ - name: Copy Example Config @@ -79,7 +71,6 @@ jobs: with: go-version: "1.22" check-latest: true - cache-dependency-path: "**/go.sum" - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index daa85948d..06b8643a3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,9 +15,9 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: "1.22" + check-latest: true cache-dependency-path: | - go.sum **/go.sum - name: Run Tests run: make test diff --git a/.gitignore b/.gitignore index 5221bfd9c..bb24bd752 100644 --- a/.gitignore +++ b/.gitignore @@ -26,5 +26,8 @@ release_deps collector*.yaml manager*.yaml logging*.yaml -config.yaml -storage + +#Supervisor & Builder Files +builder +agent*.log +effective*.yaml diff --git a/.goreleaser.yml b/.goreleaser.yml index 6c8e2f256..7f03da27e 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -5,14 +5,18 @@ project_name: observiq-otel-collector before: hooks: - make release-prep CURR_VERSION={{ .Version }} + - make build-all OUTDIR="tmp" + +after: + hooks: + - cmd: rm -rf tmp # https://goreleaser.com/customization/build/ builds: + # https://goreleaser.com/customization/builds/#import-pre-built-binaries - id: collector + builder: prebuilt binary: observiq-otel-collector - main: ./cmd/collector - env: - - CGO_ENABLED=0 mod_timestamp: "{{ .CommitTimestamp }}" tags: - bindplane @@ -39,18 +43,11 @@ builds: goarch: ppc64 - goos: darwin goarch: ppc64le - ldflags: - - -s -w - - -X github.com/observiq/bindplane-agent/internal/version.version=v{{ .Version }} - - -X github.com/observiq/bindplane-agent/internal/version.gitHash={{ .FullCommit }} - - -X github.com/observiq/bindplane-agent/internal/version.date={{ .Date }} - no_unique_dist_dir: false + prebuilt: + path: tmp/collector_{{ .Os }}_{{ .Arch }}{{ .Ext }} - id: updater + builder: prebuilt binary: updater - dir: ./updater/ - main: ./cmd/updater - env: - - CGO_ENABLED=0 mod_timestamp: "{{ .CommitTimestamp }}" goos: - windows @@ -75,12 +72,36 @@ builds: goarch: ppc64 - goos: darwin goarch: ppc64le - ldflags: - - -s -w - - -X github.com/observiq/bindplane-agent/updater/internal/version.version=v{{ .Version }} - - -X github.com/observiq/bindplane-agent/updater/internal/version.gitHash={{ .FullCommit }} - - -X github.com/observiq/bindplane-agent/updater/internal/version.date={{ .Date }} - no_unique_dist_dir: false + prebuilt: + path: tmp/updater_{{ .Os }}_{{ .Arch }}{{ .Ext }} + - id: supervisor + builder: prebuilt + binary: opampsupervisor + goos: + - windows + - linux + - darwin + goarch: + - amd64 + - arm64 + - arm + - ppc64 + - ppc64le + ignore: + - goos: windows + goarch: arm + - goos: windows + goarch: arm64 + - goos: windows + goarch: ppc64 + - goos: windows + goarch: ppc64le + - goos: darwin + goarch: ppc64 + - goos: darwin + goarch: ppc64le + prebuilt: + path: release_deps/supervisor_bin/opampsupervisor_{{ .Os }}_{{ .Arch }}{{ .Ext }} # https://goreleaser.com/customization/archive/ archives: @@ -91,9 +112,6 @@ archives: - src: release_deps/opentelemetry-java-contrib-jmx-metrics.jar dst: "." strip_parent: true - - src: release_deps/config.yaml - dst: "." - strip_parent: true - src: release_deps/logging.yaml dst: "." strip_parent: true @@ -142,13 +160,6 @@ nfpms: mode: 0755 owner: observiq-otel-collector group: observiq-otel-collector - - src: release_deps/config.yaml - dst: /opt/observiq-otel-collector/config.yaml - file_info: - mode: 0640 - owner: observiq-otel-collector - group: observiq-otel-collector - type: config|noreplace - src: release_deps/logging.yaml dst: /opt/observiq-otel-collector/logging.yaml file_info: @@ -246,7 +257,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - id: scratch-arm64 @@ -269,7 +279,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - id: ubuntu-amd64 @@ -314,7 +323,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - release_deps/opentelemetry-java-contrib-jmx-metrics.jar @@ -360,7 +368,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - release_deps/opentelemetry-java-contrib-jmx-metrics.jar @@ -389,7 +396,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - release_deps/opentelemetry-java-contrib-jmx-metrics.jar @@ -417,7 +423,6 @@ dockers: extra_files: - release_deps/VERSION.txt - release_deps/plugins - - release_deps/config.yaml - config/logging.stdout.yaml - LICENSE - release_deps/opentelemetry-java-contrib-jmx-metrics.jar diff --git a/Makefile b/Makefile index 0dc931106..e8954a46d 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,11 @@ # All source code and documents, used when checking for misspellings ALLDOC := $(shell find . \( -name "*.md" -o -name "*.yaml" \) \ -type f | sort) -ALL_MODULES := $(shell find . -type f -name "go.mod" -exec dirname {} \; | sort ) +ALL_MODULES := $(shell find . -path ./builder -prune -o -type f -name "go.mod" -exec dirname {} \; | sort ) ALL_MDATAGEN_MODULES := $(shell find . -type f -name "metadata.yaml" -exec dirname {} \; | sort ) # All source code files -ALL_SRC := $(shell find . -name '*.go' -o -name '*.sh' -o -name 'Dockerfile*' -type f | sort) +ALL_SRC := $(shell find . -path ./builder -prune -o -name '*.go' -o -name '*.sh' -o -name 'Dockerfile*' -type f | sort) OUTDIR=./dist GOOS ?= $(shell go env GOOS) @@ -29,15 +29,43 @@ VERSION ?= $(if $(CURRENT_TAG),$(CURRENT_TAG),$(PREVIOUS_TAG)) # Build binaries for current GOOS/GOARCH by default .DEFAULT_GOAL := build-binaries -# Builds just the agent for current GOOS/GOARCH pair +# Builds the agent for current GOOS/GOARCH pair .PHONY: agent agent: - go build -ldflags "-s -w -X github.com/observiq/bindplane-agent/internal/version.version=$(VERSION)" -tags bindplane -o $(OUTDIR)/collector_$(GOOS)_$(GOARCH)$(EXT) ./cmd/collector + builder --config="./manifests/observIQ/manifest.yaml" --ldflags "-s -w -X github.com/observiq/bindplane-agent/internal/version.version=$(VERSION)" + mkdir -p $(OUTDIR); cp ./builder/observiq-otel-collector $(OUTDIR)/collector_$(GOOS)_$(GOARCH)$(EXT) -# Builds just the updater for current GOOS/GOARCH pair +# Builds a custom distro for the current GOOS/GOARCH pair using the manifest specified +# MANIFEST = path to the manifest file for the distro to be built +# Usage: make distro MANIFEST="./manifests/custom/my_distro_manifest.yaml" +.PHONY: distro +distro: + builder --config="$(MANIFEST)" + +# Builds the updater for current GOOS/GOARCH pair && sets flags .PHONY: updater updater: - cd ./updater/; go build -ldflags "-s -w -X github.com/observiq/bindplane-agent/internal/version.version=$(VERSION)" -o ../$(OUTDIR)/updater_$(GOOS)_$(GOARCH)$(EXT) ./cmd/updater + cd ./updater/; go build -ldflags "-s -w\ + -X 'github.com/observiq/bindplane-agent/updater/internal/version.version=$(VERSION)'\ + -X 'github.com/observiq/bindplane-agent/updater/internal/version.gitHash=$(shell git rev-parse HEAD)'\ + -X 'github.com/observiq/bindplane-agent/updater/internal/version.date=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")'"\ + -o ../$(OUTDIR)/updater_$(GOOS)_$(GOARCH)$(EXT) ./cmd/updater + +# Runs the supervisor invoking the agent build in /dist +.PHONY: run-supervisor +run-supervisor: + opampsupervisor --config ./local/supervisor-config.yaml + +# Ensures the supervisor and agent are stopped +.PHONY: kill +kill: + pkill -9 opampsupervisor || true + pkill -9 observiq-agent-distro || true + +# Stops processes and cleans up +.PHONY: reset +reset: kill + rm -rf agent.log effective.yaml local/storage/* builder/ # Builds the updater + agent for current GOOS/GOARCH pair .PHONY: build-binaries @@ -94,13 +122,15 @@ install-tools: cd $(TOOLS_MOD_DIR) && go install github.com/google/addlicense cd $(TOOLS_MOD_DIR) && go install github.com/mgechev/revive cd $(TOOLS_MOD_DIR) && go install go.opentelemetry.io/collector/cmd/mdatagen + cd $(TOOLS_MOD_DIR) && go install go.opentelemetry.io/collector/cmd/builder + cd $(TOOLS_MOD_DIR) && go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor cd $(TOOLS_MOD_DIR) && go install github.com/securego/gosec/v2/cmd/gosec -# update cosign in release.yml when updating this version -# update cosign in docs/verify-signature.md when updating this version - go install github.com/sigstore/cosign/cmd/cosign@v1.13.1 cd $(TOOLS_MOD_DIR) && go install github.com/uw-labs/lichen cd $(TOOLS_MOD_DIR) && go install github.com/vektra/mockery/v2 cd $(TOOLS_MOD_DIR) && go install golang.org/x/tools/cmd/goimports +# update cosign in release.yml when updating this version +# update cosign in docs/verify-signature.md when updating this version + go install github.com/sigstore/cosign/cmd/cosign@v1.13.1 .PHONY: lint lint: @@ -149,18 +179,12 @@ tidy: .PHONY: gosec gosec: - gosec \ - -exclude-dir=updater \ - -exclude-dir=receiver/sapnetweaverreceiver \ - -exclude-dir=extension/bindplaneextension \ - -exclude-dir=processor/snapshotprocessor \ - -exclude-dir=internal/tools \ - ./... -# exclude the testdata dir; it contains a go program for testing. + cd exporter; $(MAKE) -f "../Makefile" for-all CMD="gosec ./..." + cd processor; $(MAKE) -f "../Makefile" for-all CMD="gosec ./..." + cd internal; $(MAKE) -f "../Makefile" for-all CMD="gosec ./..." + cd extension; $(MAKE) -f "../Makefile" for-all CMD="gosec ./..." + cd receiver; $(MAKE) -f "../Makefile" for-all CMD="gosec ./..." cd updater; gosec -exclude-dir internal/service/testdata ./... - cd extension/bindplaneextension; gosec ./... - cd processor/snapshotprocessor; gosec ./... - cd receiver/sapnetweaverreceiver; gosec ./... # This target performs all checks that CI will do (excluding the build itself) .PHONY: ci-checks @@ -218,7 +242,6 @@ release-prep: @echo 'v$(CURR_VERSION)' > release_deps/VERSION.txt ./buildscripts/download-dependencies.sh release_deps @cp -r ./plugins release_deps/ - @cp config/example.yaml release_deps/config.yaml @cp config/logging.yaml release_deps/logging.yaml @cp service/com.observiq.collector.plist release_deps/com.observiq.collector.plist @jq ".files[] | select(.service != null)" windows/wix.json >> release_deps/windows_service.json @@ -235,8 +258,6 @@ release-test: .PHONY: for-all for-all: - @echo "running $${CMD} in root" - @$${CMD} @set -e; for dir in $(ALL_MODULES); do \ (cd "$${dir}" && \ echo "running $${CMD} in $${dir}" && \ @@ -284,4 +305,4 @@ generate: .PHONY: create-plugin-docs create-plugin-docs: - cd cmd/plugindocgen; go run . + cd cmd/plugindocgen; go run . \ No newline at end of file diff --git a/buildscripts/download-dependencies.sh b/buildscripts/download-dependencies.sh index 5a3ec37d4..05142edf2 100755 --- a/buildscripts/download-dependencies.sh +++ b/buildscripts/download-dependencies.sh @@ -26,3 +26,28 @@ JAVA_CONTRIB_VERSION="$(cat "$PROJECT_BASE/JAVA_CONTRIB_VERSION")" echo "Retrieving java contrib at $JAVA_CONTRIB_VERSION" curl -fL -o "$DOWNLOAD_DIR/opentelemetry-java-contrib-jmx-metrics.jar" \ "https://github.com/open-telemetry/opentelemetry-java-contrib/releases/download/$JAVA_CONTRIB_VERSION/opentelemetry-jmx-metrics.jar" > /dev/null 2>&1 + +# HACK(dakota): workaround for getting supervisor binaries until releases are supported +# https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/24293 +# download contrib repo and manually build supervisor repos +echo "Cloning supervisor repo" +SUPERVISOR_REPO="https://github.com/open-telemetry/opentelemetry-collector-contrib.git" +PLATFORMS=("linux/amd64" "linux/arm64" "linux/arm" "linux/ppc64" "linux/ppc64le" "darwin/amd64" "darwin/arm64" "windows/amd64") + +mkdir "$DOWNLOAD_DIR/supervisor_bin" +$(cd $DOWNLOAD_DIR && git clone "$SUPERVISOR_REPO") +cd "$DOWNLOAD_DIR/opentelemetry-collector-contrib/cmd/opampsupervisor" +go get github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor/supervisor +for PLATFORM in "${PLATFORMS[@]}"; do + # Split the PLATFORM string into GOOS and GOARCH + IFS="/" read -r GOOS GOARCH <<< "${PLATFORM}" + if [ "$GOOS" == "windows" ]; then + EXT=".exe" + else + EXT="" + fi + echo "Building supervisor for $GOOS/$GOARCH" + GOOS="$GOOS" GOARCH="$GOARCH" go build main.go + cp main $PROJECT_BASE/$DOWNLOAD_DIR/supervisor_bin/opampsupervisor_${GOOS}_${GOARCH}${EXT} +done +$(cd $PROJECT_BASE/$DOWNLOAD_DIR && rm -rf opentelemetry-collector-contrib) diff --git a/cmd/collector/main.go b/cmd/collector/main.go deleted file mode 100644 index 01a988e59..000000000 --- a/cmd/collector/main.go +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package main provides entry point for the collector -package main - -import ( - "errors" - "fmt" - "log" - "os" - "path/filepath" - "strconv" - _ "time/tzdata" - - "github.com/google/uuid" - "github.com/observiq/bindplane-agent/collector" - "github.com/observiq/bindplane-agent/internal/logging" - "github.com/observiq/bindplane-agent/internal/service" - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/opamp" - "github.com/spf13/pflag" - "go.uber.org/zap" - "gopkg.in/yaml.v3" -) - -const ( - // env variable name constants - endpointENV = "OPAMP_ENDPOINT" - agentIDENV = "OPAMP_AGENT_ID" - secretkeyENV = "OPAMP_SECRET_KEY" //#nosec G101 - labelsENV = "OPAMP_LABELS" - agentNameENV = "OPAMP_AGENT_NAME" - tlsSkipVerifyENV = "OPAMP_TLS_SKIP_VERIFY" - tlsCaENV = "OPAMP_TLS_CA" - tlsCertENV = "OPAMP_TLS_CERT" - tlsKeyENV = "OPAMP_TLS_KEY" - configPathENV = "CONFIG_YAML_PATH" - managerPathENV = "MANAGER_YAML_PATH" - loggingPathENV = "LOGGING_YAML_PATH" -) - -func main() { - collectorConfigPaths := pflag.StringSlice("config", getDefaultCollectorConfigPaths(), "the collector config path") - managerConfigPath := pflag.String("manager", getDefaultManagerConfigPath(), "The configuration for remote management") - loggingConfigPath := pflag.String("logging", getDefaultLoggingConfigPath(), "the collector logging config path") - - _ = pflag.String("log-level", "", "not implemented") // TEMP(jsirianni): Required for OTEL k8s operator - var showVersion = pflag.BoolP("version", "v", false, "prints the version of the collector") - pflag.Parse() - - if *showVersion { - fmt.Println("observiq-otel-collector version", version.Version()) - fmt.Println("commit:", version.GitHash()) - fmt.Println("built at:", version.Date()) - return - } - - logOpts, err := logOptions(loggingConfigPath) - if err != nil { - log.Fatalf("Failed to get log options: %v", err) - } - - // logOpts will override options here - logger, err := zap.NewProduction(logOpts...) - if err != nil { - log.Fatalf("Failed to set up logger: %v", err) - } - - var runnableService service.RunnableService - - // Set feature flags - if err := collector.SetFeatureFlags(); err != nil { - logger.Fatal("Failed to set feature flags.", zap.Error(err)) - } - - col, err := collector.New(*collectorConfigPaths, version.Version(), logOpts) - if err != nil { - logger.Fatal("Failed to create collector.", zap.Error(err)) - } - - // See if manager config file exists. If so run in remote managed mode otherwise standalone mode - if err := checkManagerConfig(managerConfigPath); err == nil { - logger.Info("Starting In Managed Mode") - - collectorConfigPath := (*collectorConfigPaths)[0] - - // Check for existing rollback files for collector config. - // If any exist it's likely the case that the collector crashed during reconfigure. - logger.Debug("Checking for existing rollback files") - if err := checkForCollectorRollbackConfig(collectorConfigPath); err != nil { - // Log an error rather than exit as we should still have a config to run with - logger.Error("Error occurred while checking for collector config rollbacks", zap.Error(err)) - } - - runnableService, err = service.NewManagedCollectorService(col, logger, *managerConfigPath, collectorConfigPath, *loggingConfigPath) - if err != nil { - logger.Fatal("Failed to initiate managed mode", zap.Error(err)) - } - } else if errors.Is(err, os.ErrNotExist) { - logger.Info("Starting Standalone Mode") - runnableService = service.NewStandaloneCollectorService(col) - } else { - logger.Fatal("Error while searching for management config", zap.Error(err)) - } - - // Run service - err = service.RunService(logger, runnableService) - if err != nil { - logger.Fatal("RunService returned error", zap.Error(err)) - } - -} - -func getDefaultCollectorConfigPaths() []string { - cp, ok := os.LookupEnv(configPathENV) - if ok { - return []string{cp} - } - return []string{"./config.yaml"} -} - -func getDefaultManagerConfigPath() string { - mp, ok := os.LookupEnv(managerPathENV) - if ok { - return mp - } - return "./manager.yaml" -} - -func getDefaultLoggingConfigPath() string { - lp, ok := os.LookupEnv(loggingPathENV) - if ok { - return lp - } - return logging.DefaultConfigPath -} - -func logOptions(loggingConfigPath *string) ([]zap.Option, error) { - if loggingConfigPath == nil { - return nil, nil - } - - l, err := logging.NewLoggerConfig(*loggingConfigPath) - if err != nil { - return nil, fmt.Errorf("failed to create logger config: %w", err) - } - - return l.Options() -} - -func checkManagerConfig(configPath *string) error { - _, statErr := os.Stat(*configPath) - switch { - case statErr == nil: - // We found the file, ensure it has identifying fields before establishing any opamp connections - return ensureIdentity(*configPath) - case errors.Is(statErr, os.ErrNotExist): - var ok bool - - // manager.yaml file does *not* exist, create file using env variables - newConfig := &opamp.Config{} - - // Endpoint is only required env - newConfig.Endpoint, ok = os.LookupEnv(endpointENV) - if !ok { - // Envs were not found and statErr is os.ErrNotExist so return that - return statErr - } - - if envString, ok := os.LookupEnv(agentIDENV); ok { - var err error - newConfig.AgentID, err = opamp.ParseAgentID(envString) - if err != nil { - return fmt.Errorf("invalid agent ID in env %q: %w", agentIDENV, err) - } - } else { - u, err := uuid.NewV7() - if err != nil { - return fmt.Errorf("new uuidv7: %w", err) - } - - newConfig.AgentID = opamp.AgentIDFromUUID(u) - } - - if sk, ok := os.LookupEnv(secretkeyENV); ok { - newConfig.SecretKey = &sk - } - - if an, ok := os.LookupEnv(agentNameENV); ok { - newConfig.AgentName = &an - } - - if label, ok := os.LookupEnv(labelsENV); ok { - newConfig.Labels = &label - } - - tlsConfig, err := configureTLS() - if err != nil { - return fmt.Errorf("failed to configure tls: %w", err) - } - - if tlsConfig != nil { - newConfig.TLS = tlsConfig - } - - data, err := yaml.Marshal(newConfig) - if err != nil { - return fmt.Errorf("failed to marshal config: %w", err) - } - - // write data to a manager.yaml file, with 0600 file permission - if err := os.WriteFile(*configPath, data, 0600); err != nil { - return fmt.Errorf("failed to write config file created from ENVs: %w", err) - } - return nil - } - // Return non os.ErrNotExist - return statErr -} - -func ensureIdentity(configPath string) error { - cBytes, err := os.ReadFile(filepath.Clean(configPath)) - if err != nil { - return fmt.Errorf("unable to read file: %w", err) - } - var candidateConfig opamp.Config - err = yaml.Unmarshal(cBytes, &candidateConfig) - if err != nil { - return fmt.Errorf("unable to interpret config file: %w", err) - } - - // If the AgentID is empty then we need to generate a new ID as the AgentID. - if candidateConfig.AgentID != opamp.EmptyAgentID { - return nil - } - - u, err := uuid.NewV7() - if err != nil { - return fmt.Errorf("new uuidv7: %w", err) - } - - candidateConfig.AgentID = opamp.AgentIDFromUUID(u) - - newBytes, err := yaml.Marshal(candidateConfig) - if err != nil { - return fmt.Errorf("failed to marshal sanitized config: %w", err) - } - - if err = os.WriteFile(filepath.Clean(configPath), newBytes, 0600); err != nil { - return fmt.Errorf("failed to rewrite manager config with identifying fields: %w", err) - } - return nil -} - -// checkForCollectorRollbackConfig checks for collector configs with a .rollback extension. -// If one exists it'll overwrite the current config and clean up the rollback file. -func checkForCollectorRollbackConfig(configPath string) error { - cleanPath := filepath.Clean(configPath) - rollbackFileName := fmt.Sprintf("%s.rollback", cleanPath) - - // Check to see if rollback file exists - _, err := os.Stat(rollbackFileName) - - // No rollback file just return - if errors.Is(err, os.ErrNotExist) { - return nil - } - - // Copy rollback file and delete original - //#nosec G304 -- Orignal file path is cleaned at beginning of function - contents, err := os.ReadFile(rollbackFileName) - if err != nil { - return fmt.Errorf("error while reading in collector rollback file: %w", err) - } - - if err := os.WriteFile(cleanPath, contents, 0600); err != nil { - return fmt.Errorf("error while writing rollback contents onto config: %w", err) - } - - if err := os.Remove(rollbackFileName); err != nil { - return fmt.Errorf("error while cleaning up rollback file: %w", err) - } - - return nil -} - -func configureTLS() (*opamp.TLSConfig, error) { - tlsConfig := opamp.TLSConfig{} - tlsConfigured := false - - if skipVerify := os.Getenv(tlsSkipVerifyENV); skipVerify != "" { - s, err := strconv.ParseBool(skipVerify) - if err != nil { - return nil, fmt.Errorf("invalid value '%s' for environment option '%s': %w", skipVerify, tlsSkipVerifyENV, err) - } - tlsConfig.InsecureSkipVerify = s - tlsConfigured = true - } - - if ca := os.Getenv(tlsCaENV); ca != "" { - tlsConfig.CAFile = &ca - tlsConfigured = true - } - - if crt := os.Getenv(tlsCertENV); crt != "" { - tlsConfig.CertFile = &crt - tlsConfigured = true - } - - if key := os.Getenv(tlsKeyENV); key != "" { - tlsConfig.KeyFile = &key - tlsConfigured = true - } - - if tlsConfigured { - return &tlsConfig, nil - } - return nil, nil -} diff --git a/cmd/collector/main_test.go b/cmd/collector/main_test.go deleted file mode 100644 index 6f8cf7e7c..000000000 --- a/cmd/collector/main_test.go +++ /dev/null @@ -1,458 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "runtime" - "testing" - - "github.com/google/uuid" - "github.com/observiq/bindplane-agent/opamp" - "github.com/oklog/ulid/v2" - "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" -) - -// Must is a helper function for tests that panics if there is an error creating the object of type T -func Must[T any](t T, err error) T { - if err != nil { - panic(err) - } - return t -} - -func TestGetDefaultCollectorConfigPathENV(t *testing.T) { - fakeConfigPath := "./fake/path/config.yaml" - - t.Setenv(configPathENV, fakeConfigPath) - - expected := []string{fakeConfigPath} - actual := getDefaultCollectorConfigPaths() - - require.Equal(t, expected, actual) -} - -func TestGetDefaultCollectorConfigPathNone(t *testing.T) { - expected := []string{"./config.yaml"} - actual := getDefaultCollectorConfigPaths() - - require.Equal(t, expected, actual) -} - -func TestGetDefaultLoggingConfigPathENV(t *testing.T) { - fakeLoggingPath := "./fake/path/logging.yaml" - - t.Setenv(loggingPathENV, fakeLoggingPath) - - expected := fakeLoggingPath - actual := getDefaultLoggingConfigPath() - - require.Equal(t, expected, actual) -} - -func TestGetDefaultLoggingConfigPathNone(t *testing.T) { - expected := "./logging.yaml" - actual := getDefaultLoggingConfigPath() - - require.Equal(t, expected, actual) -} - -func TestGetDefaultManagerConfigPathENV(t *testing.T) { - fakeManagerPath := "./fake/path/Manager.yaml" - - t.Setenv(managerPathENV, fakeManagerPath) - - expected := fakeManagerPath - actual := getDefaultManagerConfigPath() - - require.Equal(t, expected, actual) -} - -func TestGetDefaultManagerConfigPathNone(t *testing.T) { - expected := "./manager.yaml" - actual := getDefaultManagerConfigPath() - - require.Equal(t, expected, actual) -} - -func TestCheckManagerNoConfig(t *testing.T) { - manager := "./manager.yaml" - err := checkManagerConfig(&manager) - require.ErrorIs(t, err, os.ErrNotExist) - - tmp := "\000" - err = checkManagerConfig(&tmp) - require.Error(t, err) -} - -func TestCheckManagerConfigNoFile(t *testing.T) { - t.Setenv(endpointENV, "0.0.0.0") - - t.Setenv(agentNameENV, "agent name") - - t.Setenv(agentIDENV, "01HX2DWEQZ045KQR3VG0EYEZ94") - - t.Setenv(secretkeyENV, "secretKey") - - t.Setenv(labelsENV, "this is a label") - - tmpdir := t.TempDir() - manager := filepath.Join(tmpdir, "manager.yaml") - err := checkManagerConfig(&manager) - require.NoError(t, err) - - actual, _ := opamp.ParseConfig(manager) - expected := &opamp.Config{ - Endpoint: "0.0.0.0", - AgentID: Must(opamp.ParseAgentID("01HX2DWEQZ045KQR3VG0EYEZ94")), - AgentName: new(string), - SecretKey: new(string), - Labels: new(string), - } - *expected.AgentName = "agent name" - *expected.SecretKey = "secretKey" - *expected.Labels = "this is a label" - - require.Equal(t, expected, actual) -} - -func TestCheckManagerConfigNoFileTLS(t *testing.T) { - testCases := []struct { - name string - setupFunc func() - expectFunc func() *opamp.TLSConfig - expectedErr error - }{ - { - name: "no-tls", - setupFunc: func() { - return - }, - expectFunc: func() *opamp.TLSConfig { - return nil - }, - expectedErr: nil, - }, - { - name: "skip-verify", - setupFunc: func() { - t.Setenv(tlsSkipVerifyENV, "true") - }, - expectFunc: func() *opamp.TLSConfig { - return &opamp.TLSConfig{ - InsecureSkipVerify: true, - } - }, - expectedErr: nil, - }, - { - name: "skip-verify_invalid", - setupFunc: func() { - t.Setenv(tlsSkipVerifyENV, "invalid") - }, - expectFunc: func() *opamp.TLSConfig { - return nil - }, - expectedErr: errors.New("invalid value 'invalid' for environment option 'OPAMP_TLS_SKIP_VERIFY'"), - }, - { - name: "tls", - setupFunc: func() { - t.Setenv(tlsCaENV, "/tls/ca.crt") - }, - expectFunc: func() *opamp.TLSConfig { - ca := "/tls/ca.crt" - return &opamp.TLSConfig{ - CAFile: &ca, - } - }, - expectedErr: nil, - }, - { - name: "mtls", - setupFunc: func() { - t.Setenv(tlsKeyENV, "/tls/tls.key") - t.Setenv(tlsCertENV, "/tls/tls.crt") - }, - expectFunc: func() *opamp.TLSConfig { - key := "/tls/tls.key" - cert := "/tls/tls.crt" - return &opamp.TLSConfig{ - KeyFile: &key, - CertFile: &cert, - } - }, - expectedErr: nil, - }, - { - name: "tls_all", - setupFunc: func() { - t.Setenv(tlsSkipVerifyENV, "true") - t.Setenv(tlsCaENV, "/tls/ca.crt") - t.Setenv(tlsKeyENV, "/tls/tls.key") - t.Setenv(tlsCertENV, "/tls/tls.crt") - }, - expectFunc: func() *opamp.TLSConfig { - ca := "/tls/ca.crt" - key := "/tls/tls.key" - cert := "/tls/tls.crt" - return &opamp.TLSConfig{ - InsecureSkipVerify: true, - CAFile: &ca, - KeyFile: &key, - CertFile: &cert, - } - }, - expectedErr: nil, - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - tc.setupFunc() - defer func() { - os.Unsetenv(tlsSkipVerifyENV) - os.Unsetenv(tlsCaENV) - os.Unsetenv(tlsKeyENV) - os.Unsetenv(tlsCertENV) - }() - - actual, err := configureTLS() - if tc.expectedErr != nil { - require.ErrorContains(t, err, tc.expectedErr.Error()) - return - } - require.Equal(t, tc.expectFunc(), actual) - }) - } -} - -func TestManagerConfigNoAgentIDWillSet(t *testing.T) { - tmpDir := t.TempDir() - manager := filepath.Join(tmpDir, "manager.yaml") - data := []byte("") - require.NoError(t, os.WriteFile(manager, data, 0600)) - err := checkManagerConfig(&manager) - require.NoError(t, err) - - cfgBytes, err := os.ReadFile(manager) - require.NoError(t, err) - - var config opamp.Config - require.NoError(t, yaml.Unmarshal(cfgBytes, &config)) - require.NotEqual(t, opamp.EmptyAgentID, config.AgentID) -} - -// TestManagerConfigWillNotOverwriteCurrentAgentID tests that if the agent ID is a ULID it will not overwrite it -func TestManagerConfigWillNotOverwriteCurrentAgentID(t *testing.T) { - tmpDir := t.TempDir() - manager := filepath.Join(tmpDir, "manager.yaml") - - id := ulid.Make() - data := []byte(fmt.Sprintf(` ---- -agent_id: %s -`, id)) - require.NoError(t, os.WriteFile(manager, data, 0600)) - err := checkManagerConfig(&manager) - require.NoError(t, err) - - cfgBytes, err := os.ReadFile(manager) - require.NoError(t, err) - - var config opamp.Config - require.NoError(t, yaml.Unmarshal(cfgBytes, &config)) - require.Equal(t, config.AgentID.String(), id.String()) -} - -// TestManagerConfigWillUpdateLegacyAgentID tests that if the agent ID is a Legacy ID (UUID format) it will overwrite with a new ULID -func TestManagerConfigWillUpdateLegacyAgentID(t *testing.T) { - tmpDir := t.TempDir() - manager := filepath.Join(tmpDir, "manager.yaml") - - legacyID := uuid.NewString() - data := []byte(fmt.Sprintf(` ---- -agent_id: %s -`, legacyID)) - require.NoError(t, os.WriteFile(manager, data, 0600)) - err := checkManagerConfig(&manager) - require.NoError(t, err) - - cfgBytes, err := os.ReadFile(manager) - require.NoError(t, err) - - var config opamp.Config - require.NoError(t, yaml.Unmarshal(cfgBytes, &config)) - require.NotEqual(t, opamp.EmptyAgentID, config.AgentID) -} - -func TestManagerConfigWillErrorOnInvalidOpAmpConfig(t *testing.T) { - tmpDir := t.TempDir() - manager := filepath.Join(tmpDir, "manager.yaml") - data := []byte(` ---- -agent_id: - - some-kind-of-array - - should-blow-up -`) - require.NoError(t, os.WriteFile(manager, data, 0600)) - err := checkManagerConfig(&manager) - require.Error(t, err) - require.ErrorContains(t, err, "unable to interpret config file") -} - -func TestManagerConfigCheckFileModes(t *testing.T) { - tmpDir := t.TempDir() - - testCases := []struct { - name string - fileMode os.FileMode - expectedErr error - }{ - { - name: "read_only", - fileMode: 0400, - expectedErr: errors.New("failed to rewrite manager config with identifying fields"), - }, - { - name: "valid_read_write", - fileMode: 0600, - }, - } - - for idx, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - manager := filepath.Join(tmpDir, fmt.Sprintf("manager-%d.yaml", idx)) - require.NoError(t, os.WriteFile(manager, []byte(""), tc.fileMode)) - err := checkManagerConfig(&manager) - if tc.expectedErr != nil { - require.ErrorContains(t, err, tc.expectedErr.Error()) - } else { - require.NoError(t, err) - } - }) - } -} - -func Test_checkForCollectorRollbackConfig(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "No Rollback file", - testFunc: func(t *testing.T) { - originalContents := []byte("origin config contents") - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "collector.yaml") - err := os.WriteFile(configPath, originalContents, 0600) - require.NoError(t, err) - - err = checkForCollectorRollbackConfig(configPath) - require.NoError(t, err) - - currentConfigContents, err := os.ReadFile(configPath) - require.NoError(t, err) - require.Equal(t, originalContents, currentConfigContents) - }, - }, - { - desc: "Can't read rollback file", - testFunc: func(t *testing.T) { - // Skip windows test case as file permissions don't work the same on windows - if runtime.GOOS == "windows" { - t.Log("Skipping test case on windows") - return - } - - originalContents := []byte("origin config contents") - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "collector.yaml") - err := os.WriteFile(configPath, originalContents, 0600) - require.NoError(t, err) - - rollbackPath := fmt.Sprintf("%s.rollback", configPath) - rollbackFile, err := os.OpenFile(rollbackPath, os.O_CREATE|os.O_RDWR, 0220) - require.NoError(t, err) - require.NoError(t, rollbackFile.Close()) - - err = checkForCollectorRollbackConfig(configPath) - require.ErrorContains(t, err, "error while reading in collector rollback file") - - currentConfigContents, err := os.ReadFile(configPath) - require.NoError(t, err) - require.Equal(t, originalContents, currentConfigContents) - }, - }, - { - desc: "Can't write rollback contents to config", - testFunc: func(t *testing.T) { - // Skip windows test case as file permissions don't work the same on windows - if runtime.GOOS == "windows" { - t.Log("Skipping test case on windows") - return - } - - originalContents := []byte("origin config contents") - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "collector.yaml") - err := os.WriteFile(configPath, originalContents, 0400) - require.NoError(t, err) - - rollbackPath := fmt.Sprintf("%s.rollback", configPath) - err = os.WriteFile(rollbackPath, []byte("rollback"), 0600) - require.NoError(t, err) - - err = checkForCollectorRollbackConfig(configPath) - require.ErrorContains(t, err, "error while writing rollback contents onto config") - - currentConfigContents, err := os.ReadFile(configPath) - require.NoError(t, err) - require.Equal(t, originalContents, currentConfigContents) - }, - }, - { - desc: "Successful Rollback copy", - testFunc: func(t *testing.T) { - originalContents := []byte("origin config contents") - rollbackContents := []byte("rollback contents") - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "collector.yaml") - err := os.WriteFile(configPath, originalContents, 0600) - require.NoError(t, err) - - rollbackPath := fmt.Sprintf("%s.rollback", configPath) - err = os.WriteFile(rollbackPath, rollbackContents, 0600) - require.NoError(t, err) - - err = checkForCollectorRollbackConfig(configPath) - require.NoError(t, err) - - currentConfigContents, err := os.ReadFile(configPath) - require.NoError(t, err) - require.Equal(t, rollbackContents, currentConfigContents) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/collector/collector.go b/collector/collector.go deleted file mode 100644 index 2cf29631a..000000000 --- a/collector/collector.go +++ /dev/null @@ -1,266 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package collector presents an interface that wraps the OTel Collector Core -package collector - -import ( - "context" - "errors" - "fmt" - "runtime/debug" - "sync" - "time" - - "github.com/observiq/bindplane-agent/factories" - "github.com/observiq/bindplane-agent/internal/measurements" - "go.opentelemetry.io/collector/otelcol" - "go.uber.org/zap" -) - -// The timeout for how long to wait on shutting down the collector before bailing out during a Restart. -var collectorRestartTimeout = 10 * time.Second - -// Collector is an interface for running the open telemetry collector. -// -//go:generate mockery --name Collector --filename mock_collector.go --structname MockCollector -type Collector interface { - Run(context.Context) error - Stop(context.Context) - Restart(context.Context) error - SetLoggingOpts([]zap.Option) - GetLoggingOpts() []zap.Option - Status() <-chan *Status -} - -// collector is the standard implementation of the Collector interface. -type collector struct { - configPaths []string - version string - loggingOpts []zap.Option - // factories for modifying in test - factories otelcol.Factories - mux sync.Mutex - svc *otelcol.Collector - statusChan chan *Status - wg *sync.WaitGroup - - // collectorCtx is the context that is fed into collector.Run - // Cancelling it will force shutdown - collectorCtx context.Context - collectorCtxCancel func() -} - -// New returns a new collector. -func New(configPaths []string, version string, loggingOpts []zap.Option) (Collector, error) { - factories, err := factories.DefaultFactories() - if err != nil { - return nil, fmt.Errorf("error while setting up default factories: %w", err) - } - - return &collector{ - configPaths: configPaths, - version: version, - loggingOpts: loggingOpts, - statusChan: make(chan *Status, 10), - wg: &sync.WaitGroup{}, - factories: factories, - }, nil -} - -// GetLoggingOpts returns the current logging options -func (c *collector) GetLoggingOpts() []zap.Option { - return c.loggingOpts -} - -// SetLoggingOpts sets the loggings options. These will take effect on next restart -func (c *collector) SetLoggingOpts(opts []zap.Option) { - c.loggingOpts = opts -} - -// Run will run the collector. This function will return an error -// if the collector was unable to startup. -func (c *collector) Run(ctx context.Context) error { - c.mux.Lock() - defer c.mux.Unlock() - - if c.svc != nil { - return errors.New("service already running") - } - - // The OT collector only supports using settings once during the lifetime - // of a single collector instance. We must remake the settings on each startup. - settings, err := NewSettings(c.configPaths, c.version, c.loggingOpts, c.factories) - if err != nil { - return err - } - - // The OT collector only supports calling run once during the lifetime - // of a service. We must make a new instance each time we run the collector. - svc, err := otelcol.NewCollector(*settings) - if err != nil { - err := fmt.Errorf("failed to create service: %w", err) - c.sendStatus(false, false, err) - return err - } - - startupErr := make(chan error, 1) - - // Note: This doesn't provide any timeout mechanism if the incoming context is cancelled. - // If the context passed to Start is cancelled, shutdown could take a very long time (due to e.g. pipeline draining). - // This is because the collector passes the background context if the start context is cancelled before shutdown is called. - collectorCtx, collectorCtxCancel := context.WithCancel(ctx) - c.collectorCtx = collectorCtx - c.collectorCtxCancel = collectorCtxCancel - wg := sync.WaitGroup{} - wg.Add(1) - - c.svc = svc - c.wg = &wg - - go func() { - defer wg.Done() - - // Ensure the collectorCtx context is cancelled after the service is done running, even if we cancelled it in Stop. - defer collectorCtxCancel() - - // Catch panic - defer func() { - if r := recover(); r != nil { - var panicErr error - panicStack := string(debug.Stack()) - switch v := r.(type) { - case error: - panicErr = fmt.Errorf("collector panicked with error: %w. Panic stacktrace: %s", v, panicStack) - case string: - panicErr = fmt.Errorf("collector panicked with error: %s. Panic stacktrace: %s", v, panicStack) - default: - panicErr = fmt.Errorf("collector panicked with error: %v. Panic stacktrace: %s", v, panicStack) - } - - c.sendStatus(false, true, panicErr) - - // Send error to startup channel so it doesn't wait for a timeout if a panic occurs. - startupErr <- panicErr - } - }() - - err := svc.Run(collectorCtx) - c.sendStatus(false, false, err) - - // The error may be nil; - // We want to signal even in this case, because otherwise waitForStartup could keep waiting - // for the collector startup, even though the collector will never start up. - // This can occur if an asynchronous error occurs quickly after collector startup. - startupErr <- err - }() - - // A race condition exists in the OT collector where the shutdown channel - // is not guaranteed to be initialized before the shutdown function is called. - // We protect against this by waiting for startup to finish before unlocking the mutex. - return c.waitForStartup(ctx, startupErr) -} - -// Stop will stop the collector. -func (c *collector) Stop(ctx context.Context) { - c.mux.Lock() - defer c.mux.Unlock() - - if c.svc == nil { - return - } - - c.svc.Shutdown() - - shutdownCompleteChan := make(chan struct{}) - - go func() { - select { - case <-ctx.Done(): - // Cancel the start context if the stop context is cancelled. - // Ideally, we'd be able to pass a context into shutdown, but the OTEL collector - // doesn't support that. - c.collectorCtxCancel() - case <-shutdownCompleteChan: // shutdown before context cancellation - } - }() - - c.wg.Wait() - close(shutdownCompleteChan) - - c.svc = nil - - // After shutting down, we reset the throughputs measurements registry so it's fresh for the next collector startup. - measurements.BindplaneAgentThroughputMeasurementsRegistry.Reset() -} - -// Restart will restart the collector. It will also reset the status channel. -// After calling restart call Status() to get a handle to the new channel. -func (c *collector) Restart(ctx context.Context) error { - // We stop with a timeout, because we don't want the collector to hang when restarting. - timeoutCtx, cancel := context.WithTimeout(ctx, collectorRestartTimeout) - defer cancel() - c.Stop(timeoutCtx) - - // Reset status channel so it's not polluted by the collector shutting down and restarting - c.statusChan = make(chan *Status, 10) - return c.Run(ctx) -} - -// waitForStartup waits for the service to startup before exiting. -func (c *collector) waitForStartup(ctx context.Context, startupErr chan error) error { - ticker := time.NewTicker(time.Millisecond * 250) - defer ticker.Stop() - - for { - if c.svc.GetState() == otelcol.StateRunning { - c.sendStatus(true, false, nil) - return nil - } - - select { - case <-ticker.C: - case <-ctx.Done(): - c.svc.Shutdown() - return ctx.Err() - case err := <-startupErr: - if err == nil { - // We want to report an error here, even if the error is nil, because we did not observe - // the collector actually start. - return fmt.Errorf("collector failed to start, and no error was returned") - } - return err - } - } -} - -// Status will return the status of the collector. -func (c *collector) Status() <-chan *Status { - return c.statusChan -} - -// sendStatus will set the status of the collector -func (c *collector) sendStatus(running, panicked bool, err error) { - select { - case c.statusChan <- &Status{running, panicked, err}: - default: - } -} - -// Status is the status of a collector. -type Status struct { - Running bool - Panicked bool - Err error -} diff --git a/collector/collector_test.go b/collector/collector_test.go deleted file mode 100644 index dec9ff040..000000000 --- a/collector/collector_test.go +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package collector - -import ( - "context" - "fmt" - "testing" - "time" - - "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/consumer" - "go.opentelemetry.io/collector/receiver" -) - -var slowShutdownType = component.MustNewType("slowshutdown") - -func TestCollectorRunValid(t *testing.T) { - ctx := context.Background() - - collector, err := New([]string{"./test/valid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - err = collector.Run(ctx) - require.NoError(t, err) - - status := <-collector.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - collector.Stop(ctx) - status = <-collector.Status() - require.False(t, status.Running) -} - -func TestCollectorRunMultiple(t *testing.T) { - collector, err := New([]string{"./test/valid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - for i := 1; i < 5; i++ { - ctx := context.Background() - - attempt := fmt.Sprintf("Attempt %d", i) - t.Run(attempt, func(t *testing.T) { - err := collector.Run(ctx) - require.NoError(t, err) - - status := <-collector.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - collector.Stop(ctx) - status = <-collector.Status() - require.False(t, status.Running) - }) - } -} - -func TestCollectorRunInvalidConfig(t *testing.T) { - ctx := context.Background() - - collector, err := New([]string{"./test/invalid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - err = collector.Run(ctx) - require.Error(t, err) - - status := <-collector.Status() - require.False(t, status.Running) - require.Error(t, status.Err) - require.ErrorContains(t, status.Err, "cannot unmarshal the configuration") -} - -// There currently exists a limitation in the collector lifecycle regarding context. -// Context is not respected when starting the collector and a collector could run indefinitely -// in this scenario. Once this is addressed, we can readd this test. -// -// func TestCollectorRunCancelledContext(t *testing.T) { -// ctx, cancel := context.WithCancel(context.Background()) -// cancel() - -// collector := New("./test/valid.yaml", "0.0.0", nil) -// err := collector.Run(ctx) -// require.EqualError(t, context.Canceled, err.Error()) -// } - -func TestCollectorRunTwice(t *testing.T) { - ctx := context.Background() - - collector, err := New([]string{"./test/valid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - err = collector.Run(ctx) - require.NoError(t, err) - defer collector.Stop(ctx) - - status := <-collector.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - err = collector.Run(ctx) - require.Error(t, err) - require.Contains(t, err.Error(), "service already running") - - collector.Stop(ctx) - status = <-collector.Status() - require.False(t, status.Running) -} - -func TestCollectorRestart(t *testing.T) { - ctx := context.Background() - - collector, err := New([]string{"./test/valid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - err = collector.Run(ctx) - require.NoError(t, err) - - status := <-collector.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - err = collector.Restart(ctx) - require.NoError(t, err) - - status = <-collector.Status() - require.True(t, status.Running) - - collector.Stop(ctx) - status = <-collector.Status() - require.False(t, status.Running) -} - -func TestCollectorPrematureStop(t *testing.T) { - collector, err := New([]string{"./test/valid.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - collector.Stop(context.Background()) - require.Equal(t, 0, len(collector.Status())) -} - -func TestCollectorStopContextTimeout(t *testing.T) { - col, err := New([]string{"./test/slow_receiver.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - concreteCol := col.(*collector) - concreteCol.factories.Receivers[slowShutdownType] = slowShutdownReceiverFactory() - - err = col.Run(context.Background()) - require.NoError(t, err) - - status := <-col.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - stopCtx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) - t.Cleanup(cancel) - - stopped := make(chan struct{}) - go func() { - col.Stop(stopCtx) - close(stopped) - }() - - select { - case <-time.After(5 * time.Second): - t.Fatalf("Shutdown took too long") - case <-stopped: - } - - status = <-col.Status() - require.False(t, status.Running) -} - -func TestCollectorRestartContextTimeout(t *testing.T) { - col, err := New([]string{"./test/slow_receiver.yaml"}, "0.0.0", nil) - require.NoError(t, err) - - // Replace the restart timeout to be shorter so the test doesn't take a long time. - oldTimeout := collectorRestartTimeout - collectorRestartTimeout = 500 * time.Millisecond - t.Cleanup(func() { - collectorRestartTimeout = oldTimeout - }) - - concreteCol := col.(*collector) - concreteCol.factories.Receivers[slowShutdownType] = slowShutdownReceiverFactory() - - err = col.Run(context.Background()) - require.NoError(t, err) - defer col.Stop(context.Background()) - - status := <-col.Status() - require.True(t, status.Running) - require.NoError(t, status.Err) - - restarted := make(chan struct{}) - go func() { - err = col.Restart(context.Background()) - require.NoError(t, err) - close(restarted) - }() - - select { - case <-time.After(5 * time.Second): - t.Fatalf("Shutdown took too long") - case <-restarted: - } - - status = <-col.Status() - require.True(t, status.Running) - - stopCtx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) - t.Cleanup(cancel) - - stopped := make(chan struct{}) - go func() { - col.Stop(stopCtx) - close(stopped) - }() - - status = <-col.Status() - require.False(t, status.Running) -} - -// slowShutdownReceiver only shutsdown if the shutdown context is cancelled. -func slowShutdownReceiverFactory() receiver.Factory { - return receiver.NewFactory(slowShutdownType, - func() component.Config { return &struct{}{} }, - receiver.WithLogs(createLogsSlowShutdownReceiverReceiver, component.StabilityLevelDevelopment), - ) -} - -func createLogsSlowShutdownReceiverReceiver(_ context.Context, _ receiver.Settings, _ component.Config, _ consumer.Logs) (receiver.Logs, error) { - return &slowShutdownReceiver{}, nil -} - -// slowShutdownReceiver is a receiver that does not shut down unless it's context is cancelled. -type slowShutdownReceiver struct{} - -func (slowShutdownReceiver) Start(_ context.Context, _ component.Host) error { - return nil -} - -func (slowShutdownReceiver) Shutdown(ctx context.Context) error { - <-ctx.Done() - return nil -} diff --git a/collector/featuregates.go b/collector/featuregates.go deleted file mode 100644 index 131d4f3cd..000000000 --- a/collector/featuregates.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package collector - -import ( - "fmt" - - "go.opentelemetry.io/collector/featuregate" -) - -// SetFeatureFlags sets hardcoded collector feature flags -func SetFeatureFlags() error { - if err := featuregate.GlobalRegistry().Set("filelog.allowFileDeletion", true); err != nil { - return fmt.Errorf("failed to enable filelog.allowFileDeletion: %w", err) - } - if err := featuregate.GlobalRegistry().Set("filelog.allowHeaderMetadataParsing", true); err != nil { - return fmt.Errorf("failed to enable filelog.allowHeaderMetadataParsing: %w", err) - } - if err := featuregate.GlobalRegistry().Set("filelog.mtimeSortType", true); err != nil { - return fmt.Errorf("failed to enable filelog.mtimeSortType: %w", err) - } - - return nil -} diff --git a/collector/featuregates_test.go b/collector/featuregates_test.go deleted file mode 100644 index 6706568fc..000000000 --- a/collector/featuregates_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package collector - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestSetFeatureFlags(t *testing.T) { - require.NoError(t, SetFeatureFlags()) -} diff --git a/collector/mocks/mock_collector.go b/collector/mocks/mock_collector.go deleted file mode 100644 index a16e720a7..000000000 --- a/collector/mocks/mock_collector.go +++ /dev/null @@ -1,118 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - context "context" - - collector "github.com/observiq/bindplane-agent/collector" - - mock "github.com/stretchr/testify/mock" - - zap "go.uber.org/zap" -) - -// MockCollector is an autogenerated mock type for the Collector type -type MockCollector struct { - mock.Mock -} - -// GetLoggingOpts provides a mock function with given fields: -func (_m *MockCollector) GetLoggingOpts() []zap.Option { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetLoggingOpts") - } - - var r0 []zap.Option - if rf, ok := ret.Get(0).(func() []zap.Option); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]zap.Option) - } - } - - return r0 -} - -// Restart provides a mock function with given fields: _a0 -func (_m *MockCollector) Restart(_a0 context.Context) error { - ret := _m.Called(_a0) - - if len(ret) == 0 { - panic("no return value specified for Restart") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(_a0) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Run provides a mock function with given fields: _a0 -func (_m *MockCollector) Run(_a0 context.Context) error { - ret := _m.Called(_a0) - - if len(ret) == 0 { - panic("no return value specified for Run") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(_a0) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetLoggingOpts provides a mock function with given fields: _a0 -func (_m *MockCollector) SetLoggingOpts(_a0 []zap.Option) { - _m.Called(_a0) -} - -// Status provides a mock function with given fields: -func (_m *MockCollector) Status() <-chan *collector.Status { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Status") - } - - var r0 <-chan *collector.Status - if rf, ok := ret.Get(0).(func() <-chan *collector.Status); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(<-chan *collector.Status) - } - } - - return r0 -} - -// Stop provides a mock function with given fields: _a0 -func (_m *MockCollector) Stop(_a0 context.Context) { - _m.Called(_a0) -} - -// NewMockCollector creates a new instance of MockCollector. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockCollector(t interface { - mock.TestingT - Cleanup(func()) -}) *MockCollector { - mock := &MockCollector{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/collector/settings.go b/collector/settings.go deleted file mode 100644 index 065766f82..000000000 --- a/collector/settings.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package collector - -import ( - "os" - - "github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/aesprovider" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/confmap" - "go.opentelemetry.io/collector/confmap/provider/envprovider" - "go.opentelemetry.io/collector/confmap/provider/fileprovider" - "go.opentelemetry.io/collector/confmap/provider/httpsprovider" - "go.opentelemetry.io/collector/confmap/provider/yamlprovider" - "go.opentelemetry.io/collector/otelcol" - - "go.uber.org/zap" -) - -const buildDescription = "observIQ's opentelemetry-collector distribution" - -// NewSettings returns new settings for the collector with default values. -func NewSettings(configPaths []string, version string, loggingOpts []zap.Option, factories otelcol.Factories) (*otelcol.CollectorSettings, error) { - buildInfo := component.BuildInfo{ - Command: os.Args[0], - Description: buildDescription, - Version: version, - } - - configProviderSettings := otelcol.ConfigProviderSettings{ - ResolverSettings: confmap.ResolverSettings{ - URIs: configPaths, - ProviderFactories: []confmap.ProviderFactory{ - fileprovider.NewFactory(), - envprovider.NewFactory(), - yamlprovider.NewFactory(), - httpsprovider.NewFactory(), - aesprovider.NewFactory(), - }, - ConverterFactories: []confmap.ConverterFactory{}, - DefaultScheme: "env", - }, - } - - return &otelcol.CollectorSettings{ - Factories: func() (otelcol.Factories, error) { return factories, nil }, - BuildInfo: buildInfo, - LoggingOptions: loggingOpts, - ConfigProviderSettings: configProviderSettings, - DisableGracefulShutdown: true, - }, nil -} diff --git a/collector/settings_test.go b/collector/settings_test.go deleted file mode 100644 index c779eec70..000000000 --- a/collector/settings_test.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package collector - -import ( - "context" - "testing" - - "github.com/observiq/bindplane-agent/factories" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver" - "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/otelcol" - "go.uber.org/zap" -) - -func TestNewSettings(t *testing.T) { - facts, err := factories.DefaultFactories() - require.NoError(t, err) - - t.Setenv("FILE", "./test.log") - configPaths := []string{"./test/valid_with_env_var.yaml"} - settings, err := NewSettings(configPaths, "0.0.0", nil, facts) - require.NoError(t, err) - - // Make sure environment variable replacement is working - factories, err := settings.Factories() - require.NoError(t, err) - provider, err := otelcol.NewConfigProvider(settings.ConfigProviderSettings) - require.NoError(t, err) - configs, err := provider.Get(context.Background(), factories) - require.NoError(t, err) - - filelogType, err := component.NewType("filelog") - require.NoError(t, err) - - receivcfg := configs.Receivers[component.NewID(filelogType)] - config := receivcfg.(*filelogreceiver.FileLogConfig) - actualConfVal := config.InputConfig.Include[0] - require.Equal(t, "./test.log", actualConfVal) - - require.NoError(t, err) - require.Equal(t, settings.LoggingOptions, []zap.Option(nil)) - require.True(t, settings.DisableGracefulShutdown) -} diff --git a/collector/test/invalid.yaml b/collector/test/invalid.yaml deleted file mode 100644 index 4c6ec7f87..000000000 --- a/collector/test/invalid.yaml +++ /dev/null @@ -1,12 +0,0 @@ -receivers: - filelog: - invalid_opt: - -exporters: - nop: - -service: - pipelines: - logs: - receivers: [filelog] - exporters: [nop] diff --git a/collector/test/slow_receiver.yaml b/collector/test/slow_receiver.yaml deleted file mode 100644 index ee90ed4ca..000000000 --- a/collector/test/slow_receiver.yaml +++ /dev/null @@ -1,11 +0,0 @@ -receivers: - slowshutdown: - -exporters: - nop: - -service: - pipelines: - logs: - receivers: [slowshutdown] - exporters: [nop] diff --git a/collector/test/valid.yaml b/collector/test/valid.yaml deleted file mode 100644 index b91f3d722..000000000 --- a/collector/test/valid.yaml +++ /dev/null @@ -1,12 +0,0 @@ -receivers: - filelog: - include: ["./var/log/syslog.log"] - -exporters: - nop: - -service: - pipelines: - logs: - receivers: [filelog] - exporters: [nop] diff --git a/collector/test/valid_with_env_var.yaml b/collector/test/valid_with_env_var.yaml deleted file mode 100644 index bdacfd892..000000000 --- a/collector/test/valid_with_env_var.yaml +++ /dev/null @@ -1,13 +0,0 @@ -receivers: - filelog: - include: - - ${FILE} - -exporters: - nop: - -service: - pipelines: - logs: - receivers: [filelog] - exporters: [nop] diff --git a/config/supervisor-config.example.yaml b/config/supervisor-config.example.yaml new file mode 100644 index 000000000..c41616718 --- /dev/null +++ b/config/supervisor-config.example.yaml @@ -0,0 +1,18 @@ +server: + endpoint: ws://localhost:3001/v1/opamp + headers: + Authorization: "Secret-Key " + X-Bindplane-Attribute: "custom.key=custom-value" + tls: + insecure: true + insecure_skip_verify: true + +capabilities: + accepts_remote_config: true + reports_remote_config: true + +agent: + executable: ./dist/collector_ + +storage: + directory: "./local/storage" diff --git a/docker/Dockerfile.scratch b/docker/Dockerfile.scratch index 878fa846d..5c5ad3d69 100644 --- a/docker/Dockerfile.scratch +++ b/docker/Dockerfile.scratch @@ -21,7 +21,6 @@ COPY release_deps/VERSION.txt /etc/otel/VERSION.txt COPY release_deps/plugins /etc/otel/plugins COPY config/logging.stdout.yaml /etc/otel/logging.yaml -COPY release_deps/config.yaml /etc/otel/config.yaml # Scratch images contain nothing by default. The built image # will contain only what was copied into it. This means it diff --git a/docker/Dockerfile.ubi8 b/docker/Dockerfile.ubi8 index 77d567c98..d9ba24f84 100644 --- a/docker/Dockerfile.ubi8 +++ b/docker/Dockerfile.ubi8 @@ -62,16 +62,10 @@ COPY release_deps/plugins /etc/otel/plugins COPY config/logging.stdout.yaml /etc/otel/logging.yaml -# Default config allows the agent to run without an injected config, which is required -# when connecting to an OpAMP platform. -COPY release_deps/config.yaml /etc/otel/config.yaml - RUN chown otel:otel \ - /etc/otel/config.yaml \ /etc/otel/logging.yaml RUN chmod 0600 \ - /etc/otel/config.yaml \ /etc/otel/logging.yaml USER otel diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu index 7ee0d9dfd..9acfb8a12 100644 --- a/docker/Dockerfile.ubuntu +++ b/docker/Dockerfile.ubuntu @@ -63,16 +63,10 @@ COPY release_deps/plugins /etc/otel/plugins COPY config/logging.stdout.yaml /etc/otel/logging.yaml -# Default config allows the agent to run without an injected config, which is required -# when connecting to an OpAMP platform. -COPY release_deps/config.yaml /etc/otel/config.yaml - RUN chown otel:otel \ - /etc/otel/config.yaml \ /etc/otel/logging.yaml RUN chmod 0600 \ - /etc/otel/config.yaml \ /etc/otel/logging.yaml USER otel diff --git a/exporter/chronicleexporter/config.go b/exporter/chronicleexporter/config.go index db191433b..761cf92cb 100644 --- a/exporter/chronicleexporter/config.go +++ b/exporter/chronicleexporter/config.go @@ -19,7 +19,7 @@ import ( "fmt" "strings" - "github.com/observiq/bindplane-agent/expr" + "github.com/observiq/bindplane-agent/internal/expr" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config/configretry" "go.opentelemetry.io/collector/exporter/exporterhelper" diff --git a/exporter/chronicleexporter/go.mod b/exporter/chronicleexporter/go.mod index 9dc75cd22..3e6297571 100644 --- a/exporter/chronicleexporter/go.mod +++ b/exporter/chronicleexporter/go.mod @@ -5,7 +5,7 @@ go 1.22.7 require ( github.com/golang/mock v1.6.0 github.com/google/uuid v1.6.0 - github.com/observiq/bindplane-agent/expr v1.66.0 + github.com/observiq/bindplane-agent/internal/expr v1.66.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 @@ -92,4 +92,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/observiq/bindplane-agent/expr => ../../expr +replace github.com/observiq/bindplane-agent/internal/expr => ../../internal/expr diff --git a/exporter/chronicleexporter/marshal.go b/exporter/chronicleexporter/marshal.go index 7963b6c2c..f14f63013 100644 --- a/exporter/chronicleexporter/marshal.go +++ b/exporter/chronicleexporter/marshal.go @@ -23,7 +23,7 @@ import ( "github.com/google/uuid" "github.com/observiq/bindplane-agent/exporter/chronicleexporter/protos/api" - "github.com/observiq/bindplane-agent/expr" + "github.com/observiq/bindplane-agent/internal/expr" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottllog" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/pdata/pcommon" diff --git a/exporter/chronicleforwarderexporter/config.go b/exporter/chronicleforwarderexporter/config.go index c2b66c4f4..b0b92217c 100644 --- a/exporter/chronicleforwarderexporter/config.go +++ b/exporter/chronicleforwarderexporter/config.go @@ -18,7 +18,7 @@ import ( "errors" "fmt" - "github.com/observiq/bindplane-agent/expr" + "github.com/observiq/bindplane-agent/internal/expr" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config/confignet" "go.opentelemetry.io/collector/config/configretry" diff --git a/exporter/chronicleforwarderexporter/go.mod b/exporter/chronicleforwarderexporter/go.mod index 6c93285a5..2ad121b59 100644 --- a/exporter/chronicleforwarderexporter/go.mod +++ b/exporter/chronicleforwarderexporter/go.mod @@ -3,7 +3,7 @@ module github.com/observiq/bindplane-agent/exporter/chronicleforwarderexporter go 1.22.7 require ( - github.com/observiq/bindplane-agent/expr v1.66.0 + github.com/observiq/bindplane-agent/internal/expr v1.66.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 @@ -87,4 +87,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/observiq/bindplane-agent/expr => ../../expr +replace github.com/observiq/bindplane-agent/internal/expr => ../../internal/expr diff --git a/exporter/chronicleforwarderexporter/marshal.go b/exporter/chronicleforwarderexporter/marshal.go index 0a31cc3a2..5fc60f6bd 100644 --- a/exporter/chronicleforwarderexporter/marshal.go +++ b/exporter/chronicleforwarderexporter/marshal.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - "github.com/observiq/bindplane-agent/expr" + "github.com/observiq/bindplane-agent/internal/expr" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottllog" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/pdata/pcommon" diff --git a/exporter/googlecloudexporter/config.go b/exporter/googlecloudexporter/config.go index 2f454ca0e..8d8d02148 100644 --- a/exporter/googlecloudexporter/config.go +++ b/exporter/googlecloudexporter/config.go @@ -22,6 +22,7 @@ import ( "path/filepath" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" + "github.com/observiq/bindplane-agent/internal/version" gcp "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/processor/batchprocessor" @@ -118,7 +119,8 @@ func (c *Config) updateProjectFromFile(fileName string) error { } // createDefaultConfig creates the default config for the exporter -func createDefaultConfig(collectorVersion string) func() component.Config { +func createDefaultConfig() func() component.Config { + collectorVersion := version.Version() return func() component.Config { return &Config{ GCPConfig: createDefaultGCPConfig(collectorVersion), diff --git a/exporter/googlecloudexporter/config_test.go b/exporter/googlecloudexporter/config_test.go index 69252a961..f34a52348 100644 --- a/exporter/googlecloudexporter/config_test.go +++ b/exporter/googlecloudexporter/config_test.go @@ -19,15 +19,16 @@ import ( "testing" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" + "github.com/observiq/bindplane-agent/internal/version" "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter" "github.com/stretchr/testify/require" "google.golang.org/api/option" ) func TestCreateDefaultConfig(t *testing.T) { - collectorVersion := "v1.2.3" + collectorVersion := version.Version() - cfg := createDefaultConfig(collectorVersion)() + cfg := createDefaultConfig()() googleCfg, ok := cfg.(*Config) require.True(t, ok) diff --git a/exporter/googlecloudexporter/factory.go b/exporter/googlecloudexporter/factory.go index 55454acd8..6ab032aea 100644 --- a/exporter/googlecloudexporter/factory.go +++ b/exporter/googlecloudexporter/factory.go @@ -40,10 +40,10 @@ const ( ) // NewFactory creates a factory for the googlecloud exporter -func NewFactory(collectorVersion string) exporter.Factory { +func NewFactory() exporter.Factory { return exporter.NewFactory( componentType, - createDefaultConfig(collectorVersion), + createDefaultConfig(), exporter.WithMetrics(createMetricsExporter, stability), exporter.WithLogs(createLogsExporter, stability), exporter.WithTraces(createTracesExporter, stability), diff --git a/exporter/googlecloudexporter/factory_test.go b/exporter/googlecloudexporter/factory_test.go index 3bf3e5163..8d92a41ea 100644 --- a/exporter/googlecloudexporter/factory_test.go +++ b/exporter/googlecloudexporter/factory_test.go @@ -39,10 +39,8 @@ func TestCreateMetricExporterSuccess(t *testing.T) { gcpFactory = gcp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() @@ -68,10 +66,8 @@ func TestCreateLogsExporterSuccess(t *testing.T) { gcpFactory = gcp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() @@ -97,10 +93,8 @@ func TestCreateTracesExporterSuccess(t *testing.T) { gcpFactory = gcp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() @@ -121,10 +115,8 @@ func TestCreateExporterFailure(t *testing.T) { gcpFactory = gcp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() diff --git a/exporter/googlecloudexporter/go.mod b/exporter/googlecloudexporter/go.mod index 027c3b8fc..6206b9e58 100644 --- a/exporter/googlecloudexporter/go.mod +++ b/exporter/googlecloudexporter/go.mod @@ -4,6 +4,7 @@ go 1.22.7 require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.49.0 + github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0 github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 @@ -23,7 +24,7 @@ require ( cloud.google.com/go/trace v1.11.2 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.25.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -33,7 +34,7 @@ require ( github.com/knadh/koanf v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/stretchr/objx v0.5.2 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel v1.32.0 @@ -97,3 +98,6 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 // indirect ) + +// Needed until 'version' package changes are included in a release +replace github.com/observiq/bindplane-agent/internal/version v1.56.0 => github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab diff --git a/exporter/googlecloudexporter/go.sum b/exporter/googlecloudexporter/go.sum index f2c15217c..1eca93985 100644 --- a/exporter/googlecloudexporter/go.sum +++ b/exporter/googlecloudexporter/go.sum @@ -67,8 +67,9 @@ github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1Ig github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -255,6 +256,8 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= +github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab h1:sj9huSMQ9MqOWRGJ1OJtIhpXZZpg1OoB8YvJ3kBCYlg= +github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab/go.mod h1:TfycUeyrZvoFI6crSlts5HxdHgxYtoYaXwSZ2ZQIj5I= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0 h1:kEtShmzJ4lFVUiMpnCkpRzldRIDbAy4E+GGW3cgjWgc= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0/go.mod h1:ohf3DXq11cASbK7Jco0LIngXgLI0nET1RTh4tQMdCg0= @@ -267,8 +270,9 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= diff --git a/exporter/googlemanagedprometheusexporter/config.go b/exporter/googlemanagedprometheusexporter/config.go index be2984a71..125ae0cb6 100644 --- a/exporter/googlemanagedprometheusexporter/config.go +++ b/exporter/googlemanagedprometheusexporter/config.go @@ -21,6 +21,7 @@ import ( "os" "path/filepath" + "github.com/observiq/bindplane-agent/internal/version" gmp "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter" "go.opentelemetry.io/collector/component" "google.golang.org/api/option" @@ -107,7 +108,8 @@ func (c *Config) updateProjectFromFile(fileName string) error { } // createDefaultConfig creates the default config for the exporter -func createDefaultConfig(collectorVersion string) func() component.Config { +func createDefaultConfig() func() component.Config { + collectorVersion := version.Version() return func() component.Config { return &Config{ GMPConfig: createDefaultGCPConfig(collectorVersion), diff --git a/exporter/googlemanagedprometheusexporter/config_test.go b/exporter/googlemanagedprometheusexporter/config_test.go index 44ca24849..c0b60b23b 100644 --- a/exporter/googlemanagedprometheusexporter/config_test.go +++ b/exporter/googlemanagedprometheusexporter/config_test.go @@ -18,15 +18,16 @@ import ( "fmt" "testing" + "github.com/observiq/bindplane-agent/internal/version" gmp "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter" "github.com/stretchr/testify/require" "google.golang.org/api/option" ) func TestCreateDefaultConfig(t *testing.T) { - collectorVersion := "v1.2.3" + collectorVersion := version.Version() - cfg := createDefaultConfig(collectorVersion)() + cfg := createDefaultConfig()() googleCfg, ok := cfg.(*Config) require.True(t, ok) diff --git a/exporter/googlemanagedprometheusexporter/factory.go b/exporter/googlemanagedprometheusexporter/factory.go index a4da56b67..2a93003d5 100644 --- a/exporter/googlemanagedprometheusexporter/factory.go +++ b/exporter/googlemanagedprometheusexporter/factory.go @@ -37,10 +37,10 @@ const ( ) // NewFactory creates a factory for the googlecloud exporter -func NewFactory(collectorVersion string) exporter.Factory { +func NewFactory() exporter.Factory { return exporter.NewFactory( componentType, - createDefaultConfig(collectorVersion), + createDefaultConfig(), exporter.WithMetrics(createMetricsExporter, stability), ) } diff --git a/exporter/googlemanagedprometheusexporter/factory_test.go b/exporter/googlemanagedprometheusexporter/factory_test.go index 10e28e53e..91f129dfe 100644 --- a/exporter/googlemanagedprometheusexporter/factory_test.go +++ b/exporter/googlemanagedprometheusexporter/factory_test.go @@ -42,10 +42,8 @@ func TestCreateMetricExporterSuccess(t *testing.T) { gmpFactory = gmp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() @@ -66,10 +64,8 @@ func TestCreateExporterFailure(t *testing.T) { gmpFactory = gmp.NewFactory() }() - collectorVersion := "v1.2.3" - - factory := NewFactory(collectorVersion) - cfg := createDefaultConfig(collectorVersion)() + factory := NewFactory() + cfg := createDefaultConfig()() ctx := context.Background() set := exportertest.NewNopSettings() diff --git a/exporter/googlemanagedprometheusexporter/go.mod b/exporter/googlemanagedprometheusexporter/go.mod index 41195886c..18a7a2fd3 100644 --- a/exporter/googlemanagedprometheusexporter/go.mod +++ b/exporter/googlemanagedprometheusexporter/go.mod @@ -3,6 +3,7 @@ module github.com/observiq/bindplane-agent/exporter/googlemanagedprometheusexpor go 1.22.7 require ( + github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0 github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 @@ -28,7 +29,7 @@ require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.25.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect @@ -96,3 +97,6 @@ require ( google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +// Needed until 'version' package changes are included in a release +replace github.com/observiq/bindplane-agent/internal/version v1.56.0 => github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab diff --git a/exporter/googlemanagedprometheusexporter/go.sum b/exporter/googlemanagedprometheusexporter/go.sum index 45dfe14bf..f7cfa1156 100644 --- a/exporter/googlemanagedprometheusexporter/go.sum +++ b/exporter/googlemanagedprometheusexporter/go.sum @@ -70,8 +70,9 @@ github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1Ig github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= @@ -273,6 +274,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= +github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab h1:sj9huSMQ9MqOWRGJ1OJtIhpXZZpg1OoB8YvJ3kBCYlg= +github.com/observiq/bindplane-agent/internal/version v0.0.0-20240717172323-a1d3e6ed4aab/go.mod h1:TfycUeyrZvoFI6crSlts5HxdHgxYtoYaXwSZ2ZQIj5I= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0 h1:Aqx/UrtdqbpyHNREOxutGiMxU84iJLoeR1E5gGC0W8o= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0/go.mod h1:ZcEzHeGqBLWyvPDq1FjPCzzqrGmGho/WU9BpRZs6l+Q= diff --git a/exporter/qradar/go.mod b/exporter/qradar/go.mod index e2d0b4cf4..11d93c9d5 100644 --- a/exporter/qradar/go.mod +++ b/exporter/qradar/go.mod @@ -87,4 +87,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/observiq/bindplane-agent/expr => ../../expr +replace github.com/observiq/bindplane-agent/internal/expr => ../../internal/expr diff --git a/exporter/qradar/go.sum b/exporter/qradar/go.sum index 9a38e4822..7eaad2de1 100644 --- a/exporter/qradar/go.sum +++ b/exporter/qradar/go.sum @@ -72,6 +72,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/observiq/bindplane-agent/expr v1.66.0 h1:DMybnCUpwC4x54TPAxcICi4OGkOaT7leMDkqW54cQXQ= +github.com/observiq/bindplane-agent/expr v1.66.0/go.mod h1:uJOZkyClcwHqUzMt+TEcuE1wvoUE0XN1sGfM2RxHj/I= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= diff --git a/factories/connectors.go b/factories/connectors.go deleted file mode 100644 index ec82d2bd7..000000000 --- a/factories/connectors.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector" - "github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector" - "github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector" - "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector" - "go.opentelemetry.io/collector/connector" - "go.opentelemetry.io/collector/connector/forwardconnector" -) - -var defaultConnectors = []connector.Factory{ - countconnector.NewFactory(), - forwardconnector.NewFactory(), - servicegraphconnector.NewFactory(), - spanmetricsconnector.NewFactory(), - routingconnector.NewFactory(), -} diff --git a/factories/exporters.go b/factories/exporters.go deleted file mode 100644 index 2ad07edbb..000000000 --- a/factories/exporters.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "github.com/observiq/bindplane-agent/exporter/azureblobexporter" - "github.com/observiq/bindplane-agent/exporter/chronicleexporter" - "github.com/observiq/bindplane-agent/exporter/chronicleforwarderexporter" - "github.com/observiq/bindplane-agent/exporter/googlecloudexporter" - "github.com/observiq/bindplane-agent/exporter/googlemanagedprometheusexporter" - "github.com/observiq/bindplane-agent/exporter/qradar" - "github.com/observiq/bindplane-agent/exporter/snowflakeexporter" - "github.com/observiq/bindplane-agent/internal/version" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter" - "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter" - "go.opentelemetry.io/collector/exporter" - "go.opentelemetry.io/collector/exporter/debugexporter" - "go.opentelemetry.io/collector/exporter/nopexporter" - "go.opentelemetry.io/collector/exporter/otlpexporter" - "go.opentelemetry.io/collector/exporter/otlphttpexporter" -) - -var defaultExporters = []exporter.Factory{ - alibabacloudlogserviceexporter.NewFactory(), - awscloudwatchlogsexporter.NewFactory(), - awsemfexporter.NewFactory(), - awskinesisexporter.NewFactory(), - awss3exporter.NewFactory(), - awsxrayexporter.NewFactory(), - azureblobexporter.NewFactory(), - azuremonitorexporter.NewFactory(), - carbonexporter.NewFactory(), - chronicleexporter.NewFactory(), - chronicleforwarderexporter.NewFactory(), - clickhouseexporter.NewFactory(), - coralogixexporter.NewFactory(), - datadogexporter.NewFactory(), - debugexporter.NewFactory(), - elasticsearchexporter.NewFactory(), - fileexporter.NewFactory(), - googlecloudexporter.NewFactory(version.Version()), - googlecloudpubsubexporter.NewFactory(), - googlemanagedprometheusexporter.NewFactory(version.Version()), - influxdbexporter.NewFactory(), - kafkaexporter.NewFactory(), - loadbalancingexporter.NewFactory(), - logzioexporter.NewFactory(), - lokiexporter.NewFactory(), - nopexporter.NewFactory(), - opencensusexporter.NewFactory(), - otlpexporter.NewFactory(), - otlphttpexporter.NewFactory(), - prometheusexporter.NewFactory(), - prometheusremotewriteexporter.NewFactory(), - qradar.NewFactory(), - sapmexporter.NewFactory(), - signalfxexporter.NewFactory(), - snowflakeexporter.NewFactory(), - splunkhecexporter.NewFactory(), - sumologicexporter.NewFactory(), - syslogexporter.NewFactory(), - zipkinexporter.NewFactory(), -} diff --git a/factories/extensions.go b/factories/extensions.go deleted file mode 100644 index 855ee60e9..000000000 --- a/factories/extensions.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage" - "go.opentelemetry.io/collector/extension" - "go.opentelemetry.io/collector/extension/extensiontest" - "go.opentelemetry.io/collector/extension/zpagesextension" -) - -var defaultExtensions = []extension.Factory{ - basicauthextension.NewFactory(), - bearertokenauthextension.NewFactory(), - extensiontest.NewNopFactory(), - filestorage.NewFactory(), - headerssetterextension.NewFactory(), - healthcheckextension.NewFactory(), - oauth2clientauthextension.NewFactory(), - oidcauthextension.NewFactory(), - pprofextension.NewFactory(), - sigv4authextension.NewFactory(), - zpagesextension.NewFactory(), -} diff --git a/factories/factories.go b/factories/factories.go deleted file mode 100644 index de73066e1..000000000 --- a/factories/factories.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package factories provides factories for components in the collector -package factories - -import ( - "go.opentelemetry.io/collector/connector" - "go.opentelemetry.io/collector/exporter" - "go.opentelemetry.io/collector/extension" - "go.opentelemetry.io/collector/otelcol" - "go.opentelemetry.io/collector/processor" - "go.opentelemetry.io/collector/receiver" - "go.uber.org/multierr" -) - -// DefaultFactories returns the default factories used by the BindPlane Agent -func DefaultFactories() (otelcol.Factories, error) { - return combineFactories(defaultReceivers, defaultProcessors, defaultExporters, defaultExtensions, defaultConnectors) -} - -// combineFactories combines the supplied factories into a single Factories struct. -// Any errors encountered will also be combined into a single error. -func combineFactories(receivers []receiver.Factory, processors []processor.Factory, - exporters []exporter.Factory, extensions []extension.Factory, - connectors []connector.Factory) (otelcol.Factories, error) { - var errs []error - - receiverMap, err := receiver.MakeFactoryMap(receivers...) - if err != nil { - errs = append(errs, err) - } - - processorMap, err := processor.MakeFactoryMap(processors...) - if err != nil { - errs = append(errs, err) - } - - exporterMap, err := exporter.MakeFactoryMap(exporters...) - if err != nil { - errs = append(errs, err) - } - - extensionMap, err := extension.MakeFactoryMap(extensions...) - if err != nil { - errs = append(errs, err) - } - - connectorMap, err := connector.MakeFactoryMap(connectors...) - if err != nil { - errs = append(errs, err) - } - - return otelcol.Factories{ - Receivers: receiverMap, - Processors: processorMap, - Exporters: exporterMap, - Extensions: extensionMap, - Connectors: connectorMap, - }, multierr.Combine(errs...) -} diff --git a/factories/factories_test.go b/factories/factories_test.go deleted file mode 100644 index 301352902..000000000 --- a/factories/factories_test.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "errors" - "testing" - - "github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver" - "github.com/stretchr/testify/assert" - "go.opentelemetry.io/collector/connector" - "go.opentelemetry.io/collector/exporter" - "go.opentelemetry.io/collector/exporter/debugexporter" - "go.opentelemetry.io/collector/extension" - "go.opentelemetry.io/collector/processor" - "go.opentelemetry.io/collector/receiver" -) - -func TestCombineFactories(t *testing.T) { - testCases := []struct { - name string - receivers []receiver.Factory - processors []processor.Factory - exporters []exporter.Factory - extensions []extension.Factory - connectors []connector.Factory - expectedError error - }{ - { - name: "With valid combination", - receivers: defaultReceivers, - processors: defaultProcessors, - exporters: defaultExporters, - extensions: defaultExtensions, - connectors: defaultConnectors, - }, - { - name: "With single error", - receivers: []receiver.Factory{ - tcplogreceiver.NewFactory(), - tcplogreceiver.NewFactory(), - }, - expectedError: errors.New(`duplicate receiver factory "tcplog"`), - }, - { - name: "With multiple errors", - receivers: []receiver.Factory{ - tcplogreceiver.NewFactory(), - tcplogreceiver.NewFactory(), - }, - processors: []processor.Factory{ - attributesprocessor.NewFactory(), - attributesprocessor.NewFactory(), - }, - exporters: []exporter.Factory{ - debugexporter.NewFactory(), - debugexporter.NewFactory(), - }, - extensions: []extension.Factory{ - bearertokenauthextension.NewFactory(), - bearertokenauthextension.NewFactory(), - }, - expectedError: errors.New(`duplicate receiver factory "tcplog"; duplicate processor factory "attributes"; duplicate exporter factory "debug"; duplicate extension factory "bearertokenauth"`), - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - factories, err := combineFactories(tc.receivers, tc.processors, tc.exporters, tc.extensions, tc.connectors) - - if tc.expectedError != nil { - assert.Error(t, tc.expectedError, err) - assert.Equal(t, tc.expectedError.Error(), err.Error()) - return - } - - assert.NoError(t, err) - - for _, receiver := range tc.receivers { - assert.Equal(t, factories.Receivers[receiver.Type()], receiver) - } - - for _, processor := range tc.processors { - assert.Equal(t, factories.Processors[processor.Type()], processor) - } - - for _, exporter := range tc.exporters { - assert.Equal(t, factories.Exporters[exporter.Type()], exporter) - } - - for _, extension := range tc.extensions { - assert.Equal(t, factories.Extensions[extension.Type()], extension) - } - }) - } -} - -func TestDefaultFactories(t *testing.T) { - factories, err := DefaultFactories() - assert.NoError(t, err) - - for _, receiver := range defaultReceivers { - assert.Equal(t, factories.Receivers[receiver.Type()], receiver) - } - - for _, processor := range defaultProcessors { - assert.Equal(t, factories.Processors[processor.Type()], processor) - } - - for _, exporter := range defaultExporters { - assert.Equal(t, factories.Exporters[exporter.Type()], exporter) - } - - for _, extension := range defaultExtensions { - assert.Equal(t, factories.Extensions[extension.Type()], extension) - } -} diff --git a/factories/processors.go b/factories/processors.go deleted file mode 100644 index cde11368c..000000000 --- a/factories/processors.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "github.com/observiq/bindplane-agent/internal/processor/snapshotprocessor" - "github.com/observiq/bindplane-agent/processor/datapointcountprocessor" - "github.com/observiq/bindplane-agent/processor/logcountprocessor" - "github.com/observiq/bindplane-agent/processor/lookupprocessor" - "github.com/observiq/bindplane-agent/processor/maskprocessor" - "github.com/observiq/bindplane-agent/processor/metricextractprocessor" - "github.com/observiq/bindplane-agent/processor/metricstatsprocessor" - "github.com/observiq/bindplane-agent/processor/removeemptyvaluesprocessor" - "github.com/observiq/bindplane-agent/processor/resourceattributetransposerprocessor" - "github.com/observiq/bindplane-agent/processor/samplingprocessor" - "github.com/observiq/bindplane-agent/processor/spancountprocessor" - "github.com/observiq/bindplane-agent/processor/throughputmeasurementprocessor" - "github.com/observiq/bindplane-agent/processor/unrollprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/logdedupprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/logstransformprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" - "go.opentelemetry.io/collector/processor" - "go.opentelemetry.io/collector/processor/batchprocessor" - "go.opentelemetry.io/collector/processor/memorylimiterprocessor" - "go.opentelemetry.io/collector/processor/processortest" -) - -var defaultProcessors = []processor.Factory{ - attributesprocessor.NewFactory(), - batchprocessor.NewFactory(), - processortest.NewNopFactory(), - cumulativetodeltaprocessor.NewFactory(), - datapointcountprocessor.NewFactory(), - deltatorateprocessor.NewFactory(), - filterprocessor.NewFactory(), - groupbyattrsprocessor.NewFactory(), - groupbytraceprocessor.NewFactory(), - intervalprocessor.NewFactory(), - k8sattributesprocessor.NewFactory(), - logcountprocessor.NewFactory(), - logdedupprocessor.NewFactory(), - logstransformprocessor.NewFactory(), - lookupprocessor.NewFactory(), - maskprocessor.NewFactory(), - memorylimiterprocessor.NewFactory(), - metricextractprocessor.NewFactory(), - metricsgenerationprocessor.NewFactory(), - metricstatsprocessor.NewFactory(), - metricstransformprocessor.NewFactory(), - probabilisticsamplerprocessor.NewFactory(), - removeemptyvaluesprocessor.NewFactory(), - resourceattributetransposerprocessor.NewFactory(), - resourcedetectionprocessor.NewFactory(), - resourceprocessor.NewFactory(), - routingprocessor.NewFactory(), - samplingprocessor.NewFactory(), - snapshotprocessor.NewFactory(), - spancountprocessor.NewFactory(), - spanprocessor.NewFactory(), - throughputmeasurementprocessor.NewFactory(), - tailsamplingprocessor.NewFactory(), - transformprocessor.NewFactory(), - unrollprocessor.NewFactory(), -} diff --git a/factories/receivers.go b/factories/receivers.go deleted file mode 100644 index ca3f3e282..000000000 --- a/factories/receivers.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package factories - -import ( - "github.com/observiq/bindplane-agent/receiver/awss3rehydrationreceiver" - "github.com/observiq/bindplane-agent/receiver/azureblobrehydrationreceiver" - "github.com/observiq/bindplane-agent/receiver/httpreceiver" - "github.com/observiq/bindplane-agent/receiver/m365receiver" - "github.com/observiq/bindplane-agent/receiver/oktareceiver" - "github.com/observiq/bindplane-agent/receiver/pluginreceiver" - "github.com/observiq/bindplane-agent/receiver/routereceiver" - "github.com/observiq/bindplane-agent/receiver/sapnetweaverreceiver" - "github.com/observiq/bindplane-agent/receiver/telemetrygeneratorreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureblobreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureeventhubreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/elasticsearchreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/flinkmetricsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/iisreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nginxreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/rabbitmqreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/saphanareceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snmpreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlqueryreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlserverreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/webhookeventreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver" - "go.opentelemetry.io/collector/receiver" - "go.opentelemetry.io/collector/receiver/otlpreceiver" - "go.opentelemetry.io/collector/receiver/receivertest" -) - -var defaultReceivers = []receiver.Factory{ - activedirectorydsreceiver.NewFactory(), - aerospikereceiver.NewFactory(), - apachereceiver.NewFactory(), - apachesparkreceiver.NewFactory(), - awscloudwatchreceiver.NewFactory(), - awscontainerinsightreceiver.NewFactory(), - awsecscontainermetricsreceiver.NewFactory(), - awsfirehosereceiver.NewFactory(), - awss3rehydrationreceiver.NewFactory(), - awsxrayreceiver.NewFactory(), - azureblobreceiver.NewFactory(), - azureblobrehydrationreceiver.NewFactory(), - azureeventhubreceiver.NewFactory(), - bigipreceiver.NewFactory(), - carbonreceiver.NewFactory(), - cloudflarereceiver.NewFactory(), - cloudfoundryreceiver.NewFactory(), - collectdreceiver.NewFactory(), - couchdbreceiver.NewFactory(), - dockerstatsreceiver.NewFactory(), - elasticsearchreceiver.NewFactory(), - filelogreceiver.NewFactory(), - flinkmetricsreceiver.NewFactory(), - fluentforwardreceiver.NewFactory(), - googlecloudpubsubreceiver.NewFactory(), - googlecloudspannerreceiver.NewFactory(), - hostmetricsreceiver.NewFactory(), - httpcheckreceiver.NewFactory(), - httpreceiver.NewFactory(), - iisreceiver.NewFactory(), - influxdbreceiver.NewFactory(), - jaegerreceiver.NewFactory(), - jmxreceiver.NewFactory(), - journaldreceiver.NewFactory(), - k8sclusterreceiver.NewFactory(), - k8seventsreceiver.NewFactory(), - kafkametricsreceiver.NewFactory(), - kafkareceiver.NewFactory(), - kubeletstatsreceiver.NewFactory(), - m365receiver.NewFactory(), - memcachedreceiver.NewFactory(), - mongodbatlasreceiver.NewFactory(), - mongodbreceiver.NewFactory(), - mysqlreceiver.NewFactory(), - nginxreceiver.NewFactory(), - oktareceiver.NewFactory(), - opencensusreceiver.NewFactory(), - otlpreceiver.NewFactory(), - pluginreceiver.NewFactory(), - podmanreceiver.NewFactory(), - postgresqlreceiver.NewFactory(), - prometheusreceiver.NewFactory(), - rabbitmqreceiver.NewFactory(), - receivertest.NewNopFactory(), - redisreceiver.NewFactory(), - riakreceiver.NewFactory(), - routereceiver.NewFactory(), - saphanareceiver.NewFactory(), - sapmreceiver.NewFactory(), - sapnetweaverreceiver.NewFactory(), - simpleprometheusreceiver.NewFactory(), - snmpreceiver.NewFactory(), - splunkhecreceiver.NewFactory(), - sqlqueryreceiver.NewFactory(), - sqlserverreceiver.NewFactory(), - statsdreceiver.NewFactory(), - syslogreceiver.NewFactory(), - tcplogreceiver.NewFactory(), - telemetrygeneratorreceiver.NewFactory(), - udplogreceiver.NewFactory(), - vcenterreceiver.NewFactory(), - webhookeventreceiver.NewFactory(), - windowseventlogreceiver.NewFactory(), - windowsperfcountersreceiver.NewFactory(), - zipkinreceiver.NewFactory(), - zookeeperreceiver.NewFactory(), -} diff --git a/go.mod b/go.mod deleted file mode 100644 index 4ddaee21e..000000000 --- a/go.mod +++ /dev/null @@ -1,888 +0,0 @@ -module github.com/observiq/bindplane-agent - -go 1.22.7 - -require ( - github.com/google/uuid v1.6.0 - github.com/observiq/bindplane-agent/exporter/azureblobexporter v1.66.0 - github.com/observiq/bindplane-agent/exporter/chronicleexporter v1.66.0 - github.com/observiq/bindplane-agent/exporter/chronicleforwarderexporter v1.66.0 - github.com/observiq/bindplane-agent/exporter/googlecloudexporter v1.66.0 - github.com/observiq/bindplane-agent/exporter/googlemanagedprometheusexporter v1.66.0 - github.com/observiq/bindplane-agent/exporter/qradar v1.66.0 - github.com/observiq/bindplane-agent/exporter/snowflakeexporter v1.66.0 - github.com/observiq/bindplane-agent/internal/measurements v1.66.0 - github.com/observiq/bindplane-agent/internal/report v1.66.0 - github.com/observiq/bindplane-agent/packagestate v1.66.0 - github.com/observiq/bindplane-agent/processor/datapointcountprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/logcountprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/lookupprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/maskprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/metricextractprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/metricstatsprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/removeemptyvaluesprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/resourceattributetransposerprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/samplingprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/spancountprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/throughputmeasurementprocessor v1.66.0 - github.com/observiq/bindplane-agent/processor/unrollprocessor v1.66.0 - github.com/observiq/bindplane-agent/receiver/awss3rehydrationreceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/azureblobrehydrationreceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/httpreceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/m365receiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/oktareceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/pluginreceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/routereceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/sapnetweaverreceiver v1.66.0 - github.com/observiq/bindplane-agent/receiver/telemetrygeneratorreceiver v1.66.0 - github.com/oklog/ulid/v2 v2.1.0 - github.com/open-telemetry/opamp-go v0.17.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/logdedupprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/logstransformprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureblobreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureeventhubreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/elasticsearchreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/flinkmetricsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/iisreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nginxreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/rabbitmqreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/saphanareceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snmpreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlqueryreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlserverreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/webhookeventreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver v0.114.0 - github.com/shirou/gopsutil/v3 v3.24.5 - github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/confmap v1.20.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 - go.opentelemetry.io/collector/connector v0.114.0 - go.opentelemetry.io/collector/connector/forwardconnector v0.114.0 - go.opentelemetry.io/collector/consumer v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 - go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 - go.opentelemetry.io/collector/extension v0.114.0 - go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - go.opentelemetry.io/collector/featuregate v1.20.0 - go.opentelemetry.io/collector/otelcol v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/processor v0.114.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 - go.opentelemetry.io/collector/receiver v0.114.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 - go.uber.org/multierr v1.11.0 - go.uber.org/zap v1.27.0 - golang.org/x/sys v0.27.0 - gopkg.in/natefinch/lumberjack.v2 v2.2.1 - gopkg.in/yaml.v3 v3.0.1 -) - -require ( - github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/aesprovider v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.114.0 - go.opentelemetry.io/collector/extension/extensiontest v0.114.0 - go.opentelemetry.io/collector/processor/processortest v0.114.0 - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 -) - -require ( - cel.dev/expr v0.16.2 // indirect - cloud.google.com/go/auth v0.10.2 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect - filippo.io/edwards25519 v1.1.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.61.5 // indirect - github.com/ClickHouse/clickhouse-go/v2 v2.30.0 // indirect - github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.135 // indirect - github.com/DataDog/datadog-agent/comp/core/config v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/log v0.56.2 // indirect - github.com/DataDog/datadog-agent/comp/core/log/def v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/telemetry v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/def v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/logs/agent/config v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.61.0-devel.0.20241118141418-5b899217c342 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/auditor v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/client v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/message v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/metrics v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/processor v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sds v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sender v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sources v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/status/health v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/telemetry v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/trace v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/backoff v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/http v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/startstop v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.59.0 // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect - github.com/DataDog/datadog-go/v5 v5.5.0 // indirect - github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/go-sqllexer v0.0.15 // indirect - github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect - github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect - github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect - github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect - github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0 // indirect - github.com/IBM/sarama v1.43.3 // indirect - github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect - github.com/aerospike/aerospike-client-go/v7 v7.7.2 // indirect - github.com/antchfx/xmlquery v1.4.2 // indirect - github.com/antchfx/xpath v1.3.2 // indirect - github.com/apache/arrow/go/v15 v15.0.0 // indirect - github.com/armon/go-radix v1.0.0 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.5 // indirect - github.com/benbjohnson/clock v1.3.5 // indirect - github.com/blang/semver/v4 v4.0.0 // indirect - github.com/briandowns/spinner v1.23.0 // indirect - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/containerd/cgroups/v3 v3.0.3 // indirect - github.com/coreos/go-oidc/v3 v3.11.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/distribution/reference v0.6.0 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect - github.com/ebitengine/purego v0.8.1 // indirect - github.com/elastic/elastic-transport-go/v8 v8.6.0 // indirect - github.com/elastic/go-docappender/v2 v2.3.0 // indirect - github.com/elastic/go-elasticsearch/v7 v7.17.10 // indirect - github.com/elastic/go-elasticsearch/v8 v8.15.0 // indirect - github.com/elastic/go-grok v0.3.1 // indirect - github.com/elastic/go-sysinfo v1.7.1 // indirect - github.com/elastic/go-windows v1.0.1 // indirect - github.com/elastic/lunes v0.1.0 // indirect - github.com/expr-lang/expr v1.16.9 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/go-faster/city v1.0.1 // indirect - github.com/go-faster/errors v0.7.1 // indirect - github.com/go-jose/go-jose/v3 v3.0.3 // indirect - github.com/go-jose/go-jose/v4 v4.0.2 // indirect - github.com/go-viper/mapstructure/v2 v2.2.1 // indirect - github.com/goccy/go-json v0.10.3 // indirect - github.com/golang-jwt/jwt/v5 v5.2.1 // indirect - github.com/golang/mock v1.6.0 // indirect - github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/s2a-go v0.1.8 // indirect - github.com/grafana/loki/pkg/push v0.0.0-20240514112848-a1b1eeb09583 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.10.2 // indirect - github.com/influxdata/influxdb-observability/otel2influx v0.5.12 // indirect - github.com/jcmturner/goidentity/v6 v6.0.1 // indirect - github.com/jmoiron/sqlx v1.4.0 // indirect - github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect - github.com/jonboulle/clockwork v0.4.0 // indirect - github.com/julienschmidt/httprouter v1.3.0 // indirect - github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/kelseyhightower/envconfig v1.4.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect - github.com/knadh/koanf/v2 v2.1.2 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/leodido/go-syslog/v4 v4.2.0 // indirect - github.com/lestrrat-go/strftime v1.1.0 // indirect - github.com/magefile/mage v1.15.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/microsoft/go-mssqldb v1.7.2 // indirect - github.com/mitchellh/go-ps v1.0.0 // indirect - github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/observiq/bindplane-agent/counter v1.66.0 // indirect - github.com/observiq/bindplane-agent/expr v1.66.0 // indirect - github.com/observiq/bindplane-agent/internal/rehydration v1.62.0 // indirect - github.com/okta/okta-sdk-golang/v2 v2.20.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/sumologicextension v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/collectd v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sqlquery v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azurelogs v0.114.0 // indirect - github.com/outcaste-io/ristretto v0.2.1 // indirect - github.com/patrickmn/go-cache v2.1.0+incompatible // indirect - github.com/paulmach/orb v0.11.1 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect - github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect - github.com/prometheus-community/windows_exporter v0.27.2 // indirect - github.com/redis/go-redis/v9 v9.7.0 // indirect - github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect - github.com/segmentio/asm v1.2.0 // indirect - github.com/shirou/gopsutil/v4 v4.24.10 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shopspring/decimal v1.4.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect - github.com/stormcat24/protodep v0.1.8 // indirect - github.com/tg123/go-htpasswd v1.2.3 // indirect - github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 // indirect - github.com/valyala/fastjson v1.6.4 // indirect - github.com/x448/float16 v0.8.4 // indirect - github.com/zeebo/xxh3 v1.0.2 // indirect - go.elastic.co/apm/module/apmzap/v2 v2.6.0 // indirect - go.elastic.co/apm/v2 v2.6.0 // indirect - go.elastic.co/fastjson v1.3.0 // indirect - go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.114.0 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect - go.opentelemetry.io/collector/filter v0.114.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/service v0.114.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect - go.opentelemetry.io/contrib/config v0.10.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 // indirect - go.opentelemetry.io/otel/log v0.8.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect - go.opentelemetry.io/proto/otlp v1.3.1 // indirect - go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 // indirect - gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 // indirect - howett.net/plist v1.0.0 // indirect - sigs.k8s.io/controller-runtime v0.19.1 // indirect -) - -require ( - github.com/Azure/azure-amqp-common-go/v4 v4.2.0 // indirect - github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect - github.com/hooklift/gowsdl v0.5.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect; indir2ct - github.com/ovh/go-ovh v1.6.0 // indirect - github.com/relvacode/iso8601 v1.5.0 // indirect -) - -require ( - github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect - github.com/dvsekhvalnov/jose2go v1.6.0 // indirect - github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/mtibben/percent v0.2.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect; indir2ct -) - -require ( - cloud.google.com/go v0.116.0 // indirect - cloud.google.com/go/compute/metadata v0.5.2 // indirect - cloud.google.com/go/iam v1.2.2 // indirect - cloud.google.com/go/logging v1.12.0 // indirect - cloud.google.com/go/longrunning v0.6.2 // indirect - cloud.google.com/go/monitoring v1.21.2 // indirect - cloud.google.com/go/pubsub v1.45.1 // indirect - cloud.google.com/go/spanner v1.72.0 // indirect - cloud.google.com/go/trace v1.11.2 // indirect - code.cloudfoundry.org/clock v1.0.0 // indirect - code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c // indirect - code.cloudfoundry.org/go-loggregator v7.4.0+incompatible // indirect - code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78 // indirect - github.com/Azure/azure-event-hubs-go/v3 v3.6.2 // indirect - github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect - github.com/Azure/go-amqp v1.0.2 // indirect - github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.29 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect - github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect - github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect - github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect - github.com/Azure/go-autorest/logger v0.2.1 // indirect - github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.49.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus v0.49.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.25.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect - github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/ReneKroon/ttlcache/v2 v2.11.0 // indirect - github.com/SAP/go-hdb v1.12.5 // indirect - github.com/Showmax/go-fqdn v1.0.0 // indirect - github.com/alecthomas/participle/v2 v2.1.1 // indirect - github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 // indirect - github.com/aliyun/aliyun-log-go-sdk v0.1.83 // indirect - github.com/andybalholm/brotli v1.1.1 // indirect - github.com/antonmedv/expr v1.15.5 // indirect - github.com/apache/thrift v0.21.0 // indirect - github.com/armon/go-metrics v0.4.1 // indirect - github.com/aws/aws-sdk-go v1.55.5 // indirect - github.com/aws/aws-sdk-go-v2 v1.32.4 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/config v1.28.3 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect - github.com/aws/smithy-go v1.22.0 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/cenkalti/backoff v2.2.1+incompatible // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/checkpoint-restore/go-criu/v5 v5.3.0 // indirect - github.com/cilium/ebpf v0.11.0 // indirect - github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e // indirect - github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect - github.com/containerd/console v1.0.3 // indirect - github.com/containerd/ttrpc v1.2.4 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.5 // indirect - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dennwc/varint v1.0.0 // indirect - github.com/devigned/tab v0.1.1 // indirect - github.com/digitalocean/godo v1.118.0 // indirect - github.com/docker/docker v27.3.1+incompatible // indirect - github.com/docker/go-connections v0.5.0 // indirect - github.com/docker/go-units v0.5.0 // indirect - github.com/eapache/go-resiliency v1.7.0 // indirect - github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect - github.com/eapache/queue v1.1.0 // indirect - github.com/elastic/go-structform v0.0.12 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/envoyproxy/go-control-plane v0.13.1 // indirect - github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect - github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect - github.com/go-kit/kit v0.13.0 // indirect - github.com/go-kit/log v0.2.1 // indirect - github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.20.2 // indirect - github.com/go-openapi/jsonreference v0.20.4 // indirect - github.com/go-openapi/swag v0.22.9 // indirect - github.com/go-resty/resty/v2 v2.13.1 // indirect - github.com/go-sql-driver/mysql v1.8.1 // indirect - github.com/go-zookeeper/zk v1.0.3 // indirect - github.com/gobwas/glob v0.2.3 // indirect - github.com/godbus/dbus/v5 v5.0.6 // indirect - github.com/gofrs/uuid v4.2.0+incompatible // indirect - github.com/gogo/googleapis v1.4.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect - github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect - github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.4 - // (Dakota): cadvisor only works on version `v0.49.1-0.20240628164550-89f779d86055` until they release v0.50.0 with updated docker dep - // https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33870 - github.com/google/cadvisor v0.49.1-0.20240628164550-89f779d86055 // indirect - github.com/google/flatbuffers v23.5.26+incompatible // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/go-querystring v1.1.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect - github.com/googleapis/gax-go/v2 v2.14.0 // indirect - github.com/gophercloud/gophercloud v1.13.0 // indirect - github.com/gorilla/mux v1.8.1 // indirect - github.com/gorilla/websocket v1.5.3 // indirect - github.com/gosnmp/gosnmp v1.38.0 // indirect - github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect - github.com/grobie/gomemcache v0.0.0-20230213081705-239240bbc445 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect - github.com/hashicorp/consul/api v1.30.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-hclog v1.6.3 // indirect - github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.7 // indirect - github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/golang-lru v1.0.2 // indirect - github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 // indirect - github.com/hashicorp/serf v0.10.1 // indirect - github.com/iancoleman/strcase v0.3.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/influxdata/influxdb-observability/common v0.5.12 // indirect - github.com/influxdata/influxdb-observability/influx2otel v0.5.12 // indirect - github.com/influxdata/line-protocol/v2 v2.2.1 // indirect - github.com/ionos-cloud/sdk-go/v6 v6.1.11 // indirect - github.com/jaegertracing/jaeger v1.62.0 // indirect - github.com/jcmturner/aescts/v2 v2.0.0 // indirect - github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect - github.com/jcmturner/gofork v1.7.6 // indirect - github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect - github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/jpillora/backoff v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/karrick/godirwalk v1.17.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect - github.com/knadh/koanf v1.5.0 // indirect - github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect - github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b // indirect - github.com/lib/pq v1.10.9 // indirect - github.com/lightstep/go-expohisto v1.0.0 // indirect - github.com/linode/linodego v1.37.0 // indirect - github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/microsoft/ApplicationInsights-Go v0.4.4 // indirect - github.com/miekg/dns v1.1.61 // indirect - github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect - github.com/mitchellh/copystructure v1.2.0 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/hashstructure v1.1.0 // indirect - github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect - github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/moby/sys/mountinfo v0.7.1 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/mongodb-forks/digest v1.1.0 // indirect - github.com/montanaflynn/stats v0.7.1 // indirect - github.com/mostynb/go-grpc-compression v1.2.3 // indirect - github.com/mrunalp/fileutils v0.5.1 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/nginxinc/nginx-prometheus-exporter v0.11.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/signalfx v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 // indirect; indi72.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.114.0 // indirect; indi72.0 - github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/opencontainers/runc v1.1.14 // indirect - github.com/opencontainers/runtime-spec v1.2.0 // indirect - github.com/opencontainers/selinux v1.10.1 // indirect - github.com/openshift/api v3.9.0+incompatible // indirect - github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect - github.com/openzipkin/zipkin-go v0.4.3 // indirect - github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect - github.com/pierrec/lz4 v2.6.1+incompatible // indirect - github.com/pierrec/lz4/v4 v4.1.21 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.20.5 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.60.1 // indirect - github.com/prometheus/common/sigv4 v0.1.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect - github.com/prometheus/prometheus v0.54.1 // indirect - github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rs/cors v1.11.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect - github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 // indirect - github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3 // indirect - github.com/signalfx/sapm-proto v0.16.0 // indirect - github.com/sijms/go-ora/v2 v2.8.22 // indirect - github.com/sirupsen/logrus v1.9.3 // indirect - github.com/snowflakedb/gosnowflake v1.12.0 // indirect - github.com/soheilhy/cmux v0.1.5 // indirect - github.com/spf13/cobra v1.8.1 // indirect - github.com/stretchr/objx v0.5.2 // indirect - github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect - github.com/tidwall/gjson v1.18.0 // indirect - github.com/tidwall/match v1.1.1 // indirect - github.com/tidwall/pretty v1.2.1 // indirect - github.com/tidwall/tinylru v1.2.1 // indirect - github.com/tidwall/wal v1.1.7 // indirect - github.com/tinylib/msgp v1.2.4 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 // indirect - github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect - github.com/vmware/govmomi v0.46.0 // indirect - github.com/vultr/govultr/v2 v2.17.2 // indirect - github.com/xdg-go/pbkdf2 v1.0.0 // indirect - github.com/xdg-go/scram v1.1.2 // indirect - github.com/xdg-go/stringprep v1.0.4 // indirect - github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect - github.com/yuin/gopher-lua v1.1.1 // indirect - github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.etcd.io/bbolt v1.3.11 // indirect - go.mongodb.org/atlas v0.37.0 // indirect - go.mongodb.org/mongo-driver v1.17.1 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect; indir7.0 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect - go.opentelemetry.io/contrib/zpages v0.56.0 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 - go.opentelemetry.io/otel/trace v1.32.0 // indirect - go.uber.org/atomic v1.11.0 // indirect - golang.org/x/crypto v0.29.0 // indirect - golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.31.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.26.0 // indirect - golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect - gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.209.0 // indirect - google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect - google.golang.org/grpc v1.68.0 // indirect - google.golang.org/protobuf v1.35.2 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/api v0.31.2 // indirect - k8s.io/apimachinery v0.31.2 // indirect - k8s.io/client-go v0.31.2 // indirect - k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/kubelet v0.31.2 // indirect - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect -) - -replace github.com/observiq/bindplane-agent/processor/resourceattributetransposerprocessor => ./processor/resourceattributetransposerprocessor - -replace github.com/observiq/bindplane-agent/receiver/pluginreceiver => ./receiver/pluginreceiver - -replace github.com/observiq/bindplane-agent/receiver/m365receiver => ./receiver/m365receiver - -replace github.com/observiq/bindplane-agent/receiver/routereceiver => ./receiver/routereceiver - -replace github.com/observiq/bindplane-agent/receiver/sapnetweaverreceiver => ./receiver/sapnetweaverreceiver - -replace github.com/observiq/bindplane-agent/receiver/telemetrygeneratorreceiver => ./receiver/telemetrygeneratorreceiver - -replace github.com/observiq/bindplane-agent/exporter/googlecloudexporter => ./exporter/googlecloudexporter - -replace github.com/observiq/bindplane-agent/exporter/azureblobexporter => ./exporter/azureblobexporter - -replace github.com/observiq/bindplane-agent/exporter/chronicleexporter => ./exporter/chronicleexporter - -replace github.com/observiq/bindplane-agent/exporter/chronicleforwarderexporter => ./exporter/chronicleforwarderexporter - -replace github.com/observiq/bindplane-agent/exporter/qradar => ./exporter/qradar - -replace github.com/observiq/bindplane-agent/exporter/snowflakeexporter => ./exporter/snowflakeexporter - -replace github.com/observiq/bindplane-agent/packagestate => ./packagestate - -replace github.com/observiq/bindplane-agent/processor/metricstatsprocessor => ./processor/metricstatsprocessor - -replace github.com/observiq/bindplane-agent/processor/removeemptyvaluesprocessor => ./processor/removeemptyvaluesprocessor - -replace github.com/observiq/bindplane-agent/processor/throughputmeasurementprocessor => ./processor/throughputmeasurementprocessor - -replace github.com/observiq/bindplane-agent/processor/samplingprocessor => ./processor/samplingprocessor - -replace github.com/observiq/bindplane-agent/processor/maskprocessor => ./processor/maskprocessor - -replace github.com/observiq/bindplane-agent/processor/logcountprocessor => ./processor/logcountprocessor - -replace github.com/observiq/bindplane-agent/processor/metricextractprocessor => ./processor/metricextractprocessor - -replace github.com/observiq/bindplane-agent/processor/spancountprocessor => ./processor/spancountprocessor - -replace github.com/observiq/bindplane-agent/processor/datapointcountprocessor => ./processor/datapointcountprocessor - -replace github.com/observiq/bindplane-agent/processor/lookupprocessor => ./processor/lookupprocessor - -replace github.com/observiq/bindplane-agent/processor/unrollprocessor => ./processor/unrollprocessor - -replace github.com/observiq/bindplane-agent/expr => ./expr - -replace github.com/observiq/bindplane-agent/counter => ./counter - -replace github.com/observiq/bindplane-agent/exporter/googlemanagedprometheusexporter => ./exporter/googlemanagedprometheusexporter - -replace github.com/observiq/bindplane-agent/receiver/azureblobrehydrationreceiver => ./receiver/azureblobrehydrationreceiver - -replace github.com/observiq/bindplane-agent/receiver/httpreceiver => ./receiver/httpreceiver - -replace github.com/observiq/bindplane-agent/receiver/oktareceiver => ./receiver/oktareceiver - -replace github.com/observiq/bindplane-agent/receiver/awss3rehydrationreceiver => ./receiver/awss3rehydrationreceiver - -replace github.com/observiq/bindplane-agent/internal/rehydration => ./internal/rehydration - -replace github.com/observiq/bindplane-agent/internal/testutils => ./internal/testutils - -replace github.com/observiq/bindplane-agent/internal/report => ./internal/report - -replace github.com/observiq/bindplane-agent/internal/measurements => ./internal/measurements - -// Does not build with windows and only used in configschema executable -// Relevant issue https://github.com/mattn/go-ieproxy/issues/45 -replace github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy v0.0.1 - -// Replaces below this are required by datadog exporter in v0.83.0 https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.83.0/exporter/datadogexporter/go.mod#L266-L275 - -// openshift removed all tags from their repo, use the pseudoversion from the release-3.9 branch HEAD -replace github.com/openshift/api v3.9.0+incompatible => github.com/openshift/api v0.0.0-20180801171038-322a19404e37 diff --git a/go.sum b/go.sum deleted file mode 100644 index 8722962d7..000000000 --- a/go.sum +++ /dev/null @@ -1,3731 +0,0 @@ -cel.dev/expr v0.16.2 h1:RwRhoH17VhAu9U5CMvMhH1PDVgf0tuz9FT+24AfMLfU= -cel.dev/expr v0.16.2/go.mod h1:gXngZQMkWJoSbE8mOzehJlXQyubn/Vg0vR9/F3W7iw8= -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= -cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= -cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= -cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= -cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= -cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= -cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= -cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= -cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= -cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= -cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= -cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= -cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= -cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= -cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= -cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= -cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= -cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= -cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= -cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= -cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= -cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= -cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= -cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= -cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= -cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= -cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= -cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= -cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= -cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= -cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= -cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= -cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= -cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= -cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= -cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= -cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= -cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= -cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= -cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= -cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo= -cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= -cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= -cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= -cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= -cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= -cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= -cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= -cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= -cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= -cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= -cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= -cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= -cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= -cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= -cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= -cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= -cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= -cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= -cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= -cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= -cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= -cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= -cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= -cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= -cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= -cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= -cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= -cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= -cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= -cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= -cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= -cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= -cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= -cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= -cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= -cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= -cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= -cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= -cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= -cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= -cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= -cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= -cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= -cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= -cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= -cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= -cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= -cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= -cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= -cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= -cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= -cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= -cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= -cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= -cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= -cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= -cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= -cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= -cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= -cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= -cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= -cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= -cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= -cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= -cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= -cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= -cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= -cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= -cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= -cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= -cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= -cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= -cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= -cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= -cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= -cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= -cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= -cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= -cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= -cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= -cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= -cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= -cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= -cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= -cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= -cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= -cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= -cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= -cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= -cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= -cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= -cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= -cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= -cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= -cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= -cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= -cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= -cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= -cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= -cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= -cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= -cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= -cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= -cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= -cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= -cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= -cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= -cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= -cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= -cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= -cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= -cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= -cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= -cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= -cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= -cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= -cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= -cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= -cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= -cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= -cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= -cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= -cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= -cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= -cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= -cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= -cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= -cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= -cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= -cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= -cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= -cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= -cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= -cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= -cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= -cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= -cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= -cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= -cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= -cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= -cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= -cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= -cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= -cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= -cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= -cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= -cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= -cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= -cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= -cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= -cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= -cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= -cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= -cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= -cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= -cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= -cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= -cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= -cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= -cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= -cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= -cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= -cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= -cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= -cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= -cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= -cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= -cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= -cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= -cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= -cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= -cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= -cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= -cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= -cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= -cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= -cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= -cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= -cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= -cloud.google.com/go/pubsub v1.45.1 h1:ZC/UzYcrmK12THWn1P72z+Pnp2vu/zCZRXyhAfP1hJY= -cloud.google.com/go/pubsub v1.45.1/go.mod h1:3bn7fTmzZFwaUjllitv1WlsNMkqBgGUb3UdMhI54eCc= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= -cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= -cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= -cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= -cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= -cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= -cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= -cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= -cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= -cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= -cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= -cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= -cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= -cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= -cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= -cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= -cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= -cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= -cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= -cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= -cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= -cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= -cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= -cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= -cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= -cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= -cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= -cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= -cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= -cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= -cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= -cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= -cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= -cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= -cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= -cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= -cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= -cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= -cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= -cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= -cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= -cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= -cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= -cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= -cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= -cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= -cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= -cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= -cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= -cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= -cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= -cloud.google.com/go/spanner v1.72.0 h1:8hOxGVi0gaOWdxzDxyjYL4g/unjVUy2uje1T3okTgiQ= -cloud.google.com/go/spanner v1.72.0/go.mod h1:mw98ua5ggQXVWwp83yjwggqEmW9t8rjs9Po1ohcUGW4= -cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= -cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= -cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= -cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= -cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= -cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= -cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= -cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= -cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= -cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= -cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= -cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= -cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= -cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= -cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= -cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= -cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= -cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= -cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= -cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= -cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= -cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= -cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= -cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= -cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= -cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= -cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= -cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= -cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= -cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= -cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= -cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= -cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= -cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= -cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= -cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= -cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= -code.cloudfoundry.org/clock v1.0.0 h1:kFXWQM4bxYvdBw2X8BbBeXwQNgfoWv1vqAk2ZZyBN2o= -code.cloudfoundry.org/clock v1.0.0/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= -code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c h1:N2GMlHc/SJQk7BkaME/kDHaciVTy4NuRmxVJLhnqKK8= -code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c/go.mod h1:o7lq/SmHshDVxHdRJ/fMT3VPcoXyE1HcRXbG8QibO3k= -code.cloudfoundry.org/go-loggregator v7.4.0+incompatible h1:KqZYloMQWM5Zg/BQKunOIA4OODh7djZbk48qqbowNFI= -code.cloudfoundry.org/go-loggregator v7.4.0+incompatible/go.mod h1:KPBTRqj+y738Nhf1+g4JHFaBU8j7dedirR5ETNHvMXU= -code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78 h1:mrZQaZmuDIPhSp6b96b+CRKC2uH44ifa5cjDV2epKis= -code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78/go.mod h1:tkZo8GtzBjySJ7USvxm4E36lNQw1D3xM6oKHGqdaAJ4= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= -filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= -git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= -github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= -github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-amqp-common-go/v4 v4.2.0 h1:q/jLx1KJ8xeI8XGfkOWMN9XrXzAfVTkyvCxPvHCjd2I= -github.com/Azure/azure-amqp-common-go/v4 v4.2.0/go.mod h1:GD3m/WPPma+621UaU6KNjKEo5Hl09z86viKwQjTpV0Q= -github.com/Azure/azure-event-hubs-go/v3 v3.6.2 h1:7rNj1/iqS/i3mUKokA2n2eMYO72TB7lO7OmpbKoakKY= -github.com/Azure/azure-event-hubs-go/v3 v3.6.2/go.mod h1:n+ocYr9j2JCLYqUqz9eI+lx/TEAtL/g6rZzyTFSuIpc= -github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= -github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 h1:JZg6HRh6W6U4OLl6lk7BZ7BLisIzM9dG1R50zUk9C/M= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0/go.mod h1:YL1xnZ6QejvQHWJrX/AvhFl4WW4rqHVoKspWNVwFk0M= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0/go.mod h1:LRr2FzBTQlONPPa5HREE5+RjSCTXl7BwOvYOaWTqCaI= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 h1:bXwSugBiSbgtz7rOtbfGf+woewp4f06orW9OP5BjHLA= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0/go.mod h1:Y/HgrePTmGy9HjdSGTqZNa+apUpTVIEVKXJyARP2lrk= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1 h1:7CBQ+Ei8SP2c6ydQTGCCrS35bDxgTMfoP2miAwK++OU= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1/go.mod h1:c/wcGeGx5FUPbM/JltUYHZcKmigwyVLJlDq+4HdtXaw= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0 h1:PiSrjRPpkQNjrM8H0WwKMnZUdu1RGMtd/LdGKUrOo+c= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0/go.mod h1:oDrbWx4ewMylP7xHivfgixbfGBT6APAwsSoHRKotnIc= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 h1:mlmW46Q0B79I+Aj4azKC6xDMFN9a9SyZWESlGWYXbFs= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0/go.mod h1:PXe2h+LKcWTX9afWdZoHyODqR4fBa5boUM/8uJfZ0Jo= -github.com/Azure/go-amqp v1.0.2 h1:zHCHId+kKC7fO8IkwyZJnWMvtRXhYC0VJtD0GYkHc6M= -github.com/Azure/go-amqp v1.0.2/go.mod h1:vZAogwdrkbyK3Mla8m/CxSc/aKdnTZ4IbPxl51Y5WZE= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= -github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk= -github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= -github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 h1:iM6UAvjR97ZIeR93qTcwpKNMpV+/FTWjwEbuPD495Tk= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= -github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= -github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= -github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h2lrmGGk17dhFo= -github.com/ClickHouse/clickhouse-go/v2 v2.30.0/go.mod h1:i9ZQAojcayW3RsdCb3YR+n+wC2h65eJsZCscZ1Z1wyo= -github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= -github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= -github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/DataDog/agent-payload/v5 v5.0.135 h1:EZXSnOILBD/q4xWKtaOsDsIVWPteY1G79It8a5x8jJw= -github.com/DataDog/agent-payload/v5 v5.0.135/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= -github.com/DataDog/datadog-agent/cmd/agent/common/path v0.59.0 h1:PolEv4Se/H2jBCKdiOPNELEG5OuXWKrqpsxZMUQ4g14= -github.com/DataDog/datadog-agent/cmd/agent/common/path v0.59.0/go.mod h1:ve34W4f7PGC5zbot0HB+W3xkNZN7obINz89o8N/biP8= -github.com/DataDog/datadog-agent/comp/api/api/def v0.59.0 h1:zfXuUtnet+GWssR+Zi4lns5iIqlYQWiKXtKWb+6dJ+g= -github.com/DataDog/datadog-agent/comp/api/api/def v0.59.0/go.mod h1:gsXkdySqo/hjJmw/b4W9VYiGcRTJaq0uOVwMFAukl4U= -github.com/DataDog/datadog-agent/comp/core/config v0.59.0 h1:SxZsc9E6+d+Gb5fCfo/HnvRi8qTrTcLFE0//lX9+pM8= -github.com/DataDog/datadog-agent/comp/core/config v0.59.0/go.mod h1:2vRyHTEIHey2fsN9JO8z8bj7SSpC5VewuZsHJAA9k6I= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 h1:qpvXvXK+Az2dKgzx3pPaAvS/tsrl1QXI4FndDtcjgvY= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0/go.mod h1:cg7JgU501CDIZNiyEfnwbBbk9nOsUy2nsKADIAdRnmk= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 h1:Kz5NUsZFT4pTUh4P/A2bBiBTNkfT80ZfHig8LOuHBiY= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0/go.mod h1:n32X+eH1UMvlfZOwu70t6ySopwbN1yBfaVcpNgaCkG4= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.59.0 h1:m939bF+E/+nPZ1jGU1J9ZVeI3fCk8nbAjl9H9MMz2A0= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.59.0/go.mod h1:jjiRtHmQcGwHmP4l4T49t4i2fU2NM097LEG6VaI8CIk= -github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4= -github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4= -github.com/DataDog/datadog-agent/comp/core/log/def v0.59.0 h1:4je3YuTFhqmw0a0oksSsVPglNT4b37gosaRv9T/TLYQ= -github.com/DataDog/datadog-agent/comp/core/log/def v0.59.0/go.mod h1:uFF83DUAQYoQKKdddr6ptnCPiRik/lr9y+B2JxgLWRs= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.59.0 h1:ndq+1XRChjuYIgfLuRuGQ5trGtq/Qpa/vnTG/6r9bKs= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.59.0/go.mod h1:Ii6q5lgyvXKRmt8Puaan94V5iOiX4xOd+1OU7ZX8Lo4= -github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 h1:RS7z5/VuZtPc2NLdFRerDubYtZgWbgf1dOZpdhclgb8= -github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0/go.mod h1:hKbelRO2zUJbU4KI1NumVvBIYq45RtQ3JC2LJvJU/y8= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.59.0 h1:ApJD+u0a5anQZkmCw3y2ljhMC56BcjlT6klAZaoXLYk= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.59.0/go.mod h1:mNPruKhnFUe7xiFMnPIMweb7O1HkTh0C78Llhd+Y9xA= -github.com/DataDog/datadog-agent/comp/def v0.59.0 h1:AO1oQ4/ZqYtzklm7glhYqQLyr4me4qg34sf4HRzyMcQ= -github.com/DataDog/datadog-agent/comp/def v0.59.0/go.mod h1:2xorAm6FmIl275/ayDZSUg53Hz4oQ/X8ELyp7I1N3fM= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.59.0 h1:olhlCNtCG5BKHsRJrwR4i7XZkeMbTRKz4OFayLrvD6o= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.59.0/go.mod h1:QrNGc1TWXhNagr1/nVSiUI+n8SFczoS8vpZdKtASxnQ= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0 h1:kM1pYOA1EmlT47b8Buxvlm6EVykG9T72gUuQL+Uur8s= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0/go.mod h1:2SrdlZ37IBATRjnPhNs4qBqaZCZ7HkEb4DNWXn/DsXY= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.59.0 h1:SJhZCcJDZEEHzR2p9dGQ56jIy08ZfqajiBIBgLShtzU= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.59.0/go.mod h1:uyfsYUV6L7W4duN9rlFrEN+r3REPPwCSE4Nj8WjDhDE= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.61.0-devel.0.20241118141418-5b899217c342 h1:4JNPjWCjqwTqGJcdJGURGDAJDS5N9wW+g7PwNYCygYs= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.61.0-devel.0.20241118141418-5b899217c342/go.mod h1:Z7BRzEr/tg3DjSf2MgQobKbtjKv4iavZJyhh/7OGTWA= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 h1:LyhDLcabmvRZk2ehGlZYXuW2MpA7RoR87C6jQ7gUQ24= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0/go.mod h1:tG+1FklWteENGZb3gE/13Sn80YfMEI6APmZxY8nSQHo= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0 h1:3eTrUZGpI5EjzIINZhilZXRUd6ND7W98bUUe4UF+arE= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0/go.mod h1:Dp1J09BVqtGHR3yj82q4mCVNq5qkhDs/cTI5/DlvJxk= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.57.0-devel.0.20240718200853-81bf3b2e412d h1:wdjJ+/tBYiFLwno+lBPP66rm5jIf6ycGPRr21ogBBzE= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.57.0-devel.0.20240718200853-81bf3b2e412d/go.mod h1:CHa8CY2k0/wZkx/4KPi/WU/0m5YCfWZI1SAs1imElMA= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 h1:u/IbNqKfYodJIprc/rkpcwLz/5OFox95ujemwR9AHuo= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0/go.mod h1:samFXdP0HVSwD223LPLzcPKUjRQ6/uwr/1wMPo2HhRg= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0 h1:Z/fqQiBYwTTt27IIBdX6oivtIxfqm0o0gNqA1zoATm4= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0/go.mod h1:x1xzklye6fB16nIh4HrvbOYN/WP4OJNJpvZylelI3tI= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.59.0 h1:m9wM1fLNndxJWVXwZegwQ2wAp6CK0uFqF/sh/5Rw1PY= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.59.0/go.mod h1:t1BtP+u27pjTeOX/5otD7klkUIHB0Mh4ToeeeHs+oRY= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 h1:Etckua/+tAA9nA6Ssbgx+sKDIdgiobVFuhRvQWDAGHQ= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0/go.mod h1:s9QBNtoBURzy/0FeBInQ7kawNj04OnBNUo8xYr26z3E= -github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 h1:8oHEWArrc7dYJunz5ZtLzSVsGkW4JUk+v/QLgcUuvRI= -github.com/DataDog/datadog-agent/pkg/config/env v0.59.0/go.mod h1:8DoSDz72MFB3o09Tn90OUnUiQ60kDvObWh9xmaG+4cI= -github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 h1:bg/anB+tp85oaFKvdMrbaYO0idWbErtm8i4rp4dra5k= -github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0/go.mod h1:xVhwIc1BVvXN7UUM+604EOyoSRIF9B84Vn6Xn5n3GXE= -github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 h1:8x6VWgK/mrG++vU1QkbfVI3YBWy2AyQHgOVyFYwX4lE= -github.com/DataDog/datadog-agent/pkg/config/model v0.59.0/go.mod h1:+IfFsWw9OM26lwDmTfy6RVF5LhEmFC8LgO4OGajyuvk= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 h1:8MTR7i4xNFoVp0gyzHghn2s7AZcuu25GJDQvTGwtGC8= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0/go.mod h1:aYSdawfzI8vX0YlS19KKxpLR8oG1Rqp2rH+wFPv4MFs= -github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 h1:6cNxX6N7HIZqGVSKD4Fzh30Ldky8ckaQnd7B4bXzErg= -github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0/go.mod h1:JEO3nqqPJn1lh8tSabgRqXHOth2l++ZYEfzRRYGUji0= -github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 h1:U7+yV+Ul/Cmvt7HKuf6TXkwq9/RhaaWNOX+xReUgqwQ= -github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0/go.mod h1:rdbxYVSC1Xjh8RODr06j8Mbku7dXnRr3SWxi5wsl9pA= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 h1:8iCSoIKcNqiX/QEmWbjRcH5za/Aj06QtIfT8JNJZXDU= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0/go.mod h1:oi5YMuCZKA98ACJz5cx/lXM+pZ4HAUgc5bSP73M4G3w= -github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 h1:ZA4WUpcb23Ts/BQ2fEDodGd45QtQFuJ0xSrvxME8JBQ= -github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0/go.mod h1:n8JbD8n9omhs/MWZij6yA6RgHAOYx54BXMTRR2v+32A= -github.com/DataDog/datadog-agent/pkg/logs/auditor v0.59.0 h1:5PDZmH8KW0PYSfywoNlHkjoTNSYefq4N6X55CBqiCeU= -github.com/DataDog/datadog-agent/pkg/logs/auditor v0.59.0/go.mod h1:mcWSkLVkuJmhqr4GkwHbhuELNxn46VNg487xL33LAQQ= -github.com/DataDog/datadog-agent/pkg/logs/client v0.59.0 h1:GC6gjPzImitUI26X9X23G4WuDyv/+KKjYHLoxmIllJ8= -github.com/DataDog/datadog-agent/pkg/logs/client v0.59.0/go.mod h1:EE6EkO4YH+hQlhQAPrcTxT3Ye72fOFwQxqyQsOFr2fk= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.59.0 h1:a/2kYMMKo9um9Dla5QExkvors05CFgyfrPkxClZz8L0= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.59.0/go.mod h1:Mc9HEEgXpsQEZKEtb7I42Yg5ShZyNXxJShdVslkhW2g= -github.com/DataDog/datadog-agent/pkg/logs/message v0.59.0 h1:hv2fiwwX53r4tdzv0YHbBDoGBLJcKrA4ErqC01XnCrY= -github.com/DataDog/datadog-agent/pkg/logs/message v0.59.0/go.mod h1:RS8UIJB31rymy8W5va8I1EFkd4hbSAbHUWPZYzfwH+M= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.59.0 h1:mQzAZGQaYlnQVyralxBs2KxYAm8Gb8IL45eimmX0Zr4= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.59.0/go.mod h1:liRnSv3VpZpv/rHGiYYBCBlkx2Sy98rw2/5hu9g1T/E= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.59.0 h1:3i0bNOq5IwPKKYpKl2zgkwOecvfxl2/mFZ5M4q8un7U= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.59.0/go.mod h1:xVtael5+vGMu08nvdlnqB7IhbwjTYCLHuXMjVodVFM8= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.59.0 h1:F71SRQbj2bqLHAw8+R/fqMQCTiDjusD36u13/yK55Bo= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.59.0/go.mod h1:XuBR8eeLrxNOI5ex2BlH67P4lmOZIs5p9Vnse/71zVY= -github.com/DataDog/datadog-agent/pkg/logs/sds v0.59.0 h1:CPxkTGZuir7z6ZnEXovdUNQE0nAHmXAtBLvFMppxHvs= -github.com/DataDog/datadog-agent/pkg/logs/sds v0.59.0/go.mod h1:MOhCsu2zQMIwT2NBQYWjXzHgNYCKZwPJu08TKlBa1IU= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.59.0 h1:fd2pUQXyxV8Zvw2axC0/IzBRwaEWeOYuItvo3NnS0eY= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.59.0/go.mod h1:iVtgk6B4bl7HggNx5TECj4LIj8PYmoDIf1Hn1lL61cA= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.59.0 h1:odwHx0k2Hod6wrsnt/P5dI2deVCwVaMNKSSxpsOvHR8= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.59.0/go.mod h1:t95T+iw+/9VP40ymxXrrLIMJ+MiFJm0vIZml3KpwuyI= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.59.0 h1:th5J71WmJpXVcY+yR5YalOzrLjoYEDn/HT+allWEInQ= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.59.0/go.mod h1:PaduNrh0GJ3UEKG30VMu0M6hi7KuYf3VviLdIG9xV9k= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.59.0 h1:BvvXnKJjZfLUcwcTnj8gWoJAlFfTd8q5Rh39SV97VFM= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.59.0/go.mod h1:p2NTG+cIhVGlKELJfRteGCec37ICptIpeB2x/MsRkbw= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.59.0 h1:Lx1CcCOi+Wgvjxzj8pEz1HtxWuZpjIkHyrBXidzU9Hw= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.59.0/go.mod h1:+uqKrMsDA16MMC98rqDkp7Jn8cpYLI/JPAVcno8MEmE= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 h1:uX6/XoKMS7KYXe+R+vwgw+eRdmn16xfa9PDF5dxgumE= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0/go.mod h1:ATVw8kr3U1Eqz3qBz9kS6WFDKji9XyoAsHKSlj3hPTM= -github.com/DataDog/datadog-agent/pkg/proto v0.59.0 h1:hHgSABsmMpA3IatWlnYRAKlfqBACsWyqsLCEcUA8BCs= -github.com/DataDog/datadog-agent/pkg/proto v0.59.0/go.mod h1:weaq7HP9vUa7YAMcvMs7bhT7pmHk3sq7XRBQOcaSUak= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 h1:9C8TVNz0IiNoD6tuEKPY/vMIUjB7kN0OaLyImhatWjg= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0/go.mod h1:c4th0IFaP0Q1ofRa0GcPB9hJWN+cmUoEfOI1Ub0O50A= -github.com/DataDog/datadog-agent/pkg/status/health v0.59.0 h1:gDeDYddUBwkzeNRxeRceIB46YvxB/2+KoCFcN4qvVag= -github.com/DataDog/datadog-agent/pkg/status/health v0.59.0/go.mod h1:EkC/SgFR03BKwBitVV4dIuP+ofwPlUCkVi5K5k1Dh2Y= -github.com/DataDog/datadog-agent/pkg/telemetry v0.59.0 h1:4WEY5NILyM/WFXwzgvgdju1rfO4cru2SXJyU1JLgFyc= -github.com/DataDog/datadog-agent/pkg/telemetry v0.59.0/go.mod h1:DmEXCX0hBizZpdpbS64o9sPj47iiUzh9F7uGUazF+ZA= -github.com/DataDog/datadog-agent/pkg/trace v0.59.0 h1:LHfmBEfidWE6R5onNLIFnX3jc4MRBwdqJ6XLQxvBAG0= -github.com/DataDog/datadog-agent/pkg/trace v0.59.0/go.mod h1:6XfyUYonzDI1qy9tZBUgMgGYJarHDxIZtfs6PNRbf/w= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.59.0 h1:EaTwOrTRpMEdomryGVMfHyN0wEsKkaL3/Tw9qRt9SSY= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.59.0/go.mod h1:2RMfdYkKyeh8hXs6WgaamkkEyK35Xo55C4rFG4dO1k8= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0 h1:uV3oUyl0uQN8anXZXQiw+hbQ8UNNtSkrnDCDklhAjeI= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0/go.mod h1:+51MjREuUnHTYSnI9zBqv2aVOF4dlhDwQiCMeZyY7Z0= -github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 h1:24sLjJ4p4Co/82weJsqkNxWZjG8zdS7yeJBGVOqjHxM= -github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0/go.mod h1:mSSn2OzsdgoUnPyBmF8rEDU+ee1RFp+H6LFsJSteN9o= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 h1:VV/SYXyZirAaUxMsWUpmZYcX9AIgbGadElznJZXPCig= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0/go.mod h1:1Oy0TNkovXuDB0Uu8OzszIuDezYSPg8qFCEyx02ipc4= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 h1:b4sUQuXnE+M+1ToTViNGelw8yfaXRuhOqBSczdQ8wEM= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0/go.mod h1:vl91pbe6A2L9kqNEmSDrS8vlj4cADSBq3Z3YRQ1rpKY= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 h1:8qlROMBQixtDVQwjvttGSM8hTmN3tnFQugOyh614ACc= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0/go.mod h1:4EPWYAplHgdaLZsP/NuLEfh21NuvF+JdVtwttTqQlUY= -github.com/DataDog/datadog-agent/pkg/util/http v0.59.0 h1:6Dshh+6K5NGV2TdHsZeeDRsBrgvQ0rJw8OhMWonMFu4= -github.com/DataDog/datadog-agent/pkg/util/http v0.59.0/go.mod h1:Cf5xtpWzHGn7rvEAM4fdw1OUABXLbA/Bqf3dCt/0qtM= -github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 h1:0JwuSc9Pr/kHAYIEzbdeYKLxgDViNlA6e/bB+7IvFtE= -github.com/DataDog/datadog-agent/pkg/util/log v0.59.0/go.mod h1:pH5Vs7I0fwUU4dUtiQ/oEC//+xzPAgUlhH5+MG5eseg= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.59.0 h1:1gQ81041dHofvio6mn0EnmAG8hYR52VOlCjONIvpkks= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.59.0/go.mod h1:9aftpZaZs8Z7EWHGQO3+biYHVRxN/V4WELSK6P5c0DY= -github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 h1:IOZeoApM4NI6dw+Sdo4PalVU1Z6uoY3vuKdl5Jm6g2M= -github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0/go.mod h1:xWT/KJdJg2/0pZyAKZ6XmIiE5sM+AyUo4qvKuPHQ17U= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 h1:K/3aHtAsvlAIbw0/3ah66f1glnpdLNm69XSYXdcnDtw= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0/go.mod h1:t1DlnUEMltkvwPLc7zCtP1u5cBDu+30daR2VhQO5bvA= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 h1:p4uZow1IE/ve590aKqTsS+/5P7fPi+abHN9TWFi+bhE= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0/go.mod h1:krOxbYZc4KKE7bdEDu10lLSQBjdeSFS/XDSclsaSf1Y= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.59.0 h1:zPO6AX/UcbMCuGjnrK0cuDgULbOyzZFYvuxf/qbZjGg= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.59.0/go.mod h1:IkqOyNbrg9hXqCMyL+g+Ldhz4q6VVOPqbHQxS4lLiRs= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 h1:CYY4C03mcJCqB04DKttAbNPrQouJLSL94m/KLaURv3Y= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0/go.mod h1:Et2HSDjQvMhgs9ZdH7T5I4q04g5Fj23EtmeIaen/9/M= -github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 h1:9fpWOSJyuBHdpzQkUYFoyC57Bv+umHeMMSQmwmm900k= -github.com/DataDog/datadog-agent/pkg/util/system v0.59.0/go.mod h1:rdBzS773XYudLd/IH2mUzz3+kJ2N2PcFWEdRGEGYlP0= -github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 h1:8l2FgdcIUNPyI4J+w5OaY3k2byB11HqZ/mcg2AcJSSI= -github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0/go.mod h1:C63BEsAoSlfoB4WadEMO1guB+dvfl95zQaMLw394zNM= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0 h1:f6EtElJXr8UN6FftNEeqIyT2jzvAtldQI+eb7qaYvrA= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0/go.mod h1:m/uWLdpGEi3x/5gybZFeYNEnIdKhGtWW8kFZuM+GSFA= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 h1:1tJjvbVq3aMXAb4OaRkotzH1Xqu0mXrpRM/yPoDdH3w= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0/go.mod h1:m/A1yu3JBnUlq6zrWJUQZbsqdDikEacbXCGcdtYmUPs= -github.com/DataDog/datadog-agent/pkg/version v0.59.0 h1:pwCYymut9ltNcNtYXEMXEEUjEE1+GGcrQ6xibMtM2gk= -github.com/DataDog/datadog-agent/pkg/version v0.59.0/go.mod h1:rcA7LtIB5WLpxsems/bWO1iXkyGEgHHje7vJ0b20ZpU= -github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= -github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= -github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= -github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= -github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/go-sqllexer v0.0.15 h1:rUUu52dP8EQhJLnUw0MIAxZp0BQx2fOTuMztr3vtHUU= -github.com/DataDog/go-sqllexer v0.0.15/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= -github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= -github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= -github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee h1:tXibLZk3G6HncIFJKaNItsdzcrk4YqILNDZlXPTNt4k= -github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee/go.mod h1:nTot/Iy0kW16bXgXr6blEc8gFeAS7vTqYlhAxh+dbc0= -github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y= -github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= -github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= -github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 h1:KeNholpO2xKjgaaSyd+DyQRrsQjhbSeS7qe4nEw8aQw= -github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962/go.mod h1:kC29dT1vFpj7py2OvG1khBdQpo3kInWP+6QipLbdngo= -github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0 h1:oVLqHXhnYtUwM89y9T1fXGaK9wTkXHgNp8/ZNMQzUxE= -github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0/go.mod h1:dppbR7CwXD4pgtV9t3wD1812RaLDcBjtblcDF5f1vI0= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.49.0 h1:rr2d5SF7ZftByIvSRcY0O3/d1CcJqCKUa2IM4w+jDO4= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.49.0/go.mod h1:KqGde6Vb234azF979c1vjkzDltsWQuXDlwH70UViMPg= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus v0.49.0 h1:9pdyqZQ667if9lQn63Ju9yFc77iWT2TUWJ4rZjyBlV0= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus v0.49.0/go.mod h1:oeyVbfp6YKpD7Ot1Gaf86cpTRHx3dhLtnCZr+s1c/ro= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.25.0 h1:4PoDbd/9/06IpwLGxSfvfNoEr9urvfkrN6mmJangGCg= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.25.0/go.mod h1:EycllQ1gupHbjqbcmfCr/H6FKSGSmEUONJ2ivb86qeY= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0 h1:jJKWl98inONJAr/IZrdFQUWcwUO95DLY1XMD1ZIut+g= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0/go.mod h1:l2fIqmwB+FKSfvn3bAD/0i+AXAxhIZjTK2svT/mgUXs= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 h1:GYUJLfvd++4DMuMhCFLgLXvFwofIxh/qOwoGuS/LTew= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI= -github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/IBM/sarama v1.43.3 h1:Yj6L2IaNvb2mRBop39N7mmJAHBVY3dTPncr3qGVkxPA= -github.com/IBM/sarama v1.43.3/go.mod h1:FVIRaLrhK3Cla/9FfRF5X9Zua2KpS3SYIXxhac1H+FQ= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/Netflix/go-env v0.0.0-20220526054621-78278af1949d h1:wvStE9wLpws31NiWUx+38wny1msZ/tm+eL5xmm4Y7So= -github.com/Netflix/go-env v0.0.0-20220526054621-78278af1949d/go.mod h1:9XMFaCeRyW7fC9XJOWQ+NdAv8VLG7ys7l3x4ozEGLUQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/ReneKroon/ttlcache/v2 v2.11.0 h1:OvlcYFYi941SBN3v9dsDcC2N8vRxyHcCmJb3Vl4QMoM= -github.com/ReneKroon/ttlcache/v2 v2.11.0/go.mod h1:mBxvsNY+BT8qLLd6CuAJubbKo6r0jh3nb5et22bbfGY= -github.com/SAP/go-hdb v1.12.5 h1:RFvIUnbflFwD5p0kSMZF+UJ4POIInNiSNXLDbOAGvqQ= -github.com/SAP/go-hdb v1.12.5/go.mod h1:baXEfHaYh5yPBSS+N6MsENYcton1coQMx3HlNHOx8vU= -github.com/Showmax/go-fqdn v1.0.0 h1:0rG5IbmVliNT5O19Mfuvna9LL7zlHyRfsSvBPZmF9tM= -github.com/Showmax/go-fqdn v1.0.0/go.mod h1:SfrFBzmDCtCGrnHhoDjuvFnKsWjEQX/Q9ARZvOrJAko= -github.com/aerospike/aerospike-client-go/v7 v7.7.2 h1:RWoeEA4ofk+uDZuArrhmBaBKWw+J9rZLXj9cOrFQcsM= -github.com/aerospike/aerospike-client-go/v7 v7.7.2/go.mod h1:STlBtOkKT8nmp7iD+sEkr/JGEOu+4e2jGlNN0Jiu2a4= -github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= -github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/alecthomas/assert/v2 v2.3.0 h1:mAsH2wmvjsuvyBvAmCtm7zFsBlb8mIHx5ySLVdDZXL0= -github.com/alecthomas/assert/v2 v2.3.0/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= -github.com/alecthomas/participle/v2 v2.1.1 h1:hrjKESvSqGHzRb4yW1ciisFJ4p3MGYih6icjJvbsmV8= -github.com/alecthomas/participle/v2 v2.1.1/go.mod h1:Y1+hAs8DHPmc3YUFzqllV+eSQ9ljPTk0ZkPMtEdAx2c= -github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= -github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 h1:t3eaIm0rUkzbrIewtiFmMK5RXHej2XnoXNhxVsAYUfg= -github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= -github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 h1:iC9YFYKDGEy3n/FtqJnOkZsene9olVspKmkX5A2YBEo= -github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.4 h1:7Q2FEyqxeZeIkwYMwRC3uphxV4i7O2eV4ETe21d6lS4= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.4/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ= -github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50= -github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY= -github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= -github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= -github.com/alibabacloud-go/openapi-util v0.1.0 h1:0z75cIULkDrdEhkLWgi9tnLe+KhAFE/r5Pb3312/eAY= -github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= -github.com/alibabacloud-go/sts-20150401/v2 v2.0.1 h1:CevZp0VdG7Q+1J3qwNj+JL7ztKxsL27+tknbdTK9Y6M= -github.com/alibabacloud-go/sts-20150401/v2 v2.0.1/go.mod h1:8wJW1xC4mVcdRXzOvWJYfCCxmvFzZ0VB9iilVjBeWBc= -github.com/alibabacloud-go/tea v1.1.19 h1:Xroq0M+pr0mC834Djj3Fl4ZA8+GGoA0i7aWse1vmgf4= -github.com/alibabacloud-go/tea v1.1.19/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= -github.com/alibabacloud-go/tea-utils v1.3.1 h1:iWQeRzRheqCMuiF3+XkfybB3kTgUXkXX+JMrqfLeB2I= -github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE= -github.com/alibabacloud-go/tea-utils/v2 v2.0.1 h1:K6kwgo+UiYx+/kr6CO0PN5ACZDzE3nnn9d77215AkTs= -github.com/alibabacloud-go/tea-utils/v2 v2.0.1/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4= -github.com/alibabacloud-go/tea-xml v1.1.2 h1:oLxa7JUXm2EDFzMg+7oRsYc+kutgCVwm+bZlhhmvW5M= -github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= -github.com/aliyun/aliyun-log-go-sdk v0.1.83 h1:xdFXXsvhO5BedlO9EUSf/HJDHSCp6kQrwL4EKDnT/Zg= -github.com/aliyun/aliyun-log-go-sdk v0.1.83/go.mod h1:qNjBnTjQl8UeHhGmoZ7iredr2xyVBD1Ueu3JgOALR5U= -github.com/aliyun/credentials-go v1.1.2 h1:qU1vwGIBb3UJ8BwunHDRFtAhS6jnQLnde/yk0+Ih2GY= -github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= -github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/antchfx/xmlquery v1.4.2 h1:MZKd9+wblwxfQ1zd1AdrTsqVaMjMCwow3IqkCSe00KA= -github.com/antchfx/xmlquery v1.4.2/go.mod h1:QXhvf5ldTuGqhd1SHNvvtlhhdQLks4dD0awIVhXIDTA= -github.com/antchfx/xpath v1.3.2 h1:LNjzlsSjinu3bQpw9hWMY9ocB80oLOWuQqFvO6xt51U= -github.com/antchfx/xpath v1.3.2/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antonmedv/expr v1.15.5 h1:y0Iz3cEwmpRz5/r3w4qQR0MfIqJGdGM1zbhD/v0G5Vg= -github.com/antonmedv/expr v1.15.5/go.mod h1:0E/6TxnOlRNp81GMzX9QfDPAmHo2Phg00y4JUv1ihsE= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= -github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= -github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= -github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= -github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= -github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= -github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= -github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= -github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2 v1.32.4 h1:S13INUiTxgrPueTmrm5DZ+MiAo99zYzHEFh1UNkOxNE= -github.com/aws/aws-sdk-go-v2 v1.32.4/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= -github.com/aws/aws-sdk-go-v2/config v1.28.3 h1:kL5uAptPcPKaJ4q0sDUjUIdueO18Q7JDzl64GpVwdOM= -github.com/aws/aws-sdk-go-v2/config v1.28.3/go.mod h1:SPEn1KA8YbgQnwiJ/OISU4fz7+F6Fe309Jf0QTsRCl4= -github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= -github.com/aws/aws-sdk-go-v2/credentials v1.17.44 h1:qqfs5kulLUHUEXlHEZXLJkgGoF3kkUeFUTVA585cFpU= -github.com/aws/aws-sdk-go-v2/credentials v1.17.44/go.mod h1:0Lm2YJ8etJdEdw23s+q/9wTpOeo2HhNE97XcRa7T8MA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 h1:woXadbf0c7enQ2UGCi8gW/WuKmE0xIzxBF/eD94jMKQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19/go.mod h1:zminj5ucw7w0r65bP6nhyOd3xL6veAUMc3ElGMoLVb4= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 h1:A2w6m6Tmr+BNXjDsr7M90zkWjsu4JXHwrzPg235STs4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23/go.mod h1:35EVp9wyeANdujZruvHiQUAo9E3vbhnIO1mTCAxMlY0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 h1:pgYW9FCabt2M25MoHYCfMrVY2ghiiBKYWUVXfwZs+sU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23/go.mod h1:c48kLgzO19wAu3CPkDWC28JbaJ+hfQlsdl7I2+oqIbk= -github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 h1:tHxQi/XHPK0ctd/wdOw0t7Xrc2OxcRCnVzv8lwWPu0c= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4/go.mod h1:4GQbF1vJzG60poZqWatZlhP31y8PGCCVTvIGPdaaYJ0= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 h1:qlSo29NECbPML9fKL3RZ28XMQB/zw8Fvwa+POkbA08Q= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5/go.mod h1:2/lI9/4ZEq+wLGLUpbo2LLGYfFv+HGOex3Iu67k7lvU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.5 h1:Adq1dR6H8pI7pECxgc0S44HMjJcvKoUea0fUyHEFUZA= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.5/go.mod h1:GZ6a9kkJfcGPRCMGU003Gb/VsB3qAH2xeIUt/6DLYF4= -github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 h1:HJwZwRt2Z2Tdec+m+fPjvdmkq2s9Ra+VR0hjF7V2o40= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.5/go.mod h1:wrMCEwjFPms+V86TCQQeOxQF/If4vT44FGIOFiMC2ck= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 h1:zcx9LiGWZ6i6pjdcoE9oXAB6mUdeyC36Ia/QEiIvYdg= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4/go.mod h1:Tp/ly1cTjRLGBBmNccFumbZ8oqpZlpdhFf80SrRh4is= -github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 h1:yDxvkz3/uOKfxnv8YhzOi9m+2OGIxF+on3KOISbK5IU= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.4/go.mod h1:9XEUty5v5UAsMiFOBJrNibZgwCeOma73jgGwwhgffa8= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= -github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/basgys/goxml2json v1.1.0 h1:4ln5i4rseYfXNd86lGEB+Vi652IsIXIvggKM/BhUKVw= -github.com/basgys/goxml2json v1.1.0/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw= -github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= -github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= -github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= -github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= -github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/bmatcuk/doublestar/v4 v4.7.1 h1:fdDeAqgT47acgwd9bd9HxJRDmc9UAmPpc+2m0CXv75Q= -github.com/bmatcuk/doublestar/v4 v4.7.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/briandowns/spinner v1.23.0 h1:alDF2guRWqa/FOZZYWjlMIx2L6H0wyewPxo/CH4Pt2A= -github.com/briandowns/spinner v1.23.0/go.mod h1:rPG4gmXeN3wQV/TsAY4w8lPdIM6RX3yqeBQJSrbXjuE= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cihub/seelog v0.0.0-20151216151435-d2c6e5aa9fbf/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= -github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y= -github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs= -github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= -github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= -github.com/clbanning/mxj/v2 v2.5.5 h1:oT81vUeEiQQ/DcHbzSytRngP6Ky9O+L+0Bw0zSJag9E= -github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e h1:DFYA2+zpeaTPEOizAJuaee2O7YX3UP5tOMjkeXL8iLo= -github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e/go.mod h1:8wJCVaTSjT8phXCkbZWAKIB9JU8BEVHbnSbLgkr8WfY= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= -github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= -github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= -github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= -github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/containerd/ttrpc v1.2.4 h1:eQCQK4h9dxDmpOb9QOOMh2NHTfzroH1IkmHiKZi05Oo= -github.com/containerd/ttrpc v1.2.4/go.mod h1:ojvb8SJBSch0XkqNO0L0YX/5NxR3UnVk2LzFKBK0upc= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc/v3 v3.11.0 h1:Ia3MxdwpSw702YW0xgfmP1GVCMA9aEFWu12XUZ3/OtI= -github.com/coreos/go-oidc/v3 v3.11.0/go.mod h1:gE3LgjOgFoHi9a4ce4/tJczr0Ai2/BoDhf0r5lltWI0= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= -github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.5 h1:6iR5tXJ/e6tJZzzdMc1km3Sa7RRIVBKAK32O2s7AYfo= -github.com/cyphar/filepath-securejoin v0.2.5/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= -github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= -github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= -github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= -github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= -github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/digitalocean/godo v1.118.0 h1:lkzGFQmACrVCp7UqH1sAi4JK/PWwlc5aaxubgorKmC4= -github.com/digitalocean/godo v1.118.0/go.mod h1:Vk0vpCot2HOAJwc5WE8wljZGtJ3ZtWIc8MQ8rF38sdo= -github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= -github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= -github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= -github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= -github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= -github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dougm/pretty v0.0.0-20171025230240-2ee9d7453c02 h1:tR3jsKPiO/mb6ntzk/dJlHZtm37CPfVp1C9KIo534+4= -github.com/dougm/pretty v0.0.0-20171025230240-2ee9d7453c02/go.mod h1:7NQ3kWOx2cZOSjtcveTa5nqupVr2s6/83sG+rTlI7uA= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= -github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= -github.com/eapache/go-resiliency v1.7.0 h1:n3NRTnBn5N0Cbi/IeOHuQn9s2UwVUH7Ga0ZWcP+9JTA= -github.com/eapache/go-resiliency v1.7.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= -github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= -github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= -github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= -github.com/elastic/elastic-transport-go/v8 v8.6.0 h1:Y2S/FBjx1LlCv5m6pWAF2kDJAHoSjSRSJCApolgfthA= -github.com/elastic/elastic-transport-go/v8 v8.6.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= -github.com/elastic/go-docappender/v2 v2.3.0 h1:Vr+l36jM+sE/LHp0JFxSIbHlWTSk8CpBblYWZZ/I1KA= -github.com/elastic/go-docappender/v2 v2.3.0/go.mod h1:VNWgXUE9HX1G6W6ON8dOs/KdH8aCxXir/fxxcfrnov4= -github.com/elastic/go-elasticsearch/v7 v7.17.10 h1:TCQ8i4PmIJuBunvBS6bwT2ybzVFxxUhhltAs3Gyu1yo= -github.com/elastic/go-elasticsearch/v7 v7.17.10/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4= -github.com/elastic/go-elasticsearch/v8 v8.15.0 h1:IZyJhe7t7WI3NEFdcHnf6IJXqpRf+8S8QWLtZYYyBYk= -github.com/elastic/go-elasticsearch/v8 v8.15.0/go.mod h1:HCON3zj4btpqs2N1jjsAy4a/fiAul+YBP00mBH4xik8= -github.com/elastic/go-grok v0.3.1 h1:WEhUxe2KrwycMnlvMimJXvzRa7DoByJB4PVUIE1ZD/U= -github.com/elastic/go-grok v0.3.1/go.mod h1:n38ls8ZgOboZRgKcjMY8eFeZFMmcL9n2lP0iHhIDk64= -github.com/elastic/go-structform v0.0.12 h1:HXpzlAKyej8T7LobqKDThUw7BMhwV6Db24VwxNtgxCs= -github.com/elastic/go-structform v0.0.12/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4= -github.com/elastic/go-sysinfo v1.7.1 h1:Wx4DSARcKLllpKT2TnFVdSUJOsybqMYCNQZq1/wO+s0= -github.com/elastic/go-sysinfo v1.7.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= -github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= -github.com/elastic/go-windows v1.0.1 h1:AlYZOldA+UJ0/2nBuqWdo90GFCgG9xuyw9SYzGUtJm0= -github.com/elastic/go-windows v1.0.1/go.mod h1:FoVvqWSun28vaDQPbj2Elfc0JahhPB7WQEGa3c814Ss= -github.com/elastic/lunes v0.1.0 h1:amRtLPjwkWtzDF/RKzcEPMvSsSseLDLW+bnhfNSLRe4= -github.com/elastic/lunes v0.1.0/go.mod h1:xGphYIt3XdZRtyWosHQTErsQTd4OP1p9wsbVoHelrd4= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= -github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE= -github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= -github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= -github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= -github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= -github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= -github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI= -github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/frankban/quicktest v1.11.0/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= -github.com/frankban/quicktest v1.11.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= -github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= -github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= -github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= -github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= -github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= -github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= -github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= -github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= -github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= -github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= -github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= -github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= -github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= -github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= -github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= -github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= -github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= -github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= -github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= -github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= -github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg= -github.com/go-zookeeper/zk v1.0.3/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= -github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= -github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= -github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= -github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= -github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= -github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cadvisor v0.49.1-0.20240628164550-89f779d86055 h1:LH//TOiNPpCn3a48Flz5sNUmuMW5V/sTKheuXAPowUA= -github.com/google/cadvisor v0.49.1-0.20240628164550-89f779d86055/go.mod h1:koGHrZgL6RdZ29g/iXWT4kUIawssUi88XCYDlyPt5RI= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= -github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= -github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da h1:xRmpO92tb8y+Z85iUOMOicpCfaYcv7o3Cg3wKrIpg8g= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= -github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= -github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= -github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0= -github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= -github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= -github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= -github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= -github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gosnmp/gosnmp v1.38.0 h1:I5ZOMR8kb0DXAFg/88ACurnuwGwYkXWq3eLpJPHMEYc= -github.com/gosnmp/gosnmp v1.38.0/go.mod h1:FE+PEZvKrFz9afP9ii1W3cprXuVZ17ypCcyyfYuu5LY= -github.com/grafana/loki/pkg/push v0.0.0-20240514112848-a1b1eeb09583 h1:dN3eF1S5fvVu2l9WoqYSvmNmPK8Uh2vjE4yUsBq80l4= -github.com/grafana/loki/pkg/push v0.0.0-20240514112848-a1b1eeb09583/go.mod h1:lJEF/Wh5MYlmBem6tOYAFObkLsuikfrEf8Iy9AdMPiQ= -github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= -github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grobie/gomemcache v0.0.0-20230213081705-239240bbc445 h1:FlKQKUYPZ5yDCN248M3R7x8yu2E3yEZ0H7aLomE4EoE= -github.com/grobie/gomemcache v0.0.0-20230213081705-239240bbc445/go.mod h1:L69/dBlPQlWkcnU76WgcppK5e4rrxzQdi6LhLnK/ytA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= -github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= -github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/hashicorp/consul/api v1.13.0/go.mod h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ= -github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ= -github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= -github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= -github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= -github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= -github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= -github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= -github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= -github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= -github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= -github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= -github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= -github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= -github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= -github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= -github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= -github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= -github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 h1:fgVfQ4AC1avVOnu2cfms8VAiD8lUq3vWI8mTocOXN/w= -github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= -github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= -github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= -github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= -github.com/hetznercloud/hcloud-go/v2 v2.10.2 h1:9gyTUPhfNbfbS40Spgij5mV5k37bOZgt8iHKCbfGs5I= -github.com/hetznercloud/hcloud-go/v2 v2.10.2/go.mod h1:xQ+8KhIS62W0D78Dpi57jsufWh844gUw1az5OUvaeq8= -github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= -github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hjson/hjson-go/v4 v4.0.0/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E= -github.com/hooklift/gowsdl v0.5.0 h1:DE8RevqhGPLchumV/V7OwbCzfJ8lcozFg1uWC/ESCBQ= -github.com/hooklift/gowsdl v0.5.0/go.mod h1:9kRc402w9Ci/Mek5a1DNgTmU14yPY8fMumxNVvxhis4= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= -github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= -github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/influxdb-client-go/v2 v2.14.0 h1:AjbBfJuq+QoaXNcrova8smSjwJdUHnwvfjMF71M1iI4= -github.com/influxdata/influxdb-client-go/v2 v2.14.0/go.mod h1:Ahpm3QXKMJslpXl3IftVLVezreAUtBOTZssDrjZEFHI= -github.com/influxdata/influxdb-observability/common v0.5.12 h1:4YwZ+vsodz6VfoiX+ZqVotmnyCa9vCCPksSBK/WLjBs= -github.com/influxdata/influxdb-observability/common v0.5.12/go.mod h1:u+CABnGO/F1IK51pDlZQroh4+igJNo695XrbLGDBhVc= -github.com/influxdata/influxdb-observability/influx2otel v0.5.12 h1:u0lNE3+63rILk4mtmCYsNyczH/1wEXnM+1aBzBe5akk= -github.com/influxdata/influxdb-observability/influx2otel v0.5.12/go.mod h1:bM407XIJYnrJYJ9Q3q2ytDSOyFhiYmGm0Sz1Qf48RPk= -github.com/influxdata/influxdb-observability/otel2influx v0.5.12 h1:t9gmVOOHbZyEAvIYSoO97Tde1KArVtiYdM0/0Dhmuio= -github.com/influxdata/influxdb-observability/otel2influx v0.5.12/go.mod h1:YGsb8xYfjHvcr2y0+Nj7kOHMTw7fWDbAA4g/qJKkvaU= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 h1:W9WBk7wlPfJLvMCdtV4zPulc4uCPrlywQOmbFOhgQNU= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/line-protocol-corpus v0.0.0-20210519164801-ca6fa5da0184/go.mod h1:03nmhxzZ7Xk2pdG+lmMd7mHDfeVOYFyhOgwO61qWU98= -github.com/influxdata/line-protocol-corpus v0.0.0-20210922080147-aa28ccfb8937 h1:MHJNQ+p99hFATQm6ORoLmpUCF7ovjwEFshs/NHzAbig= -github.com/influxdata/line-protocol-corpus v0.0.0-20210922080147-aa28ccfb8937/go.mod h1:BKR9c0uHSmRgM/se9JhFHtTT7JTO67X23MtKMHtZcpo= -github.com/influxdata/line-protocol/v2 v2.0.0-20210312151457-c52fdecb625a/go.mod h1:6+9Xt5Sq1rWx+glMgxhcg2c0DUaehK+5TDcPZ76GypY= -github.com/influxdata/line-protocol/v2 v2.1.0/go.mod h1:QKw43hdUBg3GTk2iC3iyCxksNj7PX9aUSeYOYE/ceHY= -github.com/influxdata/line-protocol/v2 v2.2.1 h1:EAPkqJ9Km4uAxtMRgUubJyqAr6zgWM0dznKMLRauQRE= -github.com/influxdata/line-protocol/v2 v2.2.1/go.mod h1:DmB3Cnh+3oxmG6LOBIxce4oaL4CPj3OmMPgvauXh+tM= -github.com/ionos-cloud/sdk-go/v6 v6.1.11 h1:J/uRN4UWO3wCyGOeDdMKv8LWRzKu6UIkLEaes38Kzh8= -github.com/ionos-cloud/sdk-go/v6 v6.1.11/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k= -github.com/jaegertracing/jaeger v1.62.0 h1:YoaJ2e8oVz5sqGGlVAKSUCED8DzJ1q7PojBmZFNKoJA= -github.com/jaegertracing/jaeger v1.62.0/go.mod h1:jhEIHazwyb+a6xlRBi+p96BAvTYTSmGkghcwdQfV7FM= -github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= -github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= -github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= -github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= -github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= -github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= -github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= -github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= -github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh687T8= -github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= -github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= -github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= -github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= -github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= -github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= -github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= -github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= -github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= -github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs= -github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs= -github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= -github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= -github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= -github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-syslog/v4 v4.2.0 h1:A7vpbYxsO4e2E8udaurkLlxP5LDpDbmPMsGnuhb7jVk= -github.com/leodido/go-syslog/v4 v4.2.0/go.mod h1:eJ8rUfDN5OS6dOkCOBYlg2a+hbAg6pJa99QXXgMrd98= -github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b h1:11UHH39z1RhZ5dc4y4r/4koJo6IYFgTRMe/LlwRTEw0= -github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b/go.mod h1:WZxr2/6a/Ar9bMDc2rN/LJrE/hF6bXE4LPyDSIxwAfg= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= -github.com/lestrrat-go/strftime v1.1.0 h1:gMESpZy44/4pXLO/m+sL0yBd1W6LjgjrrD4a68Gapyg= -github.com/lestrrat-go/strftime v1.1.0/go.mod h1:uzeIB52CeUJenCo1syghlugshMysrqUT51HlxphXVeI= -github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= -github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= -github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= -github.com/linode/linodego v1.37.0 h1:B/2Spzv9jYXzKA+p+GD8fVCNJ7Wuw6P91ZDD9eCkkso= -github.com/linode/linodego v1.37.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= -github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= -github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= -github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= -github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/microsoft/ApplicationInsights-Go v0.4.4 h1:G4+H9WNs6ygSCe6sUyxRc2U81TI5Es90b2t/MwX5KqY= -github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= -github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= -github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= -github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0= -github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= -github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= -github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= -github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/mountinfo v0.7.1 h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g= -github.com/moby/sys/mountinfo v0.7.1/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= -github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= -github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= -github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= -github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= -github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/mongodb-forks/digest v1.1.0 h1:7eUdsR1BtqLv0mdNm4OXs6ddWvR4X2/OsLwdKksrOoc= -github.com/mongodb-forks/digest v1.1.0/go.mod h1:rb+EX8zotClD5Dj4NdgxnJXG9nwrlx3NWKJ8xttz1Dg= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= -github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mostynb/go-grpc-compression v1.2.3 h1:42/BKWMy0KEJGSdWvzqIyOZ95YcR9mLPqKctH7Uo//I= -github.com/mostynb/go-grpc-compression v1.2.3/go.mod h1:AghIxF3P57umzqM9yz795+y1Vjs47Km/Y2FE6ouQ7Lg= -github.com/mrunalp/fileutils v0.5.1 h1:F+S7ZlNKnrwHfSwdlgNSkKo67ReVf8o9fel6C3dkm/Q= -github.com/mrunalp/fileutils v0.5.1/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= -github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nginxinc/nginx-prometheus-exporter v0.11.0 h1:21xjnqNgxtni2jDgAQ90bl15uDnrTreO9sIlu1YsX/U= -github.com/nginxinc/nginx-prometheus-exporter v0.11.0/go.mod h1:GdyHnWAb8q8OW1Pssrrqbcqra0SH0Vn6UXICMmyWkw8= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oapi-codegen/runtime v1.0.0 h1:P4rqFX5fMFWqRzY9M/3YF9+aPSPPB06IzP2P7oOxrWo= -github.com/oapi-codegen/runtime v1.0.0/go.mod h1:LmCUMQuPB4M/nLXilQXhHw+BLZdDb18B34OO356yJ/A= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= -github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= -github.com/okta/okta-sdk-golang/v2 v2.20.0 h1:EDKM+uOPfihOMNwgHMdno+NAsIfyXkVnoFAYVPay0YU= -github.com/okta/okta-sdk-golang/v2 v2.20.0/go.mod h1:FMy5hN5G8Rd/VoS0XrfyPPhIfOVo78ZK7lvwiQRS2+U= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/open-telemetry/opamp-go v0.17.0 h1:3R4+B/6Sy8mknLBbzO3gqloqwTT02rCSRcr4ac2B124= -github.com/open-telemetry/opamp-go v0.17.0/go.mod h1:SGDhUoAx7uGutO4ENNMQla/tiSujxgZmMPJXIOPGBdk= -github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/aesprovider v0.114.0 h1:bs5WdcjU0X5ifmkJkgKclkR2VVYMMw2JgJK+9qYcaUk= -github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/aesprovider v0.114.0/go.mod h1:z7RswAbrwm2XaEqqLsK1+XK0xTl+dgJKqPUcEmnuyGg= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector v0.114.0 h1:LbK5eQL4QqTJdJPXFsxI/FTr91aG2MMkMwn39qMFKwM= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector v0.114.0/go.mod h1:J2l0Y0STLebfQ8JXBkewGvO93bRUZGTBHzv5Wx8V78g= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.114.0 h1:zSYFm8GJumwSgjb8uBaPTv1o+cfe/pF54VcnyWc/ZW4= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.114.0/go.mod h1:fTWNaY51QtkqbgYpfPxGWeY7az/RIAhG7jzGLKZO+A4= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.114.0 h1:l4zoWkNiK+OI3XYQBdbTfvxM1a4qUeheQAun/s/qRdY= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.114.0/go.mod h1:eV8bHwJQrvqdEvZMHSW43Wm53YBJIPH6GMXfPyJPslU= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.114.0 h1:K8v+7fA0diRRsciKiMI/vEw00GtlFdLVRbT5xCHTqUw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.114.0/go.mod h1:jJRgQ7N+ylGbRDUA7QvyrLNcP54LR41noeYce7XjUI4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.114.0 h1:bVHJdnbdwOoovsC0fM7n9qnZURMUf4uwTEgo0KNssOI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.114.0/go.mod h1:w7HXuBp1J3/9ldZ9FxOaib2daQ72oyflvWYS+ZtJq2g= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.114.0 h1:fC3g0kxytmnfZ9tLLd5aAKvb4ulM9mqfMfbDHVLUjio= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.114.0/go.mod h1:j+eM/C9BZ3DLApYSiISTrIJMkYCMvOBy8l1IxzVkckM= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter v0.114.0 h1:4fJnwXGD8m/2auv5fx7zHcUfEUiXLMbBHEKUNMzYWHM= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter v0.114.0/go.mod h1:simNLVunPFBPmZS8xUy97ZfewH3EfEBGO8SOp+oGgpo= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.114.0 h1:76yQBNfIZupoecA+42HKtLp10XPY+dljDmv7k2581yw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.114.0/go.mod h1:DM5JUIVGDaZKYe5/UQYPZQ+PZVUa1Rra1B/LaXNreEs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.114.0 h1:CT6sDcNhkBROvtAdwtLR7EgdHiAomuMhrSME84M9BOo= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.114.0/go.mod h1:0Ejk0asUvukERZlzaqvRSYiyRxmXyt6kFIQJWDVroGc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.114.0 h1:43epSX5ZNFcywIQk40Nvx1cOGjHs/qD0Tx+19k8hhnc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.114.0/go.mod h1:amKbEw6TYP2xwvHAP5ojSk/ifttD4D8cpJAa5I26QpQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.114.0 h1:U9T5QAhqfkAXPvD9+FaSN3tvdtW13xRSTo3wiurpJQY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.114.0/go.mod h1:V5YuNVlyMxP2BcjGXdqgPCxPM7gQZ9znzu5Dub/4tRI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.114.0 h1:fhsVJXQ/wd4c54pYWwNdlvcS7pHpZ4p9uwH3lqzrJT4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.114.0/go.mod h1:YZPm0NIaS09uyFxc22KraLey1ZMa58M6bG63RVe7Hyw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.114.0 h1:KlQyAdphipw0LdoM6IQAAm6YL2MTG4Cf/TOditPLymY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.114.0/go.mod h1:V4uj0hwr4FmMSZxOTyLibcwlO5ueoj0lPg8Vfz+Sdcw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 h1:K1/5bZ5EbmxHH4cfvPo/3sYrHUVnM6H86C0dVkf+6TM= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0/go.mod h1:XWnw+AWGoINC/fG4urgmiLVXDaYeqkRVLKUJMPqC3Ls= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.114.0 h1:soqzl6iVv5J3jIBRBlgGl2kuXE4saQyb+jXGS8X0HXw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.114.0/go.mod h1:eHVtkw+XqN78hAWStuM8GrS9GFYvqg0+obeTK2mH4gc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.114.0 h1:LJJCBaAp/qCIE5TkKFUCaBScE7am2hxE+fQ9pee/x0w= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.114.0/go.mod h1:FDHNY6hHNJPyDWEFBAH4Cy8qPO3EME+tVR8x9F6YYn8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0 h1:kEtShmzJ4lFVUiMpnCkpRzldRIDbAy4E+GGW3cgjWgc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.114.0/go.mod h1:ohf3DXq11cASbK7Jco0LIngXgLI0nET1RTh4tQMdCg0= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.114.0 h1:zl5F+jgOzHlqYtgC2oSgtI/As1p/dePz2NdPkBML8Ek= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.114.0/go.mod h1:8QlIkaVQ16Z1mMRsQQSIG/5bezx2nB+Cmsy7HcNFRuQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0 h1:Aqx/UrtdqbpyHNREOxutGiMxU84iJLoeR1E5gGC0W8o= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter v0.114.0/go.mod h1:ZcEzHeGqBLWyvPDq1FjPCzzqrGmGho/WU9BpRZs6l+Q= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter v0.114.0 h1:kT4Ag2siH5kSQ3FgCrr6NOm/ErRqcn0kXNzWGLvjCf4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter v0.114.0/go.mod h1:eo3DAOcIsqaYodVUi1MevgBXY569FJaAwQ0xCG0fOZQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.114.0 h1:LGIHrIgib9zNE09wizukM/84niOTwInT29/okdCSyBI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.114.0/go.mod h1:J6TYe51j1a/yihIexnP1J/w6ihJdcmvGtf1SfzCLvi0= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.114.0 h1:LHRbIvj+2DxUDnDtrLnc7NvXcU66bd20xqx16zfhgAU= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.114.0/go.mod h1:bhbgqHZQ8pgpwBxvNUCF0cUFlkkwouuvaWV92o13QF8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.114.0 h1:bZzkk5CVMUqDP7DGTr4l51tvegsx8s0RwCCseBrPNcg= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.114.0/go.mod h1:0EQwXbwSmyt7AshmZ85sUlzBX6xCUJCt4srEIiR9WQ4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.114.0 h1:HRwuJ8TIp8FtBlIJITMP6uiqrfWo36bZknH/oXpV7e0= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.114.0/go.mod h1:t8J97bzh+O0PqgsvVZEF7DGVrZGYvz98xQSkpVzaR+M= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter v0.114.0 h1:YkZmPfP8ruNxOtEekdLwLPT8xB+rEtSYtHcRKgAcG8U= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter v0.114.0/go.mod h1:0AYBzVlZwZQFW0TY8E1weKAoaIKpbFrzXR/3Iz3ajls= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.114.0 h1:fTfrAu7BBfbCzNQzfP4FXChIyMiSzVvKNjJt0LYMwjg= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.114.0/go.mod h1:g1nxzzm8MFUTr/5VxdeFpAtDjQkL6hsxzp+DEUSgDfY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 h1:93/S5dh3snAbC81fuGP7c+nn2OhgP59UTrXqmFtK1Ww= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0/go.mod h1:fyU1pLPKcXDWkUwO075jt1YOjFS/XIZXDwHEV3xy93g= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.114.0 h1:ifHYJRa+EHfoO1LdMvQ37ZdEdHvy32g+3hq5aaDpon4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.114.0/go.mod h1:/clyyfvfmwna+Y/sDfDRDRSVhynpCI+QccZHbKg8Gfw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.114.0 h1:GdaFecoJp9GoLavjriNcCV2KP/BVNvS+b3/pfYKh6Q8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.114.0/go.mod h1:RlljuogIKI3n58EZoWAdLkQVhOpaV9+4/ykfDU4VNgg= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter v0.114.0 h1:wVd51WTQCoHFnYQNJxUot4XirbiaMMQa0fJngn0MKUk= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter v0.114.0/go.mod h1:fRBG00WDJKVQChSXlZcQhkeT33F5yrec90CkPWhrpQg= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.114.0 h1:nSKttft4flnFlHQ3A9PUmWRLnb5ryJYaepKHh7o9L24= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.114.0/go.mod h1:onECInmk3wKXBl8TPYgdQI4ryv4KD5EziLT8hUetDws= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter v0.114.0 h1:1f1Iftxr0L3KqBQ+eXtndyYEu7ZfHLtCySQKggNg5Is= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter v0.114.0/go.mod h1:mI7yAI+tZnIMYsG4IKXiKkbHOEYi5a/z0kChxQ+Wsck= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.114.0 h1:WFZJtbWHJvkyExJdv2Kh9S2kNz4J0WuVXTphCar0H7M= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.114.0/go.mod h1:7RH6FdyGCuRf1q2HGH/EHbZ31LPMy8T/jNbOIWhbQ5k= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.114.0 h1:AQE+dCaE9sp9jjBebWSAJ+YPkR29Jcd9bjDfXalANMA= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.114.0/go.mod h1:7YGzhQhYffr2y0E1nrVhJ0SXO0QYPk2bADYSwgcEDEI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.114.0 h1:cgA0HUqgVJXHf1/2nq2CXp8N5bOjgwGHaHPmnRkkJXI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.114.0/go.mod h1:NGbr4blK1H54H5GfhKAZ5/nmhVRbn3scZ+ZNzYMlRm8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.114.0 h1:I6jpBR2wbwYskCumSef5CGHG5JXIyVzkKZi07ipkHlY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.114.0/go.mod h1:tY9HNnVFA9+vvEZzKlpji60IffBbVtZKktsMDcWOguc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension v0.114.0 h1:MlUqTEoLJLKITtHcdGwAGFjo6qDn28wFx5hvBpi4VVI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension v0.114.0/go.mod h1:QedixjDWgarcxaTNOjsDVhpa2WmIlnVanE3kc8bo9Wk= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.114.0 h1:E6+uPWQOHP0iK5tjwDFFqSZrXIwNnFFVidoGpXYYjS8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.114.0/go.mod h1:aR8Xvujg+zi00AmrWZYgWtJNegv6C3FTKe81ATRoHpg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.114.0 h1:95SZK/HCojIadmuis+96Q88+yL8DkMu5QorgdJBGFJc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.114.0/go.mod h1:6eXGaWN4/IVhupZd2ItQGV3E3Trjfant9xDu5w4KjSg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension v0.114.0 h1:ERSAneyQ40gBEJq8dW9UZW0Ev48t+daI4TPPUsrTnFk= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension v0.114.0/go.mod h1:d4V/vXAA6RtriuxbWGa53oz1Oo4NgldrwHNJ7PwoGkI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.114.0 h1:M9tZ4hoR2WrrhUodP9mcTAVu6oSeTY3rjKXe4f/pbKY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.114.0/go.mod h1:JNOzinv6ECTclvDmuoYM0WVql58AwS4lIhhp5CrN7Bw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0 h1:mchuc816TxLpmsGvFbtGA3KBVx91vAXi7vJnlvsQdiU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0/go.mod h1:vgCMUWPVrfjNux9P9G053fRqGFF6BS3xtxNFZZdFTCM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.114.0 h1:7x0lklnt0BFrseYOGXIz2FmyZRlOVIODFnGBf6fQAOE= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.114.0/go.mod h1:zhs5Em8N1IoUPWGVByUZJf4PxWrIddID+Hmd2TVCCns= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sumologicextension v0.114.0 h1:0Bv7jA+ylHWvxCpaxeTQYMu/qruO6meFqmYcaxxcg18= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sumologicextension v0.114.0/go.mod h1:9GjSKXmqpeKl2q3GbueDwDowXmhVX6nZItEvFX9T3/I= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.114.0 h1:5mjYxlooB40bU+l4eMYfuGJvwlB6nfKcOdzXUguxGL0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.114.0/go.mod h1:4Zi1CoSlL9KKLSDYnaOJWw4wxjVEOqosk1/U3+N+EwQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.114.0 h1:aHMAi7FBPgkfMXPiSaofvOMTmmssEevpi7t5d6fH1mQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.114.0/go.mod h1:dSvjUzw75gZj4mXfaXgyLRb4WzQZwLTFwivQE9fS6F0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.114.0 h1:1OWQMKOdlCk4Hxmc6dPI/9EomjMGJn2vcxY+2yNPm5I= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.114.0/go.mod h1:ZZIPivCO991fNls5ogHyQKJMwIDzvK0NXmAoQDeW7r4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.114.0 h1:+bdSKwgGT8VOb8SsBD2hx0AWY5RPE2ChlqPKTblZdBY= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.114.0/go.mod h1:R04nHVkSyhtJ8tn87/muWjLtcQr35t9OhBl+5xhk40s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.114.0 h1:JUJYKRY4+oWAAYZ3s3OVp+hxSSqaAkDtkwPYiWr6EJM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.114.0/go.mod h1:9Ns15l8RSbrNm4U9e5TkuGXFFrUTADqwVMwftUX2kFA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.114.0 h1:S2+wgMjZYW9PQ3hFKz9pay+Tj3rub1Soc/9P1gasfb8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.114.0/go.mod h1:PR+gk3uTXQi/fVS/q0OQoqo/pS9h2+WrAsPKDyTdgi0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.114.0 h1:gl4g8yXTN2ZJHZGnSDZ7OiTMCYNVL0eavERcBqKnrME= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.114.0/go.mod h1:ZHlpjdV2fthQCZ1yDGlCh7uYk94Q6rEhaV+VkOQMrDU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/collectd v0.114.0 h1:DLcltXJ/9c1WPB76hlM2C+Oxly74MVigiJSH9UQsovQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/collectd v0.114.0/go.mod h1:RfmArM+1IZjaEwhprlHLngQB89HZJbrgDq7Xc3fkhKA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 h1:AReCF/mzq8+1BORde9m96xAZ+nnv22/B1b+H56hlFIs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0/go.mod h1:dCQeeAQww9++hvoqQ69QzTN6SGbq3DoVs1+Z1wcKAX8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.114.0 h1:5WCUkPKZXf0MGTPlpB6iyE5bHsqnyRzZejNuYtczv7w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.114.0/go.mod h1:h0wW27GeLc4D+9eWhvZMzhC3E/86EF8BPZzU7fiJrNQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0 h1:Lgk9OkyDQQYWtfZ3DEyfQ+08NM4+dBO3fP0OQN10cXA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.114.0 h1:fOWNJU1al+oSRai8EQ9JrFzttlxAKyvNOl/XVinVIQE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.114.0/go.mod h1:UtbcqL7LGIo7hoeqHsTGa0av8+K2Isjr43V0GZ8qG2M= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.114.0 h1:7uqFlnCUbkouUj99rG4BmaFzNXMVsdCKm5FRHgceL/k= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.114.0/go.mod h1:A1/Rr4F5s7HwFrD62jCd3RQAddai+3Ubr0Opq9E2SCQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 h1:TrGpqqMJxh5fTzdu5HZORKvDiIUBK8b9K/3zUCGbjps= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0/go.mod h1:mw+aVzR/3HtuGZE5xM6zEXHFv411QG8MxI8mQFJSd5c= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 h1:2uThKlp4NoQbIm7k9ZRGCKVJjMcibffb8NLcsPslq9o= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0/go.mod h1:jSpHMXCxgNLBIfselixqXAUn0pXDfE5LEuNkz0WjK68= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sqlquery v0.114.0 h1:7NlDPAoz5Bkew0Sjxf5G6uIognntDlI7hAVobeD5/yM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sqlquery v0.114.0/go.mod h1:/2c4OSeuNB7st2P9KYxfrkUk7sLFFr6grRo4lEYdQqQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 h1:Z+WmSDshEjfNy09A7+opWO01L5LwkZC3Ze9AgfLfuAk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0/go.mod h1:p58MQDR97vRdpY8vh6JuCqjKp0W+kpo5qHmuqhd7L00= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.114.0 h1:b2g9PeNVhdBxwDYrWzwiZUccg4jeYni0bHb+4b1XAAU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.114.0/go.mod h1:iZd4CjA07OoaGHo/BYd9IfwNrGngmbdeToEougSvLKw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 h1:lvpwitQL0CDKHyExi+Wi0MPXGBjpgK5YbXljRYE6YTU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0/go.mod h1:/peNiVTNFe3osINRwW88WB0v5BC1ifjEmDL5oui+ry0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.114.0 h1:N1BAkGibLw/zgURX49Wpl0hZbCBrAZ6as2MryARctoU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.114.0/go.mod h1:1q/L2R/28emNCz0EHfxEw853I6lPxTcHTqS+UrMea0k= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 h1:Xr3Hvm9cxOSQX94tLX1yX63uvuvtglJICrOz9YcxiuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0/go.mod h1:cgIgmEg66RhVtAv4JkIhHdy70kn2EtVhrH8CtyvhfuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.114.0 h1:zAduVPMAAfK2+Poc1yxqnf5rnc5ow2FgulRLK20TQH4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.114.0/go.mod h1:AjQxsdKHLVPpBihEFYDWwBSF7zmDuy2jkqYYGIQuF+A= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azurelogs v0.114.0 h1:Y4mFp0WYpgj7ou1BbRqlVL0bTyLkrQrhLjoKcFd7UIU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azurelogs v0.114.0/go.mod h1:y/26kiJpszMDEx6HYWQnG4Q8eEY5OGu5KBBrWQGZFag= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 h1:WymtAsFHYen4GTTTXvVqZCoMz6vPADYUf4xIP0Gvm+E= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0/go.mod h1:FcTNci+LpU5x5FkHM0Su3k6/ESDHWQsL30AFISzaIyk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.114.0 h1:NwHITrgnTdALZ9L6RVwvEAwBeuZucB2FjhtkUl1dxZg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.114.0/go.mod h1:YYkXACBr2GGNWrVsA4zUM2/dRi+Z/mz4LtB7u8GYYts= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.114.0 h1:G7TfgGuzi4eS1DwsO+BkGmnGo/QjSZFvFoGyZX9hX+Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.114.0/go.mod h1:LdVhwMq8FwKz81d8Cc++jiPvCgMd2jZGebuj44Xzkks= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/signalfx v0.114.0 h1:9QIcdcCrnOzunZ2It0CYLafw2ub+atrNPpycZ0QDIYM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/signalfx v0.114.0/go.mod h1:kxMBPLrikEekWExyVKlxJphCtgD/BqjQOSwD66UURs4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 h1:xDbTY8zDUP3RKG1kg1tmULnBkLEDMwmSpf9j2H0sIcc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0/go.mod h1:t5uoTcckI8kQeW1sZl8A+1UebVJPe47Qi3WQeNZu6w4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.114.0 h1:1xAInvRymxpsuIWz/plGH98eWRhmLVgUHqleBCEeoJM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.114.0/go.mod h1:3PSKkD/USW8EXij1UTwoRwDFIl0D0V5td9U3n0YEKTo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 h1:fltPkjMuiVTtIVwoWUzbL0ad2CTCJsWfnCSDJQ9hSxU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0/go.mod h1:HcG364Is9u2EDqOUtQX0RwnbHtQqSh5+x2FdcYC+F1M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 h1:rYwgdR8GE7QEtQlkQxXq5f1JQrd3v36g4yXXljicKoM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0/go.mod h1:TjEgPVMRxi93SdN0N0qv0hx5L+FF2csgo3YwfzVGJ3g= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.114.0 h1:I+eGB36xWAv51CLhrcM+3KffHSgFPc9aYPm1Wpemb08= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.114.0/go.mod h1:CIl+EkH7+wBkS/PgTWTRnw6KzTaLhwXrXdu/6Vu/Q88= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 h1:QBR07Gaw6ePkufQ/AhHgBv4OlwzXlULTdiUnaKIlvLk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0/go.mod h1:coY0CV/sNj1hltRXKZr2gnrLvr7xUbnW+GhpCQpGR/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 h1:ap7EK1GxLHau1jKJP8tYcZDb+tEntzx2Kj97XdNb7s4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0/go.mod h1:1uyslltGfwWhG7F/t41t43dBzrZpEkFzo2hR0OmyZi4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor v0.114.0 h1:C3uaMItPUA3oLrSL/pq4LmXr3Y1aFqw6cJ+VEXGFaUA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor v0.114.0/go.mod h1:ArrWBxCF3OEfX/GFq5XUbvqdeyWt2aIGELBBllYZUJo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.114.0 h1:1JYsIadCMrYKgBWSqGXctqc5iM/qeKiecR7D4sDAXuM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.114.0/go.mod h1:SD0cvnGZGO2g7irb1jz4kGKldP83z4W7HeNAGYPRPzI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 h1:nldvWnYvTjIDi1xmZKgS2b0vz0Ja9UMV2m7ffg/HMDk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0/go.mod h1:yRuZU0Rd/twuSQFme3WiVB7x9ECgIEwDBs2mPwkqUYY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/logdedupprocessor v0.114.0 h1:++w3XLofmmT9fHlcRbNpYBwl1vP1G1Y/Cm7Xl1OmUPU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/logdedupprocessor v0.114.0/go.mod h1:VbsPp0CV1V+aB1TlS7q73wslm9w3m7/7bm+wUK3xUHw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/logstransformprocessor v0.114.0 h1:9+/Uu8xKGxVwduSQjnb+pNxiZ+Zva9nmLii9LQ8MEv0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/logstransformprocessor v0.114.0/go.mod h1:2mmccQcVf1ItxYO03VqJBzHEz1Ppg2V/rLnH8D+ObrI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.114.0 h1:C8YjwPO576rG0pb9P6ttxnhz+LYvlcAUwaJmjuYShCI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.114.0/go.mod h1:zY+AgkIaCiALvTwCy9Qfp4qtUqbdf43DgjepN50fdu4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.114.0 h1:jlXSmhmbl45a+KY0amR0579ogulEqT5KQc/n9n5IwNw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.114.0/go.mod h1:l0eKVogJhdgOKBXCiX1bdFbx+yPhBjzwXYaaoPkhox8= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 h1:ttRj/3GIpg+vUTeBI+EBeeWdNuvBT3S/ayoqpvA9B9s= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0/go.mod h1:xoJgFdZUIxlvF8eUHIYiZGmf39zAwditW3sc2SBirAo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 h1:je7Aiyn5AHAcpCNpTN5Q4l2SIeqJEvtOjoaZhHszGrs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0/go.mod h1:cVG4aXgfQFSdSfhAgoawDmmKixogjlvqQtmjmqVJgb4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 h1:AsYYMzt+ZGGQaq3S21REATxZsUI4aOuFAOPq09tSPnI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0/go.mod h1:ifqisebKudvS+YARMbFRyX8/UgdXitSfCD1JCoGOxlY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.114.0 h1:9PUQJnZQTjya0uQ5VGH4XCaNUmsE/fjL9rixGrWIeMY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.114.0/go.mod h1:fVdXYTxi/oiBolS4vYbpgFlnY5/SZ2hxSytPTZYo7LI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.114.0 h1:UcKyw/vcwMm8JHk466orRa1vUPj7aLxIVghG3t3bs8k= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.114.0/go.mod h1:qIlsYSO5sXbG2zqOfM2bgXH9fMHF74nFdwNoLTMn11s= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.114.0 h1:Ycm+JUdks1anU7b1mBQDdF0uEa53MTQ8aGdxBAgMwHI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.114.0/go.mod h1:U/5/WP6AP+w885edjAT9SMQr0vDKoB3go+ivgtHtw50= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.114.0 h1:c12IYOBWC0GRVo/VY+HaigU6Hl/gg1wuSFVcMGp6cJU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.114.0/go.mod h1:H5+gP5ZhwBS9KmMvz88SPrSlcY/cSQIUx3/GvoRuOfg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.114.0 h1:zVFQtscouEAbzksn4t+eaY84yPg8JdRUXg9g1TL+2Is= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.114.0/go.mod h1:oz6+4DsFjx7DjE0jnVTWFF5rUDOSQavxpOTrKZlHBpw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.114.0 h1:Vsa4ZzdfovEZWTlbtUQYZeY8Fe61777l0+vEcNa1LZs= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.114.0/go.mod h1:zbS5I4oZx4VdHc2GZ6M4rXWZfleNTX4Sbzl0bUgoSU8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.114.0 h1:/7yvgHosP9l3aw2pHJ3XWpBM24GNv8ATpGdO5zUpzLM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.114.0/go.mod h1:tkwZcK7kG9K+WT2sImRjtZVFJBkQEUMgDYOocS2E2jg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.114.0 h1:KrR7+3s5ZzyFyUVKFa6fjrXS7N3oB5YP0Gx+/mlTn1w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.114.0/go.mod h1:YL+9Kklj+LXvDT/Ryjz/K7HHL6aBc9h+C2Z6+r8iq7w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.114.0 h1:ZebxBy81hmTfpuPsD3MxcCUMz6CduJ0gx4YS9E+/uS4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.114.0/go.mod h1:68m6uFzc7ALPG5epUtmk+c6Od+j+wgzdPFb9dzTVuBk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.114.0 h1:4g083nKIEARRs1qKrc3ow9j6f0lUWhgVem+k/dU1BBg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.114.0/go.mod h1:+Fb4xJ6i62iAIBJA/6Mj6huw8g4PzTUjV5aLcN4XRYQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureblobreceiver v0.114.0 h1:kRTRwZvZ9tv1nWkAAFR/y0QahFo4Nm0xHRh2VnmkO9M= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureblobreceiver v0.114.0/go.mod h1:win9b1MEl5xXLQBSDnmvQCXCRloiPLDpECJC/Gb/g30= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureeventhubreceiver v0.114.0 h1:kFXs4rXSJZCNIbhHbzlAOtyMLOK+oOQQlKWY4WShlKo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureeventhubreceiver v0.114.0/go.mod h1:2JMFLeTuo+75zkpqAJDwM6MLZIbbo2SNIK2+hvQ85hY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.114.0 h1:59gQrd+U3+52ZkXxMi3seKBI3Nn0bhqm3WBSzuRvQCg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.114.0/go.mod h1:tF1c8f6v/bC41A8H3eWq8ME59F7BmFw5Pgoofiv6h/w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.114.0 h1:6od07z/mAVkkVjIpzRR3OmN5fxDXwfnh6dNLj6A/qtE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.114.0/go.mod h1:rSbnerTlEh4VQRtaxmn+b4uSywo2IaGjFUhodUmMl9E= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.114.0 h1:SU+z1Svtn+0L+07bj1ana+z5KHw++ZaxnN7REuiNT/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.114.0/go.mod h1:s0SeVQqf1x0XXJ82iVQFlq5tVb6l9mN4esvRxSkiNb0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.114.0 h1:hjU8MCwv0UUpcYCFzoZ7Pd1PXQScV4ceBGpqfb2YQbs= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.114.0/go.mod h1:6pZGreFUl29qiqp4rdFIdQgkQobqUlYK87E0b3JL8rY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.114.0 h1:935Ws7lXLbTw/OShsbGrZtzoybDl1pAgxejO3snyOeI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.114.0/go.mod h1:OlxQ4dy7xijszFc98WWaEeAQ7eb66jSoQg5TIq1TiZw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver v0.114.0 h1:Il+Dpkjj16+eQ03Ugp2gqg2QUblOFp3Bmz9SUR7yxlU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver v0.114.0/go.mod h1:dcjKFnqk5JWy/dMlXSU0nyCXv6seuZU1etKNlF3wynY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver v0.114.0 h1:/3DMmM3TyeSFqw04e3Kh66+FzSq4jFhLVVSVvXxFk6Y= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver v0.114.0/go.mod h1:pHemEwATL1zCMRjAm56t3ny8qlTd3VXzYZYANmg97RM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/elasticsearchreceiver v0.114.0 h1:rEuuGl4XZzXxM6wWZNjz2fV4MR3MmihedA//mahMb2Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/elasticsearchreceiver v0.114.0/go.mod h1:Z/bI5LI+rHrB83nF95ob6coRNLeE3KJGvqZS9dbEiAA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 h1:Ivu3DRhbERboPxMJeyJpmretbKDJ3hsOAGBQXt2yY3U= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0/go.mod h1:UrMGrA8bA1VeYhdiam7/Xu/U4joG6JftMULEVWLDbe0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/flinkmetricsreceiver v0.114.0 h1:fTWalOd4F121TyNJL+kMjIyGW1PlErZTrki8a+W29cY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/flinkmetricsreceiver v0.114.0/go.mod h1:1H7l3u0q/ngjzglhqXMfVHcFrMQmO8DaentXMZ5qkMI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 h1:Yx0RUwviLdYyozkuqbfpEhSH+ehXlKsW5TtlZbiKm4Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0/go.mod h1:Bh9h5hYTgr/zQgXUnvihkLvN1IMmVY/OFa8aHc3gMJU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.114.0 h1:J+zseMbZpKcz5MuHGXR91QbmBV+pO4GCy7OwXvarQT4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.114.0/go.mod h1:S9hW8hkPdabJsRD1QfJwPgR81wbVi8iuk1XZidhSUlg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver v0.114.0 h1:X91f2/bvGDu7thjCX49Br/MfagDPs6nbreQ3cMKZkHE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver v0.114.0/go.mod h1:Mhj4TLvlAynkRPrb0SjowLyKETFAzGWB9yiG/Osnio8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 h1:kSxkZPWBA6je7xXkpMWycjyc2BIMvLGD+OGTIRtJ0xw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0/go.mod h1:rBegsrFk6WSDU4v9TiOvH3h7xintiOhPq9qd+72SlK8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.114.0 h1:ttO0p9Kgolur1j5UPIFg+7Emt6UBDF/ecAEy6tYlekM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.114.0/go.mod h1:6HUFHSVcu+B9rIbeT9Qk2MQhoHR5/fZk/ltNbP8FmlU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/iisreceiver v0.114.0 h1:AYabw6MArMmYwXjPt/HHnouj9jPdKlSnp4N9z+ErKkE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/iisreceiver v0.114.0/go.mod h1:s5vgQbTqL+KtLCjshLIbjdvjGgJss5e1/P1sfaLkrrY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.114.0 h1:BFu699SkFXQ9vrPNhW5DYMj05zZqRpdiRf4dEX5Jjnc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.114.0/go.mod h1:4O/ebspZhJQ/SDONS3bgWALtb6wB9A5DFsb6gPrPmtM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 h1:1NeG/cgiqBMWQJxFvWQmWo9BVj3k4uOvEK0o++BFINY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0/go.mod h1:skPwfv1xYwB5onG9sj31J4OYUxx6p+wc40aogGy+nVE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver v0.114.0 h1:jcPnl7WklWnCkHwngHtQ1C6hkOHgsrfu6cNlnsOE1vA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver v0.114.0/go.mod h1:F+VHS4fJ2fSg5kmM2c/kNc6kBsaghcKA5qGwFXaEjzo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.114.0 h1:YzGjLl/07sUZHQmDZqHVOWW3xxnybhzaspVXaGbrFcU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.114.0/go.mod h1:iHzyk0RC2ZbQWoc8HBJs1lbNbKOtvMilFe0czNnmQ9E= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.114.0 h1:6E3FaEpqw43NbcDiBXbiI/Vq4BkPjj/QirsyxqmVmSY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.114.0/go.mod h1:odPbnC5fWnwgIfwroERftDfVZd/yAevnn+TrhSiOcmc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.114.0 h1:aAoOUtIqdbKrr4F2lJQgWtVMWE0Hl5XYKZfxxOGyRNo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.114.0/go.mod h1:t0nswUu66a7DO9MFl+hUvc0CaLJ8OeVnmReaCMqIGDc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver v0.114.0 h1:q9xqP6eec7NZOW1dQUsuYPUA+5W+9t+CM8E/vk5+TnI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver v0.114.0/go.mod h1:G7fh3oOSi/PytAII/lf70o4kSGlIPeGLm+7aKOluQ4A= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.114.0 h1:fphmlmbxUFEH3NtZ+HFaBA5KHJBvlo9KE6D9HOxaKAg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.114.0/go.mod h1:GEtInTw8YQm3jUCAtv35zFjOLAI2nsmTm5BRrIa4AiE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.114.0 h1:B1TPwkl6rr6QpZNEYuKUQF4jONYq3oh0+IhyliXovVc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.114.0/go.mod h1:2qsxsYtMITe+fNCED3E/aAsyy4SKGEXnuuUoLHveGpE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver v0.114.0 h1:9CAjZP+fEIsarml1QBs2dJevwU8KK5+xifZJ63scico= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver v0.114.0/go.mod h1:7ZIBXsi0BBK0GFNDwI/tEirTPmbMbQr6Frpd4h6NXfQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver v0.114.0 h1:iB/HIsJKtRqXA1nTsgxDJhvI49rJD4SSM89GRWFlKQY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver v0.114.0/go.mod h1:wTGqFXiKMj8kn8prj2Pa/RBRIksOZmuRVYytaFi3M/A= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver v0.114.0 h1:KlRAQZIPm9bNEKOAmwYIzSep5w6DZT2mSRG2Txajasg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver v0.114.0/go.mod h1:GUx79q0nwGNTY3GiHjvDwe4AG36rm+yjaanBK3A5tko= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver v0.114.0 h1:nNUbx60D0cZIQk7UyO6lAhO+fEyJk16m5RrSdKq9gsc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver v0.114.0/go.mod h1:0nrJMCirPw/ASSgvHGrVoCXnAwGKu98pPzxCoDfMg3Y= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nginxreceiver v0.114.0 h1:/hQqhk2edLKGdeHbbzf7wxYafMudHNEZB1y79HaFKfw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nginxreceiver v0.114.0/go.mod h1:pDVFU3juVdeAnV+w7PyV2GRx/j8MloF2fL39qWN8w7w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.114.0 h1:LlbC49Kg1OdxaN/asBrMwLS3ElcqBqfqIclzD2KPEBw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.114.0/go.mod h1:2neCtnHmRraWmxZa81Wkp16A8MCan6Og7Y455epn3j0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver v0.114.0 h1:qej6df4NznMTgKwTMkvV6sgLqDyJEYnFKag0NRjtgCc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver v0.114.0/go.mod h1:d5iQcvP0JPLjKcK9qX7yYrcco4jEeP0ZbJBdPlbMoZU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver v0.114.0 h1:7+uZlSbv/HtyTRE7mxIHpWXSg2bBoWP6tjb6TVKQWj8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver v0.114.0/go.mod h1:AGsy8wG8Ejwg6wno2B/UBwAljoVWWd66OV5UtVorKvI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/rabbitmqreceiver v0.114.0 h1:Ab/c0G31LfRgJXtfJVjA3YbHui4C7AAkKoq615F1oDU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/rabbitmqreceiver v0.114.0/go.mod h1:scezioItubYffeToSQwar9829/ptcTttEazrFO4xV+k= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.114.0 h1:a+DQJacInAKBgcx/O3JPvd/35AzVrbeqpjSS6yPFm9E= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.114.0/go.mod h1:1MeZPG81C99JotrAua85eK/54sZmy5XLRhRSlT0r1qk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver v0.114.0 h1:QxbTeZ/uPmYXUXY1HovUogWNCuWXcpAVDW27+NtJQcM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver v0.114.0/go.mod h1:zpKGMily5v7nn5fO0GFlU6kz2uSXp2ILXFo1n4n7zVU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/saphanareceiver v0.114.0 h1:DM8yrNXJsYPI+eh/FLQi+yUrbbLObbrvWkUKFTOi/lg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/saphanareceiver v0.114.0/go.mod h1:PoDM9XzOO0M2xRUHvkWspVUWIVvhNrnt6unO9EwmzZA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver v0.114.0 h1:qgf4ZgQXS2xiaJ+2dpXWCM6mEq0TBRhFVQMZ7ZnuVq0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver v0.114.0/go.mod h1:cv81uJ0LwdPR+S6pTaZ/WpmPPHOQIWjlKZLQmqyk8JU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.114.0 h1:o9V5AJwyBWc+k9rS9ka2sn9cC0dRs5AZVx2TmlUadsU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.114.0/go.mod h1:T0ozxAAHvJvoOXBWvqL1XzFQEJbZ2GQEkmOg4alhW/c= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snmpreceiver v0.114.0 h1:n5apRVXAS97PCqe2Q1W3d5zoitQf5bY4fPCODkgjiy4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snmpreceiver v0.114.0/go.mod h1:qtziy3KPWutc4SvM1/nlbcFCw2vRySIz8HFYVE6dQ+w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.114.0 h1:lAwrFCp3BKhFtTfFOrJaxtMIOqkwUClnuCbULHzPjrQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.114.0/go.mod h1:rDWCrvw7l47gJqebFu9Id1YMg8ERDbwu+yBaWqnEjZU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlqueryreceiver v0.114.0 h1:ZAjw0uW+Eerqa1i1Du84aInuLFK7a2l4oEqFmRp/gy0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlqueryreceiver v0.114.0/go.mod h1:qQBX+T9fZNXXOapmkNDSumfHwVpiwORtkfChKFXgQmI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlserverreceiver v0.114.0 h1:RCfJrvwvUDwD98shriIo4dAZeieCF7J/decMHmESBsk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlserverreceiver v0.114.0/go.mod h1:5Kk15bmSOP6w+nbc08jb7wGsr5NFblEuhLtmWszGuiA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver v0.114.0 h1:NXqFHbSkLzVrDUcQ8S3j6MB2G1asfvSPWyXp3LSNEUE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver v0.114.0/go.mod h1:wX5x1FvOQfJSFHUIbW48jilU+0+DNmFpAKlZNdgEgxY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.114.0 h1:chiIs7XGNSoptd0VgVR912NFogB8srpuVzgeVM9xW0w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.114.0/go.mod h1:cHIBJ01AgmkTUN2FgXz9NU8LbnLGUR2uxssCdiqwV4w= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.114.0 h1:C1487YIMVBuJ8ixBLChyIl8VHlF8Ir6l2hfeYNNPPLM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.114.0/go.mod h1:+SvBS7Xu+pI67e5outljqWDMt+bIu9B6XON0nM4PIhY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.114.0 h1:0CQZEdssi/D9DCWJI5CoUwllkQ+fQqdLWgiVJMRaQPU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.114.0/go.mod h1:pn5oaZ+HN+tAyo+f73xFtTWdpwaYc39uAtonyS/F40o= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.114.0 h1:7ilnGkIi5GwxfYoxZitdFbwOfgSS1DB3VQdgU5H04kA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.114.0/go.mod h1:niAUifYAhWUzVmtWkjXsUxZlyKv03/5Vfl5RZMsA+hs= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/webhookeventreceiver v0.114.0 h1:qdC6Y1C/K58w/L9CtnXJ0ht3vC0vhLeJ6dXSoOiZgbk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/webhookeventreceiver v0.114.0/go.mod h1:IBKKdwlPmvWunuvLMrqKfdXBVwWD7OEAU27jdiqkI58= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.114.0 h1:R5t8sohggPEkCyZlvhglxJ5wVPO8CKgNwMJNgkt1MxI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.114.0/go.mod h1:oauhK1VkGGMfBVlvl8fU9SNNqSTHyfHx6lJjsk0muJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver v0.114.0 h1:0m+qlonJB05pshVQ35rNiU9BeIHq6QUFKPaAKDr1vFY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver v0.114.0/go.mod h1:4pJ7qwKyq+U0hYdVzISBn3rUVH83RyUHo/XCG9Pu5Zo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 h1:E686MeQcQ+a3Q47A/xAc3Nk6Qdz8wHcBLMJ3Y8bNKi0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0/go.mod h1:zkQAapuNRobj7GY8kKRal+2EYkAMWmZ1KMysUrQI48A= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver v0.114.0 h1:/Au0yCRICeQHqhG3PUSXcnMzQLYH56STYzie8UpXRuM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver v0.114.0/go.mod h1:mwToCOg/PRijjYCymmHy0tKgajX8lZy8aAYjrsSWq6w= -github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runc v1.1.14 h1:rgSuzbmgz5DUJjeSnw337TxDbRuqjs6iqQck/2weR6w= -github.com/opencontainers/runc v1.1.14/go.mod h1:E4C2z+7BxR7GHXp0hAY53mek+x49X1LjPNeMTfRGvOA= -github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= -github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= -github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/openshift/api v0.0.0-20180801171038-322a19404e37 h1:05irGU4HK4IauGGDbsk+ZHrm1wOzMLYjMlfaiqMrBYc= -github.com/openshift/api v0.0.0-20180801171038-322a19404e37/go.mod h1:dh9o4Fs58gpFXGSYfnVxGR9PnV53I8TW84pQaJDdGiY= -github.com/openshift/api v0.0.0-20210521075222-e273a339932a/go.mod h1:izBmoXbUu3z5kUa4FjZhvekTsyzIWiOoaIgJiZBBMQs= -github.com/openshift/build-machinery-go v0.0.0-20210423112049-9415d7ebd33e/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 h1:ZHRIMCFIJN1p9LsJt4HQ+akDrys4PrYnXzOWI5LK03I= -github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142/go.mod h1:fjS8r9mqDVsPb5td3NehsNOAWa4uiFkYEfVZioQ2gH0= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg= -github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c= -github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= -github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= -github.com/ovh/go-ovh v1.6.0 h1:ixLOwxQdzYDx296sXcgS35TOPEahJkpjMGtzPadCjQI= -github.com/ovh/go-ovh v1.6.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= -github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= -github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= -github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= -github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= -github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= -github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= -github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus-community/windows_exporter v0.27.2 h1:/tdRTouPMVsC4qt8+s9NOPEm7L/9qdDxmasiETlx+Wk= -github.com/prometheus-community/windows_exporter v0.27.2/go.mod h1:8+T6hfv71nvgVIzguouXkIGoa15ni+uXHHULBOA2bZo= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= -github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= -github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= -github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= -github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= -github.com/relvacode/iso8601 v1.5.0 h1:hM+cirGvOz6gKuUEqimr5TH3tiQiVOuc2QIO+nI5fY4= -github.com/relvacode/iso8601 v1.5.0/go.mod h1:FlNp+jz+TXpyRqgmM7tnzHHzBnz776kmAH2h3sZCn0I= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= -github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 h1:BkTk4gynLjguayxrYxZoMZjBnAOh7ntQvUkOFmkMqPU= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= -github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= -github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/shirou/gopsutil/v3 v3.22.12/go.mod h1:Xd7P1kwZcp5VW52+9XsirIKd/BROzbb2wdX3Kqlz9uI= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= -github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= -github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3 h1:32k2QLgsKhcEs55q4REPKyIadvid5FPy2+VMgvbmKJ0= -github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3/go.mod h1:gJrXWi7wSGXfiC7+VheQaz+ypdCt5SmZNL+BRxUe7y4= -github.com/signalfx/sapm-proto v0.16.0 h1:E8W+awZBl3nmpDTdbPK8Uwla9FdSCWpZChR3p+7bzw0= -github.com/signalfx/sapm-proto v0.16.0/go.mod h1:7VTAIoYIgkAK+j6w3l4Aici+EYySGAmXCK0rfD2OZkU= -github.com/sijms/go-ora/v2 v2.8.22 h1:3ABgRzVKxS439cEgSLjFKutIwOyhnyi4oOSBywEdOlU= -github.com/sijms/go-ora/v2 v2.8.22/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/snowflakedb/gosnowflake v1.12.0 h1:Saez8egtn5xAoVMBxFaMu9MYfAG9SS9dpAEXD1/ECIo= -github.com/snowflakedb/gosnowflake v1.12.0/go.mod h1:wHfYmZi3zvtWItojesAhWWXBN7+niex2R1h/S7QCZYg= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= -github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/stormcat24/protodep v0.1.8 h1:FOycjjkjZiastf21aRoCjtoVdhsoBE8mZ0RvY6AHqFE= -github.com/stormcat24/protodep v0.1.8/go.mod h1:6OoSZD5GGomKfmH1LvfJxNIRvYhewFXH5+eNv8h4wOM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= -github.com/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= -github.com/testcontainers/testcontainers-go v0.34.0/go.mod h1:6P/kMkQe8yqPHfPWNulFGdFHTD8HB2vLq/231xY2iPQ= -github.com/tg123/go-htpasswd v1.2.3 h1:ALR6ZBIc2m9u70m+eAWUFt5p43ISbIvAvRFYzZPTOY8= -github.com/tg123/go-htpasswd v1.2.3/go.mod h1:FcIrK0J+6zptgVwK1JDlqyajW/1B4PtuJ/FLWl7nx8A= -github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= -github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= -github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= -github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= -github.com/tidwall/tinylru v1.2.1 h1:VgBr72c2IEr+V+pCdkPZUwiQ0KJknnWIYbhxAVkYfQk= -github.com/tidwall/tinylru v1.2.1/go.mod h1:9bQnEduwB6inr2Y7AkBP7JPgCkyrhTV/ZpX0oOOpBI4= -github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= -github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= -github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= -github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= -github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= -github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk= -github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM= -github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= -github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 h1:SIKIoA4e/5Y9ZOl0DCe3eVMLPOQzJxgZpfdHHeauNTM= -github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6/go.mod h1:BUbeWZiieNxAuuADTBNb3/aeje6on3DhU3rpWsQSB1E= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= -github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= -github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/vmware/govmomi v0.46.0 h1:vKrY5gG8Udz5HGlBYMrmRy03j9Rey+g5q8S3dQIjOyc= -github.com/vmware/govmomi v0.46.0/go.mod h1:uoLVU9zlXC4p4GmLVG+ZJmBC0Gn3Q7mytOJvi39OhxA= -github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= -github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= -github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= -github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= -github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= -github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= -github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= -github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -github.com/zorkian/go-datadog-api v2.30.0+incompatible h1:R4ryGocppDqZZbnNc5EDR8xGWF/z/MxzWnqTUijDQes= -github.com/zorkian/go-datadog-api v2.30.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB9ZwAD45N1uhCW4MT/Wj7m36PbKss= -go.einride.tech/aip v0.68.0 h1:4seM66oLzTpz50u4K1zlJyOXQ3tCzcJN7I22tKkjipw= -go.einride.tech/aip v0.68.0/go.mod h1:7y9FF8VtPWqpxuAxl0KQWqaULxW4zFIesD6zF5RIHHg= -go.elastic.co/apm/module/apmelasticsearch/v2 v2.6.0 h1:ukMcwyMaDXsS1dRK2qRYXT2AsfwaUy74TOOYCqkWJow= -go.elastic.co/apm/module/apmelasticsearch/v2 v2.6.0/go.mod h1:YpfiTTrqX5LB/CKBwX89oDCBAxuLJTFv40gcfxJyehM= -go.elastic.co/apm/module/apmhttp/v2 v2.6.0 h1:s8UeNFQmVBCNd4eoz7KDD9rEFhQC0HeUFXz3z9gpAmQ= -go.elastic.co/apm/module/apmhttp/v2 v2.6.0/go.mod h1:D0GLppLuI0Ddwvtl595GUxRgn6Z8L5KaDFVMv2H3GK0= -go.elastic.co/apm/module/apmzap/v2 v2.6.0 h1:R/iVORzGu3F9uM43iEVHD0nwiRo59O0bIXdayKsgayQ= -go.elastic.co/apm/module/apmzap/v2 v2.6.0/go.mod h1:B3i/8xRkqLgi6zNuV+Bp7Pt4cutaOObvrVSa7wUTAPw= -go.elastic.co/apm/v2 v2.6.0 h1:VieBMLQFtXua2YxpYxaSdYGnmmxhLT46gosI5yErJgY= -go.elastic.co/apm/v2 v2.6.0/go.mod h1:33rOXgtHwbgZcDgi6I/GtCSMZQqgxkHC0IQT3gudKvo= -go.elastic.co/fastjson v1.3.0 h1:hJO3OsYIhiqiT4Fgu0ZxAECnKASbwgiS+LMW5oCopKs= -go.elastic.co/fastjson v1.3.0/go.mod h1:K9vDh7O0ODsVKV2B5e2XYLY277QZaCbB3tS1SnARvko= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= -go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= -go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= -go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= -go.mongodb.org/atlas v0.37.0 h1:zQnO1o5+bVP9IotpAYpres4UjMD2F4nwNEFTZhNL4ck= -go.mongodb.org/atlas v0.37.0/go.mod h1:DJYtM+vsEpPEMSkQzJnFHrT0sP7ev6cseZc/GGjJYG8= -go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.mongodb.org/mongo-driver v1.17.1 h1:Wic5cJIwJgSpBhe3lx3+/RybR5PiYRMpVFgO7cOHyIM= -go.mongodb.org/mongo-driver v1.17.1/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= -go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= -go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/connector/forwardconnector v0.114.0 h1:1hIVJ5H8R03ODLwmb0nUNkT6xwzyFqFTsJBaQ2draBU= -go.opentelemetry.io/collector/connector/forwardconnector v0.114.0/go.mod h1:6A3hnsPgP7wdodJqLI9gccJ2ABlqic4I1+IunADBroU= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 h1:uMtQQjkAK62tzy2Rs/KCgRofNW7uo0EgU5xn3xmgB2w= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0/go.mod h1:jV9/E7Twphys1df6m7HgvqgJXpmppxFJb/DYy3XLR94= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE+87XROW2b5oU= -go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 h1:UpKQ/GtWw7Mh/PjR03NdgR9PG7uT7mnfbQVxpDQVBgk= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0/go.mod h1:QUZr3bBguTmgLJUFuqVVsOxKr7Y/2JO49k3I1tUH88U= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 h1:gfzShbdzhbA2lsRSx2z9i9QO/FJwAzOSrBW2ObPqf38= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0/go.mod h1:leElNJO5dnpOg0o1Gr2Ok59HKADRznbrZ3u2oTfx50Q= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 h1:/CQJ0UQRStwBQnM4Z9lTr6D4IqEKH1iuUWVr21fP4To= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0/go.mod h1:HD2uDr7TIWQ+TsXBLmrHu396EeClj7YNoNzoWJw4jrY= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= -go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= -go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= -go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= -go.opentelemetry.io/contrib/config v0.10.0/go.mod h1:aND2M6/KfNkntI5cyvHriR/zvZgPf8j9yETdSmvpfmc= -go.opentelemetry.io/contrib/detectors/gcp v1.31.0 h1:G1JQOreVrfhRkner+l4mrGxmfqYCAuy76asTDAo0xsA= -go.opentelemetry.io/contrib/detectors/gcp v1.31.0/go.mod h1:tzQL6E1l+iV44YFTkcAeNQqzXUiekSYP9jjJjXwEd00= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= -go.opentelemetry.io/contrib/propagators/b3 v1.31.0 h1:PQPXYscmwbCp76QDvO4hMngF2j8Bx/OTV86laEl8uqo= -go.opentelemetry.io/contrib/propagators/b3 v1.31.0/go.mod h1:jbqfV8wDdqSDrAYxVpXQnpM0XFMq2FtDesblJ7blOwQ= -go.opentelemetry.io/contrib/zpages v0.56.0 h1:W7vP6s3juzL5KiHpr41zLNmsJ0QAZudYu8ay0zGAoko= -go.opentelemetry.io/contrib/zpages v0.56.0/go.mod h1:IxPRP4TYHw9jLeaEOSDIiA9zmyJNZNO6sbW55iMvSXs= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= -go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/log v0.7.0 h1:dXkeI2S0MLc5g0/AwxTZv6EUEjctiH8aG14Am56NTmQ= -go.opentelemetry.io/otel/sdk/log v0.7.0/go.mod h1:oIRXpW+WD6M8BuGj5rtS0aRu/86cbDV/dAfNaZBIjYM= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= -go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 h1:1wqE9dj9NpSm04INVsJhhEUzhuDVjbcyKH91sVyPATw= -golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210112230658-8b4aab62c064/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 h1:LLhsEBxRTBLuKlQxFBYUOU8xyFgXv6cOTp2HASDlsDk= -golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= -gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= -gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= -google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= -google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= -google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= -google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= -google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= -google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= -google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.209.0 h1:Ja2OXNlyRlWCWu8o+GgI4yUn/wz9h/5ZfFbKz+dQX+w= -google.golang.org/api v0.209.0/go.mod h1:I53S168Yr/PNDNMi5yPnDc0/LGRZO6o7PoEbl/HY3CM= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= -google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= -google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= -google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= -google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= -google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw= -google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= -google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 h1:hUfOButuEtpc0UvYiaYRbNwxVYr0mQQOWq6X8beJ9Gc= -google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3/go.mod h1:jzYlkSMbKypzuu6xoAEijsNVo9ZeDF1u/zCfFgsx7jg= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= -gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 h1:umQdVO0Ytx+kYadhuJNjFtDgIsIEBnKrOTvNuu8ClKI= -gopkg.in/zorkian/go-datadog-api.v2 v2.30.0/go.mod h1:kx0CSMRpzEZfx/nFH62GLU4stZjparh/BRpM89t4XCQ= -gotest.tools/v3 v3.2.0 h1:I0DwBVMGAx26dttAj1BtJLAkVGncrkkUXfJLC4Flt/I= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= -howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= -k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= -k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= -k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/kubelet v0.31.2 h1:6Hytyw4LqWqhgzoi7sPfpDGClu2UfxmPmaiXPC4FRgI= -k8s.io/kubelet v0.31.2/go.mod h1:0E4++3cMWi2cJxOwuaQP3eMBa7PSOvAFgkTPlVc/2FA= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= -modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= -modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.19.1 h1:Son+Q40+Be3QWb+niBXAg2vFiYWolDjjRfO8hn/cxOk= -sigs.k8s.io/controller-runtime v0.19.1/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/counter/counter.go b/internal/counter/counter.go similarity index 100% rename from counter/counter.go rename to internal/counter/counter.go diff --git a/counter/counter_test.go b/internal/counter/counter_test.go similarity index 100% rename from counter/counter_test.go rename to internal/counter/counter_test.go diff --git a/counter/go.mod b/internal/counter/go.mod similarity index 77% rename from counter/go.mod rename to internal/counter/go.mod index b9b1ccf6c..3ecb2463b 100644 --- a/counter/go.mod +++ b/internal/counter/go.mod @@ -1,4 +1,4 @@ -module github.com/observiq/bindplane-agent/counter +module github.com/observiq/bindplane-agent/internal/counter go 1.22.7 diff --git a/counter/go.sum b/internal/counter/go.sum similarity index 100% rename from counter/go.sum rename to internal/counter/go.sum diff --git a/expr/datapoint.go b/internal/expr/datapoint.go similarity index 100% rename from expr/datapoint.go rename to internal/expr/datapoint.go diff --git a/expr/datapoint_test.go b/internal/expr/datapoint_test.go similarity index 100% rename from expr/datapoint_test.go rename to internal/expr/datapoint_test.go diff --git a/expr/expression.go b/internal/expr/expression.go similarity index 100% rename from expr/expression.go rename to internal/expr/expression.go diff --git a/expr/expression_test.go b/internal/expr/expression_test.go similarity index 100% rename from expr/expression_test.go rename to internal/expr/expression_test.go diff --git a/expr/go.mod b/internal/expr/go.mod similarity index 97% rename from expr/go.mod rename to internal/expr/go.mod index 083b48fde..0c19e1de8 100644 --- a/expr/go.mod +++ b/internal/expr/go.mod @@ -1,4 +1,4 @@ -module github.com/observiq/bindplane-agent/expr +module github.com/observiq/bindplane-agent/internal/expr go 1.22.7 diff --git a/expr/go.sum b/internal/expr/go.sum similarity index 100% rename from expr/go.sum rename to internal/expr/go.sum diff --git a/expr/map.go b/internal/expr/map.go similarity index 100% rename from expr/map.go rename to internal/expr/map.go diff --git a/expr/map_test.go b/internal/expr/map_test.go similarity index 100% rename from expr/map_test.go rename to internal/expr/map_test.go diff --git a/expr/ottl.go b/internal/expr/ottl.go similarity index 100% rename from expr/ottl.go rename to internal/expr/ottl.go diff --git a/expr/ottl_condition.go b/internal/expr/ottl_condition.go similarity index 100% rename from expr/ottl_condition.go rename to internal/expr/ottl_condition.go diff --git a/expr/ottl_condition_test.go b/internal/expr/ottl_condition_test.go similarity index 100% rename from expr/ottl_condition_test.go rename to internal/expr/ottl_condition_test.go diff --git a/expr/ottl_expression.go b/internal/expr/ottl_expression.go similarity index 100% rename from expr/ottl_expression.go rename to internal/expr/ottl_expression.go diff --git a/expr/ottl_expression_test.go b/internal/expr/ottl_expression_test.go similarity index 100% rename from expr/ottl_expression_test.go rename to internal/expr/ottl_expression_test.go diff --git a/expr/ottl_map.go b/internal/expr/ottl_map.go similarity index 100% rename from expr/ottl_map.go rename to internal/expr/ottl_map.go diff --git a/expr/ottl_map_test.go b/internal/expr/ottl_map_test.go similarity index 100% rename from expr/ottl_map_test.go rename to internal/expr/ottl_map_test.go diff --git a/expr/record.go b/internal/expr/record.go similarity index 100% rename from expr/record.go rename to internal/expr/record.go diff --git a/expr/record_test.go b/internal/expr/record_test.go similarity index 100% rename from expr/record_test.go rename to internal/expr/record_test.go diff --git a/expr/span.go b/internal/expr/span.go similarity index 100% rename from expr/span.go rename to internal/expr/span.go diff --git a/expr/span_test.go b/internal/expr/span_test.go similarity index 100% rename from expr/span_test.go rename to internal/expr/span_test.go diff --git a/internal/logging/config.go b/internal/logging/config.go deleted file mode 100644 index f14c3cc0a..000000000 --- a/internal/logging/config.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package logging parses and applies logging configuration -package logging - -import ( - "errors" - "fmt" - "os" - "path/filepath" - - "go.uber.org/zap" - "go.uber.org/zap/zapcore" - "gopkg.in/natefinch/lumberjack.v2" - "gopkg.in/yaml.v3" -) - -// DefaultConfigPath is the relative path to the default logging.yaml -const DefaultConfigPath = "./logging.yaml" - -const ( - // fileOutput is an output option for logging to a file. - fileOutput string = "file" - - // stdOutput is an output option for logging to stdout. - stdOutput string = "stdout" -) - -// LoggerConfig is the configuration of a logger. -type LoggerConfig struct { - Output string `yaml:"output"` - Level zapcore.Level `yaml:"level"` - File *lumberjack.Logger `yaml:"file,omitempty"` -} - -// NewLoggerConfig returns a logger config. -// If configPath is not set, stdout logging will be enabled, and a default -// configuration will be written to ./logging.yaml -func NewLoggerConfig(configPath string) (*LoggerConfig, error) { - // No logger path specified, we'll assume the default path. - if configPath == DefaultConfigPath { - // If the file doesn't exist, we will create the config with the default parameters. - if _, err := os.Stat(DefaultConfigPath); errors.Is(err, os.ErrNotExist) { - defaultConf := defaultConfig() - if err := writeConfig(defaultConf, DefaultConfigPath); err != nil { - return nil, fmt.Errorf("failed to write default configuration: %w", err) - } - return defaultConf, nil - } else if err != nil { - return nil, fmt.Errorf("failed to stat config: %w", err) - } - // The config already exists; We should continue and read it like any other config. - } - - cleanPath := filepath.Clean(configPath) - - // conf will start as the default config; any unspecified values in the config - // will default to the values in the default config. - conf := defaultConfig() - - confBytes, err := os.ReadFile(cleanPath) - if err != nil { - return nil, fmt.Errorf("failed to read config: %w", err) - } - - if err := yaml.Unmarshal(confBytes, conf); err != nil { - return nil, fmt.Errorf("failed to unmarshal config: %w", err) - } - - if conf.File != nil { - // Expand optional environment variables in file path - conf.File.Filename = os.ExpandEnv(conf.File.Filename) - } - - return conf, nil -} - -// Options returns the LoggerConfig's zap logging options. -func (l *LoggerConfig) Options() ([]zap.Option, error) { - core, err := l.core() - if err != nil { - return nil, err - } - - opt := zap.WrapCore(func(_ zapcore.Core) zapcore.Core { - return core - }) - - return []zap.Option{opt}, nil -} - -// core returns the logging core specified in the config. -// An unknown output will return a nop core. -func (l *LoggerConfig) core() (zapcore.Core, error) { - switch l.Output { - case fileOutput: - return zapcore.NewCore(newEncoder(), zapcore.AddSync(l.File), l.Level), nil - case stdOutput: - return zapcore.NewCore(newEncoder(), zapcore.Lock(os.Stdout), l.Level), nil - default: - return nil, fmt.Errorf("unrecognized output type: %s", l.Output) - } -} - -func newEncoder() zapcore.Encoder { - encoderConfig := zap.NewProductionEncoderConfig() - encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder - return zapcore.NewJSONEncoder(encoderConfig) -} - -// defaultConfig returns a new instance of the default logging configuration -func defaultConfig() *LoggerConfig { - return &LoggerConfig{ - Output: stdOutput, - Level: zap.InfoLevel, - } -} - -// writeConfig writes the given configuration to the specified location. -func writeConfig(config *LoggerConfig, outLocation string) error { - configBytes, err := yaml.Marshal(config) - if err != nil { - return fmt.Errorf("failed to marshal: %w", err) - } - - if err = os.WriteFile(outLocation, configBytes, 0600); err != nil { - return fmt.Errorf("failed to write config file: %w", err) - } - - return nil -} diff --git a/internal/logging/config_test.go b/internal/logging/config_test.go deleted file mode 100644 index 78b45f90c..000000000 --- a/internal/logging/config_test.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package logging - -import ( - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" - "go.uber.org/zap/zapcore" - "gopkg.in/natefinch/lumberjack.v2" -) - -func TestNewLoggerConfig(t *testing.T) { - t.Setenv("MYVAR", "/some/path") - - cases := []struct { - name string - configPath string - expect *LoggerConfig - expectedErr string - }{ - { - name: "file config", - configPath: filepath.Join("testdata", "info.yaml"), - expect: &LoggerConfig{ - Output: fileOutput, - Level: zapcore.InfoLevel, - File: &lumberjack.Logger{ - Filename: "log/collector.log", - MaxBackups: 5, - MaxSize: 1, - MaxAge: 7, - }, - }, - }, - { - name: "stdout config", - configPath: filepath.Join("testdata", "stdout.yaml"), - expect: &LoggerConfig{ - Output: stdOutput, - Level: zapcore.DebugLevel, - }, - }, - { - name: "config with environment variables in filename", - configPath: filepath.Join("testdata", "expand-env.yaml"), - expect: &LoggerConfig{ - Output: fileOutput, - Level: zapcore.InfoLevel, - File: &lumberjack.Logger{ - Filename: "/some/path/collector.log", - MaxBackups: 5, - MaxSize: 1, - MaxAge: 7, - }, - }, - }, - { - name: "config does not exist", - configPath: filepath.Join("testdata", "does-not-exist.yaml"), - expectedErr: "failed to read config", - }, - { - name: "config exists but is not valid yaml", - configPath: filepath.Join("testdata", "not-yaml.txt"), - expectedErr: "failed to unmarshal config", - }, - } - - for _, tc := range cases { - t.Run(tc.name, func(t *testing.T) { - conf, err := NewLoggerConfig(tc.configPath) - if tc.expectedErr != "" { - require.Error(t, err) - require.ErrorContains(t, err, tc.expectedErr) - return - } - - require.NoError(t, err) - require.Equal(t, tc.expect, conf) - - opts, err := conf.Options() - require.NoError(t, err) - require.NotNil(t, opts) - require.Len(t, opts, 1) - - }) - } -} - -func TestNewLoggerConfigDefaultPath(t *testing.T) { - t.Run("config does not exist in default location", func(t *testing.T) { - tempDir := t.TempDir() - chDir(t, tempDir) - - require.NoFileExists(t, DefaultConfigPath) - - conf, err := NewLoggerConfig(DefaultConfigPath) - require.NoError(t, err) - require.Equal(t, defaultConfig(), conf) - - require.FileExists(t, DefaultConfigPath) - - // Calling again with the existing config should give the same result - conf, err = NewLoggerConfig(DefaultConfigPath) - require.NoError(t, err) - require.Equal(t, defaultConfig(), conf) - }) - - t.Run("config exists in the default location", func(t *testing.T) { - tempDir := t.TempDir() - - testYaml, err := filepath.Abs(filepath.Join("testdata", "info.yaml")) - require.NoError(t, err) - - testYamlBytes, err := os.ReadFile(testYaml) - require.NoError(t, err) - - chDir(t, tempDir) - - err = os.WriteFile(DefaultConfigPath, testYamlBytes, 0600) - require.NoError(t, err) - - conf, err := NewLoggerConfig(DefaultConfigPath) - require.NoError(t, err) - require.Equal(t, &LoggerConfig{ - Output: fileOutput, - Level: zapcore.InfoLevel, - File: &lumberjack.Logger{ - Filename: "log/collector.log", - MaxBackups: 5, - MaxSize: 1, - MaxAge: 7, - }, - }, conf) - }) - -} - -func chDir(t *testing.T, dir string) { - t.Helper() - - oldWd, err := os.Getwd() - require.NoError(t, err) - - err = os.Chdir(dir) - require.NoError(t, err) - - t.Cleanup(func() { - err = os.Chdir(oldWd) - require.NoError(t, err) - }) -} diff --git a/internal/logging/testdata/expand-env.yaml b/internal/logging/testdata/expand-env.yaml deleted file mode 100644 index b63d9ba25..000000000 --- a/internal/logging/testdata/expand-env.yaml +++ /dev/null @@ -1,7 +0,0 @@ -output: file -level: info -file: - filename: "$MYVAR/collector.log" - maxbackups: 5 - maxsize: 1 - maxage: 7 diff --git a/internal/logging/testdata/info.yaml b/internal/logging/testdata/info.yaml deleted file mode 100644 index f53f0c706..000000000 --- a/internal/logging/testdata/info.yaml +++ /dev/null @@ -1,7 +0,0 @@ -output: file -level: info -file: - filename: "log/collector.log" - maxbackups: 5 - maxsize: 1 - maxage: 7 diff --git a/internal/logging/testdata/not-yaml.txt b/internal/logging/testdata/not-yaml.txt deleted file mode 100644 index cee5d4b12..000000000 --- a/internal/logging/testdata/not-yaml.txt +++ /dev/null @@ -1 +0,0 @@ -not a yaml file diff --git a/internal/logging/testdata/stdout.yaml b/internal/logging/testdata/stdout.yaml deleted file mode 100644 index a033ede24..000000000 --- a/internal/logging/testdata/stdout.yaml +++ /dev/null @@ -1,2 +0,0 @@ -output: stdout -level: debug diff --git a/internal/os/os.go b/internal/os/os.go deleted file mode 100644 index 251b52851..000000000 --- a/internal/os/os.go +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package os handles grabbing OS info from the system -package os - -import ( - "fmt" - "net" - "runtime" - "strings" - - "github.com/shirou/gopsutil/v3/host" -) - -const unknownValue = "unknown" - -// hostInfo is a singleton for collecting host info -var hostInfo *host.InfoStat - -// Hostname retrieves the hostname of the machine -func Hostname() (string, error) { - info, err := getHostInfo() - if err != nil { - return unknownValue, err - } - - return info.Hostname, nil -} - -// Name returns the name of the os. -func Name() (string, error) { - info, err := getHostInfo() - if err != nil { - return unknownValue, err - } - return parseName(info, runtime.GOOS), nil -} - -// getHostInfo sets hostInfo singleton if not set else returns it -func getHostInfo() (*host.InfoStat, error) { - if hostInfo != nil { - return hostInfo, nil - } - - var err error - hostInfo, err = host.Info() - return hostInfo, err -} - -// parseName parses the os name from the supplied info. -func parseName(info *host.InfoStat, os string) string { - if info == nil { - return unknownValue - } - - switch os { - case "darwin": - return fmt.Sprintf("macOS %s", parseDarwinVersion(info.PlatformVersion)) - case "linux": - return fmt.Sprintf("%s %s", formatLinuxName(info.Platform), info.PlatformVersion) - default: - return info.Platform - } -} - -// parseDarwinVersion parses a darwin version. -func parseDarwinVersion(platformVersion string) string { - parts := strings.Split(platformVersion, ".") - if len(parts) < 2 { - return "unknown version" - } - return fmt.Sprintf("%s.%s", parts[0], parts[1]) -} - -// formatLinuxName formats a linux distribution name. -func formatLinuxName(platform string) string { - switch strings.ToLower(platform) { - case "centos": - return "CentOS" - case "rhel": - return "RedHat Enterprise Linux" - case "ubuntu": - return "Ubuntu" - case "suse", "sles": - return "SLES Enterprise Linux" - case "coreos": - return "CoreOS" - case "linuxmint": - return "Linux Mint" - default: - return strings.Title(platform) - } -} - -// MACAddress returns the MAC address for the host. -func MACAddress() string { - return findMACAddress(net.Interfaces) -} - -// findMACAddress does its best to find the MAC address for the local network interface. -func findMACAddress(interfaces func() ([]net.Interface, error)) string { - iFaces, err := interfaces() - if err != nil { - return unknownValue - } - - for _, iFace := range iFaces { - if iFace.HardwareAddr.String() != "" { - addrs, _ := iFace.Addrs() - for _, addr := range addrs { - address := addr.String() - if strings.Contains(address, "/") { - address = address[:strings.Index(address, "/")] - } - ipAddress := net.ParseIP(address) - if isValidV4Address(ipAddress) { - return iFace.HardwareAddr.String() - } - } - } - } - - return unknownValue -} - -// isValidV4Address checks that the IP address is not nil, loopback, or unspecified. It also checks that it is IPv4 -func isValidV4Address(address net.IP) bool { - return address != nil && !address.IsLoopback() && !address.IsUnspecified() && address.To4() != nil -} diff --git a/internal/os/os_test.go b/internal/os/os_test.go deleted file mode 100644 index 7257a285b..000000000 --- a/internal/os/os_test.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package os - -import ( - "errors" - "net" - "runtime" - "testing" - - "github.com/shirou/gopsutil/v3/host" - "github.com/stretchr/testify/require" -) - -func TestName(t *testing.T) { - switch runtime.GOOS { - case "darwin": - name, err := Name() - require.NoError(t, err) - require.Contains(t, name, "macOS") - default: - t.Skip() - } -} - -func TestParseName(t *testing.T) { - testCases := []struct { - name string - info *host.InfoStat - os string - expected string - }{ - { - name: "Nil info", - info: nil, - os: "darwin", - expected: "unknown", - }, - { - name: "Darwin bad version", - info: &host.InfoStat{ - PlatformVersion: "no version", - }, - os: "darwin", - expected: "macOS unknown version", - }, - { - name: "Darwin valid version", - info: &host.InfoStat{ - PlatformVersion: "11.1.0", - }, - os: "darwin", - expected: "macOS 11.1", - }, - { - name: "windows", - info: &host.InfoStat{ - Platform: "windows", - }, - os: "windows", - expected: "windows", - }, - { - name: "centos", - info: &host.InfoStat{ - Platform: "centos", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "CentOS 0.0", - }, - { - name: "rhel", - info: &host.InfoStat{ - Platform: "rhel", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "RedHat Enterprise Linux 0.0", - }, - { - name: "ubuntu", - info: &host.InfoStat{ - Platform: "ubuntu", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "Ubuntu 0.0", - }, - { - name: "suse", - info: &host.InfoStat{ - Platform: "suse", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "SLES Enterprise Linux 0.0", - }, - { - name: "sles", - info: &host.InfoStat{ - Platform: "sles", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "SLES Enterprise Linux 0.0", - }, - { - name: "coreos", - info: &host.InfoStat{ - Platform: "coreos", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "CoreOS 0.0", - }, - { - name: "linuxmint", - info: &host.InfoStat{ - Platform: "linuxmint", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "Linux Mint 0.0", - }, - { - name: "unknown linux", - info: &host.InfoStat{ - Platform: "unknown", - PlatformVersion: "0.0", - }, - os: "linux", - expected: "Unknown 0.0", - }, - } - - for _, tc := range testCases { - name := parseName(tc.info, tc.os) - require.Equal(t, tc.expected, name) - } -} - -func TestIsValidV4Address(t *testing.T) { - testCases := []struct { - name string - address net.IP - expected bool - }{ - { - name: "valid", - address: net.IPv4(1, 1, 1, 1), - expected: true, - }, - { - name: "invalid", - address: net.IPv6loopback, - expected: false, - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - valid := isValidV4Address(tc.address) - require.Equal(t, tc.expected, valid) - }) - } -} - -func TestMACAddress(t *testing.T) { - mac := MACAddress() - require.NotEqual(t, "unknown", mac) -} - -func TestFindMACAddress(t *testing.T) { - testCases := []struct { - name string - interfaces func() ([]net.Interface, error) - expected string - }{ - { - name: "Failed to get interfaces", - interfaces: func() ([]net.Interface, error) { - return nil, errors.New("failure") - }, - expected: "unknown", - }, - { - name: "No interfaces", - interfaces: func() ([]net.Interface, error) { - return []net.Interface{}, nil - }, - expected: "unknown", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - mac := findMACAddress(tc.interfaces) - require.Equal(t, tc.expected, mac) - }) - } -} diff --git a/internal/processor/snapshotprocessor/README.md b/internal/processor/snapshotprocessor/README.md deleted file mode 100644 index 321de9e5d..000000000 --- a/internal/processor/snapshotprocessor/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Snapshot Processor - -Supported pipelines: logs, metrics, traces - -This processor saves OTLP payloads into snapshots that can be reported to [BindPlane OP](https://observiq.com/). - -This processor is only used by bindplane-agent. To add snapshot support to an agent built with OpenTelemetry Collector Builder, use the non-internal [snapshotprocessor](/processor/snapshotprocessor/README.md) instead. - -## Configuration - -The following options may be configured: -- `enabled` (default: true): When `true` signals that snapshots are being taken of data passing through this processor. If false this processor acts as a no-op. - -### Example configuration - -```yaml -processors: - snapshot: - enabled: true -``` - diff --git a/internal/processor/snapshotprocessor/config.go b/internal/processor/snapshotprocessor/config.go deleted file mode 100644 index 988c1854e..000000000 --- a/internal/processor/snapshotprocessor/config.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package snapshotprocessor collects metrics, traces, and logs for -package snapshotprocessor - -// Config is the configuration for the processor -type Config struct { - // Enable controls whether snapshots are collected - Enabled bool `mapstructure:"enabled"` -} - -// Validate validates the processor configuration -func (cfg Config) Validate() error { - return nil -} diff --git a/internal/processor/snapshotprocessor/config_test.go b/internal/processor/snapshotprocessor/config_test.go deleted file mode 100644 index 4862f663b..000000000 --- a/internal/processor/snapshotprocessor/config_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package snapshotprocessor - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestConfigValidate(t *testing.T) { - assert.NoError(t, Config{}.Validate()) -} diff --git a/internal/processor/snapshotprocessor/factory.go b/internal/processor/snapshotprocessor/factory.go deleted file mode 100644 index bc0c815c5..000000000 --- a/internal/processor/snapshotprocessor/factory.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package snapshotprocessor - -import ( - "context" - - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/consumer" - "go.opentelemetry.io/collector/processor" - "go.opentelemetry.io/collector/processor/processorhelper" -) - -var componentType = component.MustNewType("snapshotprocessor") - -const ( - stability = component.StabilityLevelAlpha -) - -var consumerCapabilities = consumer.Capabilities{MutatesData: false} - -// NewFactory creates a new ProcessorFactory with default configuration -func NewFactory() processor.Factory { - return processor.NewFactory( - componentType, - createDefaultConfig, - processor.WithTraces(createTracesProcessor, stability), - processor.WithLogs(createLogsProcessor, stability), - processor.WithMetrics(createMetricsProcessor, stability), - ) -} - -func createDefaultConfig() component.Config { - return &Config{ - Enabled: true, - } -} - -func createTracesProcessor( - ctx context.Context, - set processor.Settings, - cfg component.Config, - nextConsumer consumer.Traces, -) (processor.Traces, error) { - oCfg := cfg.(*Config) - sp := newSnapshotProcessor(set.Logger, oCfg, set.ID.String()) - return processorhelper.NewTraces(ctx, set, cfg, nextConsumer, sp.processTraces, processorhelper.WithCapabilities(consumerCapabilities)) -} - -func createLogsProcessor( - ctx context.Context, - set processor.Settings, - cfg component.Config, - nextConsumer consumer.Logs, -) (processor.Logs, error) { - oCfg := cfg.(*Config) - sp := newSnapshotProcessor(set.Logger, oCfg, set.ID.String()) - return processorhelper.NewLogs(ctx, set, cfg, nextConsumer, sp.processLogs, processorhelper.WithCapabilities(consumerCapabilities)) -} - -func createMetricsProcessor( - ctx context.Context, - set processor.Settings, - cfg component.Config, - nextConsumer consumer.Metrics, -) (processor.Metrics, error) { - oCfg := cfg.(*Config) - sp := newSnapshotProcessor(set.Logger, oCfg, set.ID.String()) - return processorhelper.NewMetrics(ctx, set, cfg, nextConsumer, sp.processMetrics, processorhelper.WithCapabilities(consumerCapabilities)) -} diff --git a/internal/processor/snapshotprocessor/factory_test.go b/internal/processor/snapshotprocessor/factory_test.go deleted file mode 100644 index 52cc252d8..000000000 --- a/internal/processor/snapshotprocessor/factory_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package snapshotprocessor - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestNewFactory(t *testing.T) { - factory := NewFactory() - require.Equal(t, componentType, factory.Type()) - - expectedCfg := &Config{ - Enabled: true, - } - - cfg, ok := factory.CreateDefaultConfig().(*Config) - require.True(t, ok) - require.Equal(t, expectedCfg, cfg) -} diff --git a/internal/processor/snapshotprocessor/processor.go b/internal/processor/snapshotprocessor/processor.go deleted file mode 100644 index 6555a760c..000000000 --- a/internal/processor/snapshotprocessor/processor.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package snapshotprocessor - -import ( - "context" - - "github.com/observiq/bindplane-agent/internal/report" - "github.com/observiq/bindplane-agent/internal/report/snapshot" - "go.opentelemetry.io/collector/pdata/plog" - "go.opentelemetry.io/collector/pdata/pmetric" - "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/zap" -) - -// getSnapshotReporter is function for retrieving the SnapshotReporter. -// Meant to be overridden for tests. -var getSnapshotReporter func() *report.SnapshotReporter = report.GetSnapshotReporter - -type snapshotProcessor struct { - logger *zap.Logger - enabled bool - snapShotter snapshot.Snapshotter - processorID string -} - -// newSnapshotProcessor creates a new snapshot processor -func newSnapshotProcessor(logger *zap.Logger, cfg *Config, processorID string) *snapshotProcessor { - return &snapshotProcessor{ - logger: logger, - enabled: cfg.Enabled, - snapShotter: getSnapshotReporter(), - processorID: processorID, - } -} - -func (sp *snapshotProcessor) processTraces(_ context.Context, td ptrace.Traces) (ptrace.Traces, error) { - if sp.enabled { - newTraces := ptrace.NewTraces() - td.CopyTo(newTraces) - sp.snapShotter.SaveTraces(sp.processorID, newTraces) - } - - return td, nil -} - -func (sp *snapshotProcessor) processLogs(_ context.Context, ld plog.Logs) (plog.Logs, error) { - if sp.enabled { - newLogs := plog.NewLogs() - ld.CopyTo(newLogs) - sp.snapShotter.SaveLogs(sp.processorID, newLogs) - } - - return ld, nil -} - -func (sp *snapshotProcessor) processMetrics(_ context.Context, md pmetric.Metrics) (pmetric.Metrics, error) { - if sp.enabled { - newMetrics := pmetric.NewMetrics() - md.CopyTo(newMetrics) - sp.snapShotter.SaveMetrics(sp.processorID, newMetrics) - } - - return md, nil -} diff --git a/internal/processor/snapshotprocessor/processor_test.go b/internal/processor/snapshotprocessor/processor_test.go deleted file mode 100644 index 69b9397e3..000000000 --- a/internal/processor/snapshotprocessor/processor_test.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package snapshotprocessor - -import ( - "context" - "testing" - - "github.com/observiq/bindplane-agent/internal/report" - "github.com/observiq/bindplane-agent/internal/report/snapshot/mocks" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "go.opentelemetry.io/collector/pdata/plog" - "go.opentelemetry.io/collector/pdata/pmetric" - "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/zap" -) - -func Test_newShapshotProcessor(t *testing.T) { - reporter := &report.SnapshotReporter{} - unsetFunc := overwriteSnapshotSet(t, reporter) - defer unsetFunc() - - logger := zap.NewNop() - cfg := &Config{ - Enabled: false, - } - - processorID := "snapshotprocessor/one" - - expected := &snapshotProcessor{ - logger: logger, - enabled: cfg.Enabled, - snapShotter: reporter, - processorID: processorID, - } - - actual := newSnapshotProcessor(logger, cfg, processorID) - assert.Equal(t, expected, actual) -} - -func Test_processTraces(t *testing.T) { - testCases := []struct { - desc string - enabled bool - setupMocks func(*mocks.MockSnapshotter) - }{ - { - desc: "disabled", - enabled: false, - setupMocks: func(_ *mocks.MockSnapshotter) {}, - }, - { - desc: "enabled", - enabled: true, - setupMocks: func(m *mocks.MockSnapshotter) { - m.On("SaveTraces", mock.Anything, mock.Anything).Return() - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - mockSnapshotter := mocks.NewMockSnapshotter(t) - - tc.setupMocks(mockSnapshotter) - - sp := &snapshotProcessor{ - logger: zap.NewNop(), - enabled: tc.enabled, - snapShotter: mockSnapshotter, - processorID: componentType.String(), - } - - td := ptrace.NewTraces() - sp.processTraces(context.Background(), td) - }) - } -} - -func Test_processLogs(t *testing.T) { - testCases := []struct { - desc string - enabled bool - setupMocks func(*mocks.MockSnapshotter) - }{ - { - desc: "disabled", - enabled: false, - setupMocks: func(_ *mocks.MockSnapshotter) {}, - }, - { - desc: "enabled", - enabled: true, - setupMocks: func(m *mocks.MockSnapshotter) { - m.On("SaveLogs", mock.Anything, mock.Anything).Return() - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - mockSnapshotter := mocks.NewMockSnapshotter(t) - - tc.setupMocks(mockSnapshotter) - - sp := &snapshotProcessor{ - logger: zap.NewNop(), - enabled: tc.enabled, - snapShotter: mockSnapshotter, - processorID: componentType.String(), - } - - ld := plog.NewLogs() - sp.processLogs(context.Background(), ld) - }) - } -} - -func Test_processMetrics(t *testing.T) { - testCases := []struct { - desc string - enabled bool - setupMocks func(*mocks.MockSnapshotter) - }{ - { - desc: "disabled", - enabled: false, - setupMocks: func(_ *mocks.MockSnapshotter) {}, - }, - { - desc: "enabled", - enabled: true, - setupMocks: func(m *mocks.MockSnapshotter) { - m.On("SaveMetrics", mock.Anything, mock.Anything).Return() - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - mockSnapshotter := mocks.NewMockSnapshotter(t) - - tc.setupMocks(mockSnapshotter) - - sp := &snapshotProcessor{ - logger: zap.NewNop(), - enabled: tc.enabled, - snapShotter: mockSnapshotter, - processorID: componentType.String(), - } - - md := pmetric.NewMetrics() - sp.processMetrics(context.Background(), md) - }) - } -} - -func overwriteSnapshotSet(t *testing.T, reporterToSet *report.SnapshotReporter) (unsetFunc func()) { - t.Helper() - // Save original function - oldFunc := getSnapshotReporter - - // Create new function returning new reporter - getSnapshotReporter = func() *report.SnapshotReporter { - return reporterToSet - } - - // Create a function to return to the original state - unsetFunc = func() { - getSnapshotReporter = oldFunc - } - - return -} diff --git a/internal/service/managed.go b/internal/service/managed.go deleted file mode 100644 index b8733acf4..000000000 --- a/internal/service/managed.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package service provides a service wrapper around the collector regardless of managed or standalone mode. -package service - -import ( - "context" - "fmt" - - "github.com/observiq/bindplane-agent/internal/measurements" - - "github.com/observiq/bindplane-agent/collector" - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/opamp" - "github.com/observiq/bindplane-agent/opamp/observiq" - "go.uber.org/zap" -) - -// ManagedCollectorService is a RunnableService that runs the collector being managed by an OpAmp enabled platform -type ManagedCollectorService struct { - logger *zap.Logger - client opamp.Client - - // Config paths - managerConfigPath string - collectorConfigPath string - loggerConfigPath string -} - -// NewManagedCollectorService creates a new ManagedCollectorService -func NewManagedCollectorService(col collector.Collector, logger *zap.Logger, managerConfigPath, collectorConfigPath, loggerConfigPath string) (*ManagedCollectorService, error) { - opampConfig, err := opamp.ParseConfig(managerConfigPath) - if err != nil { - return nil, fmt.Errorf("failed to parse manager config: %w", err) - } - - // Create client Args - clientArgs := &observiq.NewClientArgs{ - DefaultLogger: logger, - Config: *opampConfig, - Collector: col, - Version: version.Version(), - TmpPath: "./tmp", - ManagerConfigPath: managerConfigPath, - CollectorConfigPath: collectorConfigPath, - LoggerConfigPath: loggerConfigPath, - MeasurementsReporter: measurements.BindplaneAgentThroughputMeasurementsRegistry, - } - - // Create new client - client, err := observiq.NewClient(clientArgs) - if err != nil { - return nil, fmt.Errorf("failed to create observIQ client: %w", err) - } - - return &ManagedCollectorService{ - client: client, - logger: logger, - managerConfigPath: managerConfigPath, - collectorConfigPath: collectorConfigPath, - loggerConfigPath: loggerConfigPath, - }, nil -} - -// Start initiates the OpAmp connection and starts the collector -func (m *ManagedCollectorService) Start(ctx context.Context) error { - m.logger.Info("Starting in managed mode") - - // Connect to manager platform - if err := m.client.Connect(ctx); err != nil { - return fmt.Errorf("error during OpAmp connection: %w", err) - } - - return nil -} - -// Stop stops the collector and disconnects from the platform -func (m *ManagedCollectorService) Stop(ctx context.Context) error { - m.logger.Info("Shutting down collector") - if err := m.client.Disconnect(ctx); err != nil { - return fmt.Errorf("error during client disconnect: %w", err) - } - return nil -} - -// Error returns an empty error channel. This will never send errors. -func (m *ManagedCollectorService) Error() <-chan error { - // send new channel that's never used - return make(<-chan error) -} diff --git a/internal/service/managed_test.go b/internal/service/managed_test.go deleted file mode 100644 index ffa5d1dab..000000000 --- a/internal/service/managed_test.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "context" - "errors" - "testing" - - colmocks "github.com/observiq/bindplane-agent/collector/mocks" - "github.com/observiq/bindplane-agent/opamp/mocks" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -// TestNewManagedCollectorService_BadManagerConfig tests NewManagedCollectorService -// for a bad manger config. This function starts an entire observiq client which is tested -// in it's own package so we don't do robust testing here. -func TestNewManagedCollectorService_BadManagerConfig(t *testing.T) { - mockCol := colmocks.NewMockCollector(t) - managedService, err := NewManagedCollectorService(mockCol, zap.NewNop(), "./bad_manger.yaml", "./bad_collector.yaml", "./bad_logging.yaml") - assert.ErrorContains(t, err, "failed to parse manager config") - assert.Nil(t, managedService) -} - -func TestManageCollectorServiceStart(t *testing.T) { - testCases := []struct { - desc string - setupMocks func(*mocks.MockClient) - expectedError error - }{ - { - desc: "Client fails to connect", - setupMocks: func(m *mocks.MockClient) { - m.On("Connect", mock.Anything).Return(errors.New("oops")) - }, - expectedError: errors.New("oops"), - }, - { - desc: "Client successfully connects", - setupMocks: func(m *mocks.MockClient) { - m.On("Connect", mock.Anything).Return(nil) - }, - expectedError: nil, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - mockClient := mocks.NewMockClient(t) - - tc.setupMocks(mockClient) - - m := &ManagedCollectorService{ - client: mockClient, - logger: zap.NewNop(), - } - - err := m.Start(context.Background()) - if tc.expectedError == nil { - assert.NoError(t, err) - } else { - assert.ErrorContains(t, err, tc.expectedError.Error()) - } - }) - } -} - -func TestManageCollectorServiceStop(t *testing.T) { - testCases := []struct { - desc string - setupMocks func(*mocks.MockClient) - expectedError error - }{ - { - desc: "Client fails to disconnect", - setupMocks: func(m *mocks.MockClient) { - m.On("Disconnect", mock.Anything).Return(errors.New("oops")) - }, - expectedError: errors.New("oops"), - }, - { - desc: "Client successfully disconnects", - setupMocks: func(m *mocks.MockClient) { - m.On("Disconnect", mock.Anything).Return(nil) - }, - expectedError: nil, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - mockClient := mocks.NewMockClient(t) - - tc.setupMocks(mockClient) - - m := &ManagedCollectorService{ - client: mockClient, - logger: zap.NewNop(), - } - - err := m.Stop(context.Background()) - if tc.expectedError == nil { - assert.NoError(t, err) - } else { - assert.ErrorContains(t, err, tc.expectedError.Error()) - } - }) - } -} - -func TestManageCollectorServiceError(t *testing.T) { - // Just test we return a non-nil channel - m := &ManagedCollectorService{} - errChan := m.Error() - require.NotNil(t, errChan) -} diff --git a/internal/service/mocks/mock_runnable_service.go b/internal/service/mocks/mock_runnable_service.go deleted file mode 100644 index dc759f054..000000000 --- a/internal/service/mocks/mock_runnable_service.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - context "context" - - mock "github.com/stretchr/testify/mock" -) - -// MockRunnableService is an autogenerated mock type for the RunnableService type -type MockRunnableService struct { - mock.Mock -} - -// Error provides a mock function with given fields: -func (_m *MockRunnableService) Error() <-chan error { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Error") - } - - var r0 <-chan error - if rf, ok := ret.Get(0).(func() <-chan error); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(<-chan error) - } - } - - return r0 -} - -// Start provides a mock function with given fields: ctx -func (_m *MockRunnableService) Start(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Start") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Stop provides a mock function with given fields: ctx -func (_m *MockRunnableService) Stop(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Stop") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockRunnableService creates a new instance of MockRunnableService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockRunnableService(t interface { - mock.TestingT - Cleanup(func()) -}) *MockRunnableService { - mock := &MockRunnableService{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/service/service.go b/internal/service/service.go deleted file mode 100644 index 8ac306a03..000000000 --- a/internal/service/service.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "context" - "fmt" - "time" - - "go.uber.org/zap" -) - -const ( - startTimeout = 10 * time.Second - stopTimeout = 10 * time.Second -) - -// RunnableService may be run as a service. -// -//go:generate mockery --name RunnableService --filename mock_runnable_service.go --structname MockRunnableService -type RunnableService interface { - // Start asynchronously starts the underlying service. The service may not necessarily be "ready" - // once this returns, but could be asynchronously starting up. - Start(ctx context.Context) error - // Stop synchronously shuts down the service. After this function returns, the underlying service should be completely stopped. - Stop(ctx context.Context) error - // Error returns an error channel that should emit an error when the service must unexpectedly quit. - Error() <-chan error -} - -// runServiceInteractive runs the service in an "interactive" mode (responds to SIGINT and SIGTERM). -// This mode is always used in linux, and is used in Windows when the collector -// is not running as a service. -func runServiceInteractive(ctx context.Context, logger *zap.Logger, svc RunnableService) error { - if err := svc.Start(ctx); err != nil { - return fmt.Errorf("failed to start service: %w", err) - } - - var svcErr error - // Service is started; Wait for a stop signal. - select { - case <-ctx.Done(): - case svcErr = <-svc.Error(): - logger.Error("Unexpected error while running service", zap.Error(svcErr)) - } - - stopTimeoutCtx, stopCancel := context.WithTimeout(context.Background(), stopTimeout) - defer stopCancel() - - if err := svc.Stop(stopTimeoutCtx); err != nil { - return fmt.Errorf("failed to stop service: %w", err) - } - - return svcErr -} diff --git a/internal/service/service_others.go b/internal/service/service_others.go deleted file mode 100644 index 89ca3f24c..000000000 --- a/internal/service/service_others.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build !windows - -package service - -import ( - "context" - "os/signal" - "syscall" - - "go.uber.org/zap" -) - -// RunService runs the given service, calling its start and stop functions. -func RunService(logger *zap.Logger, rSvc RunnableService) error { - ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) - defer cancel() - - return runServiceInteractive(ctx, logger, rSvc) -} diff --git a/internal/service/service_test.go b/internal/service/service_test.go deleted file mode 100644 index 4d5007fd5..000000000 --- a/internal/service/service_test.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/observiq/bindplane-agent/internal/service/mocks" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -func TestRunServiceInteractive(t *testing.T) { - t.Run("Normal start/stop", func(t *testing.T) { - svc := &mocks.MockRunnableService{} - - ctx, cancel := context.WithCancel(context.Background()) - - svc.On("Start", mock.Anything).Return(nil) - svc.On("Error").Return((<-chan error)(make(chan error))) - svc.On("Stop", mock.Anything).Return(nil) - - var err error - svcDone := make(chan struct{}) - go func() { - err = runServiceInteractive(ctx, zap.NewNop(), svc) - close(svcDone) - }() - - <-time.After(500 * time.Millisecond) - cancel() - - select { - case <-svcDone: // OK - case <-time.After(1 * time.Second): - t.Fatalf("Timed out waiting for service done") - } - - require.NoError(t, err) - }) - - t.Run("Start fails", func(t *testing.T) { - svc := &mocks.MockRunnableService{} - - startErr := errors.New("failed to start") - - svc.On("Start", mock.Anything).Return(startErr) - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - var err error - svcDone := make(chan struct{}) - go func() { - err = runServiceInteractive(ctx, zap.NewNop(), svc) - close(svcDone) - }() - - select { - case <-svcDone: // OK - case <-time.After(1 * time.Second): - t.Fatalf("Timed out waiting for service done") - } - - require.Error(t, err) - require.ErrorIs(t, err, startErr) - }) - - t.Run("Service errors", func(t *testing.T) { - svc := &mocks.MockRunnableService{} - - svcErr := errors.New("service unexpectedly failed") - errChan := make(chan error, 1) - errChan <- svcErr - - svc.On("Start", mock.Anything).Return(nil) - svc.On("Error").Return((<-chan error)(errChan)) - svc.On("Stop", mock.Anything).Return(nil) - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - var err error - svcDone := make(chan struct{}) - go func() { - err = runServiceInteractive(ctx, zap.NewNop(), svc) - close(svcDone) - }() - - select { - case <-svcDone: // OK - case <-time.After(1 * time.Second): - t.Fatalf("Timed out waiting for service done") - } - - require.Error(t, err) - require.ErrorIs(t, err, svcErr) - }) - - t.Run("Stop errors", func(t *testing.T) { - svc := &mocks.MockRunnableService{} - - stopErr := errors.New("Stop failed") - - svc.On("Start", mock.Anything).Return(nil) - svc.On("Error").Return((<-chan error)(make(chan error))) - svc.On("Stop", mock.Anything).Return(stopErr) - - ctx, cancel := context.WithCancel(context.Background()) - - var err error - svcDone := make(chan struct{}) - go func() { - err = runServiceInteractive(ctx, zap.NewNop(), svc) - close(svcDone) - }() - - <-time.After(500 * time.Millisecond) - cancel() - - select { - case <-svcDone: // OK - case <-time.After(1 * time.Second): - t.Fatalf("Timed out waiting for service done") - } - - require.Error(t, err) - require.ErrorIs(t, err, stopErr) - }) - - t.Run("Stop errors after error returned", func(t *testing.T) { - svc := &mocks.MockRunnableService{} - - stopErr := errors.New("Stop failed") - svcErr := errors.New("service unexpectedly failed") - errChan := make(chan error, 1) - errChan <- svcErr - - svc.On("Start", mock.Anything).Return(nil) - svc.On("Error").Return((<-chan error)(errChan)) - svc.On("Stop", mock.Anything).Return(stopErr) - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - var err error - svcDone := make(chan struct{}) - go func() { - err = runServiceInteractive(ctx, zap.NewNop(), svc) - close(svcDone) - }() - - select { - case <-svcDone: // OK - case <-time.After(1 * time.Second): - t.Fatalf("Timed out waiting for service done") - } - - require.Error(t, err) - require.ErrorIs(t, err, stopErr) - }) -} diff --git a/internal/service/service_windows.go b/internal/service/service_windows.go deleted file mode 100644 index f5450d721..000000000 --- a/internal/service/service_windows.go +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows - -package service - -import ( - "context" - "errors" - "fmt" - "os" - "os/signal" - "path/filepath" - "syscall" - "time" - - "go.uber.org/zap" - "golang.org/x/sys/windows" - "golang.org/x/sys/windows/svc" -) - -// windowsServiceShutdownTimeout is the amount of time to wait for the underlying service to stop before -// forcefully stopping the process. -var windowsServiceShutdownTimeout = 20 * time.Second - -// The following constants specify error codes for the service. -// See https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--1000-1299- -const ( - statusCodeInvalidServiceCommand = uint32(1052) - statusCodeServiceException = uint32(1064) - statusCodeInvalidServiceName = uint32(1213) -) - -func RunService(logger *zap.Logger, rSvc RunnableService) error { - isService, err := checkIsService() - if err != nil { - return fmt.Errorf("failed checking if running as service: %w", err) - } - - if isService { - // Change working directory to executable directory - ex, err := os.Executable() - if err != nil { - logger.Warn("Failed to retrieve executable directory", zap.Error(err)) - } else { - execDirPath := filepath.Dir(ex) - if err := os.Chdir(execDirPath); err != nil { - logger.Warn("Failed to modify current working directory", zap.Error(err)) - } - } - - // Redirect stderr to file, so we can see panic information - if err := redirectStderr(); err != nil { - logger.Error("Failed to redirect stderr", zap.Error(err)) - } - - // Service name doesn't need to be specified when directly run by the service manager. - return svc.Run("", newWindowsServiceHandler(logger, rSvc)) - } else { - ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) - defer cancel() - - return runServiceInteractive(ctx, logger, rSvc) - } -} - -// windowsServiceHandler implements svc.Handler -type windowsServiceHandler struct { - svc RunnableService - logger *zap.Logger -} - -// newWindowsServiceHandler creates a new windowsServiceHandler, which implements svc.Handler -func newWindowsServiceHandler(logger *zap.Logger, svc RunnableService) *windowsServiceHandler { - return &windowsServiceHandler{ - svc: svc, - logger: logger, - } -} - -// Execute handles the Windows service event loop. -func (sh *windowsServiceHandler) Execute(args []string, r <-chan svc.ChangeRequest, s chan<- svc.Status) (bool, uint32) { - if len(args) == 0 { - // Service name is the first argument, and must be provided to open the event log for service logs. - return false, statusCodeInvalidServiceName - } - - s <- svc.Status{State: svc.StartPending} - - err := sh.svc.Start(context.Background()) - if err != nil { - sh.logger.Error("Failed to start service", zap.Error(err)) - return false, statusCodeServiceException - } - - s <- svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown} - for { - select { - case req := <-r: - switch req.Cmd { - case svc.Interrogate: - s <- req.CurrentStatus - case svc.Stop, svc.Shutdown: - err := sh.shutdown(s) - if err != nil { - sh.logger.Error("Failed during service shutdown", zap.Error(err)) - return false, statusCodeServiceException - } - - return false, 0 - default: - sh.logger.Error("Got unexpected service command", zap.Uint32("command", uint32(req.Cmd))) - err := sh.shutdown(s) - if err != nil { - sh.logger.Error("Failed during service shutdown", zap.Error(err)) - return false, statusCodeServiceException - } - - return false, statusCodeInvalidServiceCommand - } - case err := <-sh.svc.Error(): - sh.logger.Error("Got unexpected service error", zap.Error(err)) - - sh.shutdown(s) - - if err != nil { - sh.logger.Error("Failed during service shutdown", zap.Error(err)) - } - - return false, statusCodeServiceException - } - } -} - -func (sh windowsServiceHandler) shutdown(s chan<- svc.Status) error { - s <- svc.Status{State: svc.StopPending} - - stopTimeoutCtx, stopCancel := context.WithTimeout(context.Background(), stopTimeout) - defer stopCancel() - - stopErrChan := make(chan error, 1) - go func() { - stopErrChan <- sh.svc.Stop(stopTimeoutCtx) - }() - - var err error - select { - case <-time.After(windowsServiceShutdownTimeout): - err = fmt.Errorf("the service failed to shut down in a timely manner (timeout: %s)", windowsServiceShutdownTimeout) - case stopErr := <-stopErrChan: - err = stopErr - } - - s <- svc.Status{State: svc.Stopped} - - return err -} - -// checkIsService returns whether the current process is running as a Windows service. -func checkIsService() (bool, error) { - // NO_WINDOWS_SERVICE may be set non-zero to override the service detection logic. - if value, present := os.LookupEnv("NO_WINDOWS_SERVICE"); present && value != "0" { - return true, nil - } - - isWindowsService, err := svc.IsWindowsService() - if err != nil { - return false, fmt.Errorf("failed to determine if we are running in an windows service: %w", err) - } - - return isWindowsService, nil -} - -// redirectStderr redirects stderr so that panic information is output to $INSTALL_DIR/log/observiq_collector.err, -// instead of it being dropped by Windows services. -// Most output should go through the zap logger instead of to stderr. -func redirectStderr() error { - homeDir, ok := os.LookupEnv("OIQ_OTEL_COLLECTOR_HOME") - if !ok { - return errors.New("OIQ_OTEL_COLLECTOR_HOME environment variable not set") - } - - path := filepath.Join(homeDir, "log", "observiq_collector.err") - f, err := os.OpenFile(filepath.Clean(path), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0660) - if err != nil { - return fmt.Errorf("failed to open file: %w", err) - } - - if err := windows.SetStdHandle(windows.STD_ERROR_HANDLE, windows.Handle(f.Fd())); err != nil { - return fmt.Errorf("failed to set stderr handle: %w (close err: %s)", err, f.Close()) - } else { - os.Stderr = f - } - - return nil -} diff --git a/internal/service/service_windows_test.go b/internal/service/service_windows_test.go deleted file mode 100644 index 9cc78e4d4..000000000 --- a/internal/service/service_windows_test.go +++ /dev/null @@ -1,604 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "errors" - "testing" - "time" - - "github.com/observiq/bindplane-agent/internal/service/mocks" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "go.uber.org/zap" - "golang.org/x/sys/windows/svc" -) - -func TestWindowsServiceHandler(t *testing.T) { - t.Run("Normal start/stop", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Return(nil) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Interrogate, - CurrentStatus: svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for interrogate response") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Stop, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, uint32(0), statusCode, "status code was not 0") - }) - - t.Run("Start fails", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - startError := errors.New("Failed to start service") - - rSvc.On("Start", mock.Anything).Return(startError) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Return(nil) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, statusCodeServiceException, statusCode, "status code was not ServiceException") - }) - - t.Run("Unexpected service error", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - svcErr := errors.New("service unexpectedly failed") - errChan := make(chan error, 1) - errChan <- svcErr - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(errChan)) - rSvc.On("Stop", mock.Anything).Return(nil) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, statusCodeServiceException, statusCode, "status code was not ServiceException") - }) - - t.Run("Shutdown error", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - stopError := errors.New("Failed to start service") - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Return(stopError) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Interrogate, - CurrentStatus: svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for interrogate response") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Stop, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, statusCodeServiceException, statusCode, "status code was not ServiceException") - }) - - t.Run("Shutdown takes too long", func(t *testing.T) { - setWindowsServiceTimeout(t, 10*time.Millisecond) - rSvc := &mocks.MockRunnableService{} - - blockStopChan := make(chan struct{}, 1) - t.Cleanup(func() { - blockStopChan <- struct{}{} - }) - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Run(func(args mock.Arguments) { <-blockStopChan }).Return(nil) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Interrogate, - CurrentStatus: svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for interrogate response") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Stop, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, statusCodeServiceException, statusCode, "status code was not ServiceException") - }) - - t.Run("Shutdown error after unexpected error", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - stopError := errors.New("Failed to start service") - svcErr := errors.New("service unexpectedly failed") - errChan := make(chan error, 1) - errChan <- svcErr - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(errChan)) - rSvc.On("Stop", mock.Anything).Return(stopError) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, statusCodeServiceException, statusCode, "status code was not ServiceException") - }) - - t.Run("Unhandled command", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Return(nil) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Interrogate, - CurrentStatus: svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for interrogate response") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.DeviceEvent, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, uint32(statusCodeInvalidServiceCommand), statusCode, "status code was not InvalidServiceCommand") - }) - - t.Run("Unhandled command with shutdown error", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - stopError := errors.New("Failed to start service") - rSvc.On("Start", mock.Anything).Return(nil) - rSvc.On("Error").Return((<-chan error)(make(chan error))) - rSvc.On("Stop", mock.Anything).Return(stopError) - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{"service-name"}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StartPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to start pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service status change to running") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.Interrogate, - CurrentStatus: svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for interrogate response") - } - - changeChan <- svc.ChangeRequest{ - Cmd: svc.DeviceEvent, - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.StopPending}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stop pending") - } - - select { - case status := <-statusChan: - require.Equal(t, svc.Status{State: svc.Stopped}, status) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for status change to stopped") - } - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, uint32(statusCodeServiceException), statusCode, "status code was not ServiceException") - }) - - t.Run("No service name", func(t *testing.T) { - rSvc := &mocks.MockRunnableService{} - - svcHandler := newWindowsServiceHandler(zap.NewNop(), rSvc) - - changeChan := make(chan svc.ChangeRequest) - statusChan := make(chan svc.Status, 6) - svcHandlerDone := make(chan struct{}) - - var isSvcSpecificStatus bool - var statusCode uint32 - go func() { - isSvcSpecificStatus, statusCode = svcHandler.Execute([]string{}, changeChan, statusChan) - close(svcHandlerDone) - }() - - select { - case <-svcHandlerDone: // OK - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for service handler to return") - } - - require.Equal(t, false, isSvcSpecificStatus, "status code marked as service specific") - require.Equal(t, uint32(statusCodeInvalidServiceName), statusCode, "status code was not InvalidServiceName") - }) -} - -func setWindowsServiceTimeout(t *testing.T, d time.Duration) { - old := windowsServiceShutdownTimeout - windowsServiceShutdownTimeout = d - t.Cleanup(func() { - windowsServiceShutdownTimeout = old - }) -} diff --git a/internal/service/standalone.go b/internal/service/standalone.go deleted file mode 100644 index 8ed887ba2..000000000 --- a/internal/service/standalone.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "context" - "errors" - "fmt" - "sync" - - "github.com/observiq/bindplane-agent/collector" -) - -// StandaloneCollectorService is a RunnableService that runs the collector in standalone mode. -type StandaloneCollectorService struct { - col collector.Collector - doneChan chan struct{} - errChan chan error - wg *sync.WaitGroup -} - -// NewStandaloneCollectorService creates a new StandaloneCollectorService -func NewStandaloneCollectorService(c collector.Collector) StandaloneCollectorService { - return StandaloneCollectorService{ - col: c, - doneChan: make(chan struct{}, 1), - errChan: make(chan error, 1), - wg: &sync.WaitGroup{}, - } -} - -// Start starts the collector -func (s StandaloneCollectorService) Start(ctx context.Context) error { - err := s.col.Run(ctx) - if err != nil { - return fmt.Errorf("failed while starting collector: %w", err) - } - - // monitor status for errors, so we don't zombie the service - s.wg.Add(1) - go s.monitorStatus() - return nil -} - -// monitorStatus monitors the collector's status for errors, and reports them -// to the error channel to trigger a shutdown. -func (s StandaloneCollectorService) monitorStatus() { - defer s.wg.Done() - statusChan := s.col.Status() - for { - select { - case status := <-statusChan: - // This will catch panics and errors - if status.Err != nil { - s.errChan <- status.Err - } else if !status.Running { - // If we aren't running, bail out. Otherwise the collector is effectively a "zombie" process. - s.errChan <- errors.New("collector unexpectedly stopped running") - } - case <-s.doneChan: - return - } - } -} - -// Error returns a channel that can emit asynchronous, unrecoverable errors -func (s StandaloneCollectorService) Error() <-chan error { - return s.errChan -} - -// Stop shuts down the underlying collector -func (s StandaloneCollectorService) Stop(ctx context.Context) error { - close(s.doneChan) - - collectorStoppedChan := make(chan struct{}) - go func() { - s.col.Stop(ctx) - s.wg.Wait() - close(collectorStoppedChan) - }() - - select { - case <-collectorStoppedChan: - return nil - case <-ctx.Done(): - return fmt.Errorf("failed while waiting for service shutdown: %w", ctx.Err()) - } -} diff --git a/internal/service/standalone_test.go b/internal/service/standalone_test.go deleted file mode 100644 index f5abbe88b..000000000 --- a/internal/service/standalone_test.go +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package service - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/observiq/bindplane-agent/collector" - "github.com/observiq/bindplane-agent/collector/mocks" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" -) - -func TestStandaloneCollectorService(t *testing.T) { - t.Run("Collector starts and stops normally", func(t *testing.T) { - col := mocks.NewMockCollector(t) - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - col.On("Run", ctx).Return(nil) - col.On("Status").Return((<-chan *collector.Status)(make(chan *collector.Status))) - col.On("Stop", mock.Anything).Return(nil) - - srv := NewStandaloneCollectorService(col) - - var err error - startedChan := make(chan struct{}) - go func() { - err = srv.Start(ctx) - close(startedChan) - }() - - select { - case <-startedChan: // OK - case <-time.After(time.Second): - t.Fatalf("Start timed out") - } - - require.NoError(t, err) - require.Equal(t, 0, len(srv.Error()), "error channel has elements in it!") - - stoppedChan := make(chan struct{}) - go func() { - err = srv.Stop(context.Background()) - close(stoppedChan) - }() - - select { - case <-stoppedChan: // OK - case <-time.After(time.Second): - t.Fatalf("Stop timed out") - } - - require.NoError(t, err) - }) - - t.Run("Collector.Run errors", func(t *testing.T) { - col := mocks.NewMockCollector(t) - runError := errors.New("run failed") - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - col.On("Run", ctx).Return(runError) - - srv := NewStandaloneCollectorService(col) - - var err error - startedChan := make(chan struct{}) - go func() { - err = srv.Start(ctx) - close(startedChan) - }() - - select { - case <-startedChan: // OK - case <-time.After(time.Second): - t.Fatalf("Start timed out") - } - - require.Error(t, err) - require.ErrorIs(t, err, runError) - require.Equal(t, 0, len(srv.Error()), "error channel has elements in it!") - }) - - t.Run("Stop context is cancelled", func(t *testing.T) { - col := mocks.NewMockCollector(t) - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - col.On("Run", ctx).Return(nil) - col.On("Status").Return((<-chan *collector.Status)(make(chan *collector.Status))).Maybe() - col.On("Stop", mock.Anything).Run(func(_ mock.Arguments) { time.Sleep(100 * time.Second) }).Maybe() - - srv := NewStandaloneCollectorService(col) - - var err error - startedChan := make(chan struct{}) - go func() { - err = srv.Start(ctx) - close(startedChan) - }() - - select { - case <-startedChan: // OK - case <-time.After(time.Second): - t.Fatalf("Start timed out") - } - - require.NoError(t, err) - require.Equal(t, 0, len(srv.Error()), "error channel has elements in it!") - - errChan := make(chan error, 1) - go func() { - ctx, cancel := context.WithCancel(context.Background()) - cancel() - - errChan <- srv.Stop(ctx) - }() - - select { - case err = <-errChan: // Get error and verify stop has finished - case <-time.After(time.Second): - t.Fatalf("Stop timed out") - } - - require.Error(t, err) - require.ErrorIs(t, err, context.Canceled) - }) - - t.Run("Collector status has an error", func(t *testing.T) { - col := mocks.NewMockCollector(t) - colStatusErr := errors.New("Collector errored") - colStatus := make(chan *collector.Status, 1) - colStatus <- &collector.Status{ - Running: false, - Err: colStatusErr, - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - col.On("Run", ctx).Return(nil) - col.On("Status").Return((<-chan *collector.Status)(colStatus)) - col.On("Stop", mock.Anything).Return(nil) - - srv := NewStandaloneCollectorService(col) - - var err error - startedChan := make(chan struct{}) - go func() { - err = srv.Start(ctx) - close(startedChan) - }() - - select { - case <-startedChan: // OK - case <-time.After(2 * time.Second): - t.Fatalf("Start timed out") - } - - require.NoError(t, err) - - defer srv.Stop(context.Background()) - - select { - case err := <-srv.Error(): - require.Equal(t, colStatusErr, err) - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for error") - } - - require.Equal(t, 0, len(srv.Error()), "error channel has elements in it!") - }) - - t.Run("Collector status is not running", func(t *testing.T) { - col := mocks.NewMockCollector(t) - colStatus := make(chan *collector.Status, 1) - colStatus <- &collector.Status{ - Running: false, - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - col.On("Run", ctx).Return(nil) - col.On("Status").Return((<-chan *collector.Status)(colStatus)) - col.On("Stop", mock.Anything).Return(nil) - - srv := NewStandaloneCollectorService(col) - - var err error - startedChan := make(chan struct{}) - go func() { - err = srv.Start(ctx) - close(startedChan) - }() - - select { - case <-startedChan: // OK - case <-time.After(2 * time.Second): - t.Fatalf("Start timed out") - } - - require.NoError(t, err) - - defer srv.Stop(context.Background()) - - select { - case err := <-srv.Error(): - require.Contains(t, err.Error(), "collector unexpectedly stopped running") - case <-time.After(time.Second): - t.Fatalf("Timed out waiting for error") - } - - require.Equal(t, 0, len(srv.Error()), "error channel has elements in it!") - }) -} diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 3eb7703aa..86d248246 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -8,9 +8,11 @@ require ( github.com/client9/misspell v0.3.4 github.com/google/addlicense v1.1.1 github.com/mgechev/revive v1.5.0 + github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor v0.106.1 github.com/securego/gosec/v2 v2.18.2 github.com/uw-labs/lichen v0.1.7 github.com/vektra/mockery/v2 v2.49.0 + go.opentelemetry.io/collector/cmd/builder v0.114.0 go.opentelemetry.io/collector/cmd/mdatagen v0.114.0 golang.org/x/tools v0.27.0 ) @@ -20,18 +22,21 @@ require ( github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/bmatcuk/doublestar/v4 v4.0.2 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fatih/color v1.18.0 // indirect github.com/fatih/structtag v1.2.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/licenseclassifier v0.0.0-20201113175434-78a70215ca36 // indirect github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b // indirect github.com/google/uuid v1.6.0 // indirect github.com/gookit/color v1.5.4 // indirect + github.com/gorilla/websocket v1.5.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.7.0 // indirect @@ -42,7 +47,12 @@ require ( github.com/jinzhu/copier v0.3.5 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect + github.com/knadh/koanf/parsers/yaml v0.1.0 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect + github.com/knadh/koanf/providers/env v1.0.0 // indirect + github.com/knadh/koanf/providers/file v1.1.2 // indirect + github.com/knadh/koanf/providers/fs v0.1.0 // indirect + github.com/knadh/koanf/providers/rawbytes v0.1.0 // indirect github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -58,9 +68,10 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/open-telemetry/opamp-go v0.15.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.29.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect @@ -72,16 +83,20 @@ require ( github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.18.2 // indirect + github.com/stretchr/testify v1.9.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/urfave/cli/v2 v2.25.7 // indirect github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect go.opentelemetry.io/collector/confmap v1.20.0 // indirect go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 // indirect go.opentelemetry.io/collector/filter v0.114.0 // indirect go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 186c92536..c429ca3fb 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -6,6 +6,8 @@ github.com/bmatcuk/doublestar/v4 v4.0.2 h1:X0krlUVAVmtr2cRoTqR8aDMrDqnB36ht8wpWT github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= github.com/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= @@ -25,8 +27,8 @@ github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -52,6 +54,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -75,8 +79,18 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= +github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w= +github.com/knadh/koanf/parsers/yaml v0.1.0/go.mod h1:cvbUDC7AL23pImuQP0oRw/hPuccrNBS2bps8asS0CwY= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= +github.com/knadh/koanf/providers/env v1.0.0 h1:ufePaI9BnWH+ajuxGGiJ8pdTG0uLEUWC7/HDDPGLah0= +github.com/knadh/koanf/providers/env v1.0.0/go.mod h1:mzFyRZueYhb37oPmC1HAv/oGEEuyvJDA98r3XAa8Gak= +github.com/knadh/koanf/providers/file v1.1.2 h1:aCC36YGOgV5lTtAFz2qkgtWdeQsgfxUkxDOe+2nQY3w= +github.com/knadh/koanf/providers/file v1.1.2/go.mod h1:/faSBcv2mxPVjFrXck95qeoyoZ5myJ6uxN8OOVNJJCI= +github.com/knadh/koanf/providers/fs v0.1.0 h1:9Hln9GS3bWTItAnGVFYyfkoAIxAFq7pvlF64pTNiDdQ= +github.com/knadh/koanf/providers/fs v0.1.0/go.mod h1:Cva1yH8NBxkEeVZx8CUmF5TunbgO72E+GwqDbqpP2sE= +github.com/knadh/koanf/providers/rawbytes v0.1.0 h1:dpzgu2KO6uf6oCb4aP05KDmKmAmI51k5pe8RYKQ0qME= +github.com/knadh/koanf/providers/rawbytes v0.1.0/go.mod h1:mMTB1/IcJ/yE++A2iEZbY1MLygX7vttU+C+S/YmPu9c= github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -125,6 +139,10 @@ github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4 github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v1.28.1 h1:MijcGUbfYuznzK/5R4CPNoUP/9Xvuo20sXfEm6XxoTA= github.com/onsi/gomega v1.28.1/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/open-telemetry/opamp-go v0.15.0 h1:X2TWhEsGQ8GP7Uos3Ic9v/1aFUqoECZXKS7xAF5HqsA= +github.com/open-telemetry/opamp-go v0.15.0/go.mod h1:QyPeN56JXlcZt5yG5RMdZ50Ju+zMFs1Ihy/hwHyF8Oo= +github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor v0.106.1 h1:t/MV7t9HxAVk1jjjCdgvb5D8eIUrzC0c+gtrhW2zYYc= +github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor v0.106.1/go.mod h1:ekiMxh1bj0BurK0do5+PK1Mu/UUW9TlrrLQ3aoLnRBU= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -134,8 +152,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= @@ -164,8 +182,9 @@ github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -187,12 +206,18 @@ github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRT github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/collector/cmd/builder v0.114.0 h1:8XEVWeY2kr0RN3wlUUYp8A21/+vDHxzxIksHF4R08YM= +go.opentelemetry.io/collector/cmd/builder v0.114.0/go.mod h1:Y3sf8V37dIk4zMXTqbQsnt+fhLQjeRaTgmqNHm+uKNk= go.opentelemetry.io/collector/cmd/mdatagen v0.114.0 h1:hY0ODu4w5/mhHDC0M2ZVGrl1EgmCxZRxsDHug1MInB4= go.opentelemetry.io/collector/cmd/mdatagen v0.114.0/go.mod h1:zKXCrFYvBFndE7DKHWtk3AlvFf0aytHmhLT6OeuC7QQ= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= @@ -201,6 +226,8 @@ go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/internal/tools/tools.go b/internal/tools/tools.go index 532bb32cc..22ce5da6b 100644 --- a/internal/tools/tools.go +++ b/internal/tools/tools.go @@ -20,9 +20,11 @@ import ( _ "github.com/client9/misspell/cmd/misspell" _ "github.com/google/addlicense" _ "github.com/mgechev/revive" + _ "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor" _ "github.com/securego/gosec/v2/cmd/gosec" _ "github.com/uw-labs/lichen" _ "github.com/vektra/mockery/v2" + _ "go.opentelemetry.io/collector/cmd/builder" _ "go.opentelemetry.io/collector/cmd/mdatagen" _ "golang.org/x/tools/cmd/goimports" ) diff --git a/internal/version/go.mod b/internal/version/go.mod new file mode 100644 index 000000000..ef0215aca --- /dev/null +++ b/internal/version/go.mod @@ -0,0 +1,11 @@ +module github.com/observiq/bindplane-agent/internal/version + +go 1.21.9 + +require github.com/stretchr/testify v1.9.0 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/internal/version/go.sum b/internal/version/go.sum new file mode 100644 index 000000000..60ce688a0 --- /dev/null +++ b/internal/version/go.sum @@ -0,0 +1,10 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/version/version.go b/internal/version/version.go index d38c62dba..378c50ccb 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -12,27 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Package version exposes data on the collector set at compile time +// Package version exposes data on the collector package version -// these will be replaced at link time by make. +// these will be replaced at link time by make var ( - version = "latest" // Semantic version, or "latest" by default - gitHash = "unknown" // Commit hash from which this build was generated - date = "unknown" // Date the build was generated + version = "latest" // Semantic version, or "latest" by default ) // Version returns the version of the collector. func Version() string { return version } - -// GitHash returns the githash associated with the collector's version. -func GitHash() string { - return gitHash -} - -// Date returns the publish date associated with the collector's version. -func Date() string { - return date -} diff --git a/internal/version/version_test.go b/internal/version/version_test.go index 2c7956d5d..83c045a50 100644 --- a/internal/version/version_test.go +++ b/internal/version/version_test.go @@ -22,6 +22,4 @@ import ( func TestDefaults(t *testing.T) { require.Equal(t, version, Version()) - require.Equal(t, gitHash, GitHash()) - require.Equal(t, date, Date()) } diff --git a/manifests/README.md b/manifests/README.md new file mode 100644 index 000000000..f844fe4f9 --- /dev/null +++ b/manifests/README.md @@ -0,0 +1,14 @@ +# Manifests + +This folder contains pre-defined manifests that can be built using the [OCB](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder). + +Use and modify them as you see fit. Make sure you run `make install-tools` in the root of the project before building any manifests to ensure the builder and supervisor are installed. The [observIQ manifest](./observIQ/README.md) is built by default when running `make agent`. Other manifests can be built running `make distro MANIFEST="/path/to/manifest"`. For example the [minimal manifest](./minimal/README.md) can be built running this: + +``` +make distro MANIFEST="./manifests/minimal/manifest.yaml" +``` + +## Pre-defined Manifests + +- [observIQ](./observIQ/README.md) -- All components available in this repo, OpenTelemetry-Collector, and OpenTelemetry-Collector-Contrib. +- [minimal](./minimal/README.md) -- The minimal components needed to run the collector with the supervisor and connect to BindPlane OP. diff --git a/manifests/minimal/README.md b/manifests/minimal/README.md new file mode 100644 index 000000000..437a887f9 --- /dev/null +++ b/manifests/minimal/README.md @@ -0,0 +1,15 @@ +# Minimal manifest + +This manifest contains the minimal components needed to operate with the [opampsupervisor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor) and [BindPlane OP](https://observiq.com/). + +You can use this manifest as a base when constructing your own custom distribution. + +## Components + +This is a list of components that will be available to use in the resulting collector binary. + +| extensions | exporters | processors | receivers | connectors | +| :------------------- | :---------- | :--------- | :---------- | :--------- | +| healthcheckextension | nopexporter | | nopreceiver | | +| opampextension | | | | | +| bindplaneextension | | | | | diff --git a/manifests/minimal/manifest.yaml b/manifests/minimal/manifest.yaml new file mode 100644 index 000000000..3a792acdb --- /dev/null +++ b/manifests/minimal/manifest.yaml @@ -0,0 +1,39 @@ +dist: + module: github.com/observiq/bindplane-agent-ocb + name: observiq-distro + description: ObservIQ's minimal distro for OpenTelemetry Collector + version: "v0.0.1" + output_path: ./dist + otelcol_version: 0.105.0 + +conf_resolver: + default_uri_scheme: "env" + +extensions: + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/opampextension v0.105.0 + - gomod: github.com/observiq/bindplane-agent/extension/bindplaneextension v1.56.0 + path: "./extension/bindplaneextension" + +exporters: + - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.105.0 + +processors: + - gomod: github.com/observiq/bindplane-agent/processor/snapshotprocessor v1.56.0 + path: "./processor/snapshotprocessor" + +receivers: + - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.105.0 + +connectors: [] + +# When adding a replace, add a comment before it to document why it's needed and when it can be removed +replaces: + # See https://github.com/google/gnostic/issues/262 + - github.com/googleapis/gnostic v0.5.6 => github.com/googleapis/gnostic v0.5.5 + # See https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/12322#issuecomment-1185029670 + - github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 => github.com/docker/go-connections v0.4.0 + # see https://github.com/mattn/go-ieproxy/issues/45 + - github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy v0.0.1 + # see https://github.com/openshift/api/pull/1515 + - github.com/openshift/api => github.com/openshift/api v0.0.0-20230726162818-81f778f3b3ec diff --git a/manifests/observIQ/README.md b/manifests/observIQ/README.md new file mode 100644 index 000000000..bea5412c9 --- /dev/null +++ b/manifests/observIQ/README.md @@ -0,0 +1,38 @@ +# observIQ manifest + +This manifest contains all components available in [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/v0.105.0), [OpenTelemetryContrib](https://github.com/open-telemetry/opentelemetry-collector-contrib), and custom components defined in this repo. The options available here match parity with what was available to the BindPlane Agent v1. + +## Components + +This is a list of components that will be available to use in the resulting collector binary. + +| extensions | exporters | processors | receivers | connectors | +| :------------------------ | :----------------------------- | :---------------------------- | :----------------------------- | :-------------------- | +| zpagesextension | debugexporter | batchprocessor | nopreceiver | forwardconnector | +| ballastextension | loggingexporter | memorylimiterprocessor | otlpreceiver | countconnector | +| ackextension | nopexporter | attributesprocessor | activedirectorydsreceiver | datadogconnector | +| asapauthextension | otlpexporter | cumulativetodeltaprocessor | aerospikereceiver | exceptionsconnector | +| awsproxy | otlphttpexporter | deltatorateprocessor | apachereceiver | grafanacloudconnector | +| basicauthextension | alibabacloudlogserviceexporter | filterprocessor | apachesparkreceiver | roundrobinconnector | +| bearertokenauthextension | awscloudwatchlogsexporter | groupbyattrsprocessor | awscloudwatchreceiver | routingconnector | +| jaegerencodingextension | awsemfexporter | groupbytraceprocessor | awscontainerinsightreceiver | servicegraphconnector | +| otlpencodingextension | awskinesisexporter | k8sattributesprocessor | awsecscontainermetricsreceiver | spanmetricsconnector | +| zipkinencodingextension | awsxrayexporter | metricsgenerationprocessor | awsfirehosereceiver | | +| headerssetterextension | awss3exporter | metricstransformprocessor | awsxrayreceiver | | +| healthcheckextension | azuredataexplorerexporter | probabilisticsamplerprocessor | azureblobreceiver | | +| httpforwarderextension | azuremonitorexporter | redactionprocessor | azureeventhubreceiver | | +| jaegerremotesampling | carbonexporter | remotetapprocessor | azuremonitorreceiver | | +| oauth2clientauthextension | cassandraexporter | resourcedetectionprocessor | bigipreceiver | | +| dockerobserver | clickhouseexporter | resourceprocessor | carbonreceiver | | +| ecsobserver | coralogixexporter | routingprocessor | chronyreceiver | | +| ecstaskobserver | datadogexporter | spanprocessor | cloudflarereceiver | | +| hostobserver | datasetexporter | sumologicprocessor | cloudfoundryreceiver | | +| k8sobserver | elasticsearchexporter | tailsamplingprocessor | collectdreceiver | | +| oidcauthextension | fileexporter | transformprocessor | couchdbreceiver | | +| opampextension | googlecloudpubsubexporter | datapointcountprocessor | datadogreceiver | | +| pprofextension | honeycombmarkerexporter | logcountprocessor | dockerstatsreceiver | | +| sigv4authextension | influxdbexporter | logdeduplicationprocessor | elasticsearchreceiver | | +| filestorage | instanaexporter | lookupprocessor | expvarreceiver | | +| dbstorage | kafkaexporter | maskprocessor | filelogreceiver | | +| bindplaneextension | loadbalancingexporter | metricextractprocessor | filestatsreceiver | | +| | logicmonitorexporter | diff --git a/manifests/observIQ/manifest.yaml b/manifests/observIQ/manifest.yaml new file mode 100644 index 000000000..f8a005cd2 --- /dev/null +++ b/manifests/observIQ/manifest.yaml @@ -0,0 +1,286 @@ +# This manifest is a combination of the upstream opentelemetry-collector-contrib manifest & components unique to observIQ's distribution. +# https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml +dist: + module: github.com/observiq/bindplane-agent + name: observiq-otel-collector + description: ObservIQ's custom distro for OpenTelemetry Collector + version: "v2.0.0" + output_path: ./builder + otelcol_version: 0.105.0 + +conf_resolver: + default_uri_scheme: "env" + +extensions: + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.105.0 + - gomod: go.opentelemetry.io/collector/extension/ballastextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/asapauthextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarderextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/opampextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/dbstorage v0.105.0 + - gomod: github.com/observiq/bindplane-agent/extension/bindplaneextension v1.57.0 + path: "./extension/bindplaneextension" + +exporters: + - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.105.0 + - gomod: go.opentelemetry.io/collector/exporter/loggingexporter v0.105.0 + - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.105.0 + - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.105.0 + - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuredataexplorerexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datasetexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/honeycombmarkerexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/instanaexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logicmonitorexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/mezmoexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opensearchexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/pulsarexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/tencentcloudlogserviceexporter v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter v0.105.0 + - gomod: github.com/observiq/bindplane-agent/exporter/azureblobexporter v1.57.0 + path: "./exporter/azureblobexporter" + - gomod: github.com/observiq/bindplane-agent/exporter/chronicleexporter v1.57.0 + path: "./exporter/chronicleexporter" + - gomod: github.com/observiq/bindplane-agent/exporter/chronicleforwarderexporter v1.57.0 + path: "./exporter/chronicleforwarderexporter" + - gomod: github.com/observiq/bindplane-agent/exporter/googlecloudexporter v1.57.0 + path: "./exporter/googlecloudexporter" + - gomod: github.com/observiq/bindplane-agent/exporter/googlemanagedprometheusexporter v1.57.0 + path: "./exporter/googlemanagedprometheusexporter" + - gomod: github.com/observiq/bindplane-agent/exporter/snowflakeexporter v1.57.0 + path: "./exporter/snowflakeexporter" + +processors: + - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.105.0 + - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/redactionprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/remotetapprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/sumologicprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.105.0 + - gomod: github.com/observiq/bindplane-agent/processor/datapointcountprocessor v1.57.0 + path: "./processor/datapointcountprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/logcountprocessor v1.57.0 + path: "./processor/logcountprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/logdeduplicationprocessor v1.57.0 + path: "./processor/logdeduplicationprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/lookupprocessor v1.57.0 + path: "./processor/lookupprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/maskprocessor v1.57.0 + path: "./processor/maskprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/metricextractprocessor v1.57.0 + path: "./processor/metricextractprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/metricstatsprocessor v1.57.0 + path: "./processor/metricstatsprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/removeemptyvaluesprocessor v1.57.0 + path: "./processor/removeemptyvaluesprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/resourceattributetransposerprocessor v1.57.0 + path: "./processor/resourceattributetransposerprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/samplingprocessor v1.57.0 + path: "./processor/samplingprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/snapshotprocessor v1.57.0 + path: "./processor/snapshotprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/spancountprocessor v1.57.0 + path: "./processor/spancountprocessor" + - gomod: github.com/observiq/bindplane-agent/processor/throughputmeasurementprocessor v1.57.0 + path: "./processor/throughputmeasurementprocessor" + +receivers: + - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.105.0 + - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureblobreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azureeventhubreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/azuremonitorreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/chronyreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/elasticsearchreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/expvarreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/flinkmetricsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/haproxyreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/iisreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/lokireceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/namedpipereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nginxreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/nsxtreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/oracledbreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/otlpjsonfilereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/purefareceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/purefbreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/pulsarreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/rabbitmqreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/saphanareceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/skywalkingreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snmpreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/snowflakereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlqueryreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sqlserverreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sshcheckreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/wavefrontreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/webhookeventreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver v0.105.0 + - gomod: github.com/observiq/bindplane-agent/receiver/awss3rehydrationreceiver v1.57.0 + path: "./receiver/awss3rehydrationreceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/azureblobrehydrationreceiver v1.57.0 + path: "./receiver/azureblobrehydrationreceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/httpreceiver v1.57.0 + path: "./receiver/httpreceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/m365receiver v1.57.0 + path: "./receiver/m365receiver" + - gomod: github.com/observiq/bindplane-agent/receiver/pluginreceiver v1.57.0 + path: "./receiver/pluginreceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/routereceiver v1.57.0 + path: "./receiver/routereceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/sapnetweaverreceiver v1.57.0 + path: "./receiver/sapnetweaverreceiver" + - gomod: github.com/observiq/bindplane-agent/receiver/telemetrygeneratorreceiver v1.57.0 + path: "./receiver/telemetrygeneratorreceiver" + +connectors: + - gomod: go.opentelemetry.io/collector/connector/forwardconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/exceptionsconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/grafanacloudconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/roundrobinconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.105.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.105.0 + +# When adding a replace, add a comment before it to document why it's needed and when it can be removed +replaces: + # See https://github.com/google/gnostic/issues/262 + - github.com/googleapis/gnostic v0.5.6 => github.com/googleapis/gnostic v0.5.5 + # See https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/12322#issuecomment-1185029670 + - github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 => github.com/docker/go-connections v0.4.0 + # see https://github.com/mattn/go-ieproxy/issues/45 + - github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy v0.0.1 + # see https://github.com/openshift/api/pull/1515 + - github.com/openshift/api => github.com/openshift/api v0.0.0-20230726162818-81f778f3b3ec + + # replace for datapointcountprocessor + - github.com/observiq/bindplane-agent/receiver/routereceiver => ../receiver/routereceiver + # replace statements for internal imports + - github.com/observiq/bindplane-agent/internal/expr => ../internal/expr + - github.com/observiq/bindplane-agent/internal/counter => ../internal/counter + - github.com/observiq/bindplane-agent/internal/report => ../internal/report + - github.com/observiq/bindplane-agent/internal/testutils => ../internal/testutils diff --git a/opamp/client.go b/opamp/client.go deleted file mode 100644 index 3659ddeaa..000000000 --- a/opamp/client.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import "context" - -// Client implements a connection with OpAmp enabled server -// -//go:generate mockery --name Client --filename mock_client.go --structname MockClient -type Client interface { - - // Connect initiates a connection to the OpAmp server based on the supplied configuration - Connect(ctx context.Context) error - - // Disconnect disconnects from the server - Disconnect(ctx context.Context) error -} diff --git a/opamp/config.go b/opamp/config.go deleted file mode 100644 index 7b9f5bc81..000000000 --- a/opamp/config.go +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "context" - "crypto/tls" - "crypto/x509" - "errors" - "fmt" - "maps" - "os" - "path/filepath" - "time" - - "github.com/google/uuid" - "github.com/oklog/ulid/v2" - "github.com/open-telemetry/opamp-go/client/types" - "go.opentelemetry.io/collector/confmap" - "go.opentelemetry.io/collector/confmap/provider/envprovider" - "go.opentelemetry.io/collector/confmap/provider/fileprovider" -) - -var ( - // errPrefixResolverInitialization for error when initializing config file resolver - errPrefixResolverInitialization = "failed to initialize OpAmp config resolver" - - // errPrefixReadFile for error when reading config file - errPrefixReadFile = "failed to read OpAmp config file" - - // errPrefixParse for error when parsing config - errPrefixParse = "failed to parse OpAmp config" - - // errMissingTLSFiles is the error when only one of Key or Cert is specified - errMissingTLSFiles = "must specify both Key and Certificate file" - - // errInvalidKeyFile for key file that is not readable - errInvalidKeyFile = "failed to read TLS key file" - - // errInvalidCertFile for cert file that is not readable - errInvalidCertFile = "failed to read TLS cert file" - - // errInvalidCAFile for ca file that is not readable - errInvalidCAFile = "failed to read TLS CA file" -) - -type agentIDType string - -const ( - agentIDTypeULID agentIDType = "ULID" - agentIDTypeUUID agentIDType = "UUID" -) - -// AgentID represents the ID of the agent -type AgentID struct { - by [16]byte - idType agentIDType - orig string -} - -// EmptyAgentID represents an empty/unset agent ID. -var EmptyAgentID = AgentID{} - -// ParseAgentID parses an agent ID from the given string -func ParseAgentID(s string) (AgentID, error) { - switch len(s) { - case 26: - // length 26 strings can't be UUID, so they must be ULID - u, err := ulid.Parse(s) - if err != nil { - return AgentID{}, fmt.Errorf("parse ulid: %w", err) - } - return AgentID{ - by: u, - idType: agentIDTypeULID, - orig: s, - }, nil - - default: - // Try parsing as a UUID. There are a couple forms of UUID supported for parsing, so they may be a couple different - // lengths - u, err := uuid.Parse(s) - if err != nil { - return AgentID{}, fmt.Errorf("parse uuid: %w", err) - } - return AgentID{ - by: u, - idType: agentIDTypeUUID, - orig: s, - }, nil - } -} - -// AgentIDFromUUID creates an agent ID from a generated UUID. -// See ParseAgentID for parsing a UUID string. -func AgentIDFromUUID(u uuid.UUID) AgentID { - return AgentID{ - by: u, - idType: agentIDTypeUUID, - orig: u.String(), - } -} - -// String returns a string representation of the agent ID -func (a AgentID) String() string { - return a.orig -} - -// OpAMPInstanceUID returns the opamp representation of the agent ID -func (a AgentID) OpAMPInstanceUID() types.InstanceUid { - return types.InstanceUid(a.by) -} - -// Type returns the string type of the agent ID (ULID, UUID) as it should -// be reported to BindPlane. -func (a AgentID) Type() string { - return string(a.idType) -} - -// MarshalYAML implements the yaml.Marshaler interface -func (a AgentID) MarshalYAML() (any, error) { - return a.String(), nil -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface -func (a *AgentID) UnmarshalYAML(unmarshal func(any) error) error { - var s string - - err := unmarshal(&s) - if err != nil { - return err - } - - if s == "" { - // Empty string = keep the 0 value - return nil - } - - u, err := ParseAgentID(s) - if err != nil { - // In order to maintain backwards compatability, we don't error here. - // Instead, in main, we will regenerate a new agent ID - *a = EmptyAgentID - return nil - } - - *a = AgentID(u) - - return nil -} - -// UnmarshalText implements the encoding.TextUnmarshaler interface -func (a *AgentID) UnmarshalText(text []byte) error { - s := string(text) - - if s == "" { - // Empty string = keep the 0 value - return nil - } - - u, err := ParseAgentID(s) - if err != nil { - // In order to maintain backwards compatability, we don't error here. - // Instead, in main, we will regenerate a new agent ID - *a = EmptyAgentID - return nil - } - - *a = AgentID(u) - - return nil -} - -// MarshalText implements the encoding.TextMarshaler interface -func (a *AgentID) MarshalText() ([]byte, error) { - // Format the time in your desired format - return []byte(a.String()), nil -} - -// Config contains the configuration for the collector to communicate with an OpAmp enabled platform. -type Config struct { - Endpoint string `yaml:"endpoint" mapstructure:"endpoint"` - SecretKey *string `yaml:"secret_key,omitempty" mapstructure:"secret_key,omitempty"` - AgentID AgentID `yaml:"agent_id" mapstructure:"agent_id"` - TLS *TLSConfig `yaml:"tls_config,omitempty" mapstructure:"tls_config,omitempty"` - - // Updatable fields - Labels *string `yaml:"labels,omitempty" mapstructure:"labels,omitempty"` - AgentName *string `yaml:"agent_name,omitempty" mapstructure:"agent_name,omitempty"` - MeasurementsInterval time.Duration `yaml:"measurements_interval,omitempty" mapstructure:"measurements_interval,omitempty"` - ExtraMeasurementsAttributes map[string]string `yaml:"extra_measurements_attributes,omitempty" mapstructure:"extra_measurements_attributes,omitempty"` -} - -// TLSConfig represents the TLS config to connect to OpAmp server -type TLSConfig struct { - InsecureSkipVerify bool `yaml:"insecure_skip_verify" mapstructure:"insecure_skip_verify"` - KeyFile *string `yaml:"key_file" mapstructure:"key_file"` - CertFile *string `yaml:"cert_file" mapstructure:"cert_file"` - CAFile *string `yaml:"ca_file" mapstructure:"ca_file"` -} - -// ToTLS converts the config to a tls.Config -func (c Config) ToTLS(caCertPool *x509.CertPool) (*tls.Config, error) { - if c.TLS == nil { - return nil, nil - } - - tlsConfig := &tls.Config{ - MinVersion: tls.VersionTLS12, - } - - if c.TLS.InsecureSkipVerify { - tlsConfig.InsecureSkipVerify = true - return tlsConfig, nil - } - - // Load CA cert if specified - if c.TLS.CAFile != nil { - caCert, err := os.ReadFile(*c.TLS.CAFile) - if err != nil { - return nil, fmt.Errorf("failed to read CA file: %w", err) - } - if caCertPool == nil { - caCertPool = x509.NewCertPool() - } - caCertPool.AppendCertsFromPEM(caCert) - - tlsConfig.RootCAs = caCertPool - } - - // Load cert and key file if specified - if c.TLS.CertFile != nil && c.TLS.KeyFile != nil { - cert, err := tls.LoadX509KeyPair(*c.TLS.CertFile, *c.TLS.KeyFile) - if err != nil { - return nil, fmt.Errorf("failed to read Key and Cert file: %w", err) - } - - tlsConfig.Certificates = []tls.Certificate{cert} - } - - return tlsConfig, nil -} - -// ParseConfig given a configuration file location will parse the config -func ParseConfig(configLocation string) (*Config, error) { - configPath := filepath.Clean(configLocation) - - resolverSettings := confmap.ResolverSettings{ - URIs: []string{configPath}, - ProviderFactories: []confmap.ProviderFactory{ - fileprovider.NewFactory(), - envprovider.NewFactory(), - }, - ConverterFactories: []confmap.ConverterFactory{}, - DefaultScheme: "env", - } - - resolver, err := confmap.NewResolver(resolverSettings) - if err != nil { - return nil, fmt.Errorf("%s: %w", errPrefixResolverInitialization, err) - } - - conf, err := resolver.Resolve(context.Background()) - if err != nil { - return nil, fmt.Errorf("%s: %w", errPrefixReadFile, err) - } - - var config Config - if err = conf.Unmarshal(&config); err != nil { - return nil, fmt.Errorf("%s: %w", errPrefixParse, err) - } - - // Using Secure TLS check files - if config.TLS != nil && !config.TLS.InsecureSkipVerify { - // If CA file is specified - if config.TLS.CAFile != nil { - // Validate CA file exists on disk - if _, err := os.Stat(*config.TLS.CAFile); errors.Is(err, os.ErrNotExist) { - return nil, errors.New(errInvalidCAFile) - } - } - - switch { - case config.TLS.CertFile == nil && config.TLS.KeyFile == nil: // Not using mTLS - // Nothing to do. This case exists to make it easier to check all happy permutations for Key and Cert files - case config.TLS.CertFile != nil && config.TLS.KeyFile != nil: // Validate both files exist - if _, err := os.Stat(*config.TLS.KeyFile); errors.Is(err, os.ErrNotExist) { - return nil, errors.New(errInvalidKeyFile) - } - - if _, err := os.Stat(*config.TLS.CertFile); errors.Is(err, os.ErrNotExist) { - return nil, errors.New(errInvalidCertFile) - } - default: // Case with only one file is specified - return nil, errors.New(errMissingTLSFiles) - } - } - return &config, nil -} - -// Copy creates a deep copy of this config -func (c Config) Copy() *Config { - - cfgCopy := &Config{ - Endpoint: c.Endpoint, - AgentID: c.AgentID, - MeasurementsInterval: c.MeasurementsInterval, - } - - if c.SecretKey != nil { - cfgCopy.SecretKey = new(string) - *cfgCopy.SecretKey = *c.SecretKey - } - if c.Labels != nil { - cfgCopy.Labels = new(string) - *cfgCopy.Labels = *c.Labels - } - if c.AgentName != nil { - cfgCopy.AgentName = new(string) - *cfgCopy.AgentName = *c.AgentName - } - if c.TLS != nil { - cfgCopy.TLS = c.TLS.copy() - } - if c.ExtraMeasurementsAttributes != nil { - cfgCopy.ExtraMeasurementsAttributes = maps.Clone(c.ExtraMeasurementsAttributes) - } - - return cfgCopy -} - -func (t TLSConfig) copy() *TLSConfig { - tlsCopy := TLSConfig{ - InsecureSkipVerify: t.InsecureSkipVerify, - } - - if t.CertFile != nil { - tlsCopy.CertFile = new(string) - *tlsCopy.CertFile = *t.CertFile - } - if t.KeyFile != nil { - tlsCopy.KeyFile = new(string) - *tlsCopy.KeyFile = *t.KeyFile - } - if t.CAFile != nil { - tlsCopy.CAFile = new(string) - *tlsCopy.CAFile = *t.CAFile - } - - return &tlsCopy -} - -// GetSecretKey returns secret key if set else returns empty string -func (c Config) GetSecretKey() string { - if c.SecretKey == nil { - return "" - } - - return *c.SecretKey -} - -// CmpUpdatableFields compares updatable fields for equality -func (c Config) CmpUpdatableFields(o Config) (equal bool) { - if !cmpStringPtr(c.AgentName, o.AgentName) { - return false - } - - if c.MeasurementsInterval != o.MeasurementsInterval { - return false - } - - if !maps.Equal(c.ExtraMeasurementsAttributes, o.ExtraMeasurementsAttributes) { - return false - } - - return cmpStringPtr(c.Labels, o.Labels) -} - -func cmpStringPtr(p1, p2 *string) bool { - switch { - case p1 == nil && p2 == nil: - return true - case p1 == nil && p2 != nil: - fallthrough - case p1 != nil && p2 == nil: - fallthrough - case *p1 != *p2: - return false - default: - return true - } -} diff --git a/opamp/config_manager.go b/opamp/config_manager.go deleted file mode 100644 index ff1eae48b..000000000 --- a/opamp/config_manager.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "path/filepath" - - "github.com/open-telemetry/opamp-go/protobufs" -) - -const ( - // YAMLContentType content type for .yml or .yaml file - YAMLContentType = "text/yaml" - - // JSONContentType content type for .json file - JSONContentType = "text/json" -) - -// ConfigManager handles remote configuration of local configs -// -//go:generate mockery --name ConfigManager --filename mock_config_manager.go --structname MockConfigManager -type ConfigManager interface { - // AddConfig adds a config to be tracked by the config manager with it's corresponding validator function. - AddConfig(configName string, reloader *ManagedConfig) - - // ComposeEffectiveConfig reads in all config files and calculates the effective config - ComposeEffectiveConfig() (*protobufs.EffectiveConfig, error) - - // ApplyConfigChanges compares the remoteConfig to the existing and applies changes. - // Calculates new effective config - ApplyConfigChanges(remoteConfig *protobufs.AgentRemoteConfig) (changed bool, err error) -} - -// DetermineContentType looks at the file extension for the given filepath and returns the content type -func DetermineContentType(filePath string) string { - extension := filepath.Ext(filePath) - - switch extension { - case ".json": - return JSONContentType - case ".yml", ".yaml": - return YAMLContentType - default: - return "" - } -} diff --git a/opamp/config_manager_test.go b/opamp/config_manager_test.go deleted file mode 100644 index 9b8ce7735..000000000 --- a/opamp/config_manager_test.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestDetermineContentType(t *testing.T) { - testCases := []struct { - desc string - filePath string - expected string - }{ - { - desc: "json file", - filePath: "path/to/my.json", - expected: JSONContentType, - }, - { - desc: "YAML file yml extension", - filePath: "path/to/my.yml", - expected: YAMLContentType, - }, - { - desc: "YAML file yaml extension", - filePath: "path/to/my.yaml", - expected: YAMLContentType, - }, - { - desc: "Unknown", - filePath: "path/to/my.unicorn", - expected: "", - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - actual := DetermineContentType(tc.filePath) - assert.Equal(t, tc.expected, actual) - }) - } -} diff --git a/opamp/config_test.go b/opamp/config_test.go deleted file mode 100644 index 58c547efe..000000000 --- a/opamp/config_test.go +++ /dev/null @@ -1,1197 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "crypto/tls" - "crypto/x509" - "fmt" - "os" - "path/filepath" - "testing" - - "github.com/google/uuid" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" -) - -// Must is a helper function for tests that panics if there is an error creating the object of type T -func Must[T any](t T, err error) T { - if err != nil { - panic(err) - } - return t -} - -var testAgentIDString = "01HX2DWEQZ045KQR3VG0EYEZ94" -var testAgentID = Must(ParseAgentID(testAgentIDString)) - -func TestToTLS(t *testing.T) { - invalidCAFile := "/some/bad/file-ca.crt" - invalidKeyFile := "/some/bad/file.key" - invalidCertFile := "/some/bad/file.crt" - caFileContents := "./testdata/test-ca.crt" - keyFileContents := "./testdata/test.key" - certFileContents := "./testdata/test.crt" - - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "No TLS Provided", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: nil, - } - - actual, err := cfg.ToTLS(nil) - assert.NoError(t, err) - assert.Nil(t, actual) - }, - }, - { - desc: "TLS Insecure", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: true, - }, - } - - expectedConfig := tls.Config{ - InsecureSkipVerify: true, - MinVersion: tls.VersionTLS12, - } - - actual, err := cfg.ToTLS(nil) - assert.NoError(t, err) - assert.Equal(t, &expectedConfig, actual) - }, - }, - { - desc: "Insecure False, No Files Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - }, - } - - expectedConfig := tls.Config{ - MinVersion: tls.VersionTLS12, - } - - actual, err := cfg.ToTLS(nil) - assert.NoError(t, err) - assert.Equal(t, &expectedConfig, actual) - }, - }, - { - desc: "Insecure False, Invalid CA File Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - CAFile: &invalidCAFile, - }, - } - - actual, err := cfg.ToTLS(nil) - assert.ErrorContains(t, err, "failed to read CA file") - assert.Nil(t, actual) - }, - }, - { - desc: "Insecure False, Valid CA File Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - CAFile: &caFileContents, - }, - } - - actual, err := cfg.ToTLS(nil) - assert.NoError(t, err) - assert.NotNil(t, actual) - assert.False(t, actual.InsecureSkipVerify) - - // Can't compare root CA's due to embedded function in Cert Pool structure - }, - }, - { - desc: "Insecure False, Invalid Key and Cert Files Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - KeyFile: &invalidKeyFile, - CertFile: &invalidCertFile, - }, - } - - _, err := tls.LoadX509KeyPair(invalidCertFile, invalidKeyFile) - errinvalidKeyorCertFile := fmt.Sprintf("failed to read Key and Cert file: %s", err) - - actual, err := cfg.ToTLS(nil) - assert.ErrorContains(t, err, errinvalidKeyorCertFile) - assert.Nil(t, actual) - }, - }, - { - desc: "Insecure False, Valid Key and Cert Files Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - KeyFile: &keyFileContents, - CertFile: &certFileContents, - }, - } - - expectedConfig := tls.Config{ - MinVersion: tls.VersionTLS12, - } - - cert, err := tls.LoadX509KeyPair(certFileContents, keyFileContents) - require.NoError(t, err) - expectedConfig.Certificates = []tls.Certificate{cert} - - actual, err := cfg.ToTLS(nil) - assert.NoError(t, err) - assert.Equal(t, &expectedConfig, actual) - }, - }, - { - desc: "Insecure False, All TLS Files Valid and Specified", - testFunc: func(t *testing.T) { - cfg := Config{ - TLS: &TLSConfig{ - InsecureSkipVerify: false, - CAFile: &caFileContents, - KeyFile: &keyFileContents, - CertFile: &certFileContents, - }, - } - - expectedConfig := tls.Config{ - MinVersion: tls.VersionTLS12, - } - - caCert, err := os.ReadFile(caFileContents) - require.NoError(t, err) - caCertPool := x509.NewCertPool() - caCertPool.AppendCertsFromPEM(caCert) - expectedConfig.RootCAs = caCertPool - - cert, err := tls.LoadX509KeyPair(certFileContents, keyFileContents) - require.NoError(t, err) - expectedConfig.Certificates = []tls.Certificate{cert} - - actual, err := cfg.ToTLS(caCertPool) - assert.NoError(t, err) - - assert.Equal(t, &expectedConfig, actual) - }, - }, - } - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestParseConfig(t *testing.T) { - // Keep this outside so it can be referenced as pointer - secretKeyContents := "b92222ee-a1fc-4bb1-98db-26de3448541b" - labelsContents := "one=foo,two=bar" - agentNameContents := "My Agent" - - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Failed File Read", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errPrefixReadFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "Failed Marshal", - testFunc: func(t *testing.T) { - configContents := ` - { - "endpoint": "localhost:1234" - }` - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errPrefixReadFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "Successful Full Parse", - testFunc: func(t *testing.T) { - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -`, testAgentIDString) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Partial Parse", - testFunc: func(t *testing.T) { - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -agent_id: %s -`, testAgentIDString) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: nil, - AgentID: testAgentID, - Labels: nil, - AgentName: nil, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Full Parse with TLS Insecure Skip Verify", - testFunc: func(t *testing.T) { - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: true -`, testAgentIDString) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &TLSConfig{ - InsecureSkipVerify: true, - }, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Full Parse with TLS Secure Root CA", - testFunc: func(t *testing.T) { - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false -`, testAgentIDString) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &TLSConfig{ - InsecureSkipVerify: false, - }, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "TLS Invalid CA File", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - configContents := ` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - ca_file: /some/bad/file-ca.crt -` - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errInvalidCAFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "TLS Valid CA File", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - caPath := filepath.Join(tmpDir, "file-ca.crt") - f, err := os.Create(caPath) - require.NoError(t, err) - defer f.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - ca_file: %s -`, testAgentIDString, caPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &TLSConfig{ - InsecureSkipVerify: false, - CAFile: &caPath, - }, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "TLS Invalid Key and Cert File", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - configContents := ` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: /some/bad/file.key - cert_file: /some/bad/file.crt -` - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errInvalidKeyFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "TLS Valid Key File Invalid Cert File", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - keyPath := filepath.Join(tmpDir, "file-key.crt") - k, err := os.Create(keyPath) - require.NoError(t, err) - defer k.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: %s - cert_file: /some/bad/file.crt -`, keyPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errInvalidCertFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "TLS Valid Cert File Invalid Key File", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - certPath := filepath.Join(tmpDir, "file-cert.crt") - c, err := os.Create(certPath) - require.NoError(t, err) - defer c.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: /some/bad/file.key - cert_file: %s -`, certPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errInvalidKeyFile) - assert.Nil(t, cfg) - }, - }, - { - desc: "TLS Only Valid Key File Provided", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - keyPath := filepath.Join(tmpDir, "file-cert.crt") - k, err := os.Create(keyPath) - require.NoError(t, err) - defer k.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: %s -`, keyPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errMissingTLSFiles) - assert.Nil(t, cfg) - }, - }, - { - desc: "TLS Only Valid Cert File Provided", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - certPath := filepath.Join(tmpDir, "file-cert.crt") - c, err := os.Create(certPath) - require.NoError(t, err) - defer c.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: 01HX2DWEQZ045KQR3VG0EYEZ94 -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - cert_file: %s -`, certPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - cfg, err := ParseConfig(configPath) - assert.ErrorContains(t, err, errMissingTLSFiles) - assert.Nil(t, cfg) - }, - }, - { - desc: "Successful Full Parse with TLS Valid Key and Cert Files", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - keyPath := filepath.Join(tmpDir, "file-key.crt") - k, err := os.Create(keyPath) - require.NoError(t, err) - defer k.Close() - - certPath := filepath.Join(tmpDir, "file-cert.crt") - c, err := os.Create(certPath) - require.NoError(t, err) - defer c.Close() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: %s - cert_file: %s -`, testAgentIDString, keyPath, certPath) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &TLSConfig{ - InsecureSkipVerify: false, - KeyFile: &keyPath, - CertFile: &certPath, - }, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Parse With Environment Variables", - testFunc: func(t *testing.T) { - endpointEnvVar := "TEST_ENDPOINT" - require.NoError(t, os.Setenv(endpointEnvVar, "localhost:1234")) - defer func() { - require.NoError(t, os.Unsetenv(endpointEnvVar)) - }() - - secretKeyEnvVar := "TEST_SECRET_KEY" - require.NoError(t, os.Setenv(secretKeyEnvVar, secretKeyContents)) - defer func() { - require.NoError(t, os.Unsetenv(secretKeyEnvVar)) - }() - - agentIDEnvVar := "TEST_AGENT_ID" - require.NoError(t, os.Setenv(agentIDEnvVar, testAgentIDString)) - defer func() { - require.NoError(t, os.Unsetenv(agentIDEnvVar)) - }() - - labelsEnvVar := "TEST_LABELS" - require.NoError(t, os.Setenv(labelsEnvVar, "one=foo,two=bar")) - defer func() { - require.NoError(t, os.Unsetenv(labelsEnvVar)) - }() - - agentNameEnvVar := "TEST_AGENT_NAME" - require.NoError(t, os.Setenv(agentNameEnvVar, "My Agent")) - defer func() { - require.NoError(t, os.Unsetenv(agentNameEnvVar)) - }() - - configContents := fmt.Sprintf(` -endpoint: ${%s} -secret_key: ${%s} -agent_id: ${%s} -labels: ${%s} -agent_name: ${%s} -`, endpointEnvVar, secretKeyEnvVar, agentIDEnvVar, labelsEnvVar, agentNameEnvVar) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Parse With env:Environment Variables", - testFunc: func(t *testing.T) { - endpointEnvVar := "TEST_ENDPOINT" - require.NoError(t, os.Setenv(endpointEnvVar, "localhost:1234")) - defer func() { - require.NoError(t, os.Unsetenv(endpointEnvVar)) - }() - - secretKeyEnvVar := "TEST_SECRET_KEY" - require.NoError(t, os.Setenv(secretKeyEnvVar, secretKeyContents)) - defer func() { - require.NoError(t, os.Unsetenv(secretKeyEnvVar)) - }() - - agentIDEnvVar := "TEST_AGENT_ID" - require.NoError(t, os.Setenv(agentIDEnvVar, testAgentIDString)) - defer func() { - require.NoError(t, os.Unsetenv(agentIDEnvVar)) - }() - - labelsEnvVar := "TEST_LABELS" - require.NoError(t, os.Setenv(labelsEnvVar, "one=foo,two=bar")) - defer func() { - require.NoError(t, os.Unsetenv(labelsEnvVar)) - }() - - agentNameEnvVar := "TEST_AGENT_NAME" - require.NoError(t, os.Setenv(agentNameEnvVar, "My Agent")) - defer func() { - require.NoError(t, os.Unsetenv(agentNameEnvVar)) - }() - - configContents := fmt.Sprintf(` -endpoint: ${env:%s} -secret_key: ${env:%s} -agent_id: ${env:%s} -labels: ${env:%s} -agent_name: ${env:%s} -`, endpointEnvVar, secretKeyEnvVar, agentIDEnvVar, labelsEnvVar, agentNameEnvVar) - - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - err := os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - { - desc: "Successful Full Parse with TLS Valid Key and Cert Environment Variables", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, "manager.yml") - - keyPath := filepath.Join(tmpDir, "file-key.crt") - k, err := os.Create(keyPath) - require.NoError(t, err) - defer k.Close() - - certPath := filepath.Join(tmpDir, "file-cert.crt") - c, err := os.Create(certPath) - require.NoError(t, err) - defer c.Close() - - keyEnvVariable := "TEST_TLS_KEY" - require.NoError(t, os.Setenv(keyEnvVariable, keyPath)) - defer func() { - require.NoError(t, os.Unsetenv(keyEnvVariable)) - }() - - certEnvVariable := "TEST_TLS_CERT" - require.NoError(t, os.Setenv(certEnvVariable, certPath)) - defer func() { - require.NoError(t, os.Unsetenv(certEnvVariable)) - }() - - configContents := fmt.Sprintf(` -endpoint: localhost:1234 -secret_key: b92222ee-a1fc-4bb1-98db-26de3448541b -agent_id: %s -labels: "one=foo,two=bar" -agent_name: "My Agent" -tls_config: - insecure_skip_verify: false - key_file: ${%s} - cert_file: ${%s} -`, testAgentIDString, keyEnvVariable, certEnvVariable) - - err = os.WriteFile(configPath, []byte(configContents), os.ModePerm) - require.NoError(t, err) - - expectedConfig := &Config{ - Endpoint: "localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &TLSConfig{ - InsecureSkipVerify: false, - KeyFile: &keyPath, - CertFile: &certPath, - }, - } - - cfg, err := ParseConfig(configPath) - assert.NoError(t, err) - assert.Equal(t, expectedConfig, cfg) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestCmpUpdatableFields(t *testing.T) { - secretKeyContents := "b92222ee-a1fc-4bb1-98db-26de3448541b" - nameOne, nameTwo := "one", "two" - labelsOne, labelsTwo := "one=1", "two=2" - testCase := []struct { - desc string - baseCfg Config - compare Config - expect bool - }{ - { - desc: "Full match", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: &nameOne, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: &nameOne, - }, - expect: true, - }, - { - desc: "Only Updatable fields match", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: &nameOne, - }, - compare: Config{ - Endpoint: "ws://some.host.com", - SecretKey: nil, - AgentID: EmptyAgentID, - Labels: &labelsOne, - AgentName: &nameOne, - }, - expect: true, - }, - { - desc: "Labels match no Agent Name", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: nil, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: nil, - }, - expect: true, - }, - { - desc: "Labels don't match no Agent Name", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: nil, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsTwo, - AgentName: nil, - }, - expect: false, - }, - { - desc: "Agent Name match no labels", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: &nameOne, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: &nameOne, - }, - expect: true, - }, - { - desc: "Agent Name doesn't match no labels", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: &nameOne, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: &nameTwo, - }, - expect: false, - }, - { - desc: "Label present in base not in other", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsOne, - AgentName: nil, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: nil, - }, - expect: false, - }, - { - desc: "Label present in other not in base", - baseCfg: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: nil, - AgentName: nil, - }, - compare: Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsTwo, - AgentName: nil, - }, - expect: false, - }, - } - - for _, tc := range testCase { - t.Run(tc.desc, func(t *testing.T) { - actual := tc.baseCfg.CmpUpdatableFields(tc.compare) - assert.Equal(t, tc.expect, actual) - }) - } -} - -func TestGetSecretKey(t *testing.T) { - secretKeyContents := "b92222ee-a1fc-4bb1-98db-26de3448541b" - testCases := []struct { - desc string - config Config - expected string - }{ - { - desc: "Missing secretKey", - config: Config{}, - expected: "", - }, - { - desc: "Has secretKey", - config: Config{ - SecretKey: &secretKeyContents, - }, - expected: secretKeyContents, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - actual := tc.config.GetSecretKey() - require.Equal(t, tc.expected, actual) - }) - } -} - -func TestConfigCopy(t *testing.T) { - secretKeyContents := "b92222ee-a1fc-4bb1-98db-26de3448541b" - labelsContents := "one=foo,two=bar" - agentNameContents := "My Agent" - keyFileContents := "My Key File" - certFileContents := "My Cert File" - caFileContents := "My CA File" - - tlscfg := TLSConfig{ - InsecureSkipVerify: false, - KeyFile: &keyFileContents, - CertFile: &certFileContents, - CAFile: &caFileContents, - } - cfg := Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - TLS: &tlscfg, - } - - copyCfg := cfg.Copy() - require.Equal(t, cfg, *copyCfg) -} - -func TestParseAgentID(t *testing.T) { - testCases := []struct { - name string - id string - expected AgentID - expectedErr string - }{ - { - name: "Valid ULID", - id: "01J9RQ8V3ZT95MRH05DKJA3KSM", - expected: AgentID{ - by: [16]byte{0x1, 0x92, 0x71, 0x74, 0x6c, 0x7f, 0xd2, 0x4b, 0x4c, 0x44, 0x5, 0x6c, 0xe4, 0xa1, 0xcf, 0x34}, - idType: agentIDTypeULID, - orig: "01J9RQ8V3ZT95MRH05DKJA3KSM", - }, - }, - { - name: "Valid UUID", - id: "01927175-7a98-7585-94ce-cc833ee7735d", - expected: AgentID{ - by: [16]byte{0x1, 0x92, 0x71, 0x75, 0x7a, 0x98, 0x75, 0x85, 0x94, 0xce, 0xcc, 0x83, 0x3e, 0xe7, 0x73, 0x5d}, - idType: agentIDTypeUUID, - orig: "01927175-7a98-7585-94ce-cc833ee7735d", - }, - }, - { - name: "Invalid ULID", - id: "A1J9RQ8V3ZT95MRH05DKJA3KSM", - expectedErr: "parse ulid:", - }, - { - name: "Invalid UUID", - id: "01927175-7a98-7585-94ce-cc833ee7735l", - expectedErr: "parse uuid:", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - id, err := ParseAgentID(tc.id) - if tc.expectedErr != "" { - require.ErrorContains(t, err, tc.expectedErr) - return - } - - require.Equal(t, tc.expected, id) - }) - } -} - -func TestAgentIDFromUUID(t *testing.T) { - id := AgentIDFromUUID(Must(uuid.Parse("01927175-7a98-7585-94ce-cc833ee7735d"))) - require.Equal(t, AgentID{ - by: [16]byte{0x1, 0x92, 0x71, 0x75, 0x7a, 0x98, 0x75, 0x85, 0x94, 0xce, 0xcc, 0x83, 0x3e, 0xe7, 0x73, 0x5d}, - idType: agentIDTypeUUID, - orig: "01927175-7a98-7585-94ce-cc833ee7735d", - }, id) -} - -func TestAgentID_String(t *testing.T) { - uuidID := Must(ParseAgentID("01927175-7a98-7585-94ce-cc833ee7735d")) - ulidID := Must(ParseAgentID("01J9RQ8V3ZT95MRH05DKJA3KSM")) - - require.Equal(t, "01927175-7a98-7585-94ce-cc833ee7735d", uuidID.String()) - require.Equal(t, "01J9RQ8V3ZT95MRH05DKJA3KSM", ulidID.String()) -} - -func TestAgentID_OpAMPInstanceUID(t *testing.T) { - uuidID := Must(ParseAgentID("01927175-7a98-7585-94ce-cc833ee7735d")) - ulidID := Must(ParseAgentID("01J9RQ8V3ZT95MRH05DKJA3KSM")) - - require.EqualValues(t, - [16]byte{0x1, 0x92, 0x71, 0x75, 0x7a, 0x98, 0x75, 0x85, 0x94, 0xce, 0xcc, 0x83, 0x3e, 0xe7, 0x73, 0x5d}, - uuidID.OpAMPInstanceUID(), - ) - - require.EqualValues(t, - [16]byte{0x1, 0x92, 0x71, 0x74, 0x6c, 0x7f, 0xd2, 0x4b, 0x4c, 0x44, 0x5, 0x6c, 0xe4, 0xa1, 0xcf, 0x34}, - ulidID.OpAMPInstanceUID(), - ) -} - -func TestAgentID_Type(t *testing.T) { - uuidID := Must(ParseAgentID("01927175-7a98-7585-94ce-cc833ee7735d")) - ulidID := Must(ParseAgentID("01J9RQ8V3ZT95MRH05DKJA3KSM")) - - require.EqualValues(t, agentIDTypeUUID, uuidID.Type()) - require.EqualValues(t, agentIDTypeULID, ulidID.Type()) -} - -func TestAgentID_MarshalYaml(t *testing.T) { - uuidID := Must(ParseAgentID("01927175-7a98-7585-94ce-cc833ee7735d")) - ulidID := Must(ParseAgentID("01J9RQ8V3ZT95MRH05DKJA3KSM")) - - uuidYaml, err := yaml.Marshal(uuidID) - require.NoError(t, err) - require.Equal(t, "01927175-7a98-7585-94ce-cc833ee7735d\n", string(uuidYaml)) - - ulidYaml, err := yaml.Marshal(ulidID) - require.NoError(t, err) - require.Equal(t, "01J9RQ8V3ZT95MRH05DKJA3KSM\n", string(ulidYaml)) -} - -func TestAgentID_UnmarshalYaml(t *testing.T) { - t.Run("UUID", func(t *testing.T) { - var uuidAgentID AgentID - err := yaml.Unmarshal([]byte("01927175-7a98-7585-94ce-cc833ee7735d"), &uuidAgentID) - require.NoError(t, err) - require.Equal(t, AgentID{ - by: [16]byte{0x1, 0x92, 0x71, 0x75, 0x7a, 0x98, 0x75, 0x85, 0x94, 0xce, 0xcc, 0x83, 0x3e, 0xe7, 0x73, 0x5d}, - idType: agentIDTypeUUID, - orig: "01927175-7a98-7585-94ce-cc833ee7735d", - }, uuidAgentID) - }) - - t.Run("ULID", func(t *testing.T) { - var ulidAgentID AgentID - err := yaml.Unmarshal([]byte("01J9RQ8V3ZT95MRH05DKJA3KSM"), &ulidAgentID) - require.NoError(t, err) - require.Equal(t, AgentID{ - by: [16]byte{0x1, 0x92, 0x71, 0x74, 0x6c, 0x7f, 0xd2, 0x4b, 0x4c, 0x44, 0x5, 0x6c, 0xe4, 0xa1, 0xcf, 0x34}, - idType: agentIDTypeULID, - orig: "01J9RQ8V3ZT95MRH05DKJA3KSM", - }, ulidAgentID) - }) - - t.Run("Invalid ID", func(t *testing.T) { - // Invalid IDs will give an empty ID instead of an error, so the - // ID can be regenerated from the partially read config. - var invalidID AgentID - err := yaml.Unmarshal([]byte("Invalid"), &invalidID) - require.NoError(t, err) - require.Equal(t, EmptyAgentID, invalidID) - }) - - t.Run("Empty ID", func(t *testing.T) { - var emptyID AgentID - err := yaml.Unmarshal([]byte(`""`), &emptyID) - require.NoError(t, err) - require.Equal(t, EmptyAgentID, emptyID) - }) -} diff --git a/opamp/doc.go b/opamp/doc.go deleted file mode 100644 index c21f4cb26..000000000 --- a/opamp/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package opamp contains configurations and protocol implementations to handle OpAmp communication. -package opamp - -// generate directives for interfaces in third-party packages: -//go:generate mockery --srcpkg github.com/open-telemetry/opamp-go/client/types --name PackagesStateProvider --filename mock_packages_state_provider.go --structname MockPackagesStateProvider -//go:generate mockery --srcpkg github.com/open-telemetry/opamp-go/client --name OpAMPClient --filename mock_opamp_client.go --structname MockOpAMPClient diff --git a/opamp/downloadable_file_manager.go b/opamp/downloadable_file_manager.go deleted file mode 100644 index 8d345d0cc..000000000 --- a/opamp/downloadable_file_manager.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package opamp contains configurations and protocol implementations to handle OpAmp communication. -package opamp - -import ( - "github.com/open-telemetry/opamp-go/protobufs" -) - -// DownloadableFileManager handles DownloadableFile's from a PackagesAvailable message -// -//go:generate mockery --name DownloadableFileManager --filename mock_downloadable_file_manager.go --structname MockDownloadableFileManager -type DownloadableFileManager interface { - // FetchAndExtractArchive fetches the archive at the specified URL. - // It then checks to see if it matches the expected sha256 sum of the file. - // If it matches, the archive is extracted. - // If the archive cannot be extracted, downloaded, or verified, then an error is returned. - FetchAndExtractArchive(*protobufs.DownloadableFile) error - // CleanupArtifacts removes temporary artifacts from previous download/installs - CleanupArtifacts() -} diff --git a/opamp/helpers.go b/opamp/helpers.go deleted file mode 100644 index b10a0fc4b..000000000 --- a/opamp/helpers.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "crypto/sha256" - - "github.com/open-telemetry/opamp-go/protobufs" -) - -// StringKeyValue converts a string key-value pair into a protobuf.KeyValue struct -func StringKeyValue(key, value string) *protobufs.KeyValue { - return &protobufs.KeyValue{ - Key: key, - Value: &protobufs.AnyValue{ - Value: &protobufs.AnyValue_StringValue{StringValue: value}, - }, - } -} - -// ComputeHash computes a sha256 hash of the passed in data -func ComputeHash(data []byte) []byte { - hash := sha256.New() - hash.Write(data) - return hash.Sum(nil) -} diff --git a/opamp/helpers_test.go b/opamp/helpers_test.go deleted file mode 100644 index 02fdc29f7..000000000 --- a/opamp/helpers_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "testing" - - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/require" -) - -func TestStringKeyValue(t *testing.T) { - key, value := "key", "value" - expected := &protobufs.KeyValue{ - Key: key, - Value: &protobufs.AnyValue{ - Value: &protobufs.AnyValue_StringValue{StringValue: value}, - }, - } - - actual := StringKeyValue(key, value) - require.Equal(t, expected, actual) -} - -func TestComputeHash(t *testing.T) { - expected := []byte{0xc2, 0xae, 0xcc, 0xc4, 0x2d, 0x2a, 0x57, 0x9c, 0x28, 0x1d, 0xaa, 0xe7, 0xe4, 0x64, 0xa1, 0x4d, 0x74, 0x79, 0x24, 0x15, 0x9e, 0x28, 0x61, 0x7a, 0xd0, 0x18, 0x50, 0xf0, 0xdd, 0x1b, 0xd1, 0x35} - actual := ComputeHash([]byte("hellow world")) - require.Equal(t, expected, actual) -} diff --git a/opamp/managed_config.go b/opamp/managed_config.go deleted file mode 100644 index 33169c04c..000000000 --- a/opamp/managed_config.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "fmt" - "os" - "path/filepath" -) - -// ReloadFunc is a function that handles reloading a config given the new contents -// Reload function should return true for changed is the in memory or on disk copy of the config -// was changed in any way. If neither was altered the changed return value should be false. -type ReloadFunc func([]byte) (changed bool, err error) - -// NoopReloadFunc used as a noop reload function if unsure of how to reload -func NoopReloadFunc([]byte) (bool, error) { - return false, nil -} - -// NewManagedConfig creates a new Managed config and computes its hash -func NewManagedConfig(configPath string, reload ReloadFunc, required bool) (*ManagedConfig, error) { - managedConfig := &ManagedConfig{ - ConfigPath: configPath, - Reload: reload, - required: required, - } - - if err := managedConfig.ComputeConfigHash(); err != nil { - return nil, fmt.Errorf("failed to compute hash for config %w", err) - } - - return managedConfig, nil -} - -// ManagedConfig is a structure that can manage an on disk config file -type ManagedConfig struct { - // ConfigPath is the path on disk where the configuration lives - ConfigPath string - - // Reload will be called when any changes to this config occur. - Reload ReloadFunc - - // currentConfigHash is the hash of the config currently being used - currentConfigHash []byte - - // required signals if this config is required for operation - // If false no error will be returned if this file is not found when computing hashes - required bool -} - -// GetCurrentConfigHash retrieves the current config hash -func (m *ManagedConfig) GetCurrentConfigHash() []byte { - return m.currentConfigHash -} - -// ComputeConfigHash reads in the config file, computes the hash for the contents, and saves it on the ManagedConfig. -func (m *ManagedConfig) ComputeConfigHash() error { - cleanPath := filepath.Clean(m.ConfigPath) - contents, err := os.ReadFile(cleanPath) - if err != nil { - // If file is not required and we couldn't read it return an error - if m.required { - return err - } - - // File not required set contents to empty slice so a hash can still be computed - contents = []byte{} - } - - m.currentConfigHash = ComputeHash(contents) - return nil -} diff --git a/opamp/managed_config_test.go b/opamp/managed_config_test.go deleted file mode 100644 index bee136528..000000000 --- a/opamp/managed_config_test.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package opamp - -import ( - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestManagedConfigGetCurrentConfigHash(t *testing.T) { - managedConfig := &ManagedConfig{ - ConfigPath: "./path.yaml", - Reload: NoopReloadFunc, - currentConfigHash: []byte("hello world"), - } - - actual := managedConfig.GetCurrentConfigHash() - require.Equal(t, managedConfig.currentConfigHash, actual) -} - -func TestManagedConfigComputeConfigHash(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Missing config file, for required", - testFunc: func(t *testing.T) { - managedConfig := &ManagedConfig{ - ConfigPath: "./path.yaml", - required: true, - } - - err := managedConfig.ComputeConfigHash() - assert.Error(t, err) - }, - }, - { - desc: "Missing config file, for not required", - testFunc: func(t *testing.T) { - managedConfig := &ManagedConfig{ - ConfigPath: "./path.yaml", - } - - err := managedConfig.ComputeConfigHash() - assert.NoError(t, err) - }, - }, - { - desc: "Successful hash", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - cfgPath := filepath.Join(tmpDir, "config.yaml") - err := os.WriteFile(cfgPath, []byte("hello world"), 0600) - assert.NoError(t, err) - - managedConfig := &ManagedConfig{ - ConfigPath: cfgPath, - required: true, - } - - expected := []byte{0xb9, 0x4d, 0x27, 0xb9, 0x93, 0x4d, 0x3e, 0x8, 0xa5, 0x2e, 0x52, 0xd7, 0xda, 0x7d, 0xab, 0xfa, 0xc4, 0x84, 0xef, 0xe3, 0x7a, 0x53, 0x80, 0xee, 0x90, 0x88, 0xf7, 0xac, 0xe2, 0xef, 0xcd, 0xe9} - - err = managedConfig.ComputeConfigHash() - assert.NoError(t, err) - assert.Equal(t, expected, managedConfig.currentConfigHash) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestNewManagedConfig(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Missing config file", - testFunc: func(t *testing.T) { - managedConfig, err := NewManagedConfig("./path.yml", NoopReloadFunc, true) - assert.Error(t, err) - assert.Nil(t, managedConfig) - }, - }, - { - desc: "Success", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - cfgPath := filepath.Join(tmpDir, "config.yaml") - err := os.WriteFile(cfgPath, []byte("hello world"), 0600) - assert.NoError(t, err) - - expected := &ManagedConfig{ - ConfigPath: cfgPath, - Reload: NoopReloadFunc, - currentConfigHash: []byte{0xb9, 0x4d, 0x27, 0xb9, 0x93, 0x4d, 0x3e, 0x8, 0xa5, 0x2e, 0x52, 0xd7, 0xda, 0x7d, 0xab, 0xfa, 0xc4, 0x84, 0xef, 0xe3, 0x7a, 0x53, 0x80, 0xee, 0x90, 0x88, 0xf7, 0xac, 0xe2, 0xef, 0xcd, 0xe9}, - } - - managedConfig, err := NewManagedConfig(cfgPath, NoopReloadFunc, true) - assert.NoError(t, err) - assert.Equal(t, expected.ConfigPath, managedConfig.ConfigPath) - assert.Equal(t, expected.currentConfigHash, managedConfig.currentConfigHash) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/opamp/mocks/mock_client.go b/opamp/mocks/mock_client.go deleted file mode 100644 index ceaf14507..000000000 --- a/opamp/mocks/mock_client.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - context "context" - - mock "github.com/stretchr/testify/mock" -) - -// MockClient is an autogenerated mock type for the Client type -type MockClient struct { - mock.Mock -} - -// Connect provides a mock function with given fields: ctx -func (_m *MockClient) Connect(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Connect") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Disconnect provides a mock function with given fields: ctx -func (_m *MockClient) Disconnect(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Disconnect") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockClient creates a new instance of MockClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockClient(t interface { - mock.TestingT - Cleanup(func()) -}) *MockClient { - mock := &MockClient{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/mocks/mock_config_manager.go b/opamp/mocks/mock_config_manager.go deleted file mode 100644 index 774773c00..000000000 --- a/opamp/mocks/mock_config_manager.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - opamp "github.com/observiq/bindplane-agent/opamp" - mock "github.com/stretchr/testify/mock" - - protobufs "github.com/open-telemetry/opamp-go/protobufs" -) - -// MockConfigManager is an autogenerated mock type for the ConfigManager type -type MockConfigManager struct { - mock.Mock -} - -// AddConfig provides a mock function with given fields: configName, reloader -func (_m *MockConfigManager) AddConfig(configName string, reloader *opamp.ManagedConfig) { - _m.Called(configName, reloader) -} - -// ApplyConfigChanges provides a mock function with given fields: remoteConfig -func (_m *MockConfigManager) ApplyConfigChanges(remoteConfig *protobufs.AgentRemoteConfig) (bool, error) { - ret := _m.Called(remoteConfig) - - if len(ret) == 0 { - panic("no return value specified for ApplyConfigChanges") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func(*protobufs.AgentRemoteConfig) (bool, error)); ok { - return rf(remoteConfig) - } - if rf, ok := ret.Get(0).(func(*protobufs.AgentRemoteConfig) bool); ok { - r0 = rf(remoteConfig) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func(*protobufs.AgentRemoteConfig) error); ok { - r1 = rf(remoteConfig) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ComposeEffectiveConfig provides a mock function with given fields: -func (_m *MockConfigManager) ComposeEffectiveConfig() (*protobufs.EffectiveConfig, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for ComposeEffectiveConfig") - } - - var r0 *protobufs.EffectiveConfig - var r1 error - if rf, ok := ret.Get(0).(func() (*protobufs.EffectiveConfig, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() *protobufs.EffectiveConfig); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*protobufs.EffectiveConfig) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// NewMockConfigManager creates a new instance of MockConfigManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockConfigManager(t interface { - mock.TestingT - Cleanup(func()) -}) *MockConfigManager { - mock := &MockConfigManager{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/mocks/mock_downloadable_file_manager.go b/opamp/mocks/mock_downloadable_file_manager.go deleted file mode 100644 index c4a257de5..000000000 --- a/opamp/mocks/mock_downloadable_file_manager.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - mock "github.com/stretchr/testify/mock" - - protobufs "github.com/open-telemetry/opamp-go/protobufs" -) - -// MockDownloadableFileManager is an autogenerated mock type for the DownloadableFileManager type -type MockDownloadableFileManager struct { - mock.Mock -} - -// CleanupArtifacts provides a mock function with given fields: -func (_m *MockDownloadableFileManager) CleanupArtifacts() { - _m.Called() -} - -// FetchAndExtractArchive provides a mock function with given fields: _a0 -func (_m *MockDownloadableFileManager) FetchAndExtractArchive(_a0 *protobufs.DownloadableFile) error { - ret := _m.Called(_a0) - - if len(ret) == 0 { - panic("no return value specified for FetchAndExtractArchive") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.DownloadableFile) error); ok { - r0 = rf(_a0) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockDownloadableFileManager creates a new instance of MockDownloadableFileManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockDownloadableFileManager(t interface { - mock.TestingT - Cleanup(func()) -}) *MockDownloadableFileManager { - mock := &MockDownloadableFileManager{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/mocks/mock_opamp_client.go b/opamp/mocks/mock_opamp_client.go deleted file mode 100644 index 82d8342ec..000000000 --- a/opamp/mocks/mock_opamp_client.go +++ /dev/null @@ -1,248 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - context "context" - - protobufs "github.com/open-telemetry/opamp-go/protobufs" - mock "github.com/stretchr/testify/mock" - - types "github.com/open-telemetry/opamp-go/client/types" -) - -// MockOpAMPClient is an autogenerated mock type for the OpAMPClient type -type MockOpAMPClient struct { - mock.Mock -} - -// AgentDescription provides a mock function with given fields: -func (_m *MockOpAMPClient) AgentDescription() *protobufs.AgentDescription { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for AgentDescription") - } - - var r0 *protobufs.AgentDescription - if rf, ok := ret.Get(0).(func() *protobufs.AgentDescription); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*protobufs.AgentDescription) - } - } - - return r0 -} - -// RequestConnectionSettings provides a mock function with given fields: request -func (_m *MockOpAMPClient) RequestConnectionSettings(request *protobufs.ConnectionSettingsRequest) error { - ret := _m.Called(request) - - if len(ret) == 0 { - panic("no return value specified for RequestConnectionSettings") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.ConnectionSettingsRequest) error); ok { - r0 = rf(request) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SendCustomMessage provides a mock function with given fields: message -func (_m *MockOpAMPClient) SendCustomMessage(message *protobufs.CustomMessage) (chan struct{}, error) { - ret := _m.Called(message) - - if len(ret) == 0 { - panic("no return value specified for SendCustomMessage") - } - - var r0 chan struct{} - var r1 error - if rf, ok := ret.Get(0).(func(*protobufs.CustomMessage) (chan struct{}, error)); ok { - return rf(message) - } - if rf, ok := ret.Get(0).(func(*protobufs.CustomMessage) chan struct{}); ok { - r0 = rf(message) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(chan struct{}) - } - } - - if rf, ok := ret.Get(1).(func(*protobufs.CustomMessage) error); ok { - r1 = rf(message) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SetAgentDescription provides a mock function with given fields: descr -func (_m *MockOpAMPClient) SetAgentDescription(descr *protobufs.AgentDescription) error { - ret := _m.Called(descr) - - if len(ret) == 0 { - panic("no return value specified for SetAgentDescription") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.AgentDescription) error); ok { - r0 = rf(descr) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetCustomCapabilities provides a mock function with given fields: customCapabilities -func (_m *MockOpAMPClient) SetCustomCapabilities(customCapabilities *protobufs.CustomCapabilities) error { - ret := _m.Called(customCapabilities) - - if len(ret) == 0 { - panic("no return value specified for SetCustomCapabilities") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.CustomCapabilities) error); ok { - r0 = rf(customCapabilities) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetFlags provides a mock function with given fields: flags -func (_m *MockOpAMPClient) SetFlags(flags protobufs.AgentToServerFlags) { - _m.Called(flags) -} - -// SetHealth provides a mock function with given fields: health -func (_m *MockOpAMPClient) SetHealth(health *protobufs.ComponentHealth) error { - ret := _m.Called(health) - - if len(ret) == 0 { - panic("no return value specified for SetHealth") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.ComponentHealth) error); ok { - r0 = rf(health) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetPackageStatuses provides a mock function with given fields: statuses -func (_m *MockOpAMPClient) SetPackageStatuses(statuses *protobufs.PackageStatuses) error { - ret := _m.Called(statuses) - - if len(ret) == 0 { - panic("no return value specified for SetPackageStatuses") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.PackageStatuses) error); ok { - r0 = rf(statuses) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetRemoteConfigStatus provides a mock function with given fields: status -func (_m *MockOpAMPClient) SetRemoteConfigStatus(status *protobufs.RemoteConfigStatus) error { - ret := _m.Called(status) - - if len(ret) == 0 { - panic("no return value specified for SetRemoteConfigStatus") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.RemoteConfigStatus) error); ok { - r0 = rf(status) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Start provides a mock function with given fields: ctx, settings -func (_m *MockOpAMPClient) Start(ctx context.Context, settings types.StartSettings) error { - ret := _m.Called(ctx, settings) - - if len(ret) == 0 { - panic("no return value specified for Start") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, types.StartSettings) error); ok { - r0 = rf(ctx, settings) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Stop provides a mock function with given fields: ctx -func (_m *MockOpAMPClient) Stop(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Stop") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// UpdateEffectiveConfig provides a mock function with given fields: ctx -func (_m *MockOpAMPClient) UpdateEffectiveConfig(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for UpdateEffectiveConfig") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockOpAMPClient creates a new instance of MockOpAMPClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockOpAMPClient(t interface { - mock.TestingT - Cleanup(func()) -}) *MockOpAMPClient { - mock := &MockOpAMPClient{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/mocks/mock_packages_state_provider.go b/opamp/mocks/mock_packages_state_provider.go deleted file mode 100644 index e795c1a37..000000000 --- a/opamp/mocks/mock_packages_state_provider.go +++ /dev/null @@ -1,289 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import ( - context "context" - io "io" - - mock "github.com/stretchr/testify/mock" - - protobufs "github.com/open-telemetry/opamp-go/protobufs" - - types "github.com/open-telemetry/opamp-go/client/types" -) - -// MockPackagesStateProvider is an autogenerated mock type for the PackagesStateProvider type -type MockPackagesStateProvider struct { - mock.Mock -} - -// AllPackagesHash provides a mock function with given fields: -func (_m *MockPackagesStateProvider) AllPackagesHash() ([]byte, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for AllPackagesHash") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func() ([]byte, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []byte); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CreatePackage provides a mock function with given fields: packageName, typ -func (_m *MockPackagesStateProvider) CreatePackage(packageName string, typ protobufs.PackageType) error { - ret := _m.Called(packageName, typ) - - if len(ret) == 0 { - panic("no return value specified for CreatePackage") - } - - var r0 error - if rf, ok := ret.Get(0).(func(string, protobufs.PackageType) error); ok { - r0 = rf(packageName, typ) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// DeletePackage provides a mock function with given fields: packageName -func (_m *MockPackagesStateProvider) DeletePackage(packageName string) error { - ret := _m.Called(packageName) - - if len(ret) == 0 { - panic("no return value specified for DeletePackage") - } - - var r0 error - if rf, ok := ret.Get(0).(func(string) error); ok { - r0 = rf(packageName) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// FileContentHash provides a mock function with given fields: packageName -func (_m *MockPackagesStateProvider) FileContentHash(packageName string) ([]byte, error) { - ret := _m.Called(packageName) - - if len(ret) == 0 { - panic("no return value specified for FileContentHash") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func(string) ([]byte, error)); ok { - return rf(packageName) - } - if rf, ok := ret.Get(0).(func(string) []byte); ok { - r0 = rf(packageName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(packageName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// LastReportedStatuses provides a mock function with given fields: -func (_m *MockPackagesStateProvider) LastReportedStatuses() (*protobufs.PackageStatuses, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for LastReportedStatuses") - } - - var r0 *protobufs.PackageStatuses - var r1 error - if rf, ok := ret.Get(0).(func() (*protobufs.PackageStatuses, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() *protobufs.PackageStatuses); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*protobufs.PackageStatuses) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PackageState provides a mock function with given fields: packageName -func (_m *MockPackagesStateProvider) PackageState(packageName string) (types.PackageState, error) { - ret := _m.Called(packageName) - - if len(ret) == 0 { - panic("no return value specified for PackageState") - } - - var r0 types.PackageState - var r1 error - if rf, ok := ret.Get(0).(func(string) (types.PackageState, error)); ok { - return rf(packageName) - } - if rf, ok := ret.Get(0).(func(string) types.PackageState); ok { - r0 = rf(packageName) - } else { - r0 = ret.Get(0).(types.PackageState) - } - - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(packageName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Packages provides a mock function with given fields: -func (_m *MockPackagesStateProvider) Packages() ([]string, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Packages") - } - - var r0 []string - var r1 error - if rf, ok := ret.Get(0).(func() ([]string, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []string); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SetAllPackagesHash provides a mock function with given fields: hash -func (_m *MockPackagesStateProvider) SetAllPackagesHash(hash []byte) error { - ret := _m.Called(hash) - - if len(ret) == 0 { - panic("no return value specified for SetAllPackagesHash") - } - - var r0 error - if rf, ok := ret.Get(0).(func([]byte) error); ok { - r0 = rf(hash) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetLastReportedStatuses provides a mock function with given fields: statuses -func (_m *MockPackagesStateProvider) SetLastReportedStatuses(statuses *protobufs.PackageStatuses) error { - ret := _m.Called(statuses) - - if len(ret) == 0 { - panic("no return value specified for SetLastReportedStatuses") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*protobufs.PackageStatuses) error); ok { - r0 = rf(statuses) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SetPackageState provides a mock function with given fields: packageName, state -func (_m *MockPackagesStateProvider) SetPackageState(packageName string, state types.PackageState) error { - ret := _m.Called(packageName, state) - - if len(ret) == 0 { - panic("no return value specified for SetPackageState") - } - - var r0 error - if rf, ok := ret.Get(0).(func(string, types.PackageState) error); ok { - r0 = rf(packageName, state) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// UpdateContent provides a mock function with given fields: ctx, packageName, data, contentHash, signature -func (_m *MockPackagesStateProvider) UpdateContent(ctx context.Context, packageName string, data io.Reader, contentHash []byte, signature []byte) error { - ret := _m.Called(ctx, packageName, data, contentHash, signature) - - if len(ret) == 0 { - panic("no return value specified for UpdateContent") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, io.Reader, []byte, []byte) error); ok { - r0 = rf(ctx, packageName, data, contentHash, signature) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockPackagesStateProvider creates a new instance of MockPackagesStateProvider. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockPackagesStateProvider(t interface { - mock.TestingT - Cleanup(func()) -}) *MockPackagesStateProvider { - mock := &MockPackagesStateProvider{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/mocks/mock_updater_manager.go b/opamp/mocks/mock_updater_manager.go deleted file mode 100644 index 6fee5b836..000000000 --- a/opamp/mocks/mock_updater_manager.go +++ /dev/null @@ -1,42 +0,0 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. - -package mocks - -import mock "github.com/stretchr/testify/mock" - -// MockUpdaterManager is an autogenerated mock type for the updaterManager type -type MockUpdaterManager struct { - mock.Mock -} - -// StartAndMonitorUpdater provides a mock function with given fields: -func (_m *MockUpdaterManager) StartAndMonitorUpdater() error { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for StartAndMonitorUpdater") - } - - var r0 error - if rf, ok := ret.Get(0).(func() error); ok { - r0 = rf() - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// NewMockUpdaterManager creates a new instance of MockUpdaterManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockUpdaterManager(t interface { - mock.TestingT - Cleanup(func()) -}) *MockUpdaterManager { - mock := &MockUpdaterManager{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/opamp/observiq/agent_config_manager.go b/opamp/observiq/agent_config_manager.go deleted file mode 100644 index dcf385b87..000000000 --- a/opamp/observiq/agent_config_manager.go +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "bytes" - "fmt" - "os" - "path/filepath" - - "github.com/observiq/bindplane-agent/opamp" - "github.com/open-telemetry/opamp-go/protobufs" - "go.uber.org/zap" -) - -const ( - // CollectorConfigName is the key of the collector config in OpAmp - CollectorConfigName = "collector.yaml" - // ManagerConfigName is the key of the manager config in OpAmp - ManagerConfigName = "manager.yaml" - // LoggingConfigName is the key of the logging config in OpAmp - LoggingConfigName = "logging.yaml" - // ReportConfigName is the key of the report config in OpAmp - ReportConfigName = "report.yaml" -) - -// acceptableConfigs is a lookup of configs that are able to be written/updated -var acceptableConfigs = map[string]struct{}{ - CollectorConfigName: {}, - ManagerConfigName: {}, - LoggingConfigName: {}, - ReportConfigName: {}, -} - -// Enforce interface -var _ opamp.ConfigManager = (*AgentConfigManager)(nil) - -// AgentConfigManager keeps track of active configs for the agent -type AgentConfigManager struct { - configMap map[string]*opamp.ManagedConfig - logger *zap.Logger -} - -// NewAgentConfigManager creates a new AgentConfigManager -func NewAgentConfigManager(defaultLogger *zap.Logger) *AgentConfigManager { - return &AgentConfigManager{ - configMap: make(map[string]*opamp.ManagedConfig), - logger: defaultLogger.Named("config manager"), - } -} - -// AddConfig adds a config to be tracked by the config manager. -// If the config already is tracked it'll be overwritten with the new managed config -func (a *AgentConfigManager) AddConfig(configName string, managedConfig *opamp.ManagedConfig) { - a.configMap[configName] = managedConfig -} - -// ComposeEffectiveConfig reads in all config files and calculates the effective config -func (a *AgentConfigManager) ComposeEffectiveConfig() (*protobufs.EffectiveConfig, error) { - contentMap := make(map[string]*protobufs.AgentConfigFile, len(a.configMap)) - - for configName, managedConfig := range a.configMap { - // Report config is in memory and should not be considered part of the effective config - if configName == ReportConfigName { - continue - } - - // Read in config file - cleanPath := filepath.Clean(managedConfig.ConfigPath) - configContents, err := os.ReadFile(cleanPath) - if err != nil { - return nil, fmt.Errorf("error reading config file %s: %w", configName, err) - } - - // Add to contentMap - contentMap[configName] = &protobufs.AgentConfigFile{ - Body: configContents, - ContentType: opamp.DetermineContentType(managedConfig.ConfigPath), - } - } - - return &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: contentMap, - }, - }, nil -} - -// ApplyConfigChanges compares the remoteConfig to the existing and applies changes -func (a *AgentConfigManager) ApplyConfigChanges(remoteConfig *protobufs.AgentRemoteConfig) (changed bool, returnErr error) { - remoteConfigMap := remoteConfig.GetConfig().GetConfigMap() - - // No remote config Map - if remoteConfigMap == nil { - return - } - - // loop through all remote configs and compare then with existing configs - for configName, remoteContents := range remoteConfigMap { - // For security check the log file we want is acceptable - if _, ok := acceptableConfigs[configName]; !ok { - a.logger.Warn("Not supported config received skipping", zap.String("config", configName)) - continue - } - - managedConfig, ok := a.configMap[configName] - // This check is impossible to hit now but will be a use case we'll have in the future so leaving this tested code in for now. - if !ok { - // We don't current track this config file we should add it - if err := a.trackNewConfig(configName, remoteContents.GetBody()); err != nil { - returnErr = err - return - } - changed = true - continue - } - - var configChanged bool - var err error - switch configName { - // Special case for report config as it's an in memory only config and we always want to apply it - case ReportConfigName: - configChanged, err = managedConfig.Reload(remoteContents.GetBody()) - default: - // Update the config file - configChanged, err = a.updateExistingConfig(configName, managedConfig, remoteContents.GetBody()) - } - - if err != nil { - returnErr = err - return - } - changed = changed || configChanged - } - - return -} - -func (a *AgentConfigManager) updateExistingConfig(configName string, managedConfig *opamp.ManagedConfig, newContents []byte) (changed bool, err error) { - remoteHash := opamp.ComputeHash(newContents) - - // Nothing to update - if bytes.Equal(managedConfig.GetCurrentConfigHash(), remoteHash) { - // Verify disk matches memory and remote. This will ensure if any changes were made to the config on disk - // the will be overwritten by what is expected. - return verifyDiskContents(managedConfig.ConfigPath, managedConfig.GetCurrentConfigHash(), newContents) - } - - a.logger.Info("Applying changes to config file", zap.String("config", configName)) - changed, err = managedConfig.Reload(newContents) - if err != nil { - err = fmt.Errorf("failed to reload config: %s: %w", configName, err) - return - } - - // If the config changed recompute the hash for it - if changed { - err = managedConfig.ComputeConfigHash() - if err != nil { - err = fmt.Errorf("failed hash compute for config %s: %w", configName, err) - return - } - } - - return -} - -// verifyDiskContents verifies the contents saved on disk match the in memory hash. -// If not overwrite them with the passed in contents -func verifyDiskContents(configPath string, memHash, contents []byte) (changed bool, err error) { - cleanPath := filepath.Clean(configPath) - currContents, err := os.ReadFile(cleanPath) - if err != nil { - return false, fmt.Errorf("error reading current config contents: %w", err) - } - - diskHash := opamp.ComputeHash(currContents) - - // Disk equals what's in memory and what's expected so do nothing - if bytes.Equal(diskHash, memHash) { - return false, nil - } - - // Disk file doesn't match memory so overwrite with correct contents - if err := os.WriteFile(cleanPath, contents, 0600); err != nil { - return false, fmt.Errorf("failed to write contents to config file: %w", err) - } - - return true, nil -} - -func (a *AgentConfigManager) trackNewConfig(configName string, contents []byte) error { - a.logger.Info("Untracked config found", zap.String("config", configName)) - - // Write out the file - if err := os.WriteFile(configName, contents, 0600); err != nil { - return fmt.Errorf("failed to write new config file %s: %w", configName, err) - } - - managedConfig, err := opamp.NewManagedConfig(filepath.Join(".", configName), opamp.NoopReloadFunc, false) - if err != nil { - return err - } - - // Track new config - a.AddConfig(configName, managedConfig) - - return nil -} diff --git a/opamp/observiq/agent_config_manager_test.go b/opamp/observiq/agent_config_manager_test.go deleted file mode 100644 index 0fa4fce9f..000000000 --- a/opamp/observiq/agent_config_manager_test.go +++ /dev/null @@ -1,574 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "errors" - "os" - "path/filepath" - "testing" - - "github.com/observiq/bindplane-agent/opamp" - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -func TestNewAgentConfigManager(t *testing.T) { - logger := zap.NewNop() - - expected := &AgentConfigManager{ - configMap: make(map[string]*opamp.ManagedConfig), - logger: logger.Named("config manager"), - } - - actual := NewAgentConfigManager(logger) - require.Equal(t, expected, actual) -} - -func TestAddConfig(t *testing.T) { - manager := NewAgentConfigManager(zap.NewNop()) - - configName := "config.json" - cfgPath := "path/to/config.json" - managedConfig := &opamp.ManagedConfig{ - ConfigPath: cfgPath, - Reload: opamp.NoopReloadFunc, - } - - manager.AddConfig(configName, managedConfig) - require.Equal(t, managedConfig, manager.configMap[configName]) -} - -func TestComposeEffectiveConfig(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "File missing from disk error", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - manager := NewAgentConfigManager(zap.NewNop()) - managedCfg := &opamp.ManagedConfig{ - ConfigPath: filepath.Join(tmpDir, "not_real.yaml"), - Reload: opamp.NoopReloadFunc, - } - manager.AddConfig("not_real.yaml", managedCfg) - - effCfg, err := manager.ComposeEffectiveConfig() - assert.ErrorContains(t, err, "error reading config file") - assert.Nil(t, effCfg) - }, - }, - { - desc: "Multi Config Files", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configOne := "one.yaml" - configOnePath := filepath.Join(tmpDir, configOne) - configOneContents := []byte(`key: value`) - - configTwo := "two.yaml" - configTwoPath := filepath.Join(tmpDir, configTwo) - configTwoContents := []byte(`key2: value2`) - - err := os.WriteFile(configOnePath, configOneContents, 0600) - assert.NoError(t, err) - - err = os.WriteFile(configTwoPath, configTwoContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - manager.AddConfig(configOne, &opamp.ManagedConfig{ - ConfigPath: configOnePath, - Reload: opamp.NoopReloadFunc, - }) - manager.AddConfig(configTwo, &opamp.ManagedConfig{ - ConfigPath: configTwoPath, - Reload: opamp.NoopReloadFunc, - }) - - expected := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - configOne: { - Body: configOneContents, - ContentType: opamp.YAMLContentType, - }, - configTwo: { - Body: configTwoContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expected, effCfg) - - }, - }, - { - desc: "Multi Config Files, report.yaml is skipped", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configOne := "one.yaml" - configOnePath := filepath.Join(tmpDir, configOne) - configOneContents := []byte(`key: value`) - - configTwo := ReportConfigName - - err := os.WriteFile(configOnePath, configOneContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - manager.AddConfig(configOne, &opamp.ManagedConfig{ - ConfigPath: configOnePath, - Reload: opamp.NoopReloadFunc, - }) - manager.AddConfig(configTwo, &opamp.ManagedConfig{ - ConfigPath: "report.yaml", - Reload: opamp.NoopReloadFunc, - }) - - expected := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - configOne: { - Body: configOneContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expected, effCfg) - - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestApplyConfigChanges(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "No remote config To Apply", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, ManagerConfigName) - configContents := []byte(`key: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, opamp.NoopReloadFunc, true) - assert.NoError(t, err) - manager.AddConfig(ManagerConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{}, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.NoError(t, err) - assert.False(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains unchanged file", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, ManagerConfigName) - configContents := []byte(`key: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, opamp.NoopReloadFunc, true) - assert.NoError(t, err) - manager.AddConfig(ManagerConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - - assert.NoError(t, err) - assert.False(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains unchanged file, but disk differs", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, ManagerConfigName) - configContents := []byte(`key: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, opamp.NoopReloadFunc, true) - assert.NoError(t, err) - manager.AddConfig(ManagerConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - // change contents of on disk so they don't match memory - err = os.WriteFile(configPath, []byte("bad: config"), 0600) - assert.NoError(t, err) - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.NoError(t, err) - assert.True(t, changed) - - // Verify on disk matches what is expected - diskContents, err := os.ReadFile(configPath) - assert.NoError(t, err) - assert.Equal(t, configContents, diskContents) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains unknown file", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, ManagerConfigName) - configContents := []byte(`key: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - - mangedConfig, err := opamp.NewManagedConfig(configPath, opamp.NoopReloadFunc, true) - assert.NoError(t, err) - manager.AddConfig(ManagerConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - "other.yaml": { - Body: []byte("other: value"), - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.NoError(t, err) - assert.False(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains untracked known file", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, ManagerConfigName) - configContents := []byte(`key: value`) - - newFileContents := []byte(`logger: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, opamp.NoopReloadFunc, true) - assert.NoError(t, err) - manager.AddConfig(ManagerConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - LoggingConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ManagerConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - LoggingConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - - assert.NoError(t, err) - assert.True(t, changed) - assert.FileExists(t, filepath.Join(".", LoggingConfigName)) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - - // Cleanup - err = os.Remove(filepath.Join(".", LoggingConfigName)) - assert.NoError(t, err) - }, - }, - { - desc: "Remote config is report.yaml", - testFunc: func(*testing.T) { - newFileContents := []byte(`logger: value`) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig("report.yml", opamp.NoopReloadFunc, false) - assert.NoError(t, err) - manager.AddConfig(ReportConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - ReportConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{}, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.NoError(t, err) - assert.False(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains changes to file", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, LoggingConfigName) - configContents := []byte(`key: value`) - - newFileContents := []byte(`logger: value`) - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, func(data []byte) (changed bool, err error) { - err = os.WriteFile(configPath, data, 0600) - assert.NoError(t, err) - return true, err - }, true) - assert.NoError(t, err) - manager.AddConfig(LoggingConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - LoggingConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - LoggingConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.NoError(t, err) - assert.True(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - { - desc: "Remote config contains changes to file, reload fails", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - configPath := filepath.Join(tmpDir, LoggingConfigName) - configContents := []byte(`key: value`) - - newFileContents := []byte(`logger: value`) - - expectedError := errors.New("oops") - - err := os.WriteFile(configPath, configContents, 0600) - assert.NoError(t, err) - - manager := NewAgentConfigManager(zap.NewNop()) - mangedConfig, err := opamp.NewManagedConfig(configPath, func(_ []byte) (changed bool, err error) { - return false, expectedError - }, true) - assert.NoError(t, err) - manager.AddConfig(LoggingConfigName, mangedConfig) - - remoteConfig := &protobufs.AgentRemoteConfig{ - Config: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - LoggingConfigName: { - Body: newFileContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - - expectedEffCfg := &protobufs.EffectiveConfig{ - ConfigMap: &protobufs.AgentConfigMap{ - ConfigMap: map[string]*protobufs.AgentConfigFile{ - LoggingConfigName: { - Body: configContents, - ContentType: opamp.YAMLContentType, - }, - }, - }, - } - changed, err := manager.ApplyConfigChanges(remoteConfig) - assert.ErrorIs(t, err, expectedError) - assert.False(t, changed) - - // Verify effective config is as expected - effCfg, err := manager.ComposeEffectiveConfig() - assert.NoError(t, err) - assert.Equal(t, expectedEffCfg, effCfg) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/opamp/observiq/identity.go b/opamp/observiq/identity.go deleted file mode 100644 index 2c9b020f1..000000000 --- a/opamp/observiq/identity.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "os" - "runtime" - - ios "github.com/observiq/bindplane-agent/internal/os" - "github.com/observiq/bindplane-agent/opamp" - "github.com/open-telemetry/opamp-go/protobufs" - "go.uber.org/zap" -) - -// identity contains identifying information about the Collector -type identity struct { - agentID opamp.AgentID - agentName *string - serviceName string - version string - labels *string - oSArch string - oSDetails string - oSFamily string - hostname string - mac string -} - -// newIdentity constructs a new identity for this collector -func newIdentity(logger *zap.Logger, config opamp.Config, version string) *identity { - // Grab various fields from OS - hostname, err := ios.Hostname() - if err != nil { - logger.Warn("Failed to retrieve hostname for collector. Creating partial identity", zap.Error(err)) - } - - name, err := ios.Name() - if err != nil { - logger.Warn("Failed to retrieve host details on collector. Creating partial identity", zap.Error(err)) - } - - return &identity{ - agentID: config.AgentID, - agentName: config.AgentName, - serviceName: "com.observiq.collector", // Hardcoded defines this type of agent to the server - version: version, - labels: config.Labels, - oSArch: runtime.GOARCH, - oSDetails: name, - oSFamily: runtime.GOOS, - hostname: hostname, - mac: ios.MACAddress(), - } -} - -// Copy creates a deep copy of this identity -func (i identity) Copy() *identity { - identCpy := &identity{ - agentID: i.agentID, - serviceName: i.serviceName, - version: i.version, - oSArch: i.oSArch, - oSDetails: i.oSDetails, - oSFamily: i.oSFamily, - hostname: i.hostname, - mac: i.mac, - } - - if i.agentName != nil { - identCpy.agentName = new(string) - *identCpy.agentName = *i.agentName - } - - if i.labels != nil { - identCpy.labels = new(string) - *identCpy.labels = *i.labels - } - - return identCpy -} - -func (i *identity) ToAgentDescription() *protobufs.AgentDescription { - identifyingAttributes := []*protobufs.KeyValue{ - opamp.StringKeyValue("service.instance.id", i.agentID.String()), - opamp.StringKeyValue("service.name", i.serviceName), - opamp.StringKeyValue("service.version", i.version), - } - - if i.agentName != nil { - identifyingAttributes = append(identifyingAttributes, opamp.StringKeyValue("service.instance.name", *i.agentName)) - } else { - identifyingAttributes = append(identifyingAttributes, opamp.StringKeyValue("service.instance.name", i.hostname)) - } - - nonIdentifyingAttributes := []*protobufs.KeyValue{ - opamp.StringKeyValue("os.arch", i.oSArch), - opamp.StringKeyValue("os.details", i.oSDetails), - opamp.StringKeyValue("os.family", i.oSFamily), - opamp.StringKeyValue("host.name", i.hostname), - opamp.StringKeyValue("host.mac_address", i.mac), - } - - if i.labels != nil { - nonIdentifyingAttributes = append(nonIdentifyingAttributes, opamp.StringKeyValue("service.labels", *i.labels)) - } - - key := os.Getenv("OTEL_AES_CREDENTIAL_PROVIDER") - if key != "" { - nonIdentifyingAttributes = append(nonIdentifyingAttributes, opamp.StringKeyValue("service.key", key)) - } - - agentDesc := &protobufs.AgentDescription{ - IdentifyingAttributes: identifyingAttributes, - NonIdentifyingAttributes: nonIdentifyingAttributes, - } - - return agentDesc -} diff --git a/opamp/observiq/identity_test.go b/opamp/observiq/identity_test.go deleted file mode 100644 index eff6bf22f..000000000 --- a/opamp/observiq/identity_test.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "os" - "runtime" - "testing" - - "github.com/observiq/bindplane-agent/opamp" - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -// Must is a helper function for tests that panics if there is an error creating the object of type T -func Must[T any](t T, err error) T { - if err != nil { - panic(err) - } - return t -} - -var testAgentID = Must(opamp.ParseAgentID("01HX2DWEQZ045KQR3VG0EYEZ94")) - -func Test_newIdentity(t *testing.T) { - secretKeyContents := "b92222ee-a1fc-4bb1-98db-26de3448541b" - labelsContents := "one=foo,two=bar" - agentNameContents := "My Agent" - - cfg := opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - AgentID: testAgentID, - Labels: &labelsContents, - AgentName: &agentNameContents, - } - - expectedVersion := "0.0.0" - - got := newIdentity(zap.NewNop(), cfg, expectedVersion) - - // Check all fields from config - require.Equal(t, cfg.AgentID, got.agentID) - require.Equal(t, cfg.AgentName, got.agentName) - require.Equal(t, cfg.Labels, got.labels) - - // Check fields that must not be empty - require.NotEmpty(t, got.oSDetails) - require.NotEmpty(t, got.hostname) - require.NotEmpty(t, got.mac) - - // Check hardcoded/fields from runtime and other packages - require.Equal(t, got.serviceName, "com.observiq.collector") - require.Equal(t, got.version, expectedVersion) - require.Equal(t, got.oSArch, runtime.GOARCH) - require.Equal(t, got.oSFamily, runtime.GOOS) -} - -func TestToAgentDescription(t *testing.T) { - labelsContents := "one=foo,two=bar" - agentNameContents := "My Agent" - testCases := []struct { - desc string - ident *identity - expected *protobufs.AgentDescription - }{ - { - desc: "Missing Agent Name and labels", - ident: &identity{ - agentID: testAgentID, - agentName: nil, - serviceName: "com.observiq.collector", - version: "v1.2.3", - labels: nil, - oSArch: "amd64", - oSDetails: "os details", - oSFamily: "linux", - hostname: "my-linux-box", - mac: "68-C7-B4-EB-A8-D2", - }, - expected: &protobufs.AgentDescription{ - IdentifyingAttributes: []*protobufs.KeyValue{ - opamp.StringKeyValue("service.instance.id", testAgentID.String()), - opamp.StringKeyValue("service.name", "com.observiq.collector"), - opamp.StringKeyValue("service.version", "v1.2.3"), - opamp.StringKeyValue("service.instance.name", "my-linux-box"), - }, - NonIdentifyingAttributes: []*protobufs.KeyValue{ - opamp.StringKeyValue("os.arch", "amd64"), - opamp.StringKeyValue("os.details", "os details"), - opamp.StringKeyValue("os.family", "linux"), - opamp.StringKeyValue("host.name", "my-linux-box"), - opamp.StringKeyValue("host.mac_address", "68-C7-B4-EB-A8-D2"), - opamp.StringKeyValue("service.key", "test-key"), - }, - }, - }, - { - desc: "With Agent Name and labels", - ident: &identity{ - agentID: testAgentID, - agentName: &agentNameContents, - serviceName: "com.observiq.collector", - version: "v1.2.3", - labels: &labelsContents, - oSArch: "amd64", - oSDetails: "os details", - oSFamily: "linux", - hostname: "my-linux-box", - mac: "68-C7-B4-EB-A8-D2", - }, - expected: &protobufs.AgentDescription{ - IdentifyingAttributes: []*protobufs.KeyValue{ - opamp.StringKeyValue("service.instance.id", testAgentID.String()), - opamp.StringKeyValue("service.name", "com.observiq.collector"), - opamp.StringKeyValue("service.version", "v1.2.3"), - opamp.StringKeyValue("service.instance.name", agentNameContents), - }, - NonIdentifyingAttributes: []*protobufs.KeyValue{ - opamp.StringKeyValue("os.arch", "amd64"), - opamp.StringKeyValue("os.details", "os details"), - opamp.StringKeyValue("os.family", "linux"), - opamp.StringKeyValue("host.name", "my-linux-box"), - opamp.StringKeyValue("host.mac_address", "68-C7-B4-EB-A8-D2"), - opamp.StringKeyValue("service.labels", labelsContents), - opamp.StringKeyValue("service.key", "test-key"), - }, - }, - }, - } - - for _, tc := range testCases { - os.Setenv("OTEL_AES_CREDENTIAL_PROVIDER", "test-key") - t.Run(tc.desc, func(t *testing.T) { - actual := tc.ident.ToAgentDescription() - assert.Equal(t, tc.expected, actual) - }) - } -} - -func Test_identityCopy(t *testing.T) { - labelsContents := "one=foo,two=bar" - agentNameContents := "My Agent" - ident := &identity{ - agentID: testAgentID, - agentName: &agentNameContents, - serviceName: "com.observiq.collector", - version: "v1.2.3", - labels: &labelsContents, - oSArch: "amd64", - oSDetails: "os details", - oSFamily: "linux", - hostname: "my-linux-box", - mac: "68-C7-B4-EB-A8-D2", - } - - copyIdent := ident.Copy() - - require.Equal(t, ident, copyIdent) -} diff --git a/opamp/observiq/observiq_client.go b/opamp/observiq/observiq_client.go deleted file mode 100644 index e77db1915..000000000 --- a/opamp/observiq/observiq_client.go +++ /dev/null @@ -1,729 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package observiq contains OpAmp structures compatible with the observiq client -package observiq - -import ( - "context" - "encoding/hex" - "errors" - "fmt" - "net/http" - "net/url" - "slices" - "sync" - - "github.com/observiq/bindplane-agent/collector" - "github.com/observiq/bindplane-agent/internal/measurements" - "github.com/observiq/bindplane-agent/internal/report" - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/opamp" - "github.com/observiq/bindplane-agent/packagestate" - "github.com/open-telemetry/opamp-go/client" - "github.com/open-telemetry/opamp-go/client/types" - "github.com/open-telemetry/opamp-go/protobufs" - "go.uber.org/zap" -) - -var ( - // ErrUnsupportedURL is error returned when creating a client with an unsupported URL scheme - ErrUnsupportedURL = errors.New("unsupported URL") -) - -const capabilities = protobufs.AgentCapabilities_AgentCapabilities_ReportsStatus | - protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages | - protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses | - protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig | - protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig | - protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig - -// Ensure interface is satisfied -var _ opamp.Client = (*Client)(nil) - -// Client represents a client that is connected to Iris via OpAmp -type Client struct { - opampClient client.OpAMPClient - logger *zap.Logger - ident *identity - configManager opamp.ConfigManager - downloadableFileManager opamp.DownloadableFileManager - collector collector.Collector - packagesStateProvider types.PackagesStateProvider - updaterManager updaterManager - mutex sync.Mutex - updatingPackage bool - reportManager *report.Manager - measurementsSender *measurementsSender - - // To signal if we are disconnecting already and not take any actions on connection failures - disconnecting bool - - // Used to monitor collector status - collectorMntrCtx context.Context - collectorMntrCancel context.CancelFunc - collectorMntrWg sync.WaitGroup - - currentConfig opamp.Config -} - -// NewClientArgs arguments passed when creating a new client -type NewClientArgs struct { - DefaultLogger *zap.Logger - Config opamp.Config - Collector collector.Collector - Version string - - TmpPath string - ManagerConfigPath string - CollectorConfigPath string - LoggerConfigPath string - MeasurementsReporter MeasurementsReporter -} - -// NewClient creates a new OpAmp client -func NewClient(args *NewClientArgs) (opamp.Client, error) { - clientLogger := args.DefaultLogger.Named("opamp") - - configManager := NewAgentConfigManager(args.DefaultLogger) - updaterManger, err := newUpdaterManager(clientLogger, args.TmpPath) - if err != nil { - return nil, fmt.Errorf("failed to create updaterManager: %w", err) - } - - // Propagate TLS config to reportManager agent - tlsCfg, err := args.Config.ToTLS(nil) - if err != nil { - return nil, fmt.Errorf("failed creating TLS config: %w", err) - } - - reportManager := report.GetManager() - if err := reportManager.SetClient(report.NewAgentClient(args.Config.AgentID.String(), args.Config.SecretKey, tlsCfg)); err != nil { - // Error should never happen as we only error if a nil client is sent - return nil, fmt.Errorf("failed to set client on report manager: %w", err) - } - - observiqClient := &Client{ - logger: clientLogger, - ident: newIdentity(clientLogger, args.Config, args.Version), - configManager: configManager, - downloadableFileManager: newDownloadableFileManager(clientLogger, args.TmpPath), - collector: args.Collector, - currentConfig: args.Config, - packagesStateProvider: newPackagesStateProvider(clientLogger, packagestate.DefaultFileName), - updaterManager: updaterManger, - reportManager: reportManager, - } - - // Parse URL to determin scheme - opampURL, err := url.Parse(args.Config.Endpoint) - if err != nil { - return nil, err - } - - // Add managed configs - if err := observiqClient.addManagedConfigs(args); err != nil { - return nil, err - } - - // Create collect client based on URL scheme - switch opampURL.Scheme { - case "ws", "wss": - logger := newZapOpAMPLoggerAdapter(clientLogger) - observiqClient.opampClient = client.NewWebSocket(logger) - default: - return nil, ErrUnsupportedURL - } - - err = observiqClient.opampClient.SetCustomCapabilities(&protobufs.CustomCapabilities{ - Capabilities: []string{ - measurements.ReportMeasurementsV1Capability, - }, - }) - if err != nil { - return nil, fmt.Errorf("error setting custom capabilities: %w", err) - } - - // Create measurements sender - observiqClient.measurementsSender = newMeasurementsSender( - clientLogger, - args.MeasurementsReporter, - observiqClient.opampClient, - args.Config.MeasurementsInterval, - args.Config.ExtraMeasurementsAttributes, - ) - - return observiqClient, nil -} - -func (c *Client) addManagedConfigs(args *NewClientArgs) error { - // Add configs to config manager - managerManagedConfig, err := opamp.NewManagedConfig(args.ManagerConfigPath, managerReload(c, args.ManagerConfigPath), true) - if err != nil { - return fmt.Errorf("failed to create manager managed config: %w", err) - } - c.configManager.AddConfig(ManagerConfigName, managerManagedConfig) - - collectorManagedConfig, err := opamp.NewManagedConfig(args.CollectorConfigPath, collectorReload(c, args.CollectorConfigPath), true) - if err != nil { - return fmt.Errorf("failed to create collector managed config: %w", err) - } - c.configManager.AddConfig(CollectorConfigName, collectorManagedConfig) - - loggerManagedConfig, err := opamp.NewManagedConfig(args.LoggerConfigPath, loggerReload(c, args.LoggerConfigPath), true) - if err != nil { - return fmt.Errorf("failed to create logger managed config: %w", err) - } - c.configManager.AddConfig(LoggingConfigName, loggerManagedConfig) - - reportManagedConfig, err := opamp.NewManagedConfig("report.yaml", reportReload(c), false) - if err != nil { - return fmt.Errorf("failed to create report managed config: %w", err) - } - c.configManager.AddConfig(ReportConfigName, reportManagedConfig) - - return nil -} - -// Connect initiates a connection to the OpAmp server -func (c *Client) Connect(ctx context.Context) error { - // Compose and set the agent description - if err := c.opampClient.SetAgentDescription(c.ident.ToAgentDescription()); err != nil { - c.logger.Error("Error while setting agent description", zap.Error(err)) - - // Set package status file for error (for Updater to pick up), but do not force send to Server - c.tryToFailPackageInstall(fmt.Sprintf("Failed setting agent description: %s", err.Error()), false) - - return err - } - - tlsCfg, err := c.currentConfig.ToTLS(nil) - if err != nil { - // Set package status file for error (for Updater to pick up), but do not force send to Server - c.tryToFailPackageInstall(fmt.Sprintf("Failed creating TLS config: %s", err.Error()), false) - - return fmt.Errorf("failed creating TLS config: %w", err) - } - - settings := types.StartSettings{ - OpAMPServerURL: c.currentConfig.Endpoint, - Header: http.Header{ - "Authorization": []string{fmt.Sprintf("Secret-Key %s", c.currentConfig.GetSecretKey())}, - "User-Agent": []string{fmt.Sprintf("observiq-otel-collector/%s", version.Version())}, - "OpAMP-Version": []string{opamp.Version()}, - "Agent-ID": []string{c.ident.agentID.String()}, - "Agent-Version": []string{version.Version()}, - "Agent-Hostname": []string{c.ident.hostname}, - "X-Bindplane-Agent-Id-Format": []string{c.ident.agentID.Type()}, - }, - TLSConfig: tlsCfg, - InstanceUid: c.ident.agentID.OpAMPInstanceUID(), - Callbacks: types.CallbacksStruct{ - OnConnectFunc: c.onConnectHandler, - OnConnectFailedFunc: c.onConnectFailedHandler, - OnErrorFunc: c.onErrorHandler, - OnMessageFunc: c.onMessageFuncHandler, - GetEffectiveConfigFunc: c.onGetEffectiveConfigHandler, - // Unimplemented handlers - // OnOpampConnectionSettingsFunc - // OnOpampConnectionSettingsAcceptedFunc - // OnCommandFunc - // SaveRemoteConfigStatusFunc - }, - PackagesStateProvider: c.packagesStateProvider, - Capabilities: capabilities, - } - - // Start the embedded collector - // Pass in the background context here so it's clear we need to shutdown the collector instead - // of the context shutting it down via a cancel. - if err := c.collector.Run(context.Background()); err != nil { - // Set package status file for error (for Updater to pick up), but do not force send to Server - c.tryToFailPackageInstall(fmt.Sprintf("Collector failed to start: %s", err.Error()), false) - - return fmt.Errorf("collector failed to start: %w", err) - } - - // Now that collector has successfully started kick off monitoring - c.startCollectorMonitoring(ctx) - - err = c.opampClient.Start(ctx, settings) - if err != nil { - // Set package status file for error (for Updater to pick up), but do not force send to Server - c.tryToFailPackageInstall(fmt.Sprintf("OpAMP client failed to start: %s", err.Error()), false) - } - - return err -} - -// Disconnect disconnects from the server -func (c *Client) Disconnect(ctx context.Context) error { - // Ensure we're no longer monitoring the collector as we shutdown to avoid error messages due to shutdown - c.stopCollectorMonitoring() - - c.safeSetDisconnecting(true) - c.collector.Stop(ctx) - return c.opampClient.Stop(ctx) -} - -// client callbacks - -func (c *Client) onConnectHandler(_ context.Context) { - c.logger.Info("Successfully connected to server") - - // See if we can retrieve the PackageStatuses where the collector package is in an installing state - pkgStatuses, err := c.getVerifiedPackageStatuses() - if err != nil { - c.logger.Error("Problem with PackageStatuses", zap.Error(err)) - return - } - - collectorPkgStatus := pkgStatuses.Packages[packagestate.CollectorPackageName] - // If we were not installing before the connection, nothing else to do - if collectorPkgStatus.Status != protobufs.PackageStatusEnum_PackageStatusEnum_Installing { - return - } - - // If in the middle of an install and we just connected, this is most likely becasue the collector was just spun up fresh by the Updater. - // If the current version matches the server offered version, this implies a good install and so we should set the PackageStatuses and - // send it to the OpAMP Server. If the version does not match, just change the PackageStatues JSON so that the Updater can start rollback. - - if collectorPkgStatus.ServerOfferedVersion != version.Version() { - errMsg := fmt.Sprintf("Failed because of collector version mismatch: expected %s, actual %s", - collectorPkgStatus.ServerOfferedVersion, version.Version()) - c.failPackageInstall(pkgStatuses, errMsg, false) - - return - } - - // Installation of new collector was successful! - c.finishPackageInstall(pkgStatuses) -} - -func (c *Client) onConnectFailedHandler(_ context.Context, err error) { - c.logger.Error("Failed to connect to server", zap.Error(err)) - - // We are currently disconnecting so any Connection failed error is expected and should not affect an install - if !c.safeGetDisconnecting() { - // Set package status file for error (for Updater to pick up), but do not force send to Server - c.tryToFailPackageInstall(fmt.Sprintf("Failed to connect to OpAMP Server: %s", err.Error()), false) - } -} - -func (c *Client) onErrorHandler(_ context.Context, errResp *protobufs.ServerErrorResponse) { - c.logger.Error("Server returned an error response", zap.String("Error", errResp.GetErrorMessage())) -} - -func (c *Client) onGetEffectiveConfigHandler(_ context.Context) (*protobufs.EffectiveConfig, error) { - c.logger.Debug("Remote Compose Effective config handler") - return c.configManager.ComposeEffectiveConfig() -} - -func (c *Client) onMessageFuncHandler(ctx context.Context, msg *types.MessageData) { - c.logger.Debug("On message handler") - if msg.RemoteConfig != nil { - if err := c.onRemoteConfigHandler(ctx, msg.RemoteConfig); err != nil { - c.logger.Error("Error while processing Remote Config Change", zap.Error(err)) - } - } - if msg.PackagesAvailable != nil { - if err := c.onPackagesAvailableHandler(msg.PackagesAvailable); err != nil { - c.logger.Error("Error while processing Packages Available Change", zap.Error(err)) - } - } - if msg.CustomCapabilities != nil { - if slices.Contains(msg.CustomCapabilities.Capabilities, measurements.ReportMeasurementsV1Capability) { - c.logger.Info("Server supports custom message measurements, starting sender.") - c.measurementsSender.Start() - } else { - c.logger.Info("Server does not support custom message measurements, stopping sender.") - c.measurementsSender.Stop() - } - } -} - -func (c *Client) onRemoteConfigHandler(ctx context.Context, remoteConfig *protobufs.AgentRemoteConfig) error { - c.logger.Debug("Remote config handler") - - changed, err := c.configManager.ApplyConfigChanges(remoteConfig) - remoteCfgStatus := &protobufs.RemoteConfigStatus{ - LastRemoteConfigHash: remoteConfig.GetConfigHash(), - Status: protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED, - } - - // If we received and error apply it to the config - if err != nil { - c.logger.Error("Failed applying remote config", zap.Error(err)) - - remoteCfgStatus.Status = protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED - remoteCfgStatus.ErrorMessage = fmt.Sprintf("Failed to apply config changes: %s", err.Error()) - } - - // Set the remote config status - if err := c.opampClient.SetRemoteConfigStatus(remoteCfgStatus); err != nil { - return fmt.Errorf("failed to set remote config status: %w", err) - } - - // If we changed the config call UpdateEffectiveConfig - if changed { - if err := c.opampClient.UpdateEffectiveConfig(ctx); err != nil { - return fmt.Errorf("failed to update effective config: %w", err) - } - } - return nil -} - -// onPackagesAvailableHandler handles when OnMessage contains a PackagesAvailable message -func (c *Client) onPackagesAvailableHandler(availablePkgs *protobufs.PackagesAvailable) error { - c.logger.Debug("Packages available handler") - - // Initialize PackageStatuses that will eventually be sent back to server - curPkgStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: availablePkgs.GetAllPackagesHash(), - Packages: map[string]*protobufs.PackageStatus{}, - } - - // Don't respond to PackagesAvailable messages while currently installing. We use this in memory data rather than the - // PackageStatuses persistant data in order to ensure that we don't get stuck in a stuck state - if c.safeGetUpdatingPackage() { - c.logger.Warn( - "Not starting new package update as already installing new packages", - zap.String("AllPackagesHash", hex.EncodeToString(availablePkgs.GetAllPackagesHash()))) - - curPkgStatuses.ErrorMessage = "Already installing new packages" - // Dont' actually set the on file package statuses because we want to ignore this - if err := c.opampClient.SetPackageStatuses(curPkgStatuses); err != nil { - c.logger.Error("OpAMP client failed to set already installing package statuses", zap.Error(err)) - } - return errors.New("failed because already installing packages") - } - - // Retrieve last known status (this should return with minimal info even on first time). - // If there is a problem retrieving the last saved PackageStatuses, we will log the error - // but continue on as the only thing missing will be the agent package hash. - pkgStatuses, err := c.getVerifiedPackageStatuses() - if err != nil { - c.logger.Warn("Problem with package statuses on starting install", zap.Error(err)) - } - - lastPkgStatusMap := make(map[string]*protobufs.PackageStatus) - if pkgStatuses != nil && pkgStatuses.GetPackages() != nil { - lastPkgStatusMap = pkgStatuses.GetPackages() - } - - // Loop through all of the available packages sent from the server and create initial PackageStatuses - for pkgName, availablePkg := range availablePkgs.Packages { - lastPkgStatus := lastPkgStatusMap[pkgName] - curPkgStatuses.Packages[pkgName] = c.buildInitialPackageStatus(pkgName, availablePkg, lastPkgStatus) - } - - // This is an error because we need this file for communication during the update - if err = c.packagesStateProvider.SetLastReportedStatuses(curPkgStatuses); err != nil { - return fmt.Errorf("failed to save last reported package statuses: %w", err) - } - - if err = c.opampClient.SetPackageStatuses(curPkgStatuses); err != nil { - return fmt.Errorf("opamp client failed to set package statuses: %w", err) - } - - // Start update if applicable - if curPkgStatuses.Packages[packagestate.CollectorPackageName].Status == protobufs.PackageStatusEnum_PackageStatusEnum_Installing { - collectorDownloadableFile := availablePkgs.GetPackages()[packagestate.CollectorPackageName].GetFile() - c.startCollectorPackageInstall(curPkgStatuses, collectorDownloadableFile) - } - - return nil -} - -// buildInitialCollectorPackageStatus sets up the initial package status message any package -func (c *Client) buildInitialPackageStatus(pkgName string, availablePkg *protobufs.PackageAvailable, - lastPkgStatus *protobufs.PackageStatus) *protobufs.PackageStatus { - var initPkgStatus *protobufs.PackageStatus - - switch pkgName { - case packagestate.CollectorPackageName: - initPkgStatus = c.buildInitialCollectorPackageStatus(pkgName, availablePkg, lastPkgStatus) - // If it's not an expected package, return a failed status - default: - c.logger.Error( - "Package update failed because it is not supported", - zap.String("package", pkgName)) - - initPkgStatus = &protobufs.PackageStatus{ - Name: pkgName, - ServerOfferedVersion: availablePkg.GetVersion(), - ServerOfferedHash: availablePkg.GetHash(), - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, - ErrorMessage: "Package not supported", - } - } - - return initPkgStatus -} - -// buildInitialCollectorPackageStatus sets up the initial package status message for the collector package -func (c *Client) buildInitialCollectorPackageStatus(pkgName string, availablePkg *protobufs.PackageAvailable, - lastPkgStatus *protobufs.PackageStatus) *protobufs.PackageStatus { - initPkgStatus := &protobufs.PackageStatus{ - Name: pkgName, - AgentHasVersion: version.Version(), - ServerOfferedVersion: availablePkg.GetVersion(), - ServerOfferedHash: availablePkg.GetHash(), - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installed, - } - - // If the new version is the same as the current version we are already installed - if version.Version() == availablePkg.GetVersion() { - c.logger.Info("Package update ignored because no new version offered", - zap.String("package", pkgName)) - initPkgStatus.AgentHasHash = availablePkg.GetHash() - - return initPkgStatus - } - - // Only grab agentHash from last status if that version matches the current one - if lastPkgStatus != nil { - if lastPkgStatus.GetAgentHasVersion() == version.Version() { - initPkgStatus.AgentHasHash = lastPkgStatus.GetAgentHasHash() - } else { - c.logger.Debug( - fmt.Sprintf( - "Current version: %s and last reported package status version: %s differ", - version.Version(), - lastPkgStatus.GetAgentHasVersion()), - zap.String("package", pkgName)) - } - } - - // Bad install if no version is given - if availablePkg.GetVersion() == "" { - c.logger.Info("Packaged update failed because no new version detected", - zap.String("package", pkgName)) - initPkgStatus.ErrorMessage = "Packaged update failed because no new version detected" - initPkgStatus.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed - - return initPkgStatus - } - - // Bad install if no file is given - if availablePkg.File == nil { - c.logger.Info("Packaged update failed because no downloadable file detected", - zap.String("package", pkgName)) - initPkgStatus.ErrorMessage = "Packaged update failed because no downloadable file detected" - initPkgStatus.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed - - return initPkgStatus - } - - initPkgStatus.Status = protobufs.PackageStatusEnum_PackageStatusEnum_Installing - - return initPkgStatus -} - -// startCollectorPackageInstall attempts to start updating the collector using a new tarball -func (c *Client) startCollectorPackageInstall(curPkgStatuses *protobufs.PackageStatuses, collectorFile *protobufs.DownloadableFile) { - c.logger.Info("Package update started", - zap.String("AllPackagesHash", hex.EncodeToString(curPkgStatuses.ServerProvidedAllPackagesHash)), - zap.String("package", packagestate.CollectorPackageName)) - // Start installing from file if applicable - if collectorFile != nil { - c.safeSetUpdatingPackage(true) - go c.installPackageFromFile(collectorFile) - } else { - c.tryToFailPackageInstall("No valid downloadable file found", true) - } -} - -// installPackageFromFile tries to download and extract the given tarball and then start up the new -// Updater binary that was inside of it -func (c *Client) installPackageFromFile(file *protobufs.DownloadableFile) { - // There should be no reason for us to exit this function unless there is a problem with the Updater's installation - defer c.safeSetUpdatingPackage(false) - - if fileManagerErr := c.downloadableFileManager.FetchAndExtractArchive(file); fileManagerErr != nil { - // Remove the update artifacts that may exist, depending on where FetchAndExtractArchive failed. - c.downloadableFileManager.CleanupArtifacts() - errMsg := fmt.Sprintf("Failed to download and verify the supplied downloadable file: %s", fileManagerErr) - c.tryToFailPackageInstall(errMsg, true) - - return - } - - if monitorErr := c.updaterManager.StartAndMonitorUpdater(); monitorErr != nil { - // Remove the update artifacts - c.downloadableFileManager.CleanupArtifacts() - c.tryToFailPackageInstall(fmt.Sprintf("Failed to run the latest Updater: %s", monitorErr), true) - } -} - -// tryToFailPackageInstall sets PackageStatuses status to failed and error message if we are in the middle of an install. -// The new status will only be immediately sent if explicitly told to -func (c *Client) tryToFailPackageInstall(errMsg string, sendStatusNow bool) { - // See if we can retrieve the PackageStatuses where the main package is in an installing state - pkgStatuses, err := c.getVerifiedPackageStatuses() - if err != nil { - c.logger.Error("Problem with PackageStatuses", zap.Error(err)) - return - } - - collectorPackageStatus := pkgStatuses.Packages[packagestate.CollectorPackageName] - // If we were not installing before the connection, nothing else to do - if collectorPackageStatus.Status != protobufs.PackageStatusEnum_PackageStatusEnum_Installing { - return - } - - // Fail the package install - c.failPackageInstall(pkgStatuses, errMsg, sendStatusNow) -} - -// failPackageInstall sets PackageStatuses status to failed and error message. The new status will only be -// immediately sent if explicitly told to -func (c *Client) failPackageInstall(pkgStatuses *protobufs.PackageStatuses, errMsg string, sendStatusNow bool) { - // See if we can retrieve the PackageStatuses where the main package is in an installing state - if pkgStatuses == nil { - c.logger.Error("Failed to attempt PackageStatuses failure as none were provided") - return - } - - collectorPkgStatus, ok := pkgStatuses.Packages[packagestate.CollectorPackageName] - if !ok { - c.logger.Error("Failed to attempt PackageStatuses failure as no collector status provided") - return - } - - collectorPkgStatus.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed - if collectorPkgStatus.ErrorMessage == "" { - collectorPkgStatus.ErrorMessage = errMsg - } - - c.logger.Error(fmt.Sprintf("Package update failed: %s", collectorPkgStatus.ErrorMessage), - zap.String("package", packagestate.CollectorPackageName)) - - if err := c.packagesStateProvider.SetLastReportedStatuses(pkgStatuses); err != nil { - c.logger.Error("Failed to set failed install package statuses", zap.Error(err)) - } - - // Only send status to Server if this is set. Otherwise it will happen after collector is restarted - if sendStatusNow { - if err := c.opampClient.SetPackageStatuses(pkgStatuses); err != nil { - c.logger.Error("OpAMP client failed to set failed install package statuses", zap.Error(err)) - } - } -} - -// finishPackageInstall sets PackageStatuses status to installed and agent properties to the offered -// server properties. -func (c *Client) finishPackageInstall(pkgStatuses *protobufs.PackageStatuses) { - c.logger.Info("Package update was successful", - zap.String("AllPackagesHash", hex.EncodeToString(pkgStatuses.ServerProvidedAllPackagesHash)), - zap.String("package", packagestate.CollectorPackageName)) - - if pkgStatuses == nil { - c.logger.Error("Failed to set PackageStatuses to installed as none were provided") - return - } - - collectorPkgStatus, ok := pkgStatuses.Packages[packagestate.CollectorPackageName] - if !ok { - c.logger.Error("Failed to set PackageStatuses to installed as no collector status provided") - return - } - - collectorPkgStatus.Status = protobufs.PackageStatusEnum_PackageStatusEnum_Installed - collectorPkgStatus.AgentHasVersion = version.Version() - collectorPkgStatus.AgentHasHash = collectorPkgStatus.ServerOfferedHash - - if err := c.packagesStateProvider.SetLastReportedStatuses(pkgStatuses); err != nil { - c.logger.Error("Failed to set last reported package statuses", zap.Error(err)) - } - - if err := c.opampClient.SetPackageStatuses(pkgStatuses); err != nil { - c.logger.Error("OpAMP client failed to set package statuses", zap.Error(err)) - } -} - -// getVerifiedPackageStatuses returns the last available PackagesStatuses info only if -// the collector package status exists -func (c *Client) getVerifiedPackageStatuses() (*protobufs.PackageStatuses, error) { - lastPackageStatuses, err := c.packagesStateProvider.LastReportedStatuses() - if err != nil { - return nil, fmt.Errorf("failed to retrieve last reported package statuses: %w", err) - } - - // If we have no info on our collector package, nothing else to do - if lastPackageStatuses == nil || lastPackageStatuses.Packages == nil || lastPackageStatuses.Packages[packagestate.CollectorPackageName] == nil { - return nil, errors.New("failed to retrieve last reported package status for collector package") - } - - return lastPackageStatuses, nil -} - -// stopCollectorMonitoring stops monitoring the collector -func (c *Client) stopCollectorMonitoring() { - c.collectorMntrCancel() - c.collectorMntrWg.Wait() -} - -// startCollectorMonitoring starts a separate goroutine to monitor the collectors status -func (c *Client) startCollectorMonitoring(ctx context.Context) { - c.collectorMntrCtx, c.collectorMntrCancel = context.WithCancel(ctx) - c.collectorMntrWg.Add(1) - go c.monitorCollectorStatus() -} - -// monitorCollectorStatus monitors the status of the collector after startup -func (c *Client) monitorCollectorStatus() { - defer c.collectorMntrWg.Done() - statusChan := c.collector.Status() - select { - case status := <-statusChan: - switch { - case status.Panicked: - // Currently we can't recover from this so we should log a message and exit with an error code. - // No need to cleanup on shutdown as if no state is left over that would prevent a new process from starting. - c.logger.Fatal("Collector encountered unrecoverable error", zap.Error(status.Err)) - case status.Err != nil: - c.logger.Error("Collector unexpectedly stopped running", zap.Error(status.Err)) - case !status.Running: - c.logger.Error("Collector unexpectedly stopped running") - } - case <-c.collectorMntrCtx.Done(): - c.logger.Debug("collector monitor context closed") - return - } -} - -func (c *Client) safeSetUpdatingPackage(value bool) { - c.mutex.Lock() - defer c.mutex.Unlock() - c.updatingPackage = value -} - -func (c *Client) safeGetUpdatingPackage() bool { - c.mutex.Lock() - defer c.mutex.Unlock() - return c.updatingPackage -} - -func (c *Client) safeSetDisconnecting(value bool) { - c.mutex.Lock() - defer c.mutex.Unlock() - c.disconnecting = value -} - -func (c *Client) safeGetDisconnecting() bool { - c.mutex.Lock() - defer c.mutex.Unlock() - return c.disconnecting -} diff --git a/opamp/observiq/observiq_client_test.go b/opamp/observiq/observiq_client_test.go deleted file mode 100644 index 9c26a7467..000000000 --- a/opamp/observiq/observiq_client_test.go +++ /dev/null @@ -1,1548 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "context" - "errors" - "fmt" - "net/http" - "os" - "path/filepath" - "sync" - "testing" - "time" - - "github.com/observiq/bindplane-agent/collector" - colmocks "github.com/observiq/bindplane-agent/collector/mocks" - "github.com/observiq/bindplane-agent/internal/report" - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/opamp" - "github.com/observiq/bindplane-agent/opamp/mocks" - "github.com/observiq/bindplane-agent/packagestate" - "github.com/open-telemetry/opamp-go/client/types" - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -func TestNewClient(t *testing.T) { - secretKey := "136bdd08-2074-40b7-ac1c-6706ac24c4f2" - badCAFile := "bad" - testCases := []struct { - desc string - config opamp.Config - expectedErr error - }{ - { - desc: "Bad URL Scheme", - config: opamp.Config{ - Endpoint: "http://localhost:1234", - AgentID: testAgentID, - }, - expectedErr: ErrUnsupportedURL, - }, - { - desc: "Invalid Endpoint", - config: opamp.Config{ - Endpoint: "\t\t\t", - AgentID: testAgentID, - }, - expectedErr: errors.New("net/url: invalid control character in URL"), - }, - { - desc: "Bad TLS Config", - config: opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - TLS: &opamp.TLSConfig{ - CAFile: &badCAFile, - }, - }, - expectedErr: errors.New("failed creating TLS config"), - }, - { - desc: "Valid Config", - config: opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - SecretKey: &secretKey, - }, - expectedErr: nil, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, func(t *testing.T) { - testLogger := zap.NewNop() - mockCollector := colmocks.NewMockCollector(t) - - tmpDir := t.TempDir() - - managerPath := filepath.Join(tmpDir, "manager.yaml") - managerFile, err := os.Create(managerPath) - assert.NoError(t, err) - - collectorPath := filepath.Join(tmpDir, "collector.yaml") - collectorFile, err := os.Create(collectorPath) - assert.NoError(t, err) - - loggerPath := filepath.Join(tmpDir, "logger.yaml") - loggerFile, err := os.Create(loggerPath) - assert.NoError(t, err) - - // We need to close the files specifically so windows can clean up the tmp dir - defer func() { - err := managerFile.Close() - assert.NoError(t, err) - err = collectorFile.Close() - assert.NoError(t, err) - err = loggerFile.Close() - assert.NoError(t, err) - }() - - args := &NewClientArgs{ - DefaultLogger: testLogger, - Config: tc.config, - Collector: mockCollector, - ManagerConfigPath: managerPath, - CollectorConfigPath: collectorPath, - LoggerConfigPath: loggerPath, - } - - actual, err := NewClient(args) - - if tc.expectedErr != nil { - assert.ErrorContains(t, err, tc.expectedErr.Error()) - assert.Nil(t, actual) - } else { - assert.NoError(t, err) - - observiqClient, ok := actual.(*Client) - require.True(t, ok) - - // Do a shallow check on all fields to assert they exist and are equal to passed in params were possible - assert.NotNil(t, observiqClient.opampClient) - assert.NotNil(t, observiqClient.configManager) - assert.NotNil(t, observiqClient.packagesStateProvider) - assert.Equal(t, testLogger.Named("opamp"), observiqClient.logger) - assert.Equal(t, mockCollector, observiqClient.collector) - assert.NotNil(t, observiqClient.ident) - assert.Equal(t, report.GetManager(), observiqClient.reportManager) - assert.Equal(t, observiqClient.currentConfig, tc.config) - assert.False(t, observiqClient.safeGetDisconnecting()) - assert.False(t, observiqClient.safeGetUpdatingPackage()) - } - - }) - } -} - -func TestClientConnect(t *testing.T) { - secretKeyContents := "136bdd08-2074-40b7-ac1c-6706ac24c4f2" - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - newVersion := "99.99.99" - - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "SetAgentDescription fails", - testFunc: func(*testing.T) { - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - expectedErr := errors.New("oops") - - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(expectedErr) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - assert.Equal(t, "Failed setting agent description: oops", status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{}, - configManager: nil, - collector: nil, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - }, - packagesStateProvider: mockStateProvider, - } - - err := c.Connect(context.Background()) - assert.ErrorIs(t, err, expectedErr) - }, - }, - { - desc: "TLS fails", - testFunc: func(*testing.T) { - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(nil) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - assert.Contains(t, status.Packages[packagestate.CollectorPackageName].ErrorMessage, "Failed creating TLS config: failed to read CA file: open bad-ca.cert:") - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - badCAFile := "bad-ca.cert" - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{}, - configManager: nil, - collector: nil, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - TLS: &opamp.TLSConfig{ - CAFile: &badCAFile, - }, - }, - packagesStateProvider: mockStateProvider, - } - - err := c.Connect(context.Background()) - assert.Error(t, err) - }, - }, - { - desc: "Collector fails to start", - testFunc: func(*testing.T) { - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(nil) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - assert.Equal(t, "Collector failed to start: oops", status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - expectedErr := errors.New("oops") - - mockCollector := colmocks.NewMockCollector(t) - mockCollector.On("Run", mock.Anything).Return(expectedErr) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{agentID: testAgentID}, - configManager: nil, - collector: mockCollector, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - }, - packagesStateProvider: mockStateProvider, - } - - err := c.Connect(context.Background()) - assert.ErrorIs(t, err, expectedErr) - }, - }, - { - desc: "Start fails", - testFunc: func(*testing.T) { - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - expectedErr := errors.New("oops") - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(nil) - mockOpAmpClient.On("Start", mock.Anything, mock.Anything).Return(expectedErr) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - assert.Equal(t, "OpAMP client failed to start: oops", status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - statusChannel := make(chan *collector.Status) - mockCollector := colmocks.NewMockCollector(t) - mockCollector.On("Run", mock.Anything).Return(nil) - mockCollector.On("Status").Return((<-chan *collector.Status)(statusChannel)) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{agentID: testAgentID}, - configManager: nil, - collector: mockCollector, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - }, - packagesStateProvider: mockStateProvider, - } - - err := c.Connect(context.Background()) - assert.ErrorIs(t, err, expectedErr) - - // Cleanup - c.collectorMntrCancel() - assert.Eventually(t, func() bool { - c.collectorMntrWg.Wait() - return true - }, 2*time.Second, 100*time.Millisecond) - }, - }, - { - desc: "Connect successful", - testFunc: func(*testing.T) { - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(nil) - - statusChannel := make(chan *collector.Status) - mockCollector := colmocks.NewMockCollector(t) - mockCollector.On("Run", mock.Anything).Return(nil) - mockCollector.On("Status").Return((<-chan *collector.Status)(statusChannel)) - - mockPackagesStateProvider := mocks.NewMockPackagesStateProvider(t) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{ - agentID: testAgentID, - hostname: "my.localnet", - }, - configManager: nil, - collector: mockCollector, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - }, - packagesStateProvider: mockPackagesStateProvider, - } - - expectedSettings := types.StartSettings{ - OpAMPServerURL: c.currentConfig.Endpoint, - Header: http.Header{ - "Authorization": []string{fmt.Sprintf("Secret-Key %s", c.currentConfig.GetSecretKey())}, - "User-Agent": []string{fmt.Sprintf("observiq-otel-collector/%s", version.Version())}, - "OpAMP-Version": []string{opamp.Version()}, - "Agent-ID": []string{c.ident.agentID.String()}, - "Agent-Version": []string{version.Version()}, - "Agent-Hostname": []string{c.ident.hostname}, - "X-Bindplane-Agent-Id-Format": []string{"ULID"}, - }, - TLSConfig: nil, - InstanceUid: c.ident.agentID.OpAMPInstanceUID(), - Callbacks: types.CallbacksStruct{ - OnConnectFunc: c.onConnectHandler, - OnConnectFailedFunc: c.onConnectFailedHandler, - OnErrorFunc: c.onErrorHandler, - OnMessageFunc: c.onMessageFuncHandler, - GetEffectiveConfigFunc: c.onGetEffectiveConfigHandler, - }, - PackagesStateProvider: c.packagesStateProvider, - } - mockOpAmpClient.On("Start", mock.Anything, mock.Anything).Return(nil).Run(func(args mock.Arguments) { - settings := args.Get(1).(types.StartSettings) - assert.Equal(t, expectedSettings.OpAMPServerURL, settings.OpAMPServerURL) - assert.Equal(t, expectedSettings.Header, settings.Header) - assert.Equal(t, expectedSettings.TLSConfig, settings.TLSConfig) - assert.Equal(t, expectedSettings.InstanceUid, settings.InstanceUid) - assert.Equal(t, expectedSettings.PackagesStateProvider, settings.PackagesStateProvider) - // assert is unable to compare function pointers - }) - - err := c.Connect(context.Background()) - assert.NoError(t, err) - - // Cleanup - c.collectorMntrCancel() - assert.Eventually(t, func() bool { - c.collectorMntrWg.Wait() - return true - }, 2*time.Second, 100*time.Millisecond) - }, - }, - { - desc: "Problem connecting & not installing", - testFunc: func(*testing.T) { - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - ServerOfferedVersion: version.Version(), - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installed, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - Packages: statuses, - } - - expectedErr := errors.New("oops") - - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(expectedErr) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - ident: &identity{}, - configManager: nil, - collector: nil, - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - SecretKey: &secretKeyContents, - }, - packagesStateProvider: mockStateProvider, - } - - err := c.Connect(context.Background()) - assert.ErrorIs(t, err, expectedErr) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestClientDisconnect(t *testing.T) { - ctx := context.Background() - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("Stop", ctx).Return(nil) - mockCollector := colmocks.NewMockCollector(t) - statusChan := make(chan *collector.Status) - mockCollector.On("Status").Return((<-chan *collector.Status)(statusChan)) - mockCollector.On("Stop", ctx).Return() - - c := &Client{ - opampClient: mockOpAmpClient, - collector: mockCollector, - reportManager: report.GetManager(), - logger: zap.NewNop(), - } - - // Start collector monitoring to ensure this is shut down properly - c.startCollectorMonitoring(ctx) - - var err error - waitFunc := func() bool { - err = c.Disconnect(ctx) - return true - } - - require.Eventually(t, waitFunc, time.Second*2, time.Millisecond*100) - assert.NoError(t, err) - assert.True(t, c.safeGetDisconnecting()) - mockOpAmpClient.AssertExpectations(t) -} - -func TestClient_onConnectHandler(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "LastReportedStatus error", - testFunc: func(*testing.T) { - expectedErr := errors.New("oops") - - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(nil, expectedErr) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectHandler(context.Background()) - }, - }, - { - desc: "LastReportedStatus no main package info", - testFunc: func(*testing.T) { - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: []byte("allHash"), - Packages: make(map[string]*protobufs.PackageStatus), - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectHandler(context.Background()) - }, - }, - { - desc: "Good LastReportedStatus but not installing", - testFunc: func(*testing.T) { - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - newVersion := "99.99.99" - errorMessage := "problem" - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, - ErrorMessage: errorMessage, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectHandler(context.Background()) - }, - }, - { - desc: "Installing with version mismatch", - testFunc: func(*testing.T) { - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - newVersion := "99.99.99" - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, allHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagestate.CollectorPackageName, status.Packages[packagestate.CollectorPackageName].Name) - assert.Equal(t, version.Version(), status.Packages[packagestate.CollectorPackageName].AgentHasVersion) - assert.Equal(t, hash, status.Packages[packagestate.CollectorPackageName].AgentHasHash) - assert.Equal(t, newVersion, status.Packages[packagestate.CollectorPackageName].ServerOfferedVersion) - assert.Equal(t, newHash, status.Packages[packagestate.CollectorPackageName].ServerOfferedHash) - assert.Equal(t, "Failed because of collector version mismatch: expected 99.99.99, actual latest", status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectHandler(context.Background()) - }, - }, - { - desc: "Installing with new version match", - testFunc: func(*testing.T) { - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - oldVersion := "99.99.99" - newVersion := version.Version() - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: oldVersion, - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, allHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagestate.CollectorPackageName, status.Packages[packagestate.CollectorPackageName].Name) - assert.Equal(t, newVersion, status.Packages[packagestate.CollectorPackageName].AgentHasVersion) - assert.Equal(t, newHash, status.Packages[packagestate.CollectorPackageName].AgentHasHash) - assert.Equal(t, newVersion, status.Packages[packagestate.CollectorPackageName].ServerOfferedVersion) - assert.Equal(t, newHash, status.Packages[packagestate.CollectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - c := &Client{ - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - packagesStateProvider: mockStateProvider, - } - - c.onConnectHandler(context.Background()) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestClient_onConnectFailedHandler(t *testing.T) { - expectedErr := errors.New("oops") - - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "LastReportedStatus error", - testFunc: func(*testing.T) { - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(nil, expectedErr) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectFailedHandler(context.Background(), expectedErr) - }, - }, - { - desc: "LastReportedStatus no main package info", - testFunc: func(*testing.T) { - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: []byte("allHash"), - Packages: make(map[string]*protobufs.PackageStatus), - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectFailedHandler(context.Background(), expectedErr) - }, - }, - { - desc: "Disconnect do not change package status", - testFunc: func(*testing.T) { - mockStateProvider := new(mocks.MockPackagesStateProvider) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - disconnecting: true, - } - - c.onConnectFailedHandler(context.Background(), expectedErr) - }, - }, - { - desc: "Good LastReportedStatus but not installing", - testFunc: func(*testing.T) { - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - newVersion := "99.99.99" - errorMessage := "problem" - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, - ErrorMessage: errorMessage, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - - c := &Client{ - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectFailedHandler(context.Background(), expectedErr) - }, - }, - { - desc: "Good LastReportedStatus and installing", - testFunc: func(*testing.T) { - allHash := []byte("allHash") - hash := []byte("hash") - newHash := []byte("newHash") - newVersion := "99.99.99" - statuses := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: hash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - mockOpAmpClient := new(mocks.MockOpAMPClient) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil) - mockStateProvider := new(mocks.MockPackagesStateProvider) - mockStateProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockStateProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, allHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagestate.CollectorPackageName, status.Packages[packagestate.CollectorPackageName].Name) - assert.Equal(t, version.Version(), status.Packages[packagestate.CollectorPackageName].AgentHasVersion) - assert.Equal(t, hash, status.Packages[packagestate.CollectorPackageName].AgentHasHash) - assert.Equal(t, newVersion, status.Packages[packagestate.CollectorPackageName].ServerOfferedVersion) - assert.Equal(t, newHash, status.Packages[packagestate.CollectorPackageName].ServerOfferedHash) - assert.Equal(t, fmt.Sprintf("Failed to connect to OpAMP Server: %s", expectedErr), status.Packages[packagestate.CollectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[packagestate.CollectorPackageName].Status) - }) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - packagesStateProvider: mockStateProvider, - } - - c.onConnectFailedHandler(context.Background(), expectedErr) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestClient_onGetEffectiveConfigHandler(t *testing.T) { - mockManager := mocks.NewMockConfigManager(t) - - c := &Client{ - logger: zap.NewNop(), - configManager: mockManager, - } - - mockManager.On("ComposeEffectiveConfig").Return(&protobufs.EffectiveConfig{}, nil) - - c.onGetEffectiveConfigHandler(context.Background()) - mockManager.AssertExpectations(t) -} - -func TestClient_onRemoteConfigHandler(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Config Changes return error, no change", - testFunc: func(*testing.T) { - expectedErr := errors.New("oops") - expectedChanged := false - mockManager := mocks.NewMockConfigManager(t) - mockManager.On("ApplyConfigChanges", mock.Anything).Return(expectedChanged, expectedErr) - - remoteConfig := &protobufs.AgentRemoteConfig{ - ConfigHash: []byte("hash"), - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetRemoteConfigStatus", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.RemoteConfigStatus) - - assert.NotNil(t, status) - assert.Equal(t, remoteConfig.GetConfigHash(), status.GetLastRemoteConfigHash()) - assert.Equal(t, protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED, status.GetStatus()) - assert.Contains(t, status.GetErrorMessage(), expectedErr.Error()) - - }) - - c := &Client{ - configManager: mockManager, - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - } - - err := c.onRemoteConfigHandler(context.Background(), remoteConfig) - assert.NoError(t, err) - }, - }, - { - desc: "Config Changes occur", - testFunc: func(*testing.T) { - mockManager := mocks.NewMockConfigManager(t) - mockManager.On("ApplyConfigChanges", mock.Anything).Return(true, nil) - - remoteConfig := &protobufs.AgentRemoteConfig{ - ConfigHash: []byte("hash"), - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("UpdateEffectiveConfig", mock.Anything).Return(nil) - mockOpAmpClient.On("SetRemoteConfigStatus", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.RemoteConfigStatus) - - assert.NotNil(t, status) - assert.Equal(t, remoteConfig.GetConfigHash(), status.GetLastRemoteConfigHash()) - assert.Equal(t, protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED, status.GetStatus()) - assert.Equal(t, "", status.GetErrorMessage()) - - }) - - c := &Client{ - configManager: mockManager, - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - } - - err := c.onRemoteConfigHandler(context.Background(), remoteConfig) - assert.NoError(t, err) - }, - }, - { - desc: "No Config Changes occur", - testFunc: func(*testing.T) { - mockManager := mocks.NewMockConfigManager(t) - mockManager.On("ApplyConfigChanges", mock.Anything).Return(false, nil) - - remoteConfig := &protobufs.AgentRemoteConfig{ - ConfigHash: []byte("hash"), - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetRemoteConfigStatus", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.RemoteConfigStatus) - - assert.NotNil(t, status) - assert.Equal(t, remoteConfig.GetConfigHash(), status.GetLastRemoteConfigHash()) - assert.Equal(t, protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED, status.GetStatus()) - assert.Equal(t, "", status.GetErrorMessage()) - - }) - - c := &Client{ - configManager: mockManager, - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - } - - err := c.onRemoteConfigHandler(context.Background(), remoteConfig) - assert.NoError(t, err) - }, - }, - { - desc: "SetRemoteConfigStatus errors", - testFunc: func(*testing.T) { - expectedErr := errors.New("oops") - - mockManager := mocks.NewMockConfigManager(t) - mockManager.On("ApplyConfigChanges", mock.Anything).Return(false, nil) - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetRemoteConfigStatus", mock.Anything).Return(expectedErr) - - c := &Client{ - configManager: mockManager, - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - } - - err := c.onRemoteConfigHandler(context.Background(), &protobufs.AgentRemoteConfig{}) - assert.ErrorIs(t, err, expectedErr) - }, - }, - { - desc: "UpdateEffectiveConfig errors", - testFunc: func(*testing.T) { - expectedErr := errors.New("oops") - - mockManager := mocks.NewMockConfigManager(t) - mockManager.On("ApplyConfigChanges", mock.Anything).Return(true, nil) - - remoteConfig := &protobufs.AgentRemoteConfig{ - ConfigHash: []byte("hash"), - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("UpdateEffectiveConfig", mock.Anything).Return(expectedErr) - mockOpAmpClient.On("SetRemoteConfigStatus", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.RemoteConfigStatus) - - assert.NotNil(t, status) - assert.Equal(t, remoteConfig.GetConfigHash(), status.GetLastRemoteConfigHash()) - assert.Equal(t, protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED, status.GetStatus()) - assert.Equal(t, "", status.GetErrorMessage()) - - }) - - c := &Client{ - configManager: mockManager, - logger: zap.NewNop(), - opampClient: mockOpAmpClient, - } - - err := c.onRemoteConfigHandler(context.Background(), remoteConfig) - assert.ErrorIs(t, err, expectedErr) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestClient_onPackagesAvailableHandler(t *testing.T) { - collectorPackageName := packagestate.CollectorPackageName - allHash := []byte("totalhash0") - newAllHash := []byte("totalhash1") - packageHash := []byte("hash0") - newPackageHash := []byte("hash1") - newVersion := "999.999.999" - expectedErr := errors.New("oops") - - packages := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: version.Version(), - Hash: packageHash, - File: &protobufs.DownloadableFile{}, - }, - } - packagesAvailable := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packages, - } - - statuses := map[string]*protobufs.PackageStatus{ - collectorPackageName: { - Name: collectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: packageHash, - ServerOfferedVersion: version.Version(), - ServerOfferedHash: packageHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installed, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - Packages: statuses, - } - - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Same PackagesAvailable version but bad Last PackagesStatuses", - testFunc: func(t *testing.T) { - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(nil, expectedErr) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailable.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailable) - assert.NoError(t, err) - }, - }, - { - desc: "Same PackagesAvailable version", - testFunc: func(t *testing.T) { - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailable.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailable) - assert.NoError(t, err) - }, - }, - { - desc: "Same PackagesAvailable version and non supported package", - testFunc: func(t *testing.T) { - badPackageName := "no-support-package" - packagesNotSupported := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: version.Version(), - Hash: packageHash, - File: &protobufs.DownloadableFile{}, - }, - badPackageName: { - Version: newVersion, - Hash: packageHash, - }, - } - packagesAvailableNotSupported := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packagesNotSupported, - } - - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNotSupported.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 2, len(status.Packages)) - assert.Equal(t, packagesAvailableNotSupported.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNotSupported.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packagesAvailableNotSupported.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packagesAvailableNotSupported.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].AgentHasVersion) - assert.Equal(t, packagesAvailableNotSupported.Packages[badPackageName].Version, status.Packages[badPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNotSupported.Packages[badPackageName].Hash, status.Packages[badPackageName].ServerOfferedHash) - assert.Equal(t, "Package not supported", status.Packages[badPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[badPackageName].Status) - assert.Equal(t, badPackageName, status.Packages[badPackageName].Name) - assert.Nil(t, status.Packages[badPackageName].AgentHasHash) - assert.Equal(t, "", status.Packages[badPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailableNotSupported) - assert.NoError(t, err) - }, - }, - { - desc: "Same PackagesAvailable version but Last PackageStatuses version mismatch", - testFunc: func(t *testing.T) { - statusesDiffHash := map[string]*protobufs.PackageStatus{ - collectorPackageName: { - Name: collectorPackageName, - AgentHasVersion: newVersion, - AgentHasHash: newPackageHash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newPackageHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installed, - }, - } - packageStatusesDiffHash := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: newAllHash, - Packages: statusesDiffHash, - } - - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatusesDiffHash, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailable.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].AgentHasHash) - assert.NotEqual(t, statusesDiffHash[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].AgentHasVersion) - assert.NotEqual(t, statusesDiffHash[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailable) - assert.NoError(t, err) - }, - }, - // The version of this test where the update goes well can't exist because - // it would kill the collector. StartAndMonitorUpdater will always return an error - // if it does return. - { - desc: "New PackagesAvailable version with good file but bad update", - testFunc: func(t *testing.T) { - packagesNew := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: newVersion, - Hash: newPackageHash, - File: &protobufs.DownloadableFile{}, - }, - } - packagesAvailableNew := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packagesNew, - } - savedStatuses := map[string]*protobufs.PackageStatus{ - collectorPackageName: { - Name: collectorPackageName, - AgentHasVersion: version.Version(), - AgentHasHash: packageHash, - ServerOfferedVersion: newVersion, - ServerOfferedHash: newPackageHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installing, - }, - } - savedPackageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: newAllHash, - Packages: savedStatuses, - } - wg := sync.WaitGroup{} - wg.Add(2) - mockUpdaterManager := mocks.NewMockUpdaterManager(t) - mockUpdaterManager.On("StartAndMonitorUpdater").Return(expectedErr) - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil).Once() - mockProvider.On("LastReportedStatuses").Return(savedPackageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockFileManager := mocks.NewMockDownloadableFileManager(t) - mockFileManager.On("FetchAndExtractArchive", mock.Anything).Return(nil).Run(func(_ mock.Arguments) { - wg.Done() - }) - mockFileManager.On("CleanupArtifacts").Return().Times(1) - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Once().Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNew.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installing, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNew.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "Failed to run the latest Updater: oops", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - wg.Done() - }) - - c := &Client{ - packagesStateProvider: mockProvider, - downloadableFileManager: mockFileManager, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - updaterManager: mockUpdaterManager, - } - - err := c.onPackagesAvailableHandler(packagesAvailableNew) - assert.NoError(t, err) - wg.Wait() - assert.False(t, c.safeGetUpdatingPackage()) - }, - }, - { - desc: "New PackagesAvailable version while already installing", - testFunc: func(t *testing.T) { - packagesNew := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: newVersion, - Hash: newPackageHash, - File: &protobufs.DownloadableFile{}, - }, - } - packagesAvailableNew := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packagesNew, - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "Already installing new packages", status.ErrorMessage) - assert.Equal(t, packagesAvailableNew.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 0, len(status.Packages)) - }) - - c := &Client{ - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - updatingPackage: true, - } - - err := c.onPackagesAvailableHandler(packagesAvailableNew) - assert.ErrorContains(t, err, "failed because already installing packages") - }, - }, - { - desc: "New PackagesAvailable version with no DownloadableFile", - testFunc: func(t *testing.T) { - packagesNoFile := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: newVersion, - Hash: newPackageHash, - }, - } - packagesAvailableNoFile := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packagesNoFile, - } - - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNoFile.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailableNoFile.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNoFile.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "Packaged update failed because no downloadable file detected", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailableNoFile) - assert.NoError(t, err) - }, - }, - { - desc: "New PackagesAvailable version with bad DownloadableFile", - testFunc: func(t *testing.T) { - packagesNew := map[string]*protobufs.PackageAvailable{ - collectorPackageName: { - Version: newVersion, - Hash: newPackageHash, - File: &protobufs.DownloadableFile{}, - }, - } - packagesAvailableNew := &protobufs.PackagesAvailable{ - AllPackagesHash: newAllHash, - Packages: packagesNew, - } - - mockFileManager := mocks.NewMockDownloadableFileManager(t) - mockFileManager.On("FetchAndExtractArchive", mock.Anything).Return(expectedErr) - mockFileManager.On("CleanupArtifacts").Return().Times(1) - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - // This is for the initial status that is sent in the main function. - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Once().Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNew.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installing, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - // This will be called within the goroutine that is spun up from the main function. - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(nil).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailableNew.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailableNew.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "Failed to download and verify downloadable file: oops", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasHash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packageStatuses.Packages[collectorPackageName].AgentHasVersion, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - downloadableFileManager: mockFileManager, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailableNew) - assert.NoError(t, err) - assert.Eventually(t, func() bool { return c.safeGetUpdatingPackage() == false }, 10*time.Second, 10*time.Millisecond) - }, - }, - { - desc: "Same PackagesAvailable version but bad set last PackageStatuses", - testFunc: func(t *testing.T) { - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(expectedErr).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailable.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].AgentHasVersion) - }) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailable) - assert.ErrorIs(t, err, expectedErr) - }, - }, - { - desc: "Same PackagesAvailable version but bad SEND PackageStatuses", - testFunc: func(t *testing.T) { - mockProvider := mocks.NewMockPackagesStateProvider(t) - mockProvider.On("LastReportedStatuses").Return(packageStatuses, nil) - mockProvider.On("SetLastReportedStatuses", mock.Anything).Return(nil) - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetPackageStatuses", mock.Anything).Return(expectedErr).Run(func(args mock.Arguments) { - status := args.Get(0).(*protobufs.PackageStatuses) - - assert.NotNil(t, status) - assert.Equal(t, "", status.ErrorMessage) - assert.Equal(t, packagesAvailable.AllPackagesHash, status.ServerProvidedAllPackagesHash) - assert.Equal(t, 1, len(status.Packages)) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].ServerOfferedVersion) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].ServerOfferedHash) - assert.Equal(t, "", status.Packages[collectorPackageName].ErrorMessage) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, status.Packages[collectorPackageName].Status) - assert.Equal(t, collectorPackageName, status.Packages[collectorPackageName].Name) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Hash, status.Packages[collectorPackageName].AgentHasHash) - assert.Equal(t, packagesAvailable.Packages[collectorPackageName].Version, status.Packages[collectorPackageName].AgentHasVersion) - }) - - c := &Client{ - packagesStateProvider: mockProvider, - opampClient: mockOpAmpClient, - logger: zap.NewNop(), - } - - err := c.onPackagesAvailableHandler(packagesAvailable) - assert.ErrorIs(t, err, expectedErr) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/opamp/observiq/observiq_downloadable_file_manager.go b/opamp/observiq/observiq_downloadable_file_manager.go deleted file mode 100644 index 34e7215a9..000000000 --- a/opamp/observiq/observiq_downloadable_file_manager.go +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "archive/tar" - "archive/zip" - "compress/gzip" - "crypto/sha256" - "crypto/subtle" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "os" - "path/filepath" - "strings" - - "github.com/observiq/bindplane-agent/opamp" - "github.com/open-telemetry/opamp-go/protobufs" - "go.uber.org/zap" -) - -const extractFolder = "latest" -const maxArchiveObjectByteSize = 1000000000 - -// Ensure interface is satisfied -var _ opamp.DownloadableFileManager = (*DownloadableFileManager)(nil) - -// DownloadableFileManager handles DownloadableFile's from a PackagesAvailable message -type DownloadableFileManager struct { - tmpPath string - logger *zap.Logger -} - -// newDownloadableFileManager creates a new OpAmp DownloadableFileManager -func newDownloadableFileManager(logger *zap.Logger, tmpPath string) *DownloadableFileManager { - return &DownloadableFileManager{ - tmpPath: filepath.Clean(tmpPath), - logger: logger, - } -} - -// FetchAndExtractArchive fetches the archive at the specified URL, placing it into dir. -// It then checks to see if it matches the "expectedHash", a hex-encoded string representing the expected sha256 sum of the file. -// If it matches, the archive is extracted into the $dir/latest directory. -// If the archive cannot be extracted, downloaded, or verified, then an error is returned. -func (m DownloadableFileManager) FetchAndExtractArchive(file *protobufs.DownloadableFile) error { - archiveFilePath, err := getOutputFilePath(m.tmpPath, file.GetDownloadUrl()) - if err != nil { - return fmt.Errorf("failed to determine archive download path: %w", err) - } - - if err := m.downloadFile(file.GetDownloadUrl(), archiveFilePath); err != nil { - return fmt.Errorf("failed to download file: %w", err) - } - - extractPath := filepath.Join(m.tmpPath, extractFolder) - - if err := m.verifyContentHash(archiveFilePath, file.GetContentHash()); err != nil { - return fmt.Errorf("content hash could not be verified: %w", err) - } - - // Clean the "latest" dir before extraction - if err := os.RemoveAll(extractPath); err != nil { - return fmt.Errorf("error cleaning archive extraction target path: %w", err) - } - - if err := unarchive(archiveFilePath, extractPath); err != nil { - return fmt.Errorf("failed to extract file: %w", err) - } - - return nil -} - -// Downloads the file into the outPath, truncating the file if it already exists -func (m DownloadableFileManager) downloadFile(downloadURL string, outPath string) error { - //#nosec G107 HTTP request must be dynamic based on input - resp, err := http.Get(downloadURL) - if err != nil { - return fmt.Errorf("could not GET url: %w", err) - } - defer func() { - if err := resp.Body.Close(); err != nil { - m.logger.Warn("Failed to close response body while downloading file", zap.String("URL", downloadURL), zap.Error(err)) - } - }() - - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - return fmt.Errorf("got non-200 status code (%d)", resp.StatusCode) - } - - outPathClean := filepath.Clean(outPath) - f, err := os.OpenFile(outPathClean, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) - if err != nil { - return fmt.Errorf("failed to open file: %w", err) - } - defer func() { - err := f.Close() - if err != nil { - m.logger.Warn("Failed to close file", zap.Error(err)) - } - }() - - if _, err = io.Copy(f, resp.Body); err != nil { - return fmt.Errorf("failed to copy request body to file: %w", err) - } - - return nil -} - -// getOutputFilePath gets the output path relative to the base dir for the archive from the given URL. -func getOutputFilePath(basePath, downloadURL string) (string, error) { - err := os.MkdirAll(basePath, 0700) - if err != nil { - return "", fmt.Errorf("problem with base url: %w", err) - } - - url, err := url.Parse(downloadURL) - if err != nil { - return "", fmt.Errorf("cannot parse url: %w", err) - } - - if url.Path == "" { - return "", errors.New("input url must have path") - } - - return filepath.Join(basePath, filepath.Base(url.Path)), nil -} - -func (m DownloadableFileManager) verifyContentHash(contentPath string, expectedFileHash []byte) error { - // Hash file at contentPath using sha256 - fileHash := sha256.New() - contentPathClean := filepath.Clean(contentPath) - - f, err := os.Open(contentPathClean) - if err != nil { - return fmt.Errorf("failed to open file: %w", err) - } - defer func() { - err := f.Close() - if err != nil { - m.logger.Warn("Failed to close file", zap.Error(err)) - } - }() - - if _, err = io.Copy(fileHash, f); err != nil { - return fmt.Errorf("failed to calculate file hash: %w", err) - } - - actualContentHash := fileHash.Sum(nil) - if subtle.ConstantTimeCompare(expectedFileHash, actualContentHash) == 0 { - return errors.New("file hash did not match expected") - } - - return nil -} - -// CleanupArtifacts removes previous installation artifacts by removing the temporary directory. -func (m DownloadableFileManager) CleanupArtifacts() { - if err := os.RemoveAll(m.tmpPath); err != nil { - m.logger.Error("Failed to remove temporary directory", zap.Error(err)) - } -} - -// unarchive will unpack the package at archivePath(.tar.gz or .zip) into the directory found at extractPath -func unarchive(archivePath, extractPath string) error { - if strings.HasSuffix(archivePath, ".tar.gz") { - // Handle tar.gz files - if err := extractTarGz(archivePath, extractPath); err != nil { - return fmt.Errorf("extract tar.gz: %w", err) - } - } else if strings.HasSuffix(archivePath, ".zip") { - // Handle zip files - if err := extractZip(archivePath, extractPath); err != nil { - return fmt.Errorf("extract .zip: %w", err) - } - } else { - return fmt.Errorf("unsupported file type: %s", archivePath) - } - - return nil -} - -// extractTarGz will extract the .tar package at archivePath into the dir at extractPath -func extractTarGz(archivePath, extractPath string) error { - if err := os.MkdirAll(extractPath, 0750); err != nil { - return fmt.Errorf("mkdir extract path: %w", err) - } - - archivePathClean := filepath.Clean(archivePath) - file, err := os.Open(archivePathClean) - if err != nil { - return fmt.Errorf("open archive package: %w", err) - } - defer file.Close() - - gzipReader, err := gzip.NewReader(file) - if err != nil { - return fmt.Errorf("new gzip reader: %w", err) - } - defer gzipReader.Close() - - tarReader := tar.NewReader(gzipReader) - - for { - header, err := tarReader.Next() - if err == io.EOF { - break - } - if err != nil { - return fmt.Errorf("read next tarball header: %w", err) - } - - outputPath, err := sanitizeArchivePath(extractPath, header.Name) - if err != nil { - return fmt.Errorf("sanitize archive path: %w", err) - } - - switch header.Typeflag { - case tar.TypeDir: - if err := os.MkdirAll(outputPath, os.FileMode(header.Mode)); err != nil { - return fmt.Errorf("mkdir: %w", err) - } - - case tar.TypeReg: - if err := os.MkdirAll(filepath.Dir(outputPath), 0700); err != nil { - return fmt.Errorf("create file's dir: %w", err) - } - - outputPathClean := filepath.Clean(outputPath) - outFile, err := os.OpenFile(outputPathClean, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(header.Mode)) - if err != nil { - return fmt.Errorf("open output file: %w", err) - } - defer outFile.Close() - - _, err = io.CopyN(outFile, tarReader, maxArchiveObjectByteSize) - if err != nil && err != io.EOF { - return fmt.Errorf("write to file: %w", err) - } - - default: - fmt.Printf("Unsupported type: %v in %s\n", header.Typeflag, header.Name) - } - } - return nil -} - -// extractZip will extract the .zip package at archivePath into the dir at extractPath -func extractZip(archivePath, extractPath string) error { - // Ensure the output directory exists - if err := os.MkdirAll(extractPath, 0750); err != nil { - return fmt.Errorf("mkdir extract path: %w", err) - } - - r, err := zip.OpenReader(archivePath) - if err != nil { - return fmt.Errorf("new zip reader: %w", err) - } - defer r.Close() - - for _, f := range r.File { - outputPath, err := sanitizeArchivePath(extractPath, f.Name) - if err != nil { - return fmt.Errorf("sanitize archive path: %w", err) - } - - if f.FileInfo().IsDir() { - if err := os.MkdirAll(outputPath, f.Mode()); err != nil { - return fmt.Errorf("mkdir: %w", err) - } - continue - } - - if err := os.MkdirAll(filepath.Dir(outputPath), 0700); err != nil { - return fmt.Errorf("create file's dir: %w", err) - } - - outputPathClean := filepath.Clean(outputPath) - outFile, err := os.OpenFile(outputPathClean, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) - if err != nil { - return fmt.Errorf("open output file: %w", err) - } - defer outFile.Close() - - rc, err := f.Open() - if err != nil { - return fmt.Errorf("open source file: %w", err) - } - defer rc.Close() - - _, err = io.CopyN(outFile, rc, maxArchiveObjectByteSize) - if err != nil && err != io.EOF { - return fmt.Errorf("write source file to output file: %w", err) - } - } - return nil -} - -func sanitizeArchivePath(dir, file string) (string, error) { - s := filepath.Join(dir, file) - if strings.HasPrefix(s, filepath.Clean(dir)) { - return s, nil - } - return "", fmt.Errorf("content filepath is tainted: %q", file) -} diff --git a/opamp/observiq/observiq_downloadable_file_manager_test.go b/opamp/observiq/observiq_downloadable_file_manager_test.go deleted file mode 100644 index 7762e27e0..000000000 --- a/opamp/observiq/observiq_downloadable_file_manager_test.go +++ /dev/null @@ -1,349 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "bytes" - "encoding/hex" - "fmt" - "net/http" - "net/http/httptest" - "os" - "path/filepath" - "runtime" - "testing" - - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -func TestDownloadFile(t *testing.T) { - tmpDir := t.TempDir() - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - t.Run("Downloads File Over HTTP", func(t *testing.T) { - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.Method != http.MethodGet { - t.Errorf("Invalid request method: %s", r.Method) - return - } - - w.Write([]byte("Hello")) - })) - defer s.Close() - - outPath := filepath.Join(tmpDir, "out.txt") - - err := downloadableFileManager.downloadFile(s.URL, outPath) - require.NoError(t, err) - - b, err := os.ReadFile(outPath) - require.NoError(t, err) - assert.Equal(t, []byte("Hello"), b) - }) - - t.Run("Output file is existing directory", func(t *testing.T) { - tmpDir := t.TempDir() - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.Method != http.MethodGet { - t.Errorf("Invalid request method: %s", r.Method) - return - } - - w.Write([]byte("Hello")) - })) - defer s.Close() - - err := downloadableFileManager.downloadFile(s.URL, tmpDir) - require.ErrorContains(t, err, "failed to open file:") - }) - - t.Run("Invalid URL", func(t *testing.T) { - tmpDir := t.TempDir() - outPath := filepath.Join(tmpDir, "out.txt") - - err := downloadableFileManager.downloadFile("http://localhost:9999999", outPath) - require.ErrorContains(t, err, "could not GET url") - }) - - t.Run("Server returns 404", func(t *testing.T) { - tmpDir := t.TempDir() - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { - w.WriteHeader(http.StatusNotFound) - })) - defer s.Close() - - outPath := filepath.Join(tmpDir, "out.txt") - - err := downloadableFileManager.downloadFile(s.URL, outPath) - require.ErrorContains(t, err, "got non-200 status code (404)") - }) -} - -func TestGetOutputFilePath(t *testing.T) { - testCases := []struct { - name string - basepath string - url string - out string - expectedErr string - }{ - { - name: "Input url is valid zip", - basepath: filepath.Join("/", "tmp", "observiq-otel-collector-update"), - url: "http://example.com/some-file.zip", - out: filepath.Join("/", "tmp", "observiq-otel-collector-update", "some-file.zip"), - }, - { - name: "Input url is valid tar", - basepath: filepath.Join("/", "tmp", "observiq-otel-collector-update"), - url: "http://example.com/some-file.tar.gz", - out: filepath.Join("/", "tmp", "observiq-otel-collector-update", "some-file.tar.gz"), - }, - { - name: "Input url is invalid", - basepath: filepath.Join("/", "tmp", "observiq-otel-collector-update"), - url: "http://local\thost/some-file.zip", - expectedErr: "cannot parse url", - }, - { - name: "Input url has no path", - basepath: filepath.Join("/", "tmp", "observiq-otel-collector-update"), - url: "http://example.com", - expectedErr: "input url must have path", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - out, err := getOutputFilePath(tc.basepath, tc.url) - if tc.expectedErr == "" { - require.NoError(t, err) - require.Equal(t, tc.out, out) - } else { - require.ErrorContains(t, err, tc.expectedErr) - } - }) - } -} - -func TestVerifyContentHash(t *testing.T) { - tmpDir := t.TempDir() - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - - hash1, _ := hex.DecodeString("c87e2ca771bab6024c269b933389d2a92d4941c848c52f155b9b84e1f109fe35") - hash2, _ := hex.DecodeString("7e4ead2053637d9fcb7f3316e748becb8af163c6f851446eeef878a994ae5c4b") - testCases := []struct { - name string - contentPath string - hash []byte - expectedErr string - }{ - { - name: "Content hash matches", - contentPath: filepath.Join("testdata", "test.txt"), - hash: hash1, - }, - { - name: "File does not exist", - contentPath: filepath.Join("testdata", "non-existant-file.txt"), - hash: hash1, - expectedErr: "failed to open file", - }, - { - name: "Content hash does not match", - contentPath: filepath.Join("testdata", "test.txt"), - hash: hash2, - expectedErr: "file hash did not match expected", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - _, statErr := os.Stat(tc.contentPath) - if runtime.GOOS == "windows" && statErr == nil { - // Cloning the repo on windows changes the line endings depending on git configuration. - // We need to thwart that mechanism. - // Make sure test.txt exists in the output dir - tmpDir := t.TempDir() - fileBytes, err := os.ReadFile(tc.contentPath) - require.NoError(t, err) - - // Replace \r\n with \n so tests pass on windows systems - newlinesOnly := bytes.ReplaceAll(fileBytes, []byte("\r\n"), []byte("\n")) - - // Change content path to new file, and write it. - tc.contentPath = filepath.Join(tmpDir, filepath.Base(tc.contentPath)) - err = os.WriteFile(tc.contentPath, newlinesOnly, 0666) - require.NoError(t, err) - - } - err := downloadableFileManager.verifyContentHash(tc.contentPath, tc.hash) - if tc.expectedErr == "" { - require.NoError(t, err) - } else { - require.ErrorContains(t, err, tc.expectedErr) - } - }) - } -} - -func TestDownloadAndVerifyExtraction(t *testing.T) { - hash1, _ := hex.DecodeString("d3bf2375be7372b34eae9bc16296ce9e40e53f5b79b329e23056c4aaf77eb47c") - hash2, _ := hex.DecodeString("5594349d022f7f374fa3ee777ded15f4f06a47aa08eec300bd06cdb0d2688fac") - hash3, _ := hex.DecodeString("e7045ebfc48a850a8ac2d342c172099f8c937a4265c55cd93cb39908278952b4") - testCases := []struct { - name string - archivePath string - expectedHash []byte - expectedErr string - }{ - { - name: "Download and extracts tar.gz files", - archivePath: filepath.Join("testdata", "test.tar.gz"), - expectedHash: hash1, - }, - { - name: "Download and extracts zip files", - archivePath: filepath.Join("testdata", "test.zip"), - expectedHash: hash2, - }, - { - name: "Fails to extract non-archive", - archivePath: filepath.Join("testdata", "not-actually-tar.tar.gz"), - expectedHash: hash3, - expectedErr: "failed to extract file", - }, - { - name: "Hash does not match downloaded hash", - archivePath: filepath.Join("testdata", "test.tar.gz"), - expectedHash: hash3, - expectedErr: "content hash could not be verified", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - tmpDir := t.TempDir() - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { - archiveBytes, err := os.ReadFile(tc.archivePath) - if err != nil { - t.Errorf("Failed to open archive for sending over http: %s", err) - } - - if filepath.Base(tc.archivePath) == "not-actually-tar.tar.gz" { - // This file is a text file, and git actually detects that and replaces line endings on windows - // Replace \r\n with \n so tests pass on windows systems - archiveBytes = bytes.ReplaceAll(archiveBytes, []byte("\r\n"), []byte("\n")) - } - - _, err = w.Write(archiveBytes) - if err != nil { - t.Errorf("Failed to copy archive for sending over http: %s", err) - } - })) - defer s.Close() - - file := &protobufs.DownloadableFile{ - DownloadUrl: fmt.Sprintf("%s/%s", s.URL, tc.archivePath), - ContentHash: []byte(tc.expectedHash), - } - - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - err := downloadableFileManager.FetchAndExtractArchive(file) - if tc.expectedErr == "" { - require.NoError(t, err) - - // Make sure test.txt exists in the output dir - expectedBytes, err := os.ReadFile(filepath.Join("testdata", "test.txt")) - require.NoError(t, err) - - // Replace \r\n with \n so tests pass on windows systems - expectedBytes = bytes.ReplaceAll(expectedBytes, []byte("\r\n"), []byte("\n")) - - actualBytes, err := os.ReadFile(filepath.Join(tmpDir, extractFolder, "test.txt")) - require.NoError(t, err) - - require.Equal(t, expectedBytes, actualBytes) - } else { - require.ErrorContains(t, err, tc.expectedErr) - } - }) - } -} - -func TestDownloadAndVerifyHTTPFailure(t *testing.T) { - tmpDir := t.TempDir() - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { - w.WriteHeader(http.StatusForbidden) - })) - defer s.Close() - - file := &protobufs.DownloadableFile{ - DownloadUrl: fmt.Sprintf("%s/%s", s.URL, "some-archive.tar.gz"), - ContentHash: []byte{}, - } - - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - err := downloadableFileManager.FetchAndExtractArchive(file) - require.ErrorContains(t, err, "failed to download file:") -} - -func TestDownloadAndVerifyInvalidURL(t *testing.T) { - tmpDir := t.TempDir() - - file := &protobufs.DownloadableFile{ - DownloadUrl: "http://\t/some-archive.tar.gz", - ContentHash: []byte{}, - } - - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - err := downloadableFileManager.FetchAndExtractArchive(file) - require.ErrorContains(t, err, "failed to determine archive download path:") -} - -func TestCleanupArtifacts(t *testing.T) { - t.Run("Cleans up tmp dir if exists", func(t *testing.T) { - tmpDir := filepath.Join(t.TempDir(), "tmp") - - // Try to download -- this should create tmpDir, but fail to download - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - err := downloadableFileManager.FetchAndExtractArchive(&protobufs.DownloadableFile{ - DownloadUrl: "http://invalid-host:0/some-file.zip", - }) - - require.ErrorContains(t, err, "failed to download file") - require.DirExists(t, tmpDir) - - downloadableFileManager.CleanupArtifacts() - require.NoDirExists(t, tmpDir) - }) - - t.Run("Does nothing if tmp dir does not exist", func(t *testing.T) { - tmpDir := filepath.Join(t.TempDir(), "tmp") - downloadableFileManager := newDownloadableFileManager(zap.NewNop(), tmpDir) - - require.NoDirExists(t, tmpDir) - - downloadableFileManager.CleanupArtifacts() - require.NoDirExists(t, tmpDir) - }) -} diff --git a/opamp/observiq/observiq_packages_state_provider.go b/opamp/observiq/observiq_packages_state_provider.go deleted file mode 100644 index 8fd2c41b5..000000000 --- a/opamp/observiq/observiq_packages_state_provider.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package observiq contains OpAmp structures compatible with the observiq client -package observiq - -import ( - "context" - "errors" - "fmt" - "io" - "os" - - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/packagestate" - "github.com/open-telemetry/opamp-go/client/types" - "github.com/open-telemetry/opamp-go/protobufs" - "go.uber.org/zap" -) - -// Ensure interface is satisfied -var _ types.PackagesStateProvider = (*packagesStateProvider)(nil) - -// packagesStateProvider represents a PackagesStateProvider which uses a PackageStateManager to persist PackageStatuses -type packagesStateProvider struct { - packageStateManager packagestate.StateManager - logger *zap.Logger -} - -// newPackagesStateProvider creates a new OpAmp PackagesStateProvider -func newPackagesStateProvider(logger *zap.Logger, jsonPath string) types.PackagesStateProvider { - return &packagesStateProvider{ - packageStateManager: packagestate.NewFileStateManager(logger, jsonPath), - logger: logger, - } -} - -// AllPackagesHash not implemented so returns an error with this info -func (p *packagesStateProvider) AllPackagesHash() ([]byte, error) { - p.logger.Debug("Retrieve all packages hash") - - return nil, errors.New("method not implemented: PackageStateProvider AllPackagesHash") -} - -// SetAllPackagesHash not implemented so returns an error with this info -func (p *packagesStateProvider) SetAllPackagesHash(_ []byte) error { - p.logger.Debug("Set all packages hash") - - return errors.New("method not implemented: PackageStateProvider SetAllPackagesHash") -} - -// Packages not implemented so returns an error with this info -func (p *packagesStateProvider) Packages() ([]string, error) { - p.logger.Debug("Retrieve package names") - - return nil, errors.New("method not implemented: PackageStateProvider Packages") -} - -// PackageState not implemented so returns an error with this info -func (p *packagesStateProvider) PackageState(_ string) (state types.PackageState, err error) { - p.logger.Debug("Retrieve package state") - - packageState := types.PackageState{} - - return packageState, errors.New("method not implemented: PackageStateProvider PackageState") -} - -// SetPackageState not implemented so returns an error with this info -func (p *packagesStateProvider) SetPackageState(_ string, _ types.PackageState) error { - p.logger.Debug("Set package state") - - return errors.New("method not implemented: PackageStateProvider SetPackageState") -} - -// CreatePackage not implemented so returns an error with this info -func (p *packagesStateProvider) CreatePackage(_ string, _ protobufs.PackageType) error { - p.logger.Debug("Create package") - - return errors.New("method not implemented: PackageStateProvider CreatePackage") -} - -// FileContentHash not implemented so returns an error with this info -func (p *packagesStateProvider) FileContentHash(_ string) ([]byte, error) { - p.logger.Debug("Retrieve package content hash") - - return nil, errors.New("method not implemented: PackageStateProvider FileContentHash") -} - -// UpdateContent not implemented so returns an error with this info -func (p *packagesStateProvider) UpdateContent(_ context.Context, _ string, _ io.Reader, _, _ []byte) error { - p.logger.Debug("Update package content") - - return errors.New("method not implemented: PackageStateProvider UpdateContent") -} - -// DeletePackage not implemented so returns an error with this info -func (p *packagesStateProvider) DeletePackage(_ string) error { - p.logger.Debug("Delete package") - - return errors.New("method not implemented: PackageStateProvider DeletePackage") -} - -// LastReportedStatuses retrieves the PackagesStatuses from a saved json file -func (p *packagesStateProvider) LastReportedStatuses() (*protobufs.PackageStatuses, error) { - p.logger.Debug("Retrieve last reported package statuses") - - packages := map[string]*protobufs.PackageStatus{ - packagestate.CollectorPackageName: { - Name: packagestate.CollectorPackageName, - AgentHasVersion: version.Version(), - Status: protobufs.PackageStatusEnum_PackageStatusEnum_Installed, - }, - } - packageStatuses := &protobufs.PackageStatuses{ - Packages: packages, - } - - loadedStatues, err := p.packageStateManager.LoadStatuses() - - switch { - // No File exists so return the status we constructed - case errors.Is(err, os.ErrNotExist): - p.logger.Debug("Package statuses json doesn't exist") - return packageStatuses, nil - - // File existed but error while parsing it - case err != nil: - return packageStatuses, fmt.Errorf("failed loading package statuses: %w", err) - - // Successful load - default: - return loadedStatues, nil - } -} - -// SetLastReportedStatuses saves the given PackageStatuses into a json file -func (p *packagesStateProvider) SetLastReportedStatuses(statuses *protobufs.PackageStatuses) error { - p.logger.Debug("Set last reported package statuses") - - return p.packageStateManager.SaveStatuses(statuses) -} diff --git a/opamp/observiq/observiq_packages_state_provider_test.go b/opamp/observiq/observiq_packages_state_provider_test.go deleted file mode 100644 index 634019f39..000000000 --- a/opamp/observiq/observiq_packages_state_provider_test.go +++ /dev/null @@ -1,469 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "context" - "errors" - "io" - "os" - "testing" - - "github.com/observiq/bindplane-agent/internal/version" - "github.com/observiq/bindplane-agent/packagestate" - "github.com/observiq/bindplane-agent/packagestate/mocks" - "github.com/open-telemetry/opamp-go/client/types" - "github.com/open-telemetry/opamp-go/protobufs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "go.uber.org/zap" -) - -func TestNewPackagesStateProvider(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "New PackagesStateProvider", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - actual := newPackagesStateProvider(logger, "test.json") - - packagesStateProvider, ok := actual.(*packagesStateProvider) - require.True(t, ok) - - assert.Equal(t, logger, packagesStateProvider.logger) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestAllPackagesHash(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - actual, err := p.AllPackagesHash() - - assert.Nil(t, actual) - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestSetAllPackagesHash(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - err := p.SetAllPackagesHash([]byte("hash")) - - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestPackages(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - actual, err := p.Packages() - - assert.Nil(t, actual) - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestPackageState(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - actual, err := p.PackageState("name") - - assert.Equal(t, types.PackageState{}, actual) - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestSetPackageState(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - err := p.SetPackageState("name", types.PackageState{}) - - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestCreatePackage(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - err := p.CreatePackage("name", protobufs.PackageType_PackageType_TopLevel) - - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestFileContentHash(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - actual, err := p.FileContentHash("name") - - assert.Nil(t, actual) - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestUpdateContent(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - var r io.Reader - - err := p.UpdateContent(context.TODO(), "name", r, []byte("hash"), []byte("signature")) - - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestDeletePackage(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Not Implemented", - testFunc: func(t *testing.T) { - logger := zap.NewNop() - p := &packagesStateProvider{ - logger: logger, - } - - err := p.DeletePackage("name") - - assert.ErrorContains(t, err, "method not implemented") - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestLastReportedStatuses(t *testing.T) { - pkgName := packagestate.CollectorPackageName - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "PackageStateManager returns error for missing file", - testFunc: func(t *testing.T) { - mockManager := mocks.NewMockStateManager(t) - mockManager.On("LoadStatuses").Return(nil, os.ErrNotExist) - - p := &packagesStateProvider{ - packageStateManager: mockManager, - logger: zap.NewNop(), - } - - actual, err := p.LastReportedStatuses() - - assert.NoError(t, err) - assert.Nil(t, actual.ServerProvidedAllPackagesHash) - assert.Equal(t, "", actual.ErrorMessage) - assert.Equal(t, 1, len(actual.Packages)) - assert.Equal(t, pkgName, actual.Packages[pkgName].GetName()) - assert.Equal(t, version.Version(), actual.Packages[pkgName].GetAgentHasVersion()) - assert.Nil(t, actual.Packages[pkgName].GetAgentHasHash()) - assert.Equal(t, "", actual.Packages[pkgName].GetServerOfferedVersion()) - assert.Nil(t, actual.Packages[pkgName].GetServerOfferedHash()) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, actual.Packages[pkgName].GetStatus()) - assert.Equal(t, "", actual.Packages[pkgName].GetErrorMessage()) - }, - }, - { - desc: "Load Error", - testFunc: func(t *testing.T) { - expectedErr := errors.New("bad") - mockManager := mocks.NewMockStateManager(t) - mockManager.On("LoadStatuses").Return(nil, expectedErr) - - p := &packagesStateProvider{ - packageStateManager: mockManager, - logger: zap.NewNop(), - } - - actual, err := p.LastReportedStatuses() - - assert.ErrorIs(t, err, expectedErr) - assert.Nil(t, actual.ServerProvidedAllPackagesHash) - assert.Equal(t, "", actual.ErrorMessage) - assert.Equal(t, 1, len(actual.Packages)) - assert.Equal(t, pkgName, actual.Packages[pkgName].GetName()) - assert.Equal(t, version.Version(), actual.Packages[pkgName].GetAgentHasVersion()) - assert.Nil(t, actual.Packages[pkgName].GetAgentHasHash()) - assert.Equal(t, "", actual.Packages[pkgName].GetServerOfferedVersion()) - assert.Nil(t, actual.Packages[pkgName].GetServerOfferedHash()) - assert.Equal(t, protobufs.PackageStatusEnum_PackageStatusEnum_Installed, actual.Packages[pkgName].GetStatus()) - assert.Equal(t, "", actual.Packages[pkgName].GetErrorMessage()) - }, - }, - { - desc: "Successful file read", - testFunc: func(t *testing.T) { - expected := &protobufs.PackageStatuses{ - Packages: map[string]*protobufs.PackageStatus{ - "package": { - Name: "package", - AgentHasVersion: "1.0", - AgentHasHash: []byte("hash1"), - ServerOfferedVersion: "2.0", - ServerOfferedHash: []byte("hash2"), - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallPending, - ErrorMessage: "bad", - }, - }, - ServerProvidedAllPackagesHash: []byte("hash"), - ErrorMessage: "whoops", - } - - mockManager := mocks.NewMockStateManager(t) - mockManager.On("LoadStatuses").Return(expected, nil) - - p := &packagesStateProvider{ - packageStateManager: mockManager, - logger: zap.NewNop(), - } - - actual, err := p.LastReportedStatuses() - - assert.NoError(t, err) - assert.Equal(t, expected, actual) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func TestSetLastReportedStatuses(t *testing.T) { - pkgName := "package" - agentVersion := "1.0" - agentHash := []byte("hash1") - serverVersion := "2.0" - serverHash := []byte("hash2") - errMsg := "bad" - allHash := []byte("hash") - allErrMsg := "whoops" - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "PackageStateManager Returns error", - testFunc: func(t *testing.T) { - expectedErr := errors.New("bad") - - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - ErrorMessage: allErrMsg, - Packages: map[string]*protobufs.PackageStatus{ - pkgName: { - Name: pkgName, - AgentHasVersion: agentVersion, - AgentHasHash: agentHash, - ServerOfferedVersion: serverVersion, - ServerOfferedHash: serverHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallPending, - ErrorMessage: errMsg, - }, - }, - } - - mockManager := mocks.NewMockStateManager(t) - mockManager.On("SaveStatuses", packageStatuses).Return(expectedErr) - - p := &packagesStateProvider{ - packageStateManager: mockManager, - logger: zap.NewNop(), - } - - err := p.SetLastReportedStatuses(packageStatuses) - assert.ErrorIs(t, err, expectedErr) - }, - }, - { - desc: "PackageStateManager No error", - testFunc: func(t *testing.T) { - packageStatuses := &protobufs.PackageStatuses{ - ServerProvidedAllPackagesHash: allHash, - ErrorMessage: allErrMsg, - Packages: map[string]*protobufs.PackageStatus{ - pkgName: { - Name: pkgName, - AgentHasVersion: agentVersion, - AgentHasHash: agentHash, - ServerOfferedVersion: serverVersion, - ServerOfferedHash: serverHash, - Status: protobufs.PackageStatusEnum_PackageStatusEnum_InstallPending, - ErrorMessage: errMsg, - }, - }, - } - - mockManager := mocks.NewMockStateManager(t) - mockManager.On("SaveStatuses", packageStatuses).Return(nil) - - p := &packagesStateProvider{ - packageStateManager: mockManager, - logger: zap.NewNop(), - } - - err := p.SetLastReportedStatuses(packageStatuses) - assert.NoError(t, err) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/opamp/observiq/reload_funcs.go b/opamp/observiq/reload_funcs.go deleted file mode 100644 index 3d05c14bf..000000000 --- a/opamp/observiq/reload_funcs.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "context" - "fmt" - "os" - "path/filepath" - - "github.com/observiq/bindplane-agent/internal/logging" - "github.com/observiq/bindplane-agent/internal/report" - "github.com/observiq/bindplane-agent/opamp" - "go.uber.org/zap" - "gopkg.in/yaml.v3" -) - -func managerReload(client *Client, managerConfigPath string) opamp.ReloadFunc { - return func(contents []byte) (bool, error) { - // Unmarshal config and only pull fields out that are allowed to be updated. - var newConfig opamp.Config - if err := yaml.Unmarshal(contents, &newConfig); err != nil { - return false, fmt.Errorf("failed to validate config %s", ManagerConfigName) - } - - // Check if the updatable fields are equal - // If so then exit - if client.currentConfig.CmpUpdatableFields(newConfig) { - return false, nil - } - - // Going to do an update prep a rollback - rollbackFunc, cleanupFunc, err := prepRollback(managerConfigPath) - if err != nil { - return false, fmt.Errorf("failed to prep for rollback: %w", err) - } - - defer func() { - // Cleanup rollback - if err := cleanupFunc(); err != nil { - client.logger.Warn("Failed to cleanup rollback file", zap.Error(err)) - } - }() - - //create a copies for rollback - rollBackCfg := client.currentConfig.Copy() - rollbackIdent := client.ident.Copy() - - // Updatable config fields - client.currentConfig.AgentName = newConfig.AgentName - client.currentConfig.Labels = newConfig.Labels - client.currentConfig.MeasurementsInterval = newConfig.MeasurementsInterval - client.currentConfig.ExtraMeasurementsAttributes = newConfig.ExtraMeasurementsAttributes - - // Update identity - client.ident.agentName = newConfig.AgentName - client.ident.labels = newConfig.Labels - - // Write out new config file - // Marshal back into bytes - newContents, err := yaml.Marshal(client.currentConfig) - if err != nil { - // Rollback file - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for manager config", zap.Error(rollbackErr)) - } - client.ident = rollbackIdent - client.currentConfig = *rollBackCfg - return false, fmt.Errorf("failed to reformat manager config: %w", err) - } - - // Save config file to disk - if err := updateConfigFile(ManagerConfigName, managerConfigPath, newContents); err != nil { - // Rollback file - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for collector config", zap.Error(rollbackErr)) - } - client.ident = rollbackIdent - client.currentConfig = *rollBackCfg - return false, err - } - - // Set the agent description - if err := client.opampClient.SetAgentDescription(client.ident.ToAgentDescription()); err != nil { - // Rollback file - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for collector config", zap.Error(rollbackErr)) - } - client.ident = rollbackIdent - client.currentConfig = *rollBackCfg - return false, fmt.Errorf("failed to set agent description: %w ", err) - } - - // Set new measurements interval and attributes - client.measurementsSender.SetInterval(client.currentConfig.MeasurementsInterval) - client.measurementsSender.SetExtraAttributes(client.currentConfig.ExtraMeasurementsAttributes) - - return true, nil - } -} - -func collectorReload(client *Client, collectorConfigPath string) opamp.ReloadFunc { - return func(contents []byte) (bool, error) { - rollbackFunc, cleanupFunc, err := prepRollback(collectorConfigPath) - if err != nil { - return false, fmt.Errorf("failed to prep for rollback: %w", err) - } - - defer func() { - // Cleanup rollback - if err := cleanupFunc(); err != nil { - client.logger.Warn("Failed to cleanup rollback file", zap.Error(err)) - } - }() - - // Write new config file - if err := updateConfigFile(CollectorConfigName, collectorConfigPath, contents); err != nil { - return false, err - } - - // Stop collector monitoring as we are going to restart it - client.stopCollectorMonitoring() - - // Setup new monitoring after collector has been restarted - defer client.startCollectorMonitoring(context.Background()) - - // Reload collector - if err := client.collector.Restart(context.Background()); err != nil { - // Rollback file - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for collector config", zap.Error(rollbackErr)) - } - - // Restart collector with original file - if rollbackErr := client.collector.Restart(context.Background()); rollbackErr != nil { - client.logger.Error("Collector failed for restart during rollback", zap.Error(rollbackErr)) - } - - return false, fmt.Errorf("collector failed to restart: %w", err) - } - - // Reset Snapshot Reporter - report.GetSnapshotReporter().Reset() - - return true, nil - } -} - -func reportReload(client *Client) opamp.ReloadFunc { - return func(contents []byte) (bool, error) { - if err := client.reportManager.ResetConfig(contents); err != nil { - client.logger.Error("Failure in applying report config", zap.Error(err)) - return false, fmt.Errorf("failed to apply report config: %w", err) - } - - return true, nil - } -} - -func loggerReload(client *Client, loggerConfigPath string) opamp.ReloadFunc { - return func(contents []byte) (bool, error) { - rollbackFunc, cleanupFunc, err := prepRollback(loggerConfigPath) - if err != nil { - return false, fmt.Errorf("failed to prep for rollback: %w", err) - } - - defer func() { - // Cleanup rollback - if err := cleanupFunc(); err != nil { - client.logger.Warn("Failed to cleanup rollback file", zap.Error(err)) - } - }() - - // Write new config file - if err := updateConfigFile(LoggingConfigName, loggerConfigPath, contents); err != nil { - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for logging config", zap.Error(rollbackErr)) - } - return false, err - } - - // Parse new logging config - l, err := logging.NewLoggerConfig(loggerConfigPath) - if err != nil { - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for logging config", zap.Error(rollbackErr)) - } - return false, err - } - - // Parse out options - opts, err := l.Options() - if err != nil { - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for logging config", zap.Error(rollbackErr)) - } - return false, fmt.Errorf("failed updating logging config: %w", err) - } - - // Create new logger for client - logger, err := zap.NewProduction(opts...) - if err != nil { - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for logging config", zap.Error(rollbackErr)) - } - return false, fmt.Errorf("failed updating logging config: %w", err) - } - - // Apply logging opts to collector - rollbackOpts := client.collector.GetLoggingOpts() - client.collector.SetLoggingOpts(opts) - if err := client.collector.Restart(context.Background()); err != nil { - if rollbackErr := rollbackFunc(); rollbackErr != nil { - client.logger.Error("Rollback failed for logging config", zap.Error(rollbackErr)) - } - - // Restart collector with original logging opts - client.collector.SetLoggingOpts(rollbackOpts) - if rollbackErr := client.collector.Restart(context.Background()); rollbackErr != nil { - client.logger.Error("Collector failed for restart during rollback", zap.Error(rollbackErr)) - } - - return false, fmt.Errorf("failed apply logging update to collector: %w", err) - } - - // Assign new client logger - client.logger = logger.Named("opamp") - - return true, nil - } -} - -func updateConfigFile(configName, configPath string, contents []byte) error { - // Write file - if err := os.WriteFile(configPath, contents, 0600); err != nil { - return fmt.Errorf("failed to update config file %s: %w", configName, err) - } - - return nil -} - -func prepRollback(configPath string) (rollbackFunc func() error, cleanupFunc func() error, err error) { - rollbackPath := fmt.Sprintf("%s.rollback", configPath) - - // Create rollback file - err = copyFile(configPath, rollbackPath) - if err != nil { - return - } - - // Create rollback func - rollbackFunc = func() error { - return copyFile(rollbackPath, configPath) - } - - // Create cleanupFUnc - cleanupFunc = func() error { - return os.Remove(rollbackPath) - } - - return -} - -func copyFile(originPath, newPath string) error { - cleanOriginPath := filepath.Clean(originPath) - data, err := os.ReadFile(cleanOriginPath) - if err != nil { - return fmt.Errorf("failed to read origin file: %w", err) - } - - err = os.WriteFile(newPath, data, 0600) - if err != nil { - return fmt.Errorf("failed to write new file: %w", err) - } - - return nil -} diff --git a/opamp/observiq/reload_funcs_test.go b/opamp/observiq/reload_funcs_test.go deleted file mode 100644 index 2c40756e1..000000000 --- a/opamp/observiq/reload_funcs_test.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright observIQ, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package observiq - -import ( - "context" - "errors" - "os" - "path/filepath" - "testing" - "time" - - "github.com/observiq/bindplane-agent/collector" - colmocks "github.com/observiq/bindplane-agent/collector/mocks" - "github.com/observiq/bindplane-agent/opamp" - "github.com/observiq/bindplane-agent/opamp/mocks" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "go.uber.org/zap" - "gopkg.in/yaml.v3" -) - -func Test_managerReload(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Invalid new config contents", - testFunc: func(*testing.T) { - client := &Client{} - reloadFunc := managerReload(client, ManagerConfigName) - - badContents := []byte(`\t\t\t`) - - changed, err := reloadFunc(badContents) - assert.ErrorContains(t, err, "failed to validate config") - assert.False(t, changed) - }, - }, - { - desc: "No Changes to updatable fields", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - - managerFilePath := filepath.Join(tmpDir, ManagerConfigName) - client := &Client{ - currentConfig: opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - }, - } - reloadFunc := managerReload(client, managerFilePath) - - newContents, err := yaml.Marshal(client.currentConfig) - assert.NoError(t, err) - - // Write new updates to file to ensure there's no changes - err = os.WriteFile(managerFilePath, newContents, 0600) - assert.NoError(t, err) - - changed, err := reloadFunc(newContents) - assert.NoError(t, err) - assert.False(t, changed) - }, - }, - { - desc: "Changes to updatable fields, successful update", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - - managerFilePath := filepath.Join(tmpDir, ManagerConfigName) - - currConfig := &opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - } - - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(nil) - - client := &Client{ - opampClient: mockOpAmpClient, - ident: newIdentity(zap.NewNop(), *currConfig, "0.0.0"), - currentConfig: *currConfig, - measurementsSender: newMeasurementsSender(zap.NewNop(), nil, mockOpAmpClient, 0, nil), - } - reloadFunc := managerReload(client, managerFilePath) - - currContents, err := yaml.Marshal(currConfig) - assert.NoError(t, err) - - // Write new updates to file to ensure there's no changes - err = os.WriteFile(managerFilePath, currContents, 0600) - assert.NoError(t, err) - - // Create a new config data - agentName := "name" - newConfig := &opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - AgentName: &agentName, - } - - newContents, err := yaml.Marshal(newConfig) - assert.NoError(t, err) - - changed, err := reloadFunc(newContents) - assert.NoError(t, err) - assert.True(t, changed) - - // Verify client identity was updated - assert.Equal(t, newConfig.AgentName, client.ident.agentName) - assert.Equal(t, newConfig.AgentName, client.currentConfig.AgentName) - - // Verify new file was written - data, err := os.ReadFile(managerFilePath) - assert.NoError(t, err) - assert.Equal(t, newContents, data) - }, - }, - { - desc: "Changes to updatable fields, failure occurs, rollback happens", - testFunc: func(*testing.T) { - tmpDir := t.TempDir() - - managerFilePath := filepath.Join(tmpDir, ManagerConfigName) - - currConfig := &opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - } - - expectedErr := errors.New("oops") - mockOpAmpClient := mocks.NewMockOpAMPClient(t) - mockOpAmpClient.On("SetAgentDescription", mock.Anything).Return(expectedErr) - - client := &Client{ - opampClient: mockOpAmpClient, - ident: newIdentity(zap.NewNop(), *currConfig, "0.0.0"), - currentConfig: *currConfig, - } - reloadFunc := managerReload(client, managerFilePath) - - currContents, err := yaml.Marshal(currConfig) - assert.NoError(t, err) - - // Write new updates to file to ensure there's no changes - err = os.WriteFile(managerFilePath, currContents, 0600) - assert.NoError(t, err) - - // Create new config data - agentName := "name" - newConfig := &opamp.Config{ - Endpoint: "ws://localhost:1234", - AgentID: testAgentID, - AgentName: &agentName, - } - - newContents, err := yaml.Marshal(newConfig) - assert.NoError(t, err) - - changed, err := reloadFunc(newContents) - assert.ErrorContains(t, err, "failed to set agent description") - assert.False(t, changed) - - // Verify client identity was rolledback - assert.Equal(t, currConfig.AgentName, client.ident.agentName) - - // Verify config rollback - assert.Equal(t, client.currentConfig, *currConfig) - - // Verify config rolledback - data, err := os.ReadFile(managerFilePath) - assert.NoError(t, err) - assert.Equal(t, currContents, data) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -func Test_collectorReload(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Collector failed to restart, rollback required", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - - collectorFilePath := filepath.Join(tmpDir, CollectorConfigName) - - expectedErr := errors.New("oops") - statusChannel := make(chan *collector.Status) - mockCollector := colmocks.NewMockCollector(t) - mockCollector.On("Status").Return((<-chan *collector.Status)(statusChannel)) - mockCollector.On("Restart", mock.Anything).Return(expectedErr).Once() - mockCollector.On("Restart", mock.Anything).Return(nil).Once() - - currContents := []byte("current: config") - - // Write Config file so we can verify it remained the same - err := os.WriteFile(collectorFilePath, currContents, 0600) - assert.NoError(t, err) - - client := &Client{ - collector: mockCollector, - logger: zap.NewNop(), - } - - // Setup Context to mock out already running collector monitor - client.collectorMntrCtx, client.collectorMntrCancel = context.WithCancel(context.Background()) - - reloadFunc := collectorReload(client, collectorFilePath) - - changed, err := reloadFunc([]byte("valid: config")) - assert.ErrorIs(t, err, expectedErr) - assert.False(t, changed) - - // Verify config rolledback - data, err := os.ReadFile(collectorFilePath) - assert.NoError(t, err) - assert.Equal(t, currContents, data) - - // Cleanup - assert.Eventually(t, func() bool { - client.stopCollectorMonitoring() - return true - }, 2*time.Second, 100*time.Millisecond) - }, - }, - { - desc: "Successful update", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - - collectorFilePath := filepath.Join(tmpDir, CollectorConfigName) - - mockCollector := colmocks.NewMockCollector(t) - statusChannel := make(chan *collector.Status) - mockCollector.On("Status").Return((<-chan *collector.Status)(statusChannel)) - mockCollector.On("Restart", mock.Anything).Return(nil) - - currContents := []byte("current: config") - - // Write Config file so we can verify it remained the same - err := os.WriteFile(collectorFilePath, currContents, 0600) - assert.NoError(t, err) - - client := &Client{ - collector: mockCollector, - logger: zap.NewNop(), - } - - // Setup Context to mock out already running collector monitor - client.collectorMntrCtx, client.collectorMntrCancel = context.WithCancel(context.Background()) - - reloadFunc := collectorReload(client, collectorFilePath) - - newContents := []byte("valid: config") - changed, err := reloadFunc(newContents) - assert.NoError(t, err) - assert.True(t, changed) - - // Verify new config set - data, err := os.ReadFile(collectorFilePath) - assert.NoError(t, err) - assert.Equal(t, newContents, data) - - // Cleanup - assert.Eventually(t, func() bool { - client.stopCollectorMonitoring() - return true - }, 2*time.Second, 100*time.Millisecond) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} - -// Test_loggerReload tests general cases since there are a lot of failure points with parsing the logging config -// We verify a success case and a case where the collector fails to accept the config -func Test_loggerReload(t *testing.T) { - testCases := []struct { - desc string - testFunc func(*testing.T) - }{ - { - desc: "Successful update", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - - loggerFilePath := filepath.Join(tmpDir, LoggingConfigName) - - currContents := []byte("current: config") - - // Write Config file so we can verify it remained the same - err := os.WriteFile(loggerFilePath, currContents, 0600) - assert.NoError(t, err) - - mockCol := colmocks.NewMockCollector(t) - mockCol.On("GetLoggingOpts").Return([]zap.Option{}) - mockCol.On("SetLoggingOpts", mock.Anything) - mockCol.On("Restart", mock.Anything).Return(nil) - - client := &Client{ - collector: mockCol, - } - - reloadFunc := loggerReload(client, loggerFilePath) - - newContents := []byte("output: stdout\nlevel: debug") - changed, err := reloadFunc(newContents) - assert.NoError(t, err) - assert.True(t, changed) - - // Verify config updated - data, err := os.ReadFile(loggerFilePath) - assert.NoError(t, err) - assert.Equal(t, newContents, data) - // Verify logger was set - assert.NotNil(t, client.logger) - }, - }, - { - desc: "Collector fails to restart, rollback", - testFunc: func(t *testing.T) { - tmpDir := t.TempDir() - - loggerFilePath := filepath.Join(tmpDir, LoggingConfigName) - - currContents := []byte("current: config") - - // Write Config file so we can verify it remained the same - err := os.WriteFile(loggerFilePath, currContents, 0600) - assert.NoError(t, err) - - expectedErr := errors.New("oops") - - mockCol := colmocks.NewMockCollector(t) - mockCol.On("GetLoggingOpts").Return([]zap.Option{}) - mockCol.On("SetLoggingOpts", mock.Anything) - mockCol.On("Restart", mock.Anything).Return(expectedErr).Once() - mockCol.On("Restart", mock.Anything).Return(nil).Once() - - currLogger := zap.NewNop() - client := &Client{ - collector: mockCol, - logger: currLogger, - } - - reloadFunc := loggerReload(client, loggerFilePath) - - newContents := []byte("output: stdout\nlevel: debug") - changed, err := reloadFunc(newContents) - assert.ErrorIs(t, err, expectedErr) - assert.False(t, changed) - - // Verify config updated - data, err := os.ReadFile(loggerFilePath) - assert.NoError(t, err) - assert.Equal(t, currContents, data) - // Verify logger was set - assert.Equal(t, currLogger, client.logger) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.desc, tc.testFunc) - } -} diff --git a/opamp/observiq/testdata/latest/badupdater b/opamp/observiq/testdata/latest/badupdater deleted file mode 100755 index e69de29bb..000000000 diff --git a/opamp/observiq/testdata/latest/quickupdater b/opamp/observiq/testdata/latest/quickupdater deleted file mode 100755 index 1fe3a3469..000000000 --- a/opamp/observiq/testdata/latest/quickupdater +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sleep 1 diff --git a/opamp/observiq/testdata/latest/quickupdater.exe b/opamp/observiq/testdata/latest/quickupdater.exe deleted file mode 100755 index c69a66e54684aa3bbcb029a6cc258124dad8ddce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325056 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

hE?5M0LgZ<)r}b-3_I@*hT`)xIZ2!nck&1M z&?4_M6t|U$z=J337+4c<7O!rh6!m6?{FkC^9c1jNXFJcHlKYuz55;T9m;J8+^NtNh z*KwMSFm63kNwSUUrD-G_K%Jv> z7Ig%3EgPyaZrTyf?a+QVZ?&hJFpCO^k$*m^j5M11JNQ&?E@mIkt|HRd$WgpO6#(Da zkda{~{A+ZYHG;y&XxA^ra@PmRJf0es)F&?JB0N+E=17y1Eg0+XN ze#y6>@m#dYj!;<=mGpDv3N-G%57@I=^%7tu-fm~O_@i+AHUio{BAz2VocphE@vaov z&kplpkWIiCDM%bRZ>Yh@NK3ZxCUs6IzF-+VwhciSs=WaYVKaUSS;o zPpz0H8RZWYPp&1b!eY#}aC~YGSYuHpRJ>L5)<_vA7oV_@FHJYoRoL|*nmnt^ddoMC zkl4c&t?5~kFT)j|&3Pmo-6fhrPL?kMCj`EH5gfI_Hrv$nbR@J9$}j`6LXFI&=b}o< zGU%@8RBd?FHd3OP8GT!8w>F&nHqxy@HQRi8?fxq;*X&PFa`)T9(SI?8hi6t($0b!S zRZu7L7MVT|5H`u92^(it?cYz41CX`D^e`Zd8>MJvyiq+dDOkKe7@yY}D*iA{^vK$x z)LR~qlI3*Oy>y*s+Oy?t{W9JSqpwJFDv;)BZ6gMM-EHT18jJMX0?(#_qUC!`)Z2LT zx7_^2P`VNlhu}aesSk;3e3_i`d^xwY4O5toAIO}0ESG034#sD9K2OIolAI@PU8c#6 z+)mh*eAWEW%uBqXM_b(24GY1?LEuR`V~N(UQ_DsmwCmOW7bN@>~jkJRhep%kaaKd1=nC zInBJZY6R~`%V|6pFQ@x}t>&iwehtW=GGP z*UilqTSYrJI8&O3Sxt+mhmg>JAu5f^*LZ9u7K_$k@i(n%ocXSsoonuc^>Wn+qUvPt7-Keb0~ z2QZ{N+CXs5G(a_4po+h1D3f~%v38Qo1MUK@dXOjgva>wc7(bS8&wx5e2!y*0FX`TH(D_=pn0$N)@E^1LAYA-f zICncn`5ZGTNe*F2UZ+(@HWmql>i+brEM94Tx4}3< zOpew@j+I#c!SGH8gFdQ?ymuF33mM>p zF<{}`_0*uy|Fn=krFja0{2h!lnT;@VT07u> zr2FQEi??fA$vSvB%OjJ>DY$pTuxBLz1&K#7|1x#7LTjpobdnI|!xi&#K!W4}itw9A z<$=>&h}$t~6|M8WDEY`4wGaE20np3Jvs%0-ocoGafM(j?bU$CG<{11za+stT8GXTr zASbPLqh|3xgYo*3PAZ@>Y6=&3P*aGc)`(pOKR1M&PZL&> z9ir`X49P5X`k!65H5p`J_T>lg&9(!)Hlkt%XZ$0O)LrK?m_>_ zCEXmb3e0^|k(q>Lw5>4EvME6!N7aD=S5at2Ki@0#qT?vYt0ze0G8w`=FFY^ z3I^QP?Kx)Ryh#H!Uek>2Oa=`qv|#iF$2JK-;ZYkYdNNq~9yXf0%p`Kg6U+7WaPE$9 z{7MnZ_Xf?eP~VjNR4(?;7I2;}b6#oP4f@=Oqh^)oZchmRwDSDIPP2f+@o!|Nn9TM* zh#$rw+4>PHcqhPJXMuaCUBP@ZAoVb7dl38g=N?ZZ#Q$1SBK1^sZ!n#Z6OgBt&~HoT z(mT7gCcVC@o3XsLeV#zj%ZAaTdRhF~H*YhtvfKhTD9V;QV7jZ+5=-~Z+nxG*H^=FH zW#WTwg9|}#Z$ZR?3zbUF4q#raxd_I~VFW8pM%~t3`LM#>ZTU7jneZ{S?~dLlj)FUf zct=c(SK-ni;mCw-Mt7uR?(xQfZwjdHh)xlqJj4@u9r^L}p8V2eH|W_zD<3ETlRnb3 zTWE+r7O~N|B!{PV+X>v$_q57TG1sQ{YSaX-;Hex^(NNa^Ar-Jm@=`$=n=+Nx|Nlsu zxT>`jyh!^8Dy0J~B+IMsr$6Vd2!J+e<+zg{1AlHZ)&a(1Qc~d=Ro5a!2D=xZMzR~| z@A<5lo&)N0ZQ%dqK2ktzDmBt6bDF?+UdhjJKb=QoNa1Jt(O<_hQ1zL^8e;jewxJo( zX2YPFGG9ogciutiE`)Fk8GP#DJ`H=fru}KOUnJN9G5#1mhMWxfUojvxEp@{cXr5Zy zKQz^*jbb-5Z1CfJ8ka7SlX|GX9+>tQ^c}y>72p%#=N=Mw)A#O#PU3(y##t{j#&_ou zJ;KqvLjZ|$dj9KY@Dt7dmwsaTZ_w& z_oLhgFwns+{Y}HDfNe-K41K6@%Kc3rdTXOFmVdokYR!r|wLr3s{Rr-;*_j-?t}Qiz z=$iFO$N%E$9{rDC6pZ{--^cShNQ~-8u4SRumHU@3nBkNiMonp*(D<3JfkRBp=89=W zdPI18dsPwN@uBZVwetY&s0e4NPMhJxuGQ&!grHuF_w`*4I^zr)IJy@M+40B9#NYM&gkb9xE98%7?%orvdj=fgvpdTXf_I!g$ zpo3Xo3s8*{n!FkQWvluAR7QSjYd$bTr;+~t5fun4t}~6Gol#&dyC~dZPK7s+)pR-K zCNrbCq;tOCQo_`~%_{|>MVtsE=^4IDfx z6#rp5tV+%w6Iq4HmOwmv1mfHH2i_L75ZFMpfYAtTjM?PNvNJ4t6mkW~g2$xM>*l{1 zd@JvIa5WDs0vWEyG!?ohm3UYr5EN(z3zKV)KqZSmf70Cb6TiSN7%_?(GP0Sq5gW0v z1$LmQtZftaAyUBq@%EHEiw_Br{c#yIu_tdS1#pXh2K^zLxt_>E>Ax8Fik#RL1d`ym zAv*(@C~hA2JwX(@`w1~@K$w;2ST1js5yhtj)_(}m*oTM+srXFOPYs}1-X23Q%C-ut zlx^S|RdnwynQ{${iBCh%yP>40;>uc`e{|(6*||%h37-iQ%AqVe+fY|#1bi|cqzMwL zA*%TJN<$Tob4R1ys#m-m@zhVD8hkQ~p06!Mz=TwcVWBYChrCx17~qwB7x57`H@|>h zwG!&?4rh3JMKAiHUq4on4Js1%{YGK{9k(^P+rF#z(=iz`{1_UP9ZZu9x8fvkqLXLR zY9A(O=eI>b>&1g(`A@$%G$WP}W5=mj5x@3u#a5+s1{2+#QqF{vvcDY|kP*vYN?}b) z={@)Ai!Me?{(~-_%%l`Bqr=@`P%{<-X|Kqs<|3hsuw!aaZwBj#AGnQ^l4UA3t zJy&3Vk^dov>R&4B50gw-JrNZvzD`BPe@%3l6Th^x>y60$eLv@I{JKs~b&4D!o6m1N z>QBkM#{kP(fkpDw^@tmMP=A@nRp>h4b)Uq#r6=Q?w$=YgkH#C5n;UwGF0g7vuay3- zknX$ZF2mqtvVfH*eM3I#p8R9@~rC_%u_z zN6cbYt$Vws07wrO?2b*&r3wObx=;q2Em8vUZ`Iiu-nHiEd2S_$RO{XExv_l2eV0%w zjVmYlgQHtl)BX?7zFO2Rq36Lv{sgBvTN@C5{w(D5QZW7r)fmKdLO!x-+DPrO7-NRrd;<@p($^z`0)Otta9 zNVHn10f9+u2zw`=9Jx1OP}RnuB5MuzKebYMRYTDL@=Q%(uUPT*UaWW!amF86N=3wp zANTBkjuY3}l|D&2NHj#z^@$T7f_2x%iOUzrg6@i^)&@1S@_(3&9-dZS4$TU9M@!mk zc{2hA{?|`N%rVF}fh!OBW{&nIAz=)AeRx{WTMPfJBjC?IlsiBNZ&-()$e%*ag2nw8}HVd8T5`B^UHjJ#z zSNy$U8FWbaBVd6F|F{+;J&l&#d3aQ++Ol)7f3_O;LuSUpkCK!44u7?k7Kc{>JogN2 zwaH{pDM0X<`*m=W=DNH9@bg;G&f?eVhEcKne{o-te~76bU){y(hQJ4X~+jDZbw)6A2ogXObEy8;J0X((-Wyb}Y z_WGM1ppu?axVAM1Pd90-X%F8(a#!h6BglsiI%AMX&xMMGc#t=9MgU ze?>`Z8T?P5-RSC`Da zIp$TsX(v8a4g%;q?}Hp%(bjm7x7v{V^NZ<`@kbl`+Uj2PPXh*3s2Pu+Jacenck^*Q zX`&i0G>t3EInFqWB!~Azx*j;tn<@&DOudYdY5nqi=r$IWl3{G+iso_1I4p;bnsHDR znNp7mGsg3Xiy{r*o%!R;eh)=AjJSIdb>ZJnE&kOA|Ezqdp44iJXVCah3cSX7h{7Yz zVcHDP)Pf%!rKt!o%1AWism)q3iy5LUT>@I!n@*+%iN|d2i5@P2CG4{$sO zCYwE<#t0Vz)1q5bC#7d_Yx2k5RC^!wp6Yb5Z1n1HVhujl^jWYs_R%h!?Ad1{Uq5#A zNiWUtCfyOk38?GkuxAED?2ix+2XoUt|I*u`6=tK9o6ip0{!j=c0H71Kci?Kb`TsE! zed9Q9qTPAqM=-Uz-+sru`nc44m2j`;9Su%&r}N7F9W(EC*zfPiq>wR}J@Rs9M&(mJ z6tJJWr`wmAU6mj2RbK8E*vcPDS8n9*LtvGuf3JvcSoP1cRs889>KC1J&!zsJ=r!or zUg)*r2&+gp0RyYbdvYzagtePV=O1^Vzb?S;1&ZB}2Z|XWi-;k0;5(KmSaYOoFnsljqY0i7}C~#xA914KS(@pbPI$H*-PL>Wc;PDc}cI0C) zbiG&Q$N$^P8KozXb&s;6pyw!)qgXvhz%Bj2z^|w`{6HMHx>mE*B~5izZuqY|vsVj- z;imqauCmv!m9I!&A@~*vQ_*Vq6RGq?5!e#`rN|FJW1(12h_MKHq-;Q(m;vLp_%$Wn zPrj@<&3}?>c~%ET?kM<1!)zx~xmfiyOkN?5WklJkUr;=IiCC2H8!8?f@nJJR(E_fn z(u3%Tzw@B6@^DO_DlVi`ywGYn;~4D2{O(n{(Ov1Z915{`@So zlk<%ys#0ImNghcs^zrq#GfhJoayhBONpNeQR(0 zPSA;~fPuA-T;JK*SXq8IAg(WJtQ>DHj%)LMK^JYlBK?4OuT|xFr;eumlE+Yk=&Qj? zQJAjP;$BLhQ%en4EdKwM;rH%Cn!kyy29QPWdDIj+l=GY@0w;re3uC+sn3{qDO{l5N!Tdt9a&i`J%nvva@N;kwjc=SE$RIn4 zlvyWMsPO1r)_LDatj2u%I~N_h_g-_?VU^Z{{r7_ zffT;42hseU{D63s`jsuxcRv?yuG%u1EVD{6-yedKJ<`0yEgOsxKwDun65IdRRInF+ zpt9m%TE{%D^Dv}F?2+?h7yHnE<-(5VpJ-SI`3hfY(lRjz+A%>+4m+CT^I4H-XYST< z#C(4Lt0s!~R(%|`A1^VT^S-{-&g ztRt3)x>Ir${lNP9Pw|f$|6H7TyXp5W5D{=cCmfqu6khs|26muL&T&6m1Z;pFkw`BW zta2~Qfwpie20T>sD_k+Iq+xR~T2hkQ&>J)C-G8qCx}Wu`KQ-uoUBCbCpV;~9F$QXQ%I)izS49(pXvbTh@-h=`re$ zRNi-&Zk8(kE>d}uy;;l+LTm%s$VZ$aL8@ZJi{hRSV+DIF^({DjW}PBwEsRatJtZ%rD%w%@F>#JR zS;?kJ)eWJ4>p2k-olj4#7z1Qy7~>8U&PEP&`oG`88i$zI0|;X>aGEyym!7~Zi^-o$ zr8t6DlVtOmKMg?O`_g}#v3}1C?}FR+0CvB;rFPbqDqDtcv_DSV!`lEo(NB)O=4^-!6#6}ER zGAu*Q53&Fm#ydliUmT#4{^~cR)M4BA-QPLH8?=#co_|`|1LMBCx*of~=22tiw4dNn zOw?B-q;u3z2}nQU+dNc7H7m4-*c$BOIE)d}cpp9N-ttx4Ii0>KDi`xDx=26yck#o# zoS=4AfmedLyX4QJnQ4U6G2azy?j+c347{~25L+fcZLIROCx&KJ9IoG<)D}H=D0Ug@ zxZ=8jG?rar?1KaPrz0`n>VRYF~ zcHcAn=%3}@QQvs(-O=p$?@y6+VzO-*z0CI&eINBT^3zy3>c`YlKcNTM1V6!N1$)YA zXBF57cj^hXb7lawxNn^|F8BS+qcqBST3FRJc2}p?_17`?zrK)>(dm1BvPLK+^``un z7BI}XuK-5o{`c23K;JD~)8!9LDG4iRp?MQp+`R8vPF9{U`U*1sB0j!na4df=zY6m8 zPRkvrV;di8ZO*^-&S4q2^1R1`aPWPZC(ZfO`I~6>-Hc$Y0k`|U?OnO0BW(TxZ4p&GF_Nrdzi}?1C zNWy)-Gs~=>RKUaQ->`bR@H(+deleuaan4Nyu(JBy!E20U=O&R}Ou~~yW&XH*h`0M&%8H$3*Og=(~*6rXckcH_g8`0i;2opodw2aW1a8$dfx>G;pYNcPW_;F zqdo2{{(P>cdg~ur`bIwfOf}|LUkFCPqRTo!nKN}0%O9_wGNpsOvoMV)PZDWl5k=iM z{f*x|RbCRRn3O)LiB9}7P~{+~vd!7Q$;o}w z*#x%WvHMIB-520};}RU6!hO zxxNq-1I|B5p>wkxfSwZ3nH*tRdWZsF175kFvd(`(CKg!_iv@e#-EXz`) z^5wY_-wNnR##SGt9_ZjPE|B=My5Mp0O*FrcPJkw|BE~mXUiol07cZxXvF4hKzFfS# zOZJ&vYq)r>H%FE}jQ*_ui6S`bOdFgZV8EZM1zP4hRC1=+8*V3Q3Py@p-NWQ}5+joQJ&$l6$Me5mC+_R+on&Y6 z3+H)^YzIhZ=GxtVHI7F&0IHQM^Lomk@&eA$%Y_|zNqSQdols$Q?%N2}Fu-nm2B=;0=*B0->4e8juA zThVMAzx|13o0zcPqS;EGH0LkpFEU^a9dyr^NZm!z-QQ}6r*;p~@Q;(2n;yEmMT&RG zlhwtCR=IV2*pG?9d|%xAdnXnMxF?$co3z=&OqP2lb!ebDsg5*+&G%(}zK{DRT|Us` zzuOG|NY~@;-cL8yq`!XcHRazDU$*(T>RHs}-}-|QCOLmzzj6C(GIX#SzB^m1A?CY> zU-*-hS1+Pupz_>2)Uwwal7rMTpqC85W_8~75CguD(%fD-)&b$%M%DsD#Z#V^u8a^-@XSoGz@o&p^{-3VaXbo??nK*c05o zI87(9D3CZpaGkKx-BFlLp+&b+$iMVtv$G`s7cxyn^M9#m>A3GD7Bz+?iw^D|Z&Gi4 zD|zUC;}_<7AYz*n8#{;}_pDjaSNAo19Q~m|8Ux0=gK@1KwZu(w%*Mu!6cq&UC_?+4 zvbUVfNuN&?v8nt(KmWBlW6clG*A4;p7ntXVoU+Xr$L}0zj04Qzm&wyAF=}M;N1C=s zXTd_Yo4l~OTZnqYiO>0$HrY!u_JpYXsuhx=tiXL?THt2OWpMw7P%gPFtiTP_KSRhy zmih=;YI6^H8>d5RAR7skn}|K9N|9vcDSt#W2WC`bD8)Ur(wIEdLr&)#@e|`@TkG62 zm<4*$6Pkjp&OM`0HNXD@1K`7FGwgWfJ*M24b-Y-p7xA$T52*0OS0Tq+RVFk4dX>2; z{|Vj2#{Nz}r;q)ye*90FK>q*+n-}4rPS&KS?2m*eCsz4@DONZvH*;#>GwIT5l(Jjz4QHreXgCf8WovjxaF|z)N8^j- z|B&jU9gBCUMs~Otk#~m4Z{jH-)g%26tt5V?esgTZ%?j;>!lZnC%H((C5*J$GrdNtGq`<1b@Bvrly#! z$^EpoPpNc(j#qUBEu;!+FRa}v=20*n`VJ>E*FJ^NgAuOQj)@#I8rwNC63_Eg@WS@!O`>^IHGbK7*MbEmDNz{ephwHeP3GbfzH@3RMkGy z2*phlnSuFbz+CUIx8IzQ{>GiE4_+}Jn8x(g37Q~e#xDxZEb7B?8qKYDiZ}7x<`$uf zvBG-hnA^uo8qMvbEC`xH8s@`k2AONJ3x{s<9U7O1{Kmqgn7j7RW&kVKF#s8pncwH( zl62)a*Su%j@ebnV+! z?YuQ3*vwmZI%8*_)9F-KKiYknM6`_Z#>m+KX_zhZ2z+6 zofO3E+nmq^TWqRfiyT+9)Q`u^FxYdxfuOb;YeVvLY@yEs*pjStSERB;)VNH3-DKbL;!lpyk8tar z3=8g|Ue)hHui4nG*QBqEeslx+5gM*M=;+P`GI06cB`{9-`}|}U74a;mftpq>b~^%c zf3^EA;FrYL@9@s+t@j0E*Kk7pMsbkW-u?J_w{z0SedUgb?fL@q!+s2JvXpGkGF?2(83HcZG zKXte5h}!qx{Y5kaI@>51%ohyihgeGFr|&WY4OR1%FMK_%E4>fu9cc#2U&mv&Lm?`0 z-;Vh{=66A@mUakA5}SsZWr;)y{fku2HkF}1ED@*BKZO-MryI0~pQ{qc5yy2$odWeF z(YaVaNSIzJLM85du@v#G;yhZ2`%WX=Q$uqMroAM?J^n*?0bz|&);wo1U*jzX3{Egw zg8>9rTqrhmd^i?;f)65VLB(f z%`B<5vz0Myh7M`12A)xtEJqGarNhQ*B{Q--(U4#?&_c8$}j8}a8xsi`kB)ag?t#L z3aj`aTu#ih)2(5f=YC@|{c|I&TKV!M{N9e*JfzA)RPM$<($#-TDb=wtN__phV8~|m zUkk_($xE-;n`_S7hr4C%lQ#<8d&eh8T#rSJy*>HhSW3t-pS-(8odHHV-1E5YHOqn~ zwy3zatdze6UR$xMOx_~9-wIeg`r)zIX}9r|{i@AD=wF}L_k31cl~&Vsape9<8bfWy> zV_fGdayFHgy((~Bi^dsq@#Ms}{8;s8WBB#jzC{}2u6~uAvFeMzK^|F^LeKE7e-aDT zPw;}*!?pbo3yGrtJ;XIP8NTvO`z+Uv_6!@3ZYxmwo@OQD%b}JBa?16jYQs&JYD5tn zCE$ge;f_@o*k0iT`l|W%ahxIz;}eyPO$M_>zsG3caCNpBozYt+?|Yodn@VqYCT|Sj zO|c9@u4w&e0i^hOe&AneESow0MQ3)A&ae0 zGU?|@(X*=JdeRk8gVIXBlmLL{bkZCs`{?d;1Z-PZOeXG(hBt88ND~>}aY$8?aOu*l$ zI1&2Sp~5F5WTNO3`)Kz=iu;x7v+#y%H|?`r#1kidX7edmwumCQf_pbzrC7Y>i5k@ zF8$3lqze;r=AU%VC%W{hz00o%%9onQT>3eGpu8}}m0ujBmzdj0H}3&S)87sB%_GnO zlcVET_s=sI#O>flAJ2qUQrN6Y!FL4GLUYd>f##XM?Q_Bc{!`-3N5>ccDHZ>5`#-Vj ziH+hvUfWelqn>ih6#p>0i1@L`c6G%PVZ%AkkRoH|+uKZ%kXU?%-!c<_c zA!|$ZP#*J|Myv@9(gRE5e{ybo+*a#LVWx5%*cNz$kLD685W{eu6 zf6T^QWE8URTO8gO?3iyGb#BM<21-4s$Ou(zBu_i(&0b6QX6r= zhecZPHcqA5{Z+!$^y%7QhkrPd!uUs7AdTT!@&z9qRExt|U*T*$@**MhAWkB5%a`O0 zg$T|s<7buG9IM`QVOG4p4nxyFD_&pbg(%hP-@FA(aR`B};{ z*O5 z=;svdHe_=b*d28n--?diTvxSw#x>F8`4zPbhkjMDS%@#${A^uS`;7WEwWoApz&`V{ z%x^S*%1P8&OxI)_%cjeEg~{#s6jSx5ezNbly0OHRT_qgK84aI0%>6jH>Gy~H0xms% z&pvh%yutRgQ1nsNdE;5S52bsc1jq^u??Hd-$8Pki_RhG9yUOVA;GnCFDQ{^yQKk?mxvPx@#r=4OJWFR-h{apC`25^pAc*77R$_|GLyv z2kwnkqyKX7;Jlk&LYe;~4;fC_h6You9pC<{MkmBucf;HhgNlu-_|1JPcJLV;SLFn; zAKjwLS5x^fW=gIV-J_p)Xr236&kyu}zN7zm(L=oBpC^&_V;;>3I1Z8fbShE*4$@E2 zzYgRl9{Pqp#zX(ZPptaY^RhB=yc$#mC-Y!F!taDk19|QYtsU0Q47c%!HTy01^S1kW zM?c(I6A%5Ir_Ru;{6)=I(~t3(^!vn%{-8XGqF?HLXnyj%KJnt;@tnVwkN4$#d^r2@ zd-~WnKN+Fg#XS27rZcv>aFsdfPcVq^ei($C|HsvGFaMZC(LgFl6c_ThYW>VAcQBM} zb^%t3D7jx{kU>04Q1FD%g1wjl*48Q?8#%S`eJC1Y*j)c(YZn-5uKJnN^PWJDVvR(6 zCj2B2n_+W~OZmm0NRfR?`s=AAnx&M5>CX5Y3D!u^wg9Q9`8Suo!pKfWbW};){z1=gl3_vdjwVrjgd#FCSCoiV;dQ=Lz;%kxDF-rCa0j z6DgKaK!Js=xAY!Wu<)|7gUo{ev)%pn<8)UX(#-gUln4r&_kM1ZW<5!glw5OZkW^yM zb)#Rglq3l!r(d2*IwgnVpIhOM!aeXT8H8PS{3A)%a^)cN*b*Rht^Ne<$7Fz)^QyUU zez%g6;3fm7q-+y9M3YyR8Rxw6B_;#s6*r=X?KL}o(*1JF$Ai?f@Yb@2`Oy}{68&P8 zlP;TAHG1^W!Fe+)t40s!SC=mrA2T3J-=DkaSm5G73OiERAJdBgP}S&dkekZC&aW;1 zUg5tjZv$^kR{5<^4R>=AW}+OYm=rP}@CBKXx$xN|q|)JNzOHFhN>)p5O>q;7 z4;RY;nm0vZ4P6~c1Q;-HwGd*J0+M`WeuJl=`Q>7*2v4yiWIc-?t$oC{VQwRd{`~M= z5U+${=>Ky-+F-X96#n*4Y=$d8B!k=ExKv0@i;d=7mv-`RNE0gz@IOdzFymbM(BA1I zNjG=7cK@K2rH#1rzcFeBx{+FrN>7ZpN0XCE&PtAI!MhvVMbZ4TrJr_=`-FRs%<@u= z*~Wjcmys<|+W};xUp6lVTb_YfWRLT?K70q4i@r&wXyOjTPdzTgiA9BUIZ-^EFfAZU z935aSS24vm$6s;xR}|REwSd)fS@$Ral_eC=$v^8!HHgxs=m zK5{!DNlPbQ?e4^GFgH=0LNVUA6E6#=|GQ39~J(O0m~02&ct0JDZgrEvzK^WkJvI5 zlP}Xp4)ju6*>1ID50Suc6@I69N=hO74&%IRj&*e1YGD*voM#!wnk1FZPq5nAtnR^%dH#>^&EgwIhjgfqjS7qLXi1Uqrqw-H+sU za!&A_q4VWHrQ5eP&b26iJ21eXk7si3Ml#IF<7jez9%^cxZejbFYjtXt={4$2APhT3 z1V0~-thWZ^+=be!{h`I9HGZXZS7A{=wn5foR`e6;M`&4YUZk_i%ycT%t{`nNF?`9& z)4Hd$w{*_hzxQeidf|uGSe0;IGiQ`tQJpAeOlx=@hst=?Kf4?{NSS6FLMEd4U}PL) z`7OOwUJCR)A(r^Y<|P9OKu$WG?qa%|Z%%j+LpC{djSz>@SO}0xnMF%z3Z~h-(YE&h z%+CC6q&j7jAzF)%%3UhcC#PnMZ?hcHnzEIx1pCPxKG_N`R|U_FRt4F9n7dwJl0Vwt zBs==SKU(mar8%A^{bgFB_`s{JlAF0!KPUZJKUL3rvGbHQF^cQ?ILeY4O7uzMvsLgB zqN&i#O_jcC%Z_@ZwP4=goC#nQSN2_2*3eo&Y&O*I4wiC}o5tW8G{{dbZNV@QS#+{! z?H!HN7x5j(jjKa6hH0ShEKXnFz?BD->nfc7dj9e2af z6)$!N4B_m=t|vkWt~jZ`v8DQiiBhtMO-!8ISi=?dMYYLG3MN*) z=C!S4HnhN5oIu-a>lj9wLOAJ1 zR^dC*)cg=0U@m1liLq3e6L>XA-pqrp$h>xnAg_sk$No_*2JhodkxM%CF_Ppqf&B>E zq4dM!y`}BugL^4nr#h~58ULXevf2qTU#1R()^g2{`5R7knERc%W{Z00x`CS`=AK(u zwdtlZ`BhStYO(p(MGI_WTsj(!+b5!^VBN2Ftia zoes8C*Ix-IYdW3~xJL`WDpJcd7uI@`^)8-sgoE;Ap-+XSDCE@fmdjO21NSL`(ly%3 zSSF@YV2h|a)C@4rk8>*KADv&IMT$)P#6qicwyld*?>${~r?VaUq<^qJ=sdYh@Aw@Y z{T}^6g&b&p^1O&f!B#oHnG)2kh?c z-*>xj*>ZRo?i9sW_p|O41H0BGMxV_yLZS5yrbktjYQ7qJbS3n+#bBFItHEhYY=dk4 zwR8y`X(iD2e7oHRtE({AS&uq2fgZ)iR%aTiLPS_nhgK~~A2=be=}m7+YVZs0(l}+{ ziQ6aZHGxQaB4oRLaM#L2_1!#Y{UiS5-6EFX%wAdO!@ej1L;@Ji`C^+Tl2;X)!qeyd zBe3F+id7$5BhbT0mI`|_EOG#-c`(f?=7G=`ff5K|=mH2W76=S!Fcw@iMqU0?u&{*9 zML%wTWZ#?j=|bQ#_h2CZ=9$jv9TRVha_OH?$4w>#ITRIkl(~u>1IXj@7vRy>qoEN8 z1mO<778*J51O=T;eEm0*NMxmT4Yz6^xdd#9BjU&cI~?H3Li;Wd^#`FKaC{ zj2@UzodhW{JHBrleo4Z?RS$k|b*ZDwCQ{9@s^51tyso`SyP7(f`g1w|FR}q*teThJ z{ci#wTl&)Z&>Z>_bGU%1bo%vy;vz*+-r;H0wVGnaQYc$eA^3UeF4|U!FOg!BLzO#A zjaI&|h9Ljb`OqSvT(A8V)wrR68b{K8qUfX3M222#CjgUcS1IV+K{68Maeh*Do%5HF zq<_&w(J%O?9U5G&2$j5e;rB5lK3a+Fa% zbP(;xxN$Q=Y3^(Q$TJEkIW#=A0;k0ka1+k+KU0Mg+=@p z@ha2HKs(dtP|`d-#G!O{lMJ*s^E(2Ol}gXq->RTT$I|(;7P4T%Lk_)+28jtzI-DPW zxJ>2%KN&YG6jd}zzECk3&l(8O`?WQNu*TC$wCiLLL{cz3R5|BbJj$Emt1 zn016wng^|Ed4f#&*xyH(i#L&<5>wFm!s zrtD3@tdk4b`PDxrZJCCQd%R6b-dWb7&%7IDWmL-QclIsgvk*acCC(t#NFZ}Tq$@`- zaKE$Nis<+%Gvy==;Z8dt(ZuD9fm4Lkl3qg)8) zSP#v}g_fy*_7Kck=xqkxF8Xlbl>H5k4kI}8$D~_7uteG? z@|upVOGZlEEO5USY)l8@gcjKuGDjhrdSK%!qine=Tb?a@*#63X00j0eThlU&6;LZ~ zwrEGLx@;Y9EZa}}59QRs{&cCzB`zsdP&-c*v@jObw^j9G7!3ST%|6Hf+WF;h?epjI z3JlijbCBJ*K2iGti%*$HmA6dFA>35NV4p1=j*O+<&glI#^SxeftEWcPMnyi zqtbOZ71r$9Qhx;&4gUD?4cy==6UDw5_bPiNnG^p1%Cxe&mi99Zyzp8Nf&)w3o_$ep zJ0I(75lAF2y<0ZZWT?N6RFnv=>#xm+#BmTj8nvmLs4wV6)MvC>q8?!H{st1nN>l#bhr+@`EP`Aan)Fc|C~t~2lcFx#0$Ho2R>%z<@K{D^Fi%+;jR zq06%TMXY6M8-F&shMvhbpjsD+}X4vitK!#UAl!&;M(KKi7AP zy}vLd?bdgvGW=y=5tUwxp)N-B6(N+faY+AM9*APwUgnXUy7lPn8(eEI{c^ITRHLL6 zJUVRqFS0IbnO#oo9^-MM z!eBhegQANq;THyUx#9q!szz)K`nLADwX%?_Dq;a`z=+FDz0_Ejh;Ww^@^gz8KMh)h zO(WchSq0{xiMiNiO7fMx0xgD5RtQgs_*dWx!G=lv)1I28%>;i;bb!zL^13b6>0j1J}d^!+h>faZh%78=2n8)`k>3amNKtA#>kH zW^>yS@mB`-t4$2<7fqa33H!LQFAot|2Rlat{i;jKXL9kcR^$L`nwc<3aIla97y=Nt zZ3Dr~FMIIEs>5d4Q@JQ)_22aBz!c%|=g(|{fLeufy({J~gK7iG8^8x+xG6(a$knf5n%{3;WMn2Yg6L(|sUjo%<26x|? zd$Ufi+c@po_5$(1Tri+EQ8bjuD795ZL-?6-g3zl(=v7KX`Q9BJ3)$&NCqQ;Ba6mk4 zeLnx3pz0g^JGb5<@iM@mJfN72QgO1EVq+77QpV*2!w5(cc ztJ1c`(jxQ^);G;ZX#FtfT8&vf1lE9Ay$1W3gaBnrqX}f@x~8%9iF3mk>g@HPhtzYQ zQGNX4aNWGU|Dr=)?0(ufD-qoohTx>EH&1l@< z3pJ_b)-TQ_cGqNa)ODW?F2Z*-*VWBy7k;FVM2gwm>CxFI+ezD;##@>0s|0oy^kRFL z;WFJF_De8kt%EShCW{|GIaumwjMLc?kj$1}w^~njhSb@T^d7+{8MW-Qrro;nvRPm&V=+}z3d4cR!d9;yG7sqcKCLN?xH>`UvlG=<(YaJr^%Q=*`L|I$2WKtcYv79xU{!Mb%ICSZ zs&o2v@x4fz173Gi8uqzD2aUi-LKUrAwth5eA9!jp#Rp-vCZbd9}1i+clO8=V_>we$_o% zCCsetKA&E7Paz*>e3{v6h-h|P5$+99xOptf+H0gJQh|+0^9Rd+gK9w*`*{|4#I~;> zk_dpoq&0}Iq4gli(qlx+z{aV4R%{DirEXh$*CV+!YX!Jwy;SX&r*B}gzhHJ0ALz=m z9nQb%6bbox?^z*^&B6{m>3+SE!hP>|dW9JY?sxKH?@8nmLp7?awT5oMTf5@}Zd%=u z-Mt;E8{wMD>fq}gCUkgk&1#?e`15rgX>MBG#!ajD+nZLsy7(%4(<=9^zQZMD(fD7u zyR4{&3!?z@*@^pJ)0S*&AI^cEKUMNen^l*IEHHE|v1rtUaMLDPpS&68rRu7tmw0U~ zC)k%*dd=lEpFEe}j17QeAkp}hWm9W`X=N>Fh{IQ4I7!~6qUjqb;^&_a3kg6mZ?zx; z8L}4vv*k>EJN94MoaPs~>POVZ*G-JSUb8vFP4aK|wfN`7cGyl~u&D7Kc)^P$c#S4U zabk6()?f83+vn8BU#}bcakT2SnbYXXX~N4{>fSVU55#2e8^ko`yO&zTY~qRttXiTjfD4mrNjkA6zAj42tZ0H3VxJaFA5fdD%TIG| zp{u^?<)%S(T`M81H2c!9$qn)62{s&!ziZCBOx(lPNKM2du8D7{i~q9@+oKxHwv&EG zyhVV^m$uLwc$&1j0(cXlVcZneV0!6;7I^07^!+M0Z>8Sr6W2_wFSv&DpV6xA)9LQf z^=#{4$qrw!E!@JCMPpijk)G-yO>@n| zxwMG?;J?{?fGVAS{XV^iKf?a5)vl=ifTEK{=Tk-J5jBAJ-BdOU<~RudY8Hp;H9i%a zz4`K1K(A?Ye81;zGE? z`~u%+-8F!2b2nU#-JPr1{8nmW>&E88{zC_z1Ho9WO|ADHSsUdh4mt_iN}rYB)*=b! zf3#rf5c-P-a+47C-)FhRX3;#x+-?>*Q z{#8A=!yv8&cHmBh?rqp&CS26jCH=o0zRQ_;w5=sHuY)v?+db3x8$j1(J%t3R0TuMN z5)Ox)F%SGQ=tt(hFBBf#`1^twa4-L;Zu$62v=h)z=SNj>1M_@QLx6(y@%8Y2un@D? zx|(Nzd|u7wcT#xb^l7QyFvjYSZGYt}@s5t*ZSII@)kPIEhei_@`DdaH^qIoEzXkuN zWDW1(n%0-SwudN?+A*>mL@U2Gf^)-a z=DjJ;qq7rzSJt%J%LxgRn-0gejYp8&TBx%~^~t`4^~n}JA`FXSZ*eMkqs7S0Z`HQ0 zZ|=LJrVy9Ii!O(}aL`Gd5%vqtgr4~Y*b#v3bN(Uw2;4D!MB`hc@t11jf2)sgu=eda zw{>;F)3CqUeP6O5jQzwgD^UH!>@de=0*<&YQ#}1-fV`)~@0t*{beYm>k~I{oAnM;? zUTAbPZ5!{^_HL*8UHc-_9&k6;J|846!7pvHN2ghH+0)t_9u1()sR&BjH*@<;n{-c# zBrX4~{4*niboS?6`pdVFuBmqEdtpo}Uun+GNe5ek^sS_u3tg+1w^9@dM*;B(SWBf@ ztXIz7#z;beu}KX%_b1Nbo8q7J+@JX6pOaO_M?1c)7ujAf-O9(q_-NMiA%~&wL!Wl> zYUcm^-w>%?!KUAKeBbeRTq#5!%>A|SMQC)g;ukut_cE!#7;I!VZ=nOd6fF!GR?*_T zPUL#U_OC_FDmmS$S&n~hYC2BZR&Q17U~sjF`|N=;w*U2#sq6-3`cZ?m=do{T=3zh= zieZbI3SEb_1Lma;7{dh?UoYdPs<{Zzd& zx6(#GPV_xUb0aBnP@%?IY0mn#>mJ`A3eM-Ny1Uq9GLMmxsg?=K9HC5@x#!bpp*mGe zE_Y}fFSkP1rOeHw3en9j0r&c#;!^fdrY?$Haax~d{D)-;Vu= zrg2*{$C}?>Ya9Hls6Y(Y{FEv!evh=(3gcp{r>>Ibz}4m6{9~9ri$ADgP}KFK{N%J2 zoT+DUT1xqEN9|l;| zFeR?gSdCXCYWizVdoXWzlkNP9xulCRn0NJo^a}7}>vcAx0atzw>E;!HWIj^PENo#g<#t5lwx&A~ z=8XOjbB?R)RP{xpmwtGvs#|J{b^}=gR5TFoVIJoE`}fZ>(y#qn0}EWEL|lUvJbws_ zI08B7wY^O1DgOCKH@4c4SIXleQlgdmCAVHF%4)Ic$D6C=?T3a6B zyBQ)sxMb+@w}I|4d~ow~>Upr^FV;XDfBh-hffQV|XMdwO|Id)JR%?*;zqaZb6_1sh zi|DZ9rl~&nMPnI?U>R!4)F*sQMC+Q~62T+vWWM8xbzz_+?c{D8w~z=FD2MM8nB*Q! z>itigYFMe9G)#*bAg*4;FzuWAB{)+1D8kth^*(K#{o3>E#>b@;8lSK6MT7|vHf0v1 z9%a}m`=mV^_tef4jsiB+wSHga9lsI7kN)}bd+dTVyG3suD^R^>*_9UrP}MMXdS5@@ zFg5EVA`jI0<$(vP7cO38pBp#IGlrd^)NX3^F4`pDnN42!H3E8Wq{!hho9(if_53c+ zTsZXB%megRQ2JfC-j=Qd2v5};E%Y0pSYz}A$*^;-f>;4ST^0bT{GQaX4}eEjTBwo zHi{RKh}E?gYP};84pY_nrScwP9fPbm{x8BNndcJI5Ox?@{KPVK!rEjQqwS#$dRAga ze9JPR_?b0PWwoiFC`l(+Cr#BZ7z|x79Jv&E3iCgX9V& z6aUDi-+u$etuT2gNH2Hki(UF|312He7X|610snKN>Z>Zxa9N*_&Jd8!mVaJK_sr6% z{Mm??Rj#($i^-YkKl&VhQ~C6%`>t4ea9dA0vD(qKTGv`{Pe# zU*>6T0n~WW^?v?m(R_AutoJH;Qp%Ix8FemI(fmI}^H)XlIS{w&rtfM)o<&CeSmMn( z7waJI>`RI}8$3U6J+7nPF|VGJ99&{i>?nI**6zcF_3rMhC+&0N+Mu45-M(Sbs&!E> z%I^IZOhRm8#`i|6*3TW8Z4XEmwb-(OKei5vbF}3n47UbhxI%w?FZz6)-FvjFhp2b< z`fT~2kL$cJRP~LuDR5@)I)8yhO+Ku&A3FG;CHa1siQ^xCbo%GyUi|T@(ZcBBtMzlV z;|gtCbyzyJ0g!qZZ52sdsX}C6@1l3~`ZjI;Sw!4aCfGE-t^E~fK79BUeBe^RS$iy`Aq5crE*tF0ol!TQ(KqyRxjDS9*K#>p^mwjuvkxvLKuV z#&q!?XVelbbyqa7HJM>eON-Z~3V@)Y5u|kU>JjbeUJJ>RfuS0k2 zCm(5!=j4Pria*fv-q~4t9u5UkCHr0cEqcH(YnzPCqqBkC<^T{cm$9FHPQ+9~q=qnjtU|0Q0-v z>3gqcI5UDyFdX?0*|9L^ZXgj@tc`#3O;Gep(I#h-j+H$~UmT?S z=609+@rQ^6U9bH+&P+(4<;|^)Ro@)u@|3yb zw|4>Dw*8`DOtVv1F0}}@_SwqpTj#E!d(RO+rOz-(dz?Rzh`W*Yq?vR(%=Cixg z@QEEf`oBN^%HPepa`cQPF#Eb?Tg#tZvT<&~yLIDspj%?bsL`>NH`zV=nmx~4uE&mFMLdho8LhE`g)>pxmM#u^#+93-Edl%M#D12Tq& z{~^dSzu!EF|q>S4{{hIu~t@)YY3}?_p;xQqQtN)X^hxkMXXWDQq zer&lCsID{8+ST+Yt#3c^zPE*M5ZFBFbqGA&P1!uy#h3IFKNCX05=xy_0W=Gn`2-30 zqH`viy;A?^c|s&>|D0PdWjtbI5tc%a;@^m#HGybdix7~wkE?YxJ>yHz-jxS{S*-BG z<|}W0rh8(T`t0CbWu3Puu%T2gRUgijDXa>PO9S`GPcXX9n6ipraBPS50=ktuqoPk{ z`9cNueT(?+c};`~AQ4B8){w)alAMN1pgSozRze!%SRG)48bRvG|2rs^nq4@M-ksPN=myOYf zp4Y+0yD>4E0tG?VIiYRrDXRkX;3HW;DNf zxZKq3MRpd|?VE5b1Mk_}r+JY5@TNX^d?;u>$bK;DGhK7*PUiU`#iBc$uV&Nfy&!6r z?#Rc*cjN-rvWE1xdirepH+`S}LCu8lDJ~i6w&O>%RQEkrvpZas0)E-oPw&@VFW+L- z2MmH8G!M}>4kno5cMb}+@?+J1A4p15$ZY((<3K^*dvkvC@$KF9$?zZ+X7%s?0>0k- zQyqWGfpMY`|FW-w5LRVK+_S_2?oo?3`8#z(7#^$WacE#-7t03y>49n01ON1Z3mp{l z^LOHoLPFP5c@th0f3P}b(9Upe4{Y3C6MHkiZome$!dc38wL%lc54t8+ z!X(ztD1?U`vmq7Kt!LkRdi(fjqK5m&KaGy<e>(W=m4bItbxJfwT9asR9P=f45{ zz}~M#>cXE&5{0xqv~8;m!0bgqH3a%w!z`+;`8=w{FDy(gIE3cdS7D3eC|Dm%6o)R= z7t8v~${c52ye;UQIC~}rhq3g_9lgEy3%2TOU<=k_{?9PkQ_HFJ{pQlyhj`%^NPpkH4w>!oyRLb_?EYRD|NG2ADXJe5 zDPI$*$fxm0$+-4aRA?=Pt5TA|-VmSEaowp|(AZz=zCIc`$(F;7MFHKn^EJb*^BvHs zzcK9(u*-5}x+PT-MLz2!*si*6>ho-Z0BvIvlaBv&7~Oia~7Y@d(Mg`f=PFee*l)VPbupsh{ouYd#Fl z-nCMo_Zrr5W#=3In3r_NN!1(E4L}@iNV&r91ERnugOtF z&q_2P3h^CGOe@6}RL<@{;&-DtgZS`kLdR1mUu|@vR$=xI^S)dggTL1wdvFo{$BNGk z`@)v{;`S{Mg0U#o>Nb12Y_tjtmoEx{I~AWZ!-Ahz>fq>ta?RXsTqT#@sEi4aU}5{P>+(;hw#8B z^CHeGcIrZWaO?NQfBLM8`RARhlS03)4zYgS{aIJ6`a0E=;v(>P=)>oLezIu8UjQRf z+ZDyRdMn@HPiD@q07H@~NESUxdf*@9x&zGrd?3MRPvL~1=3)Gsb{-Z|bh&Jm_7VWF z3GJ*&29M=GyjTDJI9}M+=r1QBFYju;Jy+f_cvKC5Hli4yf&7tN)P*4fPHK5WhZ%xk60+b4%^?PIDHUmriHqZ#Yjp^s zYNH(!_CPqU8cn7D7vu?~{s#Mv8XGqxiZXdR#<_K;cN7fSGHe(ETa{}4r7%FfpBp?B zzrcmg@~uCYo!haip{Uh=)U?*{m~TH0)yJ2ZYs!ZfP~Kmbw=;BV8fX;EhJI zq_>3996jK5>#M9MHK(|Yjzy4Jwa-np{j61Jg-TpU3E>Yhkhb9ad~a9S+7BK99_b5& zTO6lWHQk0FCm*5$O0W3w0?{n_RJKqX)N&)^%&r2l zFHDDs6onJ#F8ddsES@=9RD86BFGErd__8$#Kuz#t6fn}YSHkOLJ&}cL68FTuX!_KH zgzEvrF7vAt^D1@|9TJDH(C%8LZx55?(aUJE@4?aJ;8Ub`_e=R>U*Z0VPpo~R?Hp*x za63&f@${t9f0}Aoi100WB0f>4jbOvTmRp5~#8w$(Sfb?gAU%*uf-iRGhpix;5!z_B zsA95Wz_}KKY>cq)8asNjRL)CV1E5=LLi$!_D_00u{{J;#UzxK$&)%)Tam!M7Sye0ETp{F;{)O<@vrH)64*GRpsuhv zNL3_5Pka*$rR#a7&(}C-$I_S8#IAFZu?L>5Hr%$?K=Tft$Uf&PvRkwF<_lbM3ENr& z&2ujKpHkDUjrPePIcy$sNjue$%)sVelFU$=*8z zV&7b??0@C!n$VY&D>KSm`PZz1%GFi6W3^|~Z|!9IAC#Ub#A^B4Wy{6T41`=T(gQbAr8 zE)(;ET-o#o)PHzMvitqd;2m>E32)Gr9^Xxt#4W~V{1`{}cLPaP$!!cN%RBFFw~3cw zU0%OZh$o#Vac^F}Cgt`*{X7fs0)jg2%YObVtTtKhzNRTHHD7D*E_C~Ys%jo~f${vj zm6zAvg}Ii!v)gx&&^1rp(4O|~>J_^5gd0&V;;xNE@lf}sh7n2BU1Ek4SXx-0HE&A! z`WazxlvAgaPF=XIHaMyG;3qTbPj_ z0fP@8&6HqGMzUE(D`rUn|C_+_KwZ2SC_})(SvQmH4T^>tN)y zjZj_a>)?&h|E%2@$nY-312Es63&T{iQJ|~9){5s}Q8amWzQ3!p>rnPkyou=bh(#SE zkN-*f_hN1Ra+sw`Aa4l7G?IKO)q|KP?X@hsNzi_>tVQ3fcxL?6PoTKWMS|uuc-5>` z<1n^yurT|or~OWW})NbT>hOuIJ(9+mHg)A95tQ~|tmR<`#&B$XvkJQ!;#r$OD=djwI3QGI1_Z<0wec&`F zKXU1tAwXx>hlLJdw){|Mq-6Y_u@g3gG3LL){l>#GTw;7fSI=DHyPe0G9*!Qg(nGYe zs+YW5G}9bvpUO>blYKtK5FwoL82l;b*lpu=3^$JfW(HBPxQ0n!7V4@#njXTCnpwgh z8Y;rgSwNV66S~?SKY8;kKQZ3YPnXwv16|UIt`Zd%88CyBl6~2$`q-R`4#1|KJsZG) zGzRp>a8HkQz^cSX=(gg-ZtDv2R*6c1^Kj|xD~jE2Hy2m_1mMPZ;~&674pTAD-;fJ+ z&VT$j`~%mP&&eN2SSF#tQlVx6dIaZMX)Te;VifiXyc0zm5ZAd=v9nJO)Z*@WO7=a) z9v?Tu>{+D))l_2WDoj;xjh~X5-XBH|><7YQiskDEOQKbKR9xq)>bM$i!F`&)jt>tD z=D>@!>qFv#PiN^k!8f`NcVvU>U;YLTYDutjW=qJ1`&@_N>NF8fGv|ouXXf01`8(RN zo>u6YMix%nv?hts^iWOZx~wz|sD>%D`bW3HCCh*gASd8a;=T+>TX-T_rqapL?y0=@ z$C}EG=5~H_X3~lWOGyHLxjFCmxf82K5U@xI!Mi+t;ulP_lMn6tnO`l3z}d;c`~n9= zVaK*2A{q>fCi@Pu-iLM0#?jK%#Tozn0C1n0Gp?4gLGf*1?OxkCc1|r01e`duHj5R> zc}@XjPE+PZj=c>{%S++(dCil%wUepz zx5#{LvKB`=FryJzr6ze&%V4*M#r0pI8xO;m;icaTZKUy_ChXdxrFWtJG!&BK66HvO zS<1ou2O}A&E~De{C6N46?M9>NGgn#dv8WurK0SNt?E)BjpI!_dH`Pc)wM@1>HQ&S{ z77Qbc6OOhQ%9Sk{`s-BqtUa>x)RAAnV_83(%HF?fDOAm2)$GtB-N#~t)_30g8{Pbu zNIwWmKVT1UZ{L~MV?SaqvuQGa`!tvPPk$}==Z{(GKimDn*3p0s{(v?9u2<4KMJ1H= z+AJYIJ2Uv_k6GhC-Ti|0P4)rYh4M-oh|a|81TG*{y*g?HKRd zJs(>rd0N;X@R=Kg&kZYz`0EeH<8+6=`2&B1*s@o4#$d6!ccwUg0&HU(9pF~5uVrDi%XxH*4r%-jm+(0 zIUfY~Y@S16OBMK57Db=LA3$hWVIG>m`Xe+x>)$@I+U9&*%VF76&Gs_V+g$m#r)0}F zb(gek$vu%1{u&PVaXc{LVFCb(inezTzim^YslPQG?GMNJP=n z#&*Y>{ZNAY)F;o&KRel%-$;Hmc}afVE*6PvITq$`e$yYb8-7ptcJFsf8@=s-OF55@;po2>DexW#U zPmcUpX%CP&`uUh)KtDPBryG7QAc40)<`<$9$PL(=|CnBqsS;jr0An?iDi?-=B4Nk4 z5+^8V_#}Vc-0(li+kAp|K9LzE84etd+r6VI|DkXBfNiOrE)=N_xo3j3Pz%hr_oU3_4c94lL{6!VWC00k`cw*s({ z`cO*`asajvc$x5bb3tY8VyXYmzB5Wg+lT+aAM9$lLKX-MD!~Vy-VH100tCj|9R!^3 z<0Wsm!*2RRg`fCppnr8WZS!L{hx3}x!5Lj}({U08Zf98Bh-nVv8)nWe7sxDIQko?^ z%dQ|x0JhA+KXEhg{HlVMBowrSXoN74GqV6ZlcQ$4^JfOh?zIPaSV_ci*G7OJjEsjA2A+;<~=^rV(YJW^_ck z-_;V)xVn*9TxL9-F^9|3Eg3S3dO21fn($%Jio>S%CzTp{8KTSy*XClkWdz8-{}f-< z&ClBw0J;0;S@>9~`cow{O_QZ}ci^FbJ!T_!$uV-X0;zUu{O`J->vIIyg9C=Vez%aIK7vU4t+HZ8vZj!dxn;m&J7^ z;YKlqri1xYdoWmFtqk3Wtn(ABxN}gOkTe!#FXP^}FUXvJclGDMmVUPzeS`Q4i!@8U z_@~9+Rszdbu$~cLOpLzn7wm?I8OG4$H{f32rI_Blz1Ax=_7Jd1#s9J~<1O9V?Y)ft zK5y?rQoPu3ngBRhgGXHo-t;4?RNnQ+@`k>+IMp{lkE052<#(;$Mf6LeE5=?ItdoQ9 zz|!=*`Q+EAi6;h`BcIP~Cor3N9htj(p!Hv?4wR)*iK0h-J}8eq56w){+fR5)Wd@`Y zqwnSkFPKlerVmHaNfs^O-74BUyvK&XPjFbm;?#r2sYLaaWC5GwpH^+0j@#lYl{@Ji zK2l_ucV`D;WsBw=iwK01W#$|lM{VPN&Qw8O_IU))q6>k^6!GGw(M-51n7DLf&va$Y zQr*7}zi)K&S1J7)4$Yq|epiitD0Bc$X=$Xen!$H$z4!D-hj!s6CH;&GJ+Lu)F|C%Q zfHRT}3}KKP!iy4-Cq%G-fbIsVY_P~Snp#I`JaVF|H|R~$eV>^D*s923;K z8wE+HzW#c$%{O!g`4p$iyc}c;oAoZ~!YE1hH1%?l>}Gn2`OTMYv2)KQP1|CuPZyJF zhN)-FQU%-}Z=s&2WT@ar;K*Tu`H*(1Z_RBMWyiA6%Wa#y0LUeWX6f!Iqg5-GE9Ed2( zOtV#;sjBX$D!9l+JUb$4K4wkmG}Ww%?sOH6-cLpAP=hl^+KN8=2^HP&+t0c(2X}=+ z9DYwUrG0 zv@5uOVC3W2zc6a>ZanO>7OwO4Hs(oL##AV_I=ss41ZJ5>bL-Z#qrZq1V{Mo{VMfXY~FG;^Nx%eS6cj1YzLR zQ&UNzp%EaJR&8$DlAK;pwX(N@2l&yQD}z<@!V7c(8`gOBRBI3}qz#=wA#*McSBm#K3_uayJv97j zXf4jIhb7{5`wjQaW~`;3M@0Sa9c=R3BWuGtST{UaLl5GQ{}W^ z(eAe}{_gk^529?7`rWfg6_J~}Nu{+bM}sU@C%CHhkpsRV#|dAdCkSKmJcCG%*81V`8FhqpZ!;nkZ(Yu_(`6u_Q5PjeG~Q#_1eV2g$`j; zV9hV+vaMU2M|BG-z%rjo&Chm8E2V7aVrAEf8!aMo^L>MSf{)E9jvUh+;mOb>!tL8> zt@)q*PphPPDSb-Oi z|ITI3zjH1&P5e98YKZZN%i8subiWGl6kJf%JS_IKlDN?)8pr>s>IARt1eHvLfkb~_ zTloz1r0M@GlD=9RSv30!9UB}OY3bsMvw5IJZSo9Av(;v-t(ws2wOzy4h4+i$WUj8FnUBn#xD{-e@ipJBwmz*I&MqR;0 z4c^idBCVe_O{-~{Gq8XwoT7mPTwMawh3iCmmXz(B58a#E@nJP%3R@OQeLy>ej^-W5iR+v7c5I*ev>cz;y6D(uk7N&N^Z)%qXVKN7d zhubW~uk>1z^qGsuTKM6Jz|H(cE^t+49lLq_YhewYPoTHWbp&awBX*D%d$m8nO&>*Z5+$$KxG`cZr-kOo8|_F+sf8?Gz?_CPv9ST8MU~ z$ZJ+W)@**eX4mE&6H7TC7TbQZCx8x&MAMSs?`T6g4pU0kt*cl{&X zSNelIll~|_Hhq~A`8Tdz`c3)`Z5}2ju{SlTa>fi*O1Llf4Bt&5e`wiEj{Ya`6(r)wCAWdQWYOCazW#y!Yz!e`SVP z_%`4>=z~F(X3}_lh{|80hOb0FF{gwaw~Q=0>k8!1NQAZ5CR2Ul{6^@ptZJv%cAH+I z&E(wtsy$xocX&q^Z?

vn$p%av&dWejO7>{ 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

}kxMC!0K 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

T-;`&9{`zbnqljF_A&VgAk!`avCWdtnJ+FtgT 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

s=h}(zO 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�WXlqrP^Uf2N?2ny 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 z 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

WqaPgv}s2gDGL}azd6x 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%0D*;lzigTKRP0(1|uORC(Z6yFw%pQ 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%0AV;5SpkpG>bfrk)NedMGk!Cr{V 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 U=pIDBUSW|3s0H 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

N2 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

5`+Cp%e8xTZaL(^k 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%0D=jNHz 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 z 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

IzaGWn5vwx}tmw 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