diff --git a/devcontainer.Dockerfile b/.devcontainer/Dockerfile similarity index 100% rename from devcontainer.Dockerfile rename to .devcontainer/Dockerfile diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml index c3e0ad8709..f976dee5b8 100644 --- a/.github/workflows/clean.yml +++ b/.github/workflows/clean.yml @@ -15,8 +15,6 @@ jobs: go: - version: 1.22.x may-fail: false - - version: tip - may-fail: true continue-on-error: ${{ matrix.go.may-fail }} runs-on: ubuntu-22.04 diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml index 9fc377c84f..0acd20b8a5 100644 --- a/.github/workflows/devcontainer.yml +++ b/.github/workflows/devcontainer.yml @@ -17,7 +17,7 @@ on: jobs: devcontainer: - name: Build + name: Devcontainer runs-on: ubuntu-22.04 timeout-minutes: 15 permissions: @@ -51,9 +51,10 @@ jobs: password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push to registries - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: - file: ./devcontainer.Dockerfile + file: ./.devcontainer/Dockerfile + context: . push: true tags: | ${{ env.GH_DEVCONTAINER_IMAGE }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9cb7d3927a..4feb0fbe66 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -93,7 +93,6 @@ jobs: - name: Run go-consistent env: COMMAND: 'bin/go-consistent -pedantic -exclude "tests" ./...' - REDIRECT: "| bin/reviewdog -f=go-consistent -reporter=github-pr-review -fail-on-error=true" REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.ROBOT_TOKEN || secrets.GITHUB_TOKEN }} run: | if out=$( ${{ env.COMMAND }} ); exit_code=$?; [ $exit_code -ne 0 ]; then @@ -101,7 +100,7 @@ jobs: echo "$out" exit $exit_code else - echo "$out" ${{ env.REDIRECT }} + echo "$out" | bin/reviewdog -f=go-consistent -reporter=github-pr-review -fail-on-error=true fi else echo "$out" @@ -113,10 +112,8 @@ jobs: - name: Run debug commands on failure if: ${{ failure() }} run: | - env - go version - go env - pwd + env | sort + go env | sort git status merge-gatekeeper: diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index b3d620f9cb..3dd3da85b5 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -22,82 +22,56 @@ on: jobs: test: - name: Tests + name: Managed tests runs-on: ubuntu-22.04 timeout-minutes: 30 + permissions: + packages: write env: PMM_SERVER_IMAGE: perconalab/pmm-server:3-dev-latest + PMM_CACHE_IMAGE: ghcr.io/percona/pmm:dev-cache AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }} AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }} PMM_DEV_OAUTH_CLIENT_ID: ${{ secrets.OAUTH_PMM_CLIENT_ID }} PMM_DEV_OAUTH_CLIENT_SECRET: ${{ secrets.OAUTH_PMM_CLIENT_SECRET }} - DEVCONTAINER_CACHE_ENABLED: false + BUILD_CACHE: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'v3' }} # change to `main` once v3 goes GA steps: - name: Check out code uses: actions/checkout@v4 - - name: Enable Go build cache - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} - uses: actions/cache@v4 - with: - path: ~/.cache/go-build - key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }} - restore-keys: | - ${{ runner.os }}-go-build-${{ github.ref }}- - ${{ runner.os }}-go-build- - - - name: Enable Go modules cache - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} - uses: actions/cache@v4 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }} - restore-keys: ${{ runner.os }}-go-modules- - - - name: Download tools - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} - run: | - pushd tools && go mod download -x - popd && go mod download -x - - name: Launch PMM Server (see docker-compose.yml) run: | - # Note: launching the container with --wait fails for an unknown reason. - # A temporary workaround is to run it manually. To be reverted once the issue is resolved. - # make env-compose-up # the container workdir is /root/go/src/github.com/percona/pmm - docker compose --profile pmm up -d - sleep 100s + make env-compose-up # the container workdir is /root/go/src/github.com/percona/pmm docker logs pmm-server - - name: Restore Go build cache - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} - continue-on-error: true - run: docker cp ~/.cache/go-build pmm-server:/root/.cache/go-build - - - name: Restore Go modules cache - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} - continue-on-error: true - run: docker cp ~/go/pkg/mod pmm-server:/root/go/pkg/mod - name: Mark the root directory of pmm as safe run: docker exec -i pmm-server git config --global --add safe.directory /root/go/src/github.com/percona/pmm - - name: Update binaries + - name: Pull the cache image and inject cache to PMM Server + continue-on-error: true run: | - docker exec -i pmm-server make run-managed-ci run-agent run-vmproxy + if docker pull --platform linux/amd64 ${{ env.PMM_CACHE_IMAGE }}; then + docker run --rm --volumes-from pmm-server ${{ env.PMM_CACHE_IMAGE }} sh -c "cp -rf /mod-cache/* /root/go/pkg/mod; cp -rf /build-cache/* /root/.cache/go-build" + docker exec -t pmm-server du -sh /root/.cache/go-build + docker exec -t pmm-server du -sh /root/go/pkg/mod + fi + + - name: Remove the cache image + continue-on-error: true + run: docker image rm ${{ env.PMM_CACHE_IMAGE }} + + - name: Rebuild the binaries + run: docker exec -i pmm-server make run-managed-ci run-agent run-vmproxy run-qan - name: Check the status of components - run: docker exec -t pmm-server supervisorctl status || true + continue-on-error: true + run: docker exec -t pmm-server supervisorctl status - name: Run tests run: docker exec -i pmm-server make -C managed test-cover - - name: Run PMM server update test - run: | - echo "PMM Server update test will be refactored once we have a new update mechanism." - # docker exec -i pmm-server make -C managed test-update - - name: Upload coverage results uses: codecov/codecov-action@v4 with: @@ -107,18 +81,47 @@ jobs: fail_ci_if_error: false token: ${{ secrets.CODECOV_TOKEN }} - - name: Cache - if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} + - name: Run PMM Server update test + run: | + echo "PMM Server update test will be refactored once we have a new update mechanism." + # docker exec -i pmm-server make -C managed test-update + + - name: Save PMM Go module and build cache as an image + if: ${{ fromJSON(env.BUILD_CACHE) }} run: | - docker exec pmm-server go clean -testcache - docker exec pmm-server find ./managed -type d -name fuzzdata -exec rm -r {} + - rm -fr ~/.cache/go-build - mkdir -p ~/.cache - docker cp pmm-server:/root/.cache/go-build ~/.cache/go-build - - - name: Run debug commands on failure - if: ${{ failure() }} + df -h | grep -A 1 Filesystem + # We need to free up some space, see more https://github.com/actions/runner-images/issues/2840 + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf /usr/local/share/boost + df -h | grep -A 1 Filesystem + docker run --name pmm-cache --volumes-from pmm-server busybox sh -c "mkdir /mod-cache /build-cache; cp -r /root/go/pkg/mod/* /mod-cache; cp -r /root/.cache/go-build/* /build-cache" + docker commit pmm-cache ${{ env.PMM_CACHE_IMAGE }} + docker rm -v pmm-cache + + - name: Login to ghcr.io registry + if: ${{ fromJSON(env.BUILD_CACHE) }} + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push the image to ghcr.io + if: ${{ fromJSON(env.BUILD_CACHE) }} + run: docker push ${{ env.PMM_CACHE_IMAGE }} + + - name: Run debug commands + if: ${{ always() }} run: | env | sort go env | sort git status + docker exec pmm-server env | sort + docker exec pmm-server go env | sort + docker exec pmm-server supervisorctl status || true + services=$(docker exec pmm-server supervisorctl status | awk '{print $1}') + while IFS= read -r service; do + echo "Logs for $service:" + docker exec pmm-server supervisorctl tail $service + done <<< "$services" \ No newline at end of file diff --git a/Makefile b/Makefile index 56c874f910..e0f76fb515 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ endif env-up: ## Start devcontainer COMPOSE_PROFILES=$(PROFILES) \ - docker compose up -d + docker compose up -d --wait --wait-timeout 100 env-up-rebuild: env-update-image ## Rebuild and start devcontainer. Useful for custom $PMM_SERVER_IMAGE COMPOSE_PROFILES=$(PROFILES) \ diff --git a/Makefile.devcontainer b/Makefile.devcontainer index 98a68d82cb..ff73f16726 100644 --- a/Makefile.devcontainer +++ b/Makefile.devcontainer @@ -11,6 +11,9 @@ release-dev-agent: ## Build pmm-agent release-vmproxy: ## Build vmproxy make -C vmproxy release +release-qan: ## Build QAN + make -C qan-api2 release + # used by host Makefile _bash: /bin/bash @@ -38,6 +41,12 @@ run-vmproxy: release-vmproxy cp $(PMM_RELEASE_PATH)/vmproxy /usr/sbin/vmproxy supervisorctl start vmproxy +run-qan: release-qan + supervisorctl stop qan-api2 + cp $(PMM_RELEASE_PATH)/qan-api2 /usr/sbin/percona-qan-api2 + echo -n > /srv/logs/qan-api2.log + supervisorctl start qan-api2 + run-all: run-agent run-managed ## Run pmm-managed and pmm-agent run: ## Deprecated diff --git a/agent/agents/postgres/parser/parser.go b/agent/agents/postgres/parser/parser.go index f57d0918cc..e56c4b357f 100644 --- a/agent/agents/postgres/parser/parser.go +++ b/agent/agents/postgres/parser/parser.go @@ -21,7 +21,7 @@ import ( "sort" "strings" - pgquery "github.com/pganalyze/pg_query_go/v2" + pgquery "github.com/pganalyze/pg_query_go/v5" "github.com/pkg/errors" ) diff --git a/agent/agents/postgres/parser/testdata/query019.json b/agent/agents/postgres/parser/testdata/query019.json index 2289861c43..681aa76248 100644 --- a/agent/agents/postgres/parser/testdata/query019.json +++ b/agent/agents/postgres/parser/testdata/query019.json @@ -1,3 +1,8 @@ { - "error": "error on parsing sql query: subquery in FROM must have an alias" + "tables": [ + "credit_card_wo_complaints", + "without_complaints" + ], + "error": "" } + diff --git a/agent/agents/postgres/pgstatmonitor/stat_monitor_cache.go b/agent/agents/postgres/pgstatmonitor/stat_monitor_cache.go index 0744b1b18d..28635a135c 100644 --- a/agent/agents/postgres/pgstatmonitor/stat_monitor_cache.go +++ b/agent/agents/postgres/pgstatmonitor/stat_monitor_cache.go @@ -21,7 +21,7 @@ import ( "time" "github.com/AlekSi/pointer" - pgquery "github.com/pganalyze/pg_query_go/v2" + pgquery "github.com/pganalyze/pg_query_go/v5" "github.com/pkg/errors" "github.com/sirupsen/logrus" "gopkg.in/reform.v1" diff --git a/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go b/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go index 36b0740417..d66cec2d9d 100644 --- a/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go +++ b/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go @@ -398,10 +398,12 @@ func TestPGStatStatementsQAN(t *testing.T) { require.Len(t, buckets, 1) var fingerprint string + tables := []string{tableName} + switch engineVersion { case "9.4", "9.5", "9.6": fingerprint = fmt.Sprintf(`INSERT /* CheckMBlkReadTime controller='test' */ INTO %s (customer_id, first_name, last_name, active) VALUES (?, ?, ?, ?)`, tableName) - + tables = []string{} default: fingerprint = fmt.Sprintf(`INSERT /* CheckMBlkReadTime controller='test' */ INTO %s (customer_id, first_name, last_name, active) VALUES ($1, $2, $3, $4)`, tableName) } @@ -412,7 +414,7 @@ func TestPGStatStatementsQAN(t *testing.T) { Queryid: actual.Common.Queryid, Fingerprint: fingerprint, Database: "pmm-agent", - Tables: []string{tableName}, + Tables: tables, Comments: map[string]string{"controller": "test"}, Username: "pmm-agent", AgentId: "agent_id", diff --git a/api-tests/helpers.go b/api-tests/helpers.go index 89709075c2..2b6551d7a6 100644 --- a/api-tests/helpers.go +++ b/api-tests/helpers.go @@ -145,6 +145,7 @@ func UnregisterNodes(t TestingT, nodeIDs ...string) { params := &node.UnregisterNodeParams{ Body: node.UnregisterNodeBody{ NodeID: nodeID, + Force: true, }, Context: context.Background(), } diff --git a/api-tests/management/nodes_test.go b/api-tests/management/nodes_test.go index e9d53c799a..b0a8fe190b 100644 --- a/api-tests/management/nodes_test.go +++ b/api-tests/management/nodes_test.go @@ -150,7 +150,6 @@ func TestNodeRegister(t *testing.T) { }) assert.NotEmpty(t, nodeID) assert.NotEmpty(t, pmmAgentID) - pmmapitests.UnregisterNodes(t, nodeID) body := node.RegisterNodeBody{ NodeName: nodeName + "_new", diff --git a/api-tests/server/updates_test.go b/api-tests/server/updates_test.go index f4b8c68336..4285182f17 100644 --- a/api-tests/server/updates_test.go +++ b/api-tests/server/updates_test.go @@ -67,7 +67,6 @@ func TestCheckUpdates(t *testing.T) { require.NotEmpty(t, res.Payload.Latest) assert.True(t, strings.HasPrefix(res.Payload.Latest.Version, "2."), "latest.version = %q should have '2.' prefix", res.Payload.Latest.Version) - assert.NotEmpty(t, res.Payload.Latest.FullVersion) require.NotEmpty(t, res.Payload.Latest.Timestamp) ts = time.Time(res.Payload.Latest.Timestamp) hour, min, _ = ts.Clock() @@ -75,12 +74,13 @@ func TestCheckUpdates(t *testing.T) { assert.Zero(t, min, "latest.timestamp should contain only date") if res.Payload.UpdateAvailable { - assert.NotEqual(t, res.Payload.Installed.FullVersion, res.Payload.Latest.FullVersion) + assert.NotEmpty(t, res.Payload.Latest.Tag) + assert.NotEqual(t, res.Payload.Installed.FullVersion, res.Payload.Latest.Version) assert.NotEqual(t, res.Payload.Installed.Timestamp, res.Payload.Latest.Timestamp) assert.True(t, strings.HasPrefix(res.Payload.LatestNewsURL, "https://per.co.na/pmm/2."), "latest_news_url = %q", res.Payload.LatestNewsURL) } else { - assert.Equal(t, res.Payload.Installed.FullVersion, res.Payload.Latest.FullVersion) assert.Equal(t, res.Payload.Installed.Timestamp, res.Payload.Latest.Timestamp) + assert.Empty(t, res.Payload.Installed.FullVersion, res.Payload.Latest.Version) assert.Empty(t, res.Payload.LatestNewsURL, "latest_news_url should be empty") } assert.NotEmpty(t, res.Payload.LastCheck) @@ -108,7 +108,7 @@ func TestCheckUpdates(t *testing.T) { require.NoError(t, err) assert.Equal(t, res.Payload.Installed, resForce.Payload.Installed) - assert.Equal(t, resForce.Payload.Installed.FullVersion != resForce.Payload.Latest.FullVersion, resForce.Payload.UpdateAvailable) + assert.Equal(t, resForce.Payload.Latest.Tag != "", resForce.Payload.UpdateAvailable) assert.NotEqual(t, res.Payload.LastCheck, resForce.Payload.LastCheck) }) } diff --git a/api/agentlocalpb/agentlocal.pb.go b/api/agentlocalpb/agentlocal.pb.go index 3eca3b9440..176067addd 100644 --- a/api/agentlocalpb/agentlocal.pb.go +++ b/api/agentlocalpb/agentlocal.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: agentlocalpb/agentlocal.proto @@ -541,7 +541,7 @@ func file_agentlocalpb_agentlocal_proto_rawDescGZIP() []byte { var ( file_agentlocalpb_agentlocal_proto_msgTypes = make([]protoimpl.MessageInfo, 6) - file_agentlocalpb_agentlocal_proto_goTypes = []interface{}{ + file_agentlocalpb_agentlocal_proto_goTypes = []any{ (*ServerInfo)(nil), // 0: agentlocal.ServerInfo (*AgentInfo)(nil), // 1: agentlocal.AgentInfo (*StatusRequest)(nil), // 2: agentlocal.StatusRequest @@ -578,7 +578,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_agentlocalpb_agentlocal_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ServerInfo); i { case 0: return &v.state @@ -590,7 +590,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return nil } } - file_agentlocalpb_agentlocal_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AgentInfo); i { case 0: return &v.state @@ -602,7 +602,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return nil } } - file_agentlocalpb_agentlocal_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*StatusRequest); i { case 0: return &v.state @@ -614,7 +614,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return nil } } - file_agentlocalpb_agentlocal_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*StatusResponse); i { case 0: return &v.state @@ -626,7 +626,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return nil } } - file_agentlocalpb_agentlocal_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ReloadRequest); i { case 0: return &v.state @@ -638,7 +638,7 @@ func file_agentlocalpb_agentlocal_proto_init() { return nil } } - file_agentlocalpb_agentlocal_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_agentlocalpb_agentlocal_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ReloadResponse); i { case 0: return &v.state diff --git a/api/agentpb/agent.pb.go b/api/agentpb/agent.pb.go index d34c23eb5a..26d2f8421f 100644 --- a/api/agentpb/agent.pb.go +++ b/api/agentpb/agent.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: agentpb/agent.proto @@ -7810,7 +7810,7 @@ func file_agentpb_agent_proto_rawDescGZIP() []byte { var ( file_agentpb_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_agentpb_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 91) - file_agentpb_agent_proto_goTypes = []interface{}{ + file_agentpb_agent_proto_goTypes = []any{ (MysqlExplainOutputFormat)(0), // 0: agent.MysqlExplainOutputFormat (StartActionRequest_RestartSystemServiceParams_SystemService)(0), // 1: agent.StartActionRequest.RestartSystemServiceParams.SystemService (*TextFiles)(nil), // 2: agent.TextFiles @@ -8075,7 +8075,7 @@ func file_agentpb_agent_proto_init() { } file_agentpb_collector_proto_init() if !protoimpl.UnsafeEnabled { - file_agentpb_agent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*TextFiles); i { case 0: return &v.state @@ -8087,7 +8087,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*Ping); i { case 0: return &v.state @@ -8099,7 +8099,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*Pong); i { case 0: return &v.state @@ -8111,7 +8111,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*QANCollectRequest); i { case 0: return &v.state @@ -8123,7 +8123,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*QANCollectResponse); i { case 0: return &v.state @@ -8135,7 +8135,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*StateChangedRequest); i { case 0: return &v.state @@ -8147,7 +8147,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*StateChangedResponse); i { case 0: return &v.state @@ -8159,7 +8159,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*SetStateRequest); i { case 0: return &v.state @@ -8171,7 +8171,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*SetStateResponse); i { case 0: return &v.state @@ -8183,7 +8183,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*QueryActionValue); i { case 0: return &v.state @@ -8195,7 +8195,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*QueryActionSlice); i { case 0: return &v.state @@ -8207,7 +8207,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*QueryActionMap); i { case 0: return &v.state @@ -8219,7 +8219,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*QueryActionBinary); i { case 0: return &v.state @@ -8231,7 +8231,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*QueryActionResult); i { case 0: return &v.state @@ -8243,7 +8243,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest); i { case 0: return &v.state @@ -8255,7 +8255,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*StartActionResponse); i { case 0: return &v.state @@ -8267,7 +8267,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*StopActionRequest); i { case 0: return &v.state @@ -8279,7 +8279,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*StopActionResponse); i { case 0: return &v.state @@ -8291,7 +8291,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*ActionResultRequest); i { case 0: return &v.state @@ -8303,7 +8303,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*ActionResultResponse); i { case 0: return &v.state @@ -8315,7 +8315,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*PBMSwitchPITRRequest); i { case 0: return &v.state @@ -8327,7 +8327,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*PBMSwitchPITRResponse); i { case 0: return &v.state @@ -8339,7 +8339,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*AgentLogsRequest); i { case 0: return &v.state @@ -8351,7 +8351,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*AgentLogsResponse); i { case 0: return &v.state @@ -8363,7 +8363,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*CheckConnectionRequest); i { case 0: return &v.state @@ -8375,7 +8375,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*CheckConnectionResponse); i { case 0: return &v.state @@ -8387,7 +8387,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*ServiceInfoRequest); i { case 0: return &v.state @@ -8399,7 +8399,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*ServiceInfoResponse); i { case 0: return &v.state @@ -8411,7 +8411,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*JobStatusRequest); i { case 0: return &v.state @@ -8423,7 +8423,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*JobStatusResponse); i { case 0: return &v.state @@ -8435,7 +8435,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[30].Exporter = func(v any, i int) any { switch v := v.(*S3LocationConfig); i { case 0: return &v.state @@ -8447,7 +8447,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[31].Exporter = func(v any, i int) any { switch v := v.(*FilesystemLocationConfig); i { case 0: return &v.state @@ -8459,7 +8459,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[32].Exporter = func(v any, i int) any { switch v := v.(*StartJobRequest); i { case 0: return &v.state @@ -8471,7 +8471,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[33].Exporter = func(v any, i int) any { switch v := v.(*StartJobResponse); i { case 0: return &v.state @@ -8483,7 +8483,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[34].Exporter = func(v any, i int) any { switch v := v.(*StopJobRequest); i { case 0: return &v.state @@ -8495,7 +8495,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[35].Exporter = func(v any, i int) any { switch v := v.(*StopJobResponse); i { case 0: return &v.state @@ -8507,7 +8507,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[36].Exporter = func(v any, i int) any { switch v := v.(*JobResult); i { case 0: return &v.state @@ -8519,7 +8519,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[37].Exporter = func(v any, i int) any { switch v := v.(*JobProgress); i { case 0: return &v.state @@ -8531,7 +8531,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[38].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest); i { case 0: return &v.state @@ -8543,7 +8543,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[39].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsResponse); i { case 0: return &v.state @@ -8555,7 +8555,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[40].Exporter = func(v any, i int) any { switch v := v.(*AgentMessage); i { case 0: return &v.state @@ -8567,7 +8567,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[41].Exporter = func(v any, i int) any { switch v := v.(*ServerMessage); i { case 0: return &v.state @@ -8579,7 +8579,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[43].Exporter = func(v any, i int) any { switch v := v.(*SetStateRequest_AgentProcess); i { case 0: return &v.state @@ -8591,7 +8591,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[45].Exporter = func(v any, i int) any { switch v := v.(*SetStateRequest_BuiltinAgent); i { case 0: return &v.state @@ -8603,7 +8603,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[49].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLExplainParams); i { case 0: return &v.state @@ -8615,7 +8615,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[50].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLShowCreateTableParams); i { case 0: return &v.state @@ -8627,7 +8627,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[51].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLShowTableStatusParams); i { case 0: return &v.state @@ -8639,7 +8639,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[52].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLShowIndexParams); i { case 0: return &v.state @@ -8651,7 +8651,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[53].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PostgreSQLShowCreateTableParams); i { case 0: return &v.state @@ -8663,7 +8663,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[54].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PostgreSQLShowIndexParams); i { case 0: return &v.state @@ -8675,7 +8675,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[55].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBExplainParams); i { case 0: return &v.state @@ -8687,7 +8687,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[56].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PTSummaryParams); i { case 0: return &v.state @@ -8699,7 +8699,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[57].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PTPgSummaryParams); i { case 0: return &v.state @@ -8711,7 +8711,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[58].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PTMongoDBSummaryParams); i { case 0: return &v.state @@ -8723,7 +8723,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[59].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PTMySQLSummaryParams); i { case 0: return &v.state @@ -8735,7 +8735,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[60].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLQueryShowParams); i { case 0: return &v.state @@ -8747,7 +8747,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[61].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MySQLQuerySelectParams); i { case 0: return &v.state @@ -8759,7 +8759,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[62].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PostgreSQLQueryShowParams); i { case 0: return &v.state @@ -8771,7 +8771,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[63].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_PostgreSQLQuerySelectParams); i { case 0: return &v.state @@ -8783,7 +8783,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[64].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBQueryGetParameterParams); i { case 0: return &v.state @@ -8795,7 +8795,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[65].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBQueryBuildInfoParams); i { case 0: return &v.state @@ -8807,7 +8807,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[66].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBQueryGetCmdLineOptsParams); i { case 0: return &v.state @@ -8819,7 +8819,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[67].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBQueryReplSetGetStatusParams); i { case 0: return &v.state @@ -8831,7 +8831,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[68].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_MongoDBQueryGetDiagnosticDataParams); i { case 0: return &v.state @@ -8843,7 +8843,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[69].Exporter = func(v any, i int) any { switch v := v.(*StartActionRequest_RestartSystemServiceParams); i { case 0: return &v.state @@ -8855,7 +8855,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[70].Exporter = func(v any, i int) any { switch v := v.(*CheckConnectionResponse_Stats); i { case 0: return &v.state @@ -8867,7 +8867,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[71].Exporter = func(v any, i int) any { switch v := v.(*StartJobRequest_MySQLBackup); i { case 0: return &v.state @@ -8879,7 +8879,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[72].Exporter = func(v any, i int) any { switch v := v.(*StartJobRequest_MySQLRestoreBackup); i { case 0: return &v.state @@ -8891,7 +8891,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[73].Exporter = func(v any, i int) any { switch v := v.(*StartJobRequest_MongoDBBackup); i { case 0: return &v.state @@ -8903,7 +8903,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[74].Exporter = func(v any, i int) any { switch v := v.(*StartJobRequest_MongoDBRestoreBackup); i { case 0: return &v.state @@ -8915,7 +8915,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[75].Exporter = func(v any, i int) any { switch v := v.(*JobResult_Error); i { case 0: return &v.state @@ -8927,7 +8927,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[76].Exporter = func(v any, i int) any { switch v := v.(*JobResult_MongoDBBackup); i { case 0: return &v.state @@ -8939,7 +8939,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[77].Exporter = func(v any, i int) any { switch v := v.(*JobResult_MySQLBackup); i { case 0: return &v.state @@ -8951,7 +8951,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[78].Exporter = func(v any, i int) any { switch v := v.(*JobResult_MySQLRestoreBackup); i { case 0: return &v.state @@ -8963,7 +8963,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[79].Exporter = func(v any, i int) any { switch v := v.(*JobResult_MongoDBRestoreBackup); i { case 0: return &v.state @@ -8975,7 +8975,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[80].Exporter = func(v any, i int) any { switch v := v.(*JobProgress_MySQLBackup); i { case 0: return &v.state @@ -8987,7 +8987,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[81].Exporter = func(v any, i int) any { switch v := v.(*JobProgress_MySQLRestoreBackup); i { case 0: return &v.state @@ -8999,7 +8999,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[82].Exporter = func(v any, i int) any { switch v := v.(*JobProgress_Logs); i { case 0: return &v.state @@ -9011,7 +9011,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[83].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_MySQLd); i { case 0: return &v.state @@ -9023,7 +9023,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[84].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_Xtrabackup); i { case 0: return &v.state @@ -9035,7 +9035,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[85].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_Xbcloud); i { case 0: return &v.state @@ -9047,7 +9047,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[86].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_Qpress); i { case 0: return &v.state @@ -9059,7 +9059,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[87].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_MongoDB); i { case 0: return &v.state @@ -9071,7 +9071,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[88].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_PBM); i { case 0: return &v.state @@ -9083,7 +9083,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[89].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsRequest_Software); i { case 0: return &v.state @@ -9095,7 +9095,7 @@ func file_agentpb_agent_proto_init() { return nil } } - file_agentpb_agent_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_agent_proto_msgTypes[90].Exporter = func(v any, i int) any { switch v := v.(*GetVersionsResponse_Version); i { case 0: return &v.state @@ -9108,7 +9108,7 @@ func file_agentpb_agent_proto_init() { } } } - file_agentpb_agent_proto_msgTypes[9].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[9].OneofWrappers = []any{ (*QueryActionValue_Nil)(nil), (*QueryActionValue_Bool)(nil), (*QueryActionValue_Int64)(nil), @@ -9120,7 +9120,7 @@ func file_agentpb_agent_proto_init() { (*QueryActionValue_Map)(nil), (*QueryActionValue_Binary)(nil), } - file_agentpb_agent_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[14].OneofWrappers = []any{ (*StartActionRequest_MysqlExplainParams)(nil), (*StartActionRequest_MysqlShowCreateTableParams)(nil), (*StartActionRequest_MysqlShowTableStatusParams)(nil), @@ -9143,26 +9143,26 @@ func file_agentpb_agent_proto_init() { (*StartActionRequest_MongodbQueryGetdiagnosticdataParams)(nil), (*StartActionRequest_RestartSysServiceParams)(nil), } - file_agentpb_agent_proto_msgTypes[27].OneofWrappers = []interface{}{} - file_agentpb_agent_proto_msgTypes[32].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[27].OneofWrappers = []any{} + file_agentpb_agent_proto_msgTypes[32].OneofWrappers = []any{ (*StartJobRequest_MysqlBackup)(nil), (*StartJobRequest_MysqlRestoreBackup)(nil), (*StartJobRequest_MongodbBackup)(nil), (*StartJobRequest_MongodbRestoreBackup)(nil), } - file_agentpb_agent_proto_msgTypes[36].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[36].OneofWrappers = []any{ (*JobResult_Error_)(nil), (*JobResult_MysqlBackup)(nil), (*JobResult_MysqlRestoreBackup)(nil), (*JobResult_MongodbBackup)(nil), (*JobResult_MongodbRestoreBackup)(nil), } - file_agentpb_agent_proto_msgTypes[37].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[37].OneofWrappers = []any{ (*JobProgress_MysqlBackup)(nil), (*JobProgress_MysqlRestoreBackup)(nil), (*JobProgress_Logs_)(nil), } - file_agentpb_agent_proto_msgTypes[40].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[40].OneofWrappers = []any{ (*AgentMessage_Ping)(nil), (*AgentMessage_StateChanged)(nil), (*AgentMessage_QanCollect)(nil), @@ -9182,7 +9182,7 @@ func file_agentpb_agent_proto_init() { (*AgentMessage_AgentLogs)(nil), (*AgentMessage_ServiceInfo)(nil), } - file_agentpb_agent_proto_msgTypes[41].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[41].OneofWrappers = []any{ (*ServerMessage_Pong)(nil), (*ServerMessage_StateChanged)(nil), (*ServerMessage_QanCollect)(nil), @@ -9200,21 +9200,21 @@ func file_agentpb_agent_proto_init() { (*ServerMessage_AgentLogs)(nil), (*ServerMessage_ServiceInfo)(nil), } - file_agentpb_agent_proto_msgTypes[71].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[71].OneofWrappers = []any{ (*StartJobRequest_MySQLBackup_S3Config)(nil), } - file_agentpb_agent_proto_msgTypes[72].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[72].OneofWrappers = []any{ (*StartJobRequest_MySQLRestoreBackup_S3Config)(nil), } - file_agentpb_agent_proto_msgTypes[73].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[73].OneofWrappers = []any{ (*StartJobRequest_MongoDBBackup_S3Config)(nil), (*StartJobRequest_MongoDBBackup_FilesystemConfig)(nil), } - file_agentpb_agent_proto_msgTypes[74].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[74].OneofWrappers = []any{ (*StartJobRequest_MongoDBRestoreBackup_S3Config)(nil), (*StartJobRequest_MongoDBRestoreBackup_FilesystemConfig)(nil), } - file_agentpb_agent_proto_msgTypes[89].OneofWrappers = []interface{}{ + file_agentpb_agent_proto_msgTypes[89].OneofWrappers = []any{ (*GetVersionsRequest_Software_Mysqld)(nil), (*GetVersionsRequest_Software_Xtrabackup)(nil), (*GetVersionsRequest_Software_Xbcloud)(nil), diff --git a/api/agentpb/collector.pb.go b/api/agentpb/collector.pb.go index 1c31e346a0..8a59648c83 100644 --- a/api/agentpb/collector.pb.go +++ b/api/agentpb/collector.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: agentpb/collector.proto @@ -2837,7 +2837,7 @@ func file_agentpb_collector_proto_rawDescGZIP() []byte { var ( file_agentpb_collector_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_agentpb_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 8) - file_agentpb_collector_proto_goTypes = []interface{}{ + file_agentpb_collector_proto_goTypes = []any{ (ExampleFormat)(0), // 0: agent.ExampleFormat (ExampleType)(0), // 1: agent.ExampleType (*MetricsBucket)(nil), // 2: agent.MetricsBucket @@ -2876,7 +2876,7 @@ func file_agentpb_collector_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_agentpb_collector_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket); i { case 0: return &v.state @@ -2888,7 +2888,7 @@ func file_agentpb_collector_proto_init() { return nil } } - file_agentpb_collector_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*HistogramItem); i { case 0: return &v.state @@ -2900,7 +2900,7 @@ func file_agentpb_collector_proto_init() { return nil } } - file_agentpb_collector_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket_Common); i { case 0: return &v.state @@ -2912,7 +2912,7 @@ func file_agentpb_collector_proto_init() { return nil } } - file_agentpb_collector_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket_MySQL); i { case 0: return &v.state @@ -2924,7 +2924,7 @@ func file_agentpb_collector_proto_init() { return nil } } - file_agentpb_collector_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket_MongoDB); i { case 0: return &v.state @@ -2936,7 +2936,7 @@ func file_agentpb_collector_proto_init() { return nil } } - file_agentpb_collector_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_agentpb_collector_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket_PostgreSQL); i { case 0: return &v.state diff --git a/api/common/metrics_resolutions.pb.go b/api/common/metrics_resolutions.pb.go index a17152bf1e..21bba35401 100644 --- a/api/common/metrics_resolutions.pb.go +++ b/api/common/metrics_resolutions.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: common/metrics_resolutions.proto @@ -131,7 +131,7 @@ func file_common_metrics_resolutions_proto_rawDescGZIP() []byte { var ( file_common_metrics_resolutions_proto_msgTypes = make([]protoimpl.MessageInfo, 1) - file_common_metrics_resolutions_proto_goTypes = []interface{}{ + file_common_metrics_resolutions_proto_goTypes = []any{ (*MetricsResolutions)(nil), // 0: common.MetricsResolutions (*durationpb.Duration)(nil), // 1: google.protobuf.Duration } @@ -154,7 +154,7 @@ func file_common_metrics_resolutions_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_common_metrics_resolutions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_common_metrics_resolutions_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*MetricsResolutions); i { case 0: return &v.state diff --git a/api/inventorypb/agent_status.pb.go b/api/inventorypb/agent_status.pb.go index e6e67d8587..85e1bc7bd9 100644 --- a/api/inventorypb/agent_status.pb.go +++ b/api/inventorypb/agent_status.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: inventorypb/agent_status.proto @@ -128,7 +128,7 @@ func file_inventorypb_agent_status_proto_rawDescGZIP() []byte { var ( file_inventorypb_agent_status_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventorypb_agent_status_proto_goTypes = []interface{}{ + file_inventorypb_agent_status_proto_goTypes = []any{ (AgentStatus)(0), // 0: inventory.AgentStatus } ) diff --git a/api/inventorypb/agents.pb.go b/api/inventorypb/agents.pb.go index 301d6f469f..d0b141e01c 100644 --- a/api/inventorypb/agents.pb.go +++ b/api/inventorypb/agents.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: inventorypb/agents.proto @@ -9932,7 +9932,7 @@ func file_inventorypb_agents_proto_rawDescGZIP() []byte { var ( file_inventorypb_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_inventorypb_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 107) - file_inventorypb_agents_proto_goTypes = []interface{}{ + file_inventorypb_agents_proto_goTypes = []any{ (AgentType)(0), // 0: inventory.AgentType (*PMMAgent)(nil), // 1: inventory.PMMAgent (*VMAgent)(nil), // 2: inventory.VMAgent @@ -10271,7 +10271,7 @@ func file_inventorypb_agents_proto_init() { file_inventorypb_agent_status_proto_init() file_inventorypb_log_level_proto_init() if !protoimpl.UnsafeEnabled { - file_inventorypb_agents_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*PMMAgent); i { case 0: return &v.state @@ -10283,7 +10283,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*VMAgent); i { case 0: return &v.state @@ -10295,7 +10295,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*NodeExporter); i { case 0: return &v.state @@ -10307,7 +10307,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*MySQLdExporter); i { case 0: return &v.state @@ -10319,7 +10319,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*MongoDBExporter); i { case 0: return &v.state @@ -10331,7 +10331,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*PostgresExporter); i { case 0: return &v.state @@ -10343,7 +10343,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ProxySQLExporter); i { case 0: return &v.state @@ -10355,7 +10355,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*QANMySQLPerfSchemaAgent); i { case 0: return &v.state @@ -10367,7 +10367,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*QANMySQLSlowlogAgent); i { case 0: return &v.state @@ -10379,7 +10379,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*QANMongoDBProfilerAgent); i { case 0: return &v.state @@ -10391,7 +10391,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*QANPostgreSQLPgStatementsAgent); i { case 0: return &v.state @@ -10403,7 +10403,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*QANPostgreSQLPgStatMonitorAgent); i { case 0: return &v.state @@ -10415,7 +10415,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*RDSExporter); i { case 0: return &v.state @@ -10427,7 +10427,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*ExternalExporter); i { case 0: return &v.state @@ -10439,7 +10439,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*AzureDatabaseExporter); i { case 0: return &v.state @@ -10451,7 +10451,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*ChangeCommonAgentParams); i { case 0: return &v.state @@ -10463,7 +10463,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*ListAgentsRequest); i { case 0: return &v.state @@ -10475,7 +10475,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*ListAgentsResponse); i { case 0: return &v.state @@ -10487,7 +10487,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*GetAgentRequest); i { case 0: return &v.state @@ -10499,7 +10499,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*GetAgentResponse); i { case 0: return &v.state @@ -10511,7 +10511,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*GetAgentLogsRequest); i { case 0: return &v.state @@ -10523,7 +10523,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*GetAgentLogsResponse); i { case 0: return &v.state @@ -10535,7 +10535,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*AddPMMAgentRequest); i { case 0: return &v.state @@ -10547,7 +10547,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*AddPMMAgentResponse); i { case 0: return &v.state @@ -10559,7 +10559,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*AddNodeExporterRequest); i { case 0: return &v.state @@ -10571,7 +10571,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*AddNodeExporterResponse); i { case 0: return &v.state @@ -10583,7 +10583,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*ChangeNodeExporterRequest); i { case 0: return &v.state @@ -10595,7 +10595,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*ChangeNodeExporterResponse); i { case 0: return &v.state @@ -10607,7 +10607,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLdExporterRequest); i { case 0: return &v.state @@ -10619,7 +10619,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLdExporterResponse); i { case 0: return &v.state @@ -10631,7 +10631,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[30].Exporter = func(v any, i int) any { switch v := v.(*ChangeMySQLdExporterRequest); i { case 0: return &v.state @@ -10643,7 +10643,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[31].Exporter = func(v any, i int) any { switch v := v.(*ChangeMySQLdExporterResponse); i { case 0: return &v.state @@ -10655,7 +10655,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[32].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBExporterRequest); i { case 0: return &v.state @@ -10667,7 +10667,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[33].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBExporterResponse); i { case 0: return &v.state @@ -10679,7 +10679,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[34].Exporter = func(v any, i int) any { switch v := v.(*ChangeMongoDBExporterRequest); i { case 0: return &v.state @@ -10691,7 +10691,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[35].Exporter = func(v any, i int) any { switch v := v.(*ChangeMongoDBExporterResponse); i { case 0: return &v.state @@ -10703,7 +10703,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[36].Exporter = func(v any, i int) any { switch v := v.(*AddPostgresExporterRequest); i { case 0: return &v.state @@ -10715,7 +10715,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[37].Exporter = func(v any, i int) any { switch v := v.(*AddPostgresExporterResponse); i { case 0: return &v.state @@ -10727,7 +10727,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[38].Exporter = func(v any, i int) any { switch v := v.(*ChangePostgresExporterRequest); i { case 0: return &v.state @@ -10739,7 +10739,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[39].Exporter = func(v any, i int) any { switch v := v.(*ChangePostgresExporterResponse); i { case 0: return &v.state @@ -10751,7 +10751,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[40].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLExporterRequest); i { case 0: return &v.state @@ -10763,7 +10763,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[41].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLExporterResponse); i { case 0: return &v.state @@ -10775,7 +10775,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[42].Exporter = func(v any, i int) any { switch v := v.(*ChangeProxySQLExporterRequest); i { case 0: return &v.state @@ -10787,7 +10787,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[43].Exporter = func(v any, i int) any { switch v := v.(*ChangeProxySQLExporterResponse); i { case 0: return &v.state @@ -10799,7 +10799,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[44].Exporter = func(v any, i int) any { switch v := v.(*AddQANMySQLPerfSchemaAgentRequest); i { case 0: return &v.state @@ -10811,7 +10811,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[45].Exporter = func(v any, i int) any { switch v := v.(*AddQANMySQLPerfSchemaAgentResponse); i { case 0: return &v.state @@ -10823,7 +10823,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[46].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMySQLPerfSchemaAgentRequest); i { case 0: return &v.state @@ -10835,7 +10835,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[47].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMySQLPerfSchemaAgentResponse); i { case 0: return &v.state @@ -10847,7 +10847,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[48].Exporter = func(v any, i int) any { switch v := v.(*AddQANMySQLSlowlogAgentRequest); i { case 0: return &v.state @@ -10859,7 +10859,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[49].Exporter = func(v any, i int) any { switch v := v.(*AddQANMySQLSlowlogAgentResponse); i { case 0: return &v.state @@ -10871,7 +10871,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[50].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMySQLSlowlogAgentRequest); i { case 0: return &v.state @@ -10883,7 +10883,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[51].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMySQLSlowlogAgentResponse); i { case 0: return &v.state @@ -10895,7 +10895,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[52].Exporter = func(v any, i int) any { switch v := v.(*AddQANMongoDBProfilerAgentRequest); i { case 0: return &v.state @@ -10907,7 +10907,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[53].Exporter = func(v any, i int) any { switch v := v.(*AddQANMongoDBProfilerAgentResponse); i { case 0: return &v.state @@ -10919,7 +10919,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[54].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMongoDBProfilerAgentRequest); i { case 0: return &v.state @@ -10931,7 +10931,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[55].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANMongoDBProfilerAgentResponse); i { case 0: return &v.state @@ -10943,7 +10943,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[56].Exporter = func(v any, i int) any { switch v := v.(*AddQANPostgreSQLPgStatementsAgentRequest); i { case 0: return &v.state @@ -10955,7 +10955,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[57].Exporter = func(v any, i int) any { switch v := v.(*AddQANPostgreSQLPgStatementsAgentResponse); i { case 0: return &v.state @@ -10967,7 +10967,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[58].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANPostgreSQLPgStatementsAgentRequest); i { case 0: return &v.state @@ -10979,7 +10979,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[59].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANPostgreSQLPgStatementsAgentResponse); i { case 0: return &v.state @@ -10991,7 +10991,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[60].Exporter = func(v any, i int) any { switch v := v.(*AddQANPostgreSQLPgStatMonitorAgentRequest); i { case 0: return &v.state @@ -11003,7 +11003,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[61].Exporter = func(v any, i int) any { switch v := v.(*AddQANPostgreSQLPgStatMonitorAgentResponse); i { case 0: return &v.state @@ -11015,7 +11015,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[62].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANPostgreSQLPgStatMonitorAgentRequest); i { case 0: return &v.state @@ -11027,7 +11027,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[63].Exporter = func(v any, i int) any { switch v := v.(*ChangeQANPostgreSQLPgStatMonitorAgentResponse); i { case 0: return &v.state @@ -11039,7 +11039,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[64].Exporter = func(v any, i int) any { switch v := v.(*AddRDSExporterRequest); i { case 0: return &v.state @@ -11051,7 +11051,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[65].Exporter = func(v any, i int) any { switch v := v.(*AddRDSExporterResponse); i { case 0: return &v.state @@ -11063,7 +11063,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[66].Exporter = func(v any, i int) any { switch v := v.(*ChangeRDSExporterRequest); i { case 0: return &v.state @@ -11075,7 +11075,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[67].Exporter = func(v any, i int) any { switch v := v.(*ChangeRDSExporterResponse); i { case 0: return &v.state @@ -11087,7 +11087,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[68].Exporter = func(v any, i int) any { switch v := v.(*AddExternalExporterRequest); i { case 0: return &v.state @@ -11099,7 +11099,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[69].Exporter = func(v any, i int) any { switch v := v.(*AddExternalExporterResponse); i { case 0: return &v.state @@ -11111,7 +11111,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[70].Exporter = func(v any, i int) any { switch v := v.(*ChangeExternalExporterRequest); i { case 0: return &v.state @@ -11123,7 +11123,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[71].Exporter = func(v any, i int) any { switch v := v.(*ChangeExternalExporterResponse); i { case 0: return &v.state @@ -11135,7 +11135,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[72].Exporter = func(v any, i int) any { switch v := v.(*AddAzureDatabaseExporterRequest); i { case 0: return &v.state @@ -11147,7 +11147,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[73].Exporter = func(v any, i int) any { switch v := v.(*AddAzureDatabaseExporterResponse); i { case 0: return &v.state @@ -11159,7 +11159,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[74].Exporter = func(v any, i int) any { switch v := v.(*ChangeAzureDatabaseExporterRequest); i { case 0: return &v.state @@ -11171,7 +11171,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[75].Exporter = func(v any, i int) any { switch v := v.(*ChangeAzureDatabaseExporterResponse); i { case 0: return &v.state @@ -11183,7 +11183,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[76].Exporter = func(v any, i int) any { switch v := v.(*RemoveAgentRequest); i { case 0: return &v.state @@ -11195,7 +11195,7 @@ func file_inventorypb_agents_proto_init() { return nil } } - file_inventorypb_agents_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_agents_proto_msgTypes[77].Exporter = func(v any, i int) any { switch v := v.(*RemoveAgentResponse); i { case 0: return &v.state @@ -11208,7 +11208,7 @@ func file_inventorypb_agents_proto_init() { } } } - file_inventorypb_agents_proto_msgTypes[19].OneofWrappers = []interface{}{ + file_inventorypb_agents_proto_msgTypes[19].OneofWrappers = []any{ (*GetAgentResponse_PmmAgent)(nil), (*GetAgentResponse_Vmagent)(nil), (*GetAgentResponse_NodeExporter)(nil), diff --git a/api/inventorypb/log_level.pb.go b/api/inventorypb/log_level.pb.go index d1bb1fca65..0c900f9127 100644 --- a/api/inventorypb/log_level.pb.go +++ b/api/inventorypb/log_level.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: inventorypb/log_level.proto @@ -116,7 +116,7 @@ func file_inventorypb_log_level_proto_rawDescGZIP() []byte { var ( file_inventorypb_log_level_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventorypb_log_level_proto_goTypes = []interface{}{ + file_inventorypb_log_level_proto_goTypes = []any{ (LogLevel)(0), // 0: inventory.LogLevel } ) diff --git a/api/inventorypb/nodes.pb.go b/api/inventorypb/nodes.pb.go index a317e5b200..ca7495fab4 100644 --- a/api/inventorypb/nodes.pb.go +++ b/api/inventorypb/nodes.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: inventorypb/nodes.proto @@ -2530,7 +2530,7 @@ func file_inventorypb_nodes_proto_rawDescGZIP() []byte { var ( file_inventorypb_nodes_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_inventorypb_nodes_proto_msgTypes = make([]protoimpl.MessageInfo, 33) - file_inventorypb_nodes_proto_goTypes = []interface{}{ + file_inventorypb_nodes_proto_goTypes = []any{ (NodeType)(0), // 0: inventory.NodeType (*GenericNode)(nil), // 1: inventory.GenericNode (*ContainerNode)(nil), // 2: inventory.ContainerNode @@ -2636,7 +2636,7 @@ func file_inventorypb_nodes_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_inventorypb_nodes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*GenericNode); i { case 0: return &v.state @@ -2648,7 +2648,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ContainerNode); i { case 0: return &v.state @@ -2660,7 +2660,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*RemoteNode); i { case 0: return &v.state @@ -2672,7 +2672,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*RemoteRDSNode); i { case 0: return &v.state @@ -2684,7 +2684,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*RemoteAzureDatabaseNode); i { case 0: return &v.state @@ -2696,7 +2696,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ListNodesRequest); i { case 0: return &v.state @@ -2708,7 +2708,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ListNodesResponse); i { case 0: return &v.state @@ -2720,7 +2720,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*GetNodeRequest); i { case 0: return &v.state @@ -2732,7 +2732,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*GetNodeResponse); i { case 0: return &v.state @@ -2744,7 +2744,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*AddNodeRequest); i { case 0: return &v.state @@ -2756,7 +2756,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*AddNodeResponse); i { case 0: return &v.state @@ -2768,7 +2768,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*AddGenericNodeRequest); i { case 0: return &v.state @@ -2780,7 +2780,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*AddGenericNodeResponse); i { case 0: return &v.state @@ -2792,7 +2792,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*AddContainerNodeRequest); i { case 0: return &v.state @@ -2804,7 +2804,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*AddContainerNodeResponse); i { case 0: return &v.state @@ -2816,7 +2816,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteNodeRequest); i { case 0: return &v.state @@ -2828,7 +2828,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteNodeResponse); i { case 0: return &v.state @@ -2840,7 +2840,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteRDSNodeRequest); i { case 0: return &v.state @@ -2852,7 +2852,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteRDSNodeResponse); i { case 0: return &v.state @@ -2864,7 +2864,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteAzureDatabaseNodeRequest); i { case 0: return &v.state @@ -2876,7 +2876,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*AddRemoteAzureDatabaseNodeResponse); i { case 0: return &v.state @@ -2888,7 +2888,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*RemoveNodeRequest); i { case 0: return &v.state @@ -2900,7 +2900,7 @@ func file_inventorypb_nodes_proto_init() { return nil } } - file_inventorypb_nodes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_nodes_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*RemoveNodeResponse); i { case 0: return &v.state @@ -2913,21 +2913,21 @@ func file_inventorypb_nodes_proto_init() { } } } - file_inventorypb_nodes_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_inventorypb_nodes_proto_msgTypes[8].OneofWrappers = []any{ (*GetNodeResponse_Generic)(nil), (*GetNodeResponse_Container)(nil), (*GetNodeResponse_Remote)(nil), (*GetNodeResponse_RemoteRds)(nil), (*GetNodeResponse_RemoteAzureDatabase)(nil), } - file_inventorypb_nodes_proto_msgTypes[9].OneofWrappers = []interface{}{ + file_inventorypb_nodes_proto_msgTypes[9].OneofWrappers = []any{ (*AddNodeRequest_Generic)(nil), (*AddNodeRequest_Container)(nil), (*AddNodeRequest_Remote)(nil), (*AddNodeRequest_RemoteRds)(nil), (*AddNodeRequest_RemoteAzure)(nil), } - file_inventorypb_nodes_proto_msgTypes[10].OneofWrappers = []interface{}{ + file_inventorypb_nodes_proto_msgTypes[10].OneofWrappers = []any{ (*AddNodeResponse_Generic)(nil), (*AddNodeResponse_Container)(nil), (*AddNodeResponse_Remote)(nil), diff --git a/api/inventorypb/services.pb.go b/api/inventorypb/services.pb.go index ad06d293b3..5c4eddb93b 100644 --- a/api/inventorypb/services.pb.go +++ b/api/inventorypb/services.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: inventorypb/services.proto @@ -3384,7 +3384,7 @@ func file_inventorypb_services_proto_rawDescGZIP() []byte { var ( file_inventorypb_services_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_inventorypb_services_proto_msgTypes = make([]protoimpl.MessageInfo, 45) - file_inventorypb_services_proto_goTypes = []interface{}{ + file_inventorypb_services_proto_goTypes = []any{ (ServiceType)(0), // 0: inventory.ServiceType (*MySQLService)(nil), // 1: inventory.MySQLService (*MongoDBService)(nil), // 2: inventory.MongoDBService @@ -3507,7 +3507,7 @@ func file_inventorypb_services_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_inventorypb_services_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*MySQLService); i { case 0: return &v.state @@ -3519,7 +3519,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*MongoDBService); i { case 0: return &v.state @@ -3531,7 +3531,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*PostgreSQLService); i { case 0: return &v.state @@ -3543,7 +3543,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ProxySQLService); i { case 0: return &v.state @@ -3555,7 +3555,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*HAProxyService); i { case 0: return &v.state @@ -3567,7 +3567,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ExternalService); i { case 0: return &v.state @@ -3579,7 +3579,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ListServicesRequest); i { case 0: return &v.state @@ -3591,7 +3591,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*ListServicesResponse); i { case 0: return &v.state @@ -3603,7 +3603,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*ListActiveServiceTypesRequest); i { case 0: return &v.state @@ -3615,7 +3615,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*ListActiveServiceTypesResponse); i { case 0: return &v.state @@ -3627,7 +3627,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*GetServiceRequest); i { case 0: return &v.state @@ -3639,7 +3639,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*GetServiceResponse); i { case 0: return &v.state @@ -3651,7 +3651,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLServiceRequest); i { case 0: return &v.state @@ -3663,7 +3663,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLServiceResponse); i { case 0: return &v.state @@ -3675,7 +3675,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBServiceRequest); i { case 0: return &v.state @@ -3687,7 +3687,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBServiceResponse); i { case 0: return &v.state @@ -3699,7 +3699,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*AddPostgreSQLServiceRequest); i { case 0: return &v.state @@ -3711,7 +3711,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*AddPostgreSQLServiceResponse); i { case 0: return &v.state @@ -3723,7 +3723,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLServiceRequest); i { case 0: return &v.state @@ -3735,7 +3735,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLServiceResponse); i { case 0: return &v.state @@ -3747,7 +3747,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*AddHAProxyServiceRequest); i { case 0: return &v.state @@ -3759,7 +3759,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*AddHAProxyServiceResponse); i { case 0: return &v.state @@ -3771,7 +3771,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*AddExternalServiceRequest); i { case 0: return &v.state @@ -3783,7 +3783,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*AddExternalServiceResponse); i { case 0: return &v.state @@ -3795,7 +3795,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*RemoveServiceRequest); i { case 0: return &v.state @@ -3807,7 +3807,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*RemoveServiceResponse); i { case 0: return &v.state @@ -3819,7 +3819,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*AddCustomLabelsRequest); i { case 0: return &v.state @@ -3831,7 +3831,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*AddCustomLabelsResponse); i { case 0: return &v.state @@ -3843,7 +3843,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*RemoveCustomLabelsRequest); i { case 0: return &v.state @@ -3855,7 +3855,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*RemoveCustomLabelsResponse); i { case 0: return &v.state @@ -3867,7 +3867,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[30].Exporter = func(v any, i int) any { switch v := v.(*ChangeServiceRequest); i { case 0: return &v.state @@ -3879,7 +3879,7 @@ func file_inventorypb_services_proto_init() { return nil } } - file_inventorypb_services_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_inventorypb_services_proto_msgTypes[31].Exporter = func(v any, i int) any { switch v := v.(*ChangeServiceResponse); i { case 0: return &v.state @@ -3892,7 +3892,7 @@ func file_inventorypb_services_proto_init() { } } } - file_inventorypb_services_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_inventorypb_services_proto_msgTypes[11].OneofWrappers = []any{ (*GetServiceResponse_Mysql)(nil), (*GetServiceResponse_Mongodb)(nil), (*GetServiceResponse_Postgresql)(nil), @@ -3900,7 +3900,7 @@ func file_inventorypb_services_proto_init() { (*GetServiceResponse_Haproxy)(nil), (*GetServiceResponse_External)(nil), } - file_inventorypb_services_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_inventorypb_services_proto_msgTypes[30].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/api/managementpb/actions.pb.go b/api/managementpb/actions.pb.go index a9221fe4e4..fdaa3ed566 100644 --- a/api/managementpb/actions.pb.go +++ b/api/managementpb/actions.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/actions.proto @@ -2555,7 +2555,7 @@ func file_managementpb_actions_proto_rawDescGZIP() []byte { var ( file_managementpb_actions_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_actions_proto_msgTypes = make([]protoimpl.MessageInfo, 30) - file_managementpb_actions_proto_goTypes = []interface{}{ + file_managementpb_actions_proto_goTypes = []any{ (ActionType)(0), // 0: management.ActionType (*GetActionRequest)(nil), // 1: management.GetActionRequest (*GetActionResponse)(nil), // 2: management.GetActionResponse @@ -2634,7 +2634,7 @@ func file_managementpb_actions_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_actions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*GetActionRequest); i { case 0: return &v.state @@ -2646,7 +2646,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*GetActionResponse); i { case 0: return &v.state @@ -2658,7 +2658,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainActionRequest); i { case 0: return &v.state @@ -2670,7 +2670,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainActionResponse); i { case 0: return &v.state @@ -2682,7 +2682,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainJSONActionRequest); i { case 0: return &v.state @@ -2694,7 +2694,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainJSONActionResponse); i { case 0: return &v.state @@ -2706,7 +2706,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainTraditionalJSONActionRequest); i { case 0: return &v.state @@ -2718,7 +2718,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLExplainTraditionalJSONActionResponse); i { case 0: return &v.state @@ -2730,7 +2730,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowCreateTableActionRequest); i { case 0: return &v.state @@ -2742,7 +2742,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowCreateTableActionResponse); i { case 0: return &v.state @@ -2754,7 +2754,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowTableStatusActionRequest); i { case 0: return &v.state @@ -2766,7 +2766,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowTableStatusActionResponse); i { case 0: return &v.state @@ -2778,7 +2778,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowIndexActionRequest); i { case 0: return &v.state @@ -2790,7 +2790,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*StartMySQLShowIndexActionResponse); i { case 0: return &v.state @@ -2802,7 +2802,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*StartPostgreSQLShowCreateTableActionRequest); i { case 0: return &v.state @@ -2814,7 +2814,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*StartPostgreSQLShowCreateTableActionResponse); i { case 0: return &v.state @@ -2826,7 +2826,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*StartPostgreSQLShowIndexActionRequest); i { case 0: return &v.state @@ -2838,7 +2838,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*StartPostgreSQLShowIndexActionResponse); i { case 0: return &v.state @@ -2850,7 +2850,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*StartMongoDBExplainActionRequest); i { case 0: return &v.state @@ -2862,7 +2862,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*StartMongoDBExplainActionResponse); i { case 0: return &v.state @@ -2874,7 +2874,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*StartPTSummaryActionRequest); i { case 0: return &v.state @@ -2886,7 +2886,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*StartPTSummaryActionResponse); i { case 0: return &v.state @@ -2898,7 +2898,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*StartPTPgSummaryActionRequest); i { case 0: return &v.state @@ -2910,7 +2910,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*StartPTPgSummaryActionResponse); i { case 0: return &v.state @@ -2922,7 +2922,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*StartPTMongoDBSummaryActionRequest); i { case 0: return &v.state @@ -2934,7 +2934,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*StartPTMongoDBSummaryActionResponse); i { case 0: return &v.state @@ -2946,7 +2946,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*StartPTMySQLSummaryActionRequest); i { case 0: return &v.state @@ -2958,7 +2958,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*StartPTMySQLSummaryActionResponse); i { case 0: return &v.state @@ -2970,7 +2970,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*CancelActionRequest); i { case 0: return &v.state @@ -2982,7 +2982,7 @@ func file_managementpb_actions_proto_init() { return nil } } - file_managementpb_actions_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_actions_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*CancelActionResponse); i { case 0: return &v.state diff --git a/api/managementpb/agent/agent.pb.go b/api/managementpb/agent/agent.pb.go index 9051127d94..66f35734d2 100644 --- a/api/managementpb/agent/agent.pb.go +++ b/api/managementpb/agent/agent.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/agent/agent.proto @@ -1071,7 +1071,7 @@ func file_managementpb_agent_agent_proto_rawDescGZIP() []byte { var ( file_managementpb_agent_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 8) - file_managementpb_agent_agent_proto_goTypes = []interface{}{ + file_managementpb_agent_agent_proto_goTypes = []any{ (*UniversalAgent)(nil), // 0: agent.v1beta1.UniversalAgent (*ListAgentRequest)(nil), // 1: agent.v1beta1.ListAgentRequest (*ListAgentResponse)(nil), // 2: agent.v1beta1.ListAgentResponse @@ -1108,7 +1108,7 @@ func file_managementpb_agent_agent_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_agent_agent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*UniversalAgent); i { case 0: return &v.state @@ -1120,7 +1120,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListAgentRequest); i { case 0: return &v.state @@ -1132,7 +1132,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListAgentResponse); i { case 0: return &v.state @@ -1144,7 +1144,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*UniversalAgent_MySQLOptions); i { case 0: return &v.state @@ -1156,7 +1156,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*UniversalAgent_AzureOptions); i { case 0: return &v.state @@ -1168,7 +1168,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*UniversalAgent_MongoDBOptions); i { case 0: return &v.state @@ -1180,7 +1180,7 @@ func file_managementpb_agent_agent_proto_init() { return nil } } - file_managementpb_agent_agent_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_agent_agent_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*UniversalAgent_PostgreSQLOptions); i { case 0: return &v.state diff --git a/api/managementpb/alerting/alerting.pb.go b/api/managementpb/alerting/alerting.pb.go index 818395c988..28a35ccda6 100644 --- a/api/managementpb/alerting/alerting.pb.go +++ b/api/managementpb/alerting/alerting.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/alerting/alerting.proto @@ -1612,7 +1612,7 @@ func file_managementpb_alerting_alerting_proto_rawDescGZIP() []byte { var ( file_managementpb_alerting_alerting_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_managementpb_alerting_alerting_proto_msgTypes = make([]protoimpl.MessageInfo, 20) - file_managementpb_alerting_alerting_proto_goTypes = []interface{}{ + file_managementpb_alerting_alerting_proto_goTypes = []any{ (TemplateSource)(0), // 0: alerting.v1.TemplateSource (FilterType)(0), // 1: alerting.v1.FilterType (*BoolParamDefinition)(nil), // 2: alerting.v1.BoolParamDefinition @@ -1695,7 +1695,7 @@ func file_managementpb_alerting_alerting_proto_init() { } file_managementpb_alerting_params_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_alerting_alerting_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*BoolParamDefinition); i { case 0: return &v.state @@ -1707,7 +1707,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*FloatParamDefinition); i { case 0: return &v.state @@ -1719,7 +1719,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*StringParamDefinition); i { case 0: return &v.state @@ -1731,7 +1731,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ParamDefinition); i { case 0: return &v.state @@ -1743,7 +1743,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*Template); i { case 0: return &v.state @@ -1755,7 +1755,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ListTemplatesRequest); i { case 0: return &v.state @@ -1767,7 +1767,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ListTemplatesResponse); i { case 0: return &v.state @@ -1779,7 +1779,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*CreateTemplateRequest); i { case 0: return &v.state @@ -1791,7 +1791,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*CreateTemplateResponse); i { case 0: return &v.state @@ -1803,7 +1803,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*UpdateTemplateRequest); i { case 0: return &v.state @@ -1815,7 +1815,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*UpdateTemplateResponse); i { case 0: return &v.state @@ -1827,7 +1827,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*DeleteTemplateRequest); i { case 0: return &v.state @@ -1839,7 +1839,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*DeleteTemplateResponse); i { case 0: return &v.state @@ -1851,7 +1851,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*Filter); i { case 0: return &v.state @@ -1863,7 +1863,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*ParamValue); i { case 0: return &v.state @@ -1875,7 +1875,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*CreateRuleRequest); i { case 0: return &v.state @@ -1887,7 +1887,7 @@ func file_managementpb_alerting_alerting_proto_init() { return nil } } - file_managementpb_alerting_alerting_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_alerting_alerting_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*CreateRuleResponse); i { case 0: return &v.state @@ -1900,12 +1900,12 @@ func file_managementpb_alerting_alerting_proto_init() { } } } - file_managementpb_alerting_alerting_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_managementpb_alerting_alerting_proto_msgTypes[3].OneofWrappers = []any{ (*ParamDefinition_Bool)(nil), (*ParamDefinition_Float)(nil), (*ParamDefinition_String_)(nil), } - file_managementpb_alerting_alerting_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_managementpb_alerting_alerting_proto_msgTypes[14].OneofWrappers = []any{ (*ParamValue_Bool)(nil), (*ParamValue_Float)(nil), (*ParamValue_String_)(nil), diff --git a/api/managementpb/alerting/params.pb.go b/api/managementpb/alerting/params.pb.go index cd015cfa99..d2fda9fff6 100644 --- a/api/managementpb/alerting/params.pb.go +++ b/api/managementpb/alerting/params.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/alerting/params.proto @@ -169,7 +169,7 @@ func file_managementpb_alerting_params_proto_rawDescGZIP() []byte { var ( file_managementpb_alerting_params_proto_enumTypes = make([]protoimpl.EnumInfo, 2) - file_managementpb_alerting_params_proto_goTypes = []interface{}{ + file_managementpb_alerting_params_proto_goTypes = []any{ (ParamUnit)(0), // 0: alerting.v1.ParamUnit (ParamType)(0), // 1: alerting.v1.ParamType } diff --git a/api/managementpb/annotation.pb.go b/api/managementpb/annotation.pb.go index 022e50050d..4bca0accae 100644 --- a/api/managementpb/annotation.pb.go +++ b/api/managementpb/annotation.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/annotation.proto @@ -198,7 +198,7 @@ func file_managementpb_annotation_proto_rawDescGZIP() []byte { var ( file_managementpb_annotation_proto_msgTypes = make([]protoimpl.MessageInfo, 2) - file_managementpb_annotation_proto_goTypes = []interface{}{ + file_managementpb_annotation_proto_goTypes = []any{ (*AddAnnotationRequest)(nil), // 0: management.AddAnnotationRequest (*AddAnnotationResponse)(nil), // 1: management.AddAnnotationResponse } @@ -220,7 +220,7 @@ func file_managementpb_annotation_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_annotation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_annotation_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddAnnotationRequest); i { case 0: return &v.state @@ -232,7 +232,7 @@ func file_managementpb_annotation_proto_init() { return nil } } - file_managementpb_annotation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_annotation_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddAnnotationResponse); i { case 0: return &v.state diff --git a/api/managementpb/azure/azure.pb.go b/api/managementpb/azure/azure.pb.go index 8177a5f7be..842acab0a6 100644 --- a/api/managementpb/azure/azure.pb.go +++ b/api/managementpb/azure/azure.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/azure/azure.proto @@ -828,7 +828,7 @@ func file_managementpb_azure_azure_proto_rawDescGZIP() []byte { var ( file_managementpb_azure_azure_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_azure_azure_proto_msgTypes = make([]protoimpl.MessageInfo, 6) - file_managementpb_azure_azure_proto_goTypes = []interface{}{ + file_managementpb_azure_azure_proto_goTypes = []any{ (DiscoverAzureDatabaseType)(0), // 0: azure.v1beta1.DiscoverAzureDatabaseType (*DiscoverAzureDatabaseRequest)(nil), // 1: azure.v1beta1.DiscoverAzureDatabaseRequest (*DiscoverAzureDatabaseInstance)(nil), // 2: azure.v1beta1.DiscoverAzureDatabaseInstance @@ -861,7 +861,7 @@ func file_managementpb_azure_azure_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_azure_azure_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_azure_azure_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*DiscoverAzureDatabaseRequest); i { case 0: return &v.state @@ -873,7 +873,7 @@ func file_managementpb_azure_azure_proto_init() { return nil } } - file_managementpb_azure_azure_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_azure_azure_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*DiscoverAzureDatabaseInstance); i { case 0: return &v.state @@ -885,7 +885,7 @@ func file_managementpb_azure_azure_proto_init() { return nil } } - file_managementpb_azure_azure_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_azure_azure_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*DiscoverAzureDatabaseResponse); i { case 0: return &v.state @@ -897,7 +897,7 @@ func file_managementpb_azure_azure_proto_init() { return nil } } - file_managementpb_azure_azure_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_azure_azure_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*AddAzureDatabaseRequest); i { case 0: return &v.state @@ -909,7 +909,7 @@ func file_managementpb_azure_azure_proto_init() { return nil } } - file_managementpb_azure_azure_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_azure_azure_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*AddAzureDatabaseResponse); i { case 0: return &v.state diff --git a/api/managementpb/backup/artifacts.pb.go b/api/managementpb/backup/artifacts.pb.go index 4306cad2d5..28edd7e308 100644 --- a/api/managementpb/backup/artifacts.pb.go +++ b/api/managementpb/backup/artifacts.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/artifacts.proto @@ -742,7 +742,7 @@ func file_managementpb_backup_artifacts_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_artifacts_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_backup_artifacts_proto_msgTypes = make([]protoimpl.MessageInfo, 8) - file_managementpb_backup_artifacts_proto_goTypes = []interface{}{ + file_managementpb_backup_artifacts_proto_goTypes = []any{ (BackupStatus)(0), // 0: backup.v1.BackupStatus (*Artifact)(nil), // 1: backup.v1.Artifact (*ListArtifactsRequest)(nil), // 2: backup.v1.ListArtifactsRequest @@ -789,7 +789,7 @@ func file_managementpb_backup_artifacts_proto_init() { } file_managementpb_backup_common_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_backup_artifacts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Artifact); i { case 0: return &v.state @@ -801,7 +801,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListArtifactsRequest); i { case 0: return &v.state @@ -813,7 +813,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListArtifactsResponse); i { case 0: return &v.state @@ -825,7 +825,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*DeleteArtifactRequest); i { case 0: return &v.state @@ -837,7 +837,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*DeleteArtifactResponse); i { case 0: return &v.state @@ -849,7 +849,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*PitrTimerange); i { case 0: return &v.state @@ -861,7 +861,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ListPitrTimerangesRequest); i { case 0: return &v.state @@ -873,7 +873,7 @@ func file_managementpb_backup_artifacts_proto_init() { return nil } } - file_managementpb_backup_artifacts_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_artifacts_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*ListPitrTimerangesResponse); i { case 0: return &v.state diff --git a/api/managementpb/backup/backups.pb.go b/api/managementpb/backup/backups.pb.go index bd9cde245a..f5bd12876f 100644 --- a/api/managementpb/backup/backups.pb.go +++ b/api/managementpb/backup/backups.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/backups.proto @@ -1716,7 +1716,7 @@ func file_managementpb_backup_backups_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_backups_proto_msgTypes = make([]protoimpl.MessageInfo, 18) - file_managementpb_backup_backups_proto_goTypes = []interface{}{ + file_managementpb_backup_backups_proto_goTypes = []any{ (*StartBackupRequest)(nil), // 0: backup.v1.StartBackupRequest (*StartBackupResponse)(nil), // 1: backup.v1.StartBackupResponse (*ListArtifactCompatibleServicesRequest)(nil), // 2: backup.v1.ListArtifactCompatibleServicesRequest @@ -1803,7 +1803,7 @@ func file_managementpb_backup_backups_proto_init() { } file_managementpb_backup_common_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_backup_backups_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*StartBackupRequest); i { case 0: return &v.state @@ -1815,7 +1815,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*StartBackupResponse); i { case 0: return &v.state @@ -1827,7 +1827,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListArtifactCompatibleServicesRequest); i { case 0: return &v.state @@ -1839,7 +1839,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ListArtifactCompatibleServicesResponse); i { case 0: return &v.state @@ -1851,7 +1851,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*RestoreBackupRequest); i { case 0: return &v.state @@ -1863,7 +1863,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*RestoreBackupResponse); i { case 0: return &v.state @@ -1875,7 +1875,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*ScheduledBackup); i { case 0: return &v.state @@ -1887,7 +1887,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*ScheduleBackupRequest); i { case 0: return &v.state @@ -1899,7 +1899,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*ScheduleBackupResponse); i { case 0: return &v.state @@ -1911,7 +1911,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*ListScheduledBackupsRequest); i { case 0: return &v.state @@ -1923,7 +1923,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*ListScheduledBackupsResponse); i { case 0: return &v.state @@ -1935,7 +1935,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*ChangeScheduledBackupRequest); i { case 0: return &v.state @@ -1947,7 +1947,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*ChangeScheduledBackupResponse); i { case 0: return &v.state @@ -1959,7 +1959,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*RemoveScheduledBackupRequest); i { case 0: return &v.state @@ -1971,7 +1971,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*RemoveScheduledBackupResponse); i { case 0: return &v.state @@ -1983,7 +1983,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*GetLogsRequest); i { case 0: return &v.state @@ -1995,7 +1995,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*GetLogsResponse); i { case 0: return &v.state @@ -2007,7 +2007,7 @@ func file_managementpb_backup_backups_proto_init() { return nil } } - file_managementpb_backup_backups_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_backups_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*LogChunk); i { case 0: return &v.state diff --git a/api/managementpb/backup/common.pb.go b/api/managementpb/backup/common.pb.go index 6cc0a362cd..021f3be1fe 100644 --- a/api/managementpb/backup/common.pb.go +++ b/api/managementpb/backup/common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/common.proto @@ -385,7 +385,7 @@ func file_managementpb_backup_common_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_managementpb_backup_common_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_backup_common_proto_goTypes = []interface{}{ + file_managementpb_backup_common_proto_goTypes = []any{ (DataModel)(0), // 0: backup.v1.DataModel (BackupMode)(0), // 1: backup.v1.BackupMode (*File)(nil), // 2: backup.v1.File @@ -412,7 +412,7 @@ func file_managementpb_backup_common_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_backup_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_common_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*File); i { case 0: return &v.state @@ -424,7 +424,7 @@ func file_managementpb_backup_common_proto_init() { return nil } } - file_managementpb_backup_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_common_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*PbmMetadata); i { case 0: return &v.state @@ -436,7 +436,7 @@ func file_managementpb_backup_common_proto_init() { return nil } } - file_managementpb_backup_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_common_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*Metadata); i { case 0: return &v.state @@ -449,7 +449,7 @@ func file_managementpb_backup_common_proto_init() { } } } - file_managementpb_backup_common_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_managementpb_backup_common_proto_msgTypes[2].OneofWrappers = []any{ (*Metadata_PbmMetadata)(nil), } type x struct{} diff --git a/api/managementpb/backup/errors.pb.go b/api/managementpb/backup/errors.pb.go index a9161625c7..de8e75fa1c 100644 --- a/api/managementpb/backup/errors.pb.go +++ b/api/managementpb/backup/errors.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/errors.proto @@ -186,7 +186,7 @@ func file_managementpb_backup_errors_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_errors_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_backup_errors_proto_msgTypes = make([]protoimpl.MessageInfo, 1) - file_managementpb_backup_errors_proto_goTypes = []interface{}{ + file_managementpb_backup_errors_proto_goTypes = []any{ (ErrorCode)(0), // 0: backup.v1.ErrorCode (*Error)(nil), // 1: backup.v1.Error } @@ -207,7 +207,7 @@ func file_managementpb_backup_errors_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_backup_errors_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_errors_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Error); i { case 0: return &v.state diff --git a/api/managementpb/backup/locations.pb.go b/api/managementpb/backup/locations.pb.go index 29d5a325e9..9310429d0b 100644 --- a/api/managementpb/backup/locations.pb.go +++ b/api/managementpb/backup/locations.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/locations.proto @@ -942,7 +942,7 @@ func file_managementpb_backup_locations_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_locations_proto_msgTypes = make([]protoimpl.MessageInfo, 13) - file_managementpb_backup_locations_proto_goTypes = []interface{}{ + file_managementpb_backup_locations_proto_goTypes = []any{ (*FilesystemLocationConfig)(nil), // 0: backup.v1.FilesystemLocationConfig (*S3LocationConfig)(nil), // 1: backup.v1.S3LocationConfig (*Location)(nil), // 2: backup.v1.Location @@ -992,7 +992,7 @@ func file_managementpb_backup_locations_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_backup_locations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*FilesystemLocationConfig); i { case 0: return &v.state @@ -1004,7 +1004,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*S3LocationConfig); i { case 0: return &v.state @@ -1016,7 +1016,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*Location); i { case 0: return &v.state @@ -1028,7 +1028,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ListLocationsRequest); i { case 0: return &v.state @@ -1040,7 +1040,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ListLocationsResponse); i { case 0: return &v.state @@ -1052,7 +1052,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*AddLocationRequest); i { case 0: return &v.state @@ -1064,7 +1064,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*AddLocationResponse); i { case 0: return &v.state @@ -1076,7 +1076,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*ChangeLocationRequest); i { case 0: return &v.state @@ -1088,7 +1088,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*ChangeLocationResponse); i { case 0: return &v.state @@ -1100,7 +1100,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*RemoveLocationRequest); i { case 0: return &v.state @@ -1112,7 +1112,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*RemoveLocationResponse); i { case 0: return &v.state @@ -1124,7 +1124,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*TestLocationConfigRequest); i { case 0: return &v.state @@ -1136,7 +1136,7 @@ func file_managementpb_backup_locations_proto_init() { return nil } } - file_managementpb_backup_locations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_locations_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*TestLocationConfigResponse); i { case 0: return &v.state @@ -1149,7 +1149,7 @@ func file_managementpb_backup_locations_proto_init() { } } } - file_managementpb_backup_locations_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_managementpb_backup_locations_proto_msgTypes[2].OneofWrappers = []any{ (*Location_FilesystemConfig)(nil), (*Location_S3Config)(nil), } diff --git a/api/managementpb/backup/restores.pb.go b/api/managementpb/backup/restores.pb.go index f01283a2c8..ea8a52ba4b 100644 --- a/api/managementpb/backup/restores.pb.go +++ b/api/managementpb/backup/restores.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/backup/restores.proto @@ -419,7 +419,7 @@ func file_managementpb_backup_restores_proto_rawDescGZIP() []byte { var ( file_managementpb_backup_restores_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_backup_restores_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_backup_restores_proto_goTypes = []interface{}{ + file_managementpb_backup_restores_proto_goTypes = []any{ (RestoreStatus)(0), // 0: backup.v1.RestoreStatus (*RestoreHistoryItem)(nil), // 1: backup.v1.RestoreHistoryItem (*ListRestoreHistoryRequest)(nil), // 2: backup.v1.ListRestoreHistoryRequest @@ -452,7 +452,7 @@ func file_managementpb_backup_restores_proto_init() { } file_managementpb_backup_common_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_backup_restores_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_restores_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*RestoreHistoryItem); i { case 0: return &v.state @@ -464,7 +464,7 @@ func file_managementpb_backup_restores_proto_init() { return nil } } - file_managementpb_backup_restores_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_restores_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListRestoreHistoryRequest); i { case 0: return &v.state @@ -476,7 +476,7 @@ func file_managementpb_backup_restores_proto_init() { return nil } } - file_managementpb_backup_restores_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_backup_restores_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListRestoreHistoryResponse); i { case 0: return &v.state diff --git a/api/managementpb/boolean_flag.pb.go b/api/managementpb/boolean_flag.pb.go index 1c11ba383a..af77f1f62b 100644 --- a/api/managementpb/boolean_flag.pb.go +++ b/api/managementpb/boolean_flag.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/boolean_flag.proto @@ -111,7 +111,7 @@ func file_managementpb_boolean_flag_proto_rawDescGZIP() []byte { var ( file_managementpb_boolean_flag_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_managementpb_boolean_flag_proto_goTypes = []interface{}{ + file_managementpb_boolean_flag_proto_goTypes = []any{ (BooleanFlag)(0), // 0: managementpb.BooleanFlag } ) diff --git a/api/managementpb/checks.pb.go b/api/managementpb/checks.pb.go index 6fadab9fea..0cf2c7654e 100644 --- a/api/managementpb/checks.pb.go +++ b/api/managementpb/checks.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/checks.proto @@ -1798,7 +1798,7 @@ func file_managementpb_checks_proto_rawDescGZIP() []byte { var ( file_managementpb_checks_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_managementpb_checks_proto_msgTypes = make([]protoimpl.MessageInfo, 24) - file_managementpb_checks_proto_goTypes = []interface{}{ + file_managementpb_checks_proto_goTypes = []any{ (SecurityCheckInterval)(0), // 0: management.SecurityCheckInterval (AdvisorCheckFamily)(0), // 1: management.AdvisorCheckFamily (*SecurityCheckResult)(nil), // 2: management.SecurityCheckResult @@ -1879,7 +1879,7 @@ func file_managementpb_checks_proto_init() { file_managementpb_pagination_proto_init() file_managementpb_severity_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_checks_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*SecurityCheckResult); i { case 0: return &v.state @@ -1891,7 +1891,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*CheckResultSummary); i { case 0: return &v.state @@ -1903,7 +1903,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*CheckResult); i { case 0: return &v.state @@ -1915,7 +1915,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*SecurityCheck); i { case 0: return &v.state @@ -1927,7 +1927,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*Advisor); i { case 0: return &v.state @@ -1939,7 +1939,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ChangeSecurityCheckParams); i { case 0: return &v.state @@ -1951,7 +1951,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*GetSecurityCheckResultsRequest); i { case 0: return &v.state @@ -1963,7 +1963,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*GetSecurityCheckResultsResponse); i { case 0: return &v.state @@ -1975,7 +1975,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*StartSecurityChecksRequest); i { case 0: return &v.state @@ -1987,7 +1987,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*StartSecurityChecksResponse); i { case 0: return &v.state @@ -1999,7 +1999,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*ListSecurityChecksRequest); i { case 0: return &v.state @@ -2011,7 +2011,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*ListSecurityChecksResponse); i { case 0: return &v.state @@ -2023,7 +2023,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*ListAdvisorsRequest); i { case 0: return &v.state @@ -2035,7 +2035,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*ListAdvisorsResponse); i { case 0: return &v.state @@ -2047,7 +2047,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*ChangeSecurityChecksRequest); i { case 0: return &v.state @@ -2059,7 +2059,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*ChangeSecurityChecksResponse); i { case 0: return &v.state @@ -2071,7 +2071,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*ListFailedServicesRequest); i { case 0: return &v.state @@ -2083,7 +2083,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*ListFailedServicesResponse); i { case 0: return &v.state @@ -2095,7 +2095,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*GetFailedChecksRequest); i { case 0: return &v.state @@ -2107,7 +2107,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*GetFailedChecksResponse); i { case 0: return &v.state @@ -2119,7 +2119,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*ToggleCheckAlertRequest); i { case 0: return &v.state @@ -2131,7 +2131,7 @@ func file_managementpb_checks_proto_init() { return nil } } - file_managementpb_checks_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_checks_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*ToggleCheckAlertResponse); i { case 0: return &v.state diff --git a/api/managementpb/dump/dump.pb.go b/api/managementpb/dump/dump.pb.go index 66f9ee5832..83d242c415 100644 --- a/api/managementpb/dump/dump.pb.go +++ b/api/managementpb/dump/dump.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/dump/dump.proto @@ -969,7 +969,7 @@ func file_managementpb_dump_dump_proto_rawDescGZIP() []byte { var ( file_managementpb_dump_dump_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_dump_dump_proto_msgTypes = make([]protoimpl.MessageInfo, 13) - file_managementpb_dump_dump_proto_goTypes = []interface{}{ + file_managementpb_dump_dump_proto_goTypes = []any{ (DumpStatus)(0), // 0: dump.v1beta1.DumpStatus (*Dump)(nil), // 1: dump.v1beta1.Dump (*StartDumpRequest)(nil), // 2: dump.v1beta1.StartDumpRequest @@ -1021,7 +1021,7 @@ func file_managementpb_dump_dump_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_dump_dump_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Dump); i { case 0: return &v.state @@ -1033,7 +1033,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*StartDumpRequest); i { case 0: return &v.state @@ -1045,7 +1045,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*StartDumpResponse); i { case 0: return &v.state @@ -1057,7 +1057,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ListDumpsRequest); i { case 0: return &v.state @@ -1069,7 +1069,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ListDumpsResponse); i { case 0: return &v.state @@ -1081,7 +1081,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*DeleteDumpRequest); i { case 0: return &v.state @@ -1093,7 +1093,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*DeleteDumpResponse); i { case 0: return &v.state @@ -1105,7 +1105,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*GetLogsRequest); i { case 0: return &v.state @@ -1117,7 +1117,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*GetLogsResponse); i { case 0: return &v.state @@ -1129,7 +1129,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*LogChunk); i { case 0: return &v.state @@ -1141,7 +1141,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*SFTPParameters); i { case 0: return &v.state @@ -1153,7 +1153,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*UploadDumpRequest); i { case 0: return &v.state @@ -1165,7 +1165,7 @@ func file_managementpb_dump_dump_proto_init() { return nil } } - file_managementpb_dump_dump_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_dump_dump_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*UploadDumpResponse); i { case 0: return &v.state diff --git a/api/managementpb/external.pb.go b/api/managementpb/external.pb.go index 7d09b4dcfb..5264add28d 100644 --- a/api/managementpb/external.pb.go +++ b/api/managementpb/external.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/external.proto @@ -422,7 +422,7 @@ func file_managementpb_external_proto_rawDescGZIP() []byte { var ( file_managementpb_external_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_external_proto_goTypes = []interface{}{ + file_managementpb_external_proto_goTypes = []any{ (*AddExternalRequest)(nil), // 0: management.AddExternalRequest (*AddExternalResponse)(nil), // 1: management.AddExternalResponse nil, // 2: management.AddExternalRequest.CustomLabelsEntry @@ -456,7 +456,7 @@ func file_managementpb_external_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_external_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_external_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddExternalRequest); i { case 0: return &v.state @@ -468,7 +468,7 @@ func file_managementpb_external_proto_init() { return nil } } - file_managementpb_external_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_external_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddExternalResponse); i { case 0: return &v.state diff --git a/api/managementpb/haproxy.pb.go b/api/managementpb/haproxy.pb.go index 0541c2496e..d6b50c5d8b 100644 --- a/api/managementpb/haproxy.pb.go +++ b/api/managementpb/haproxy.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/haproxy.proto @@ -394,7 +394,7 @@ func file_managementpb_haproxy_proto_rawDescGZIP() []byte { var ( file_managementpb_haproxy_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_haproxy_proto_goTypes = []interface{}{ + file_managementpb_haproxy_proto_goTypes = []any{ (*AddHAProxyRequest)(nil), // 0: management.AddHAProxyRequest (*AddHAProxyResponse)(nil), // 1: management.AddHAProxyResponse nil, // 2: management.AddHAProxyRequest.CustomLabelsEntry @@ -428,7 +428,7 @@ func file_managementpb_haproxy_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_haproxy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_haproxy_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddHAProxyRequest); i { case 0: return &v.state @@ -440,7 +440,7 @@ func file_managementpb_haproxy_proto_init() { return nil } } - file_managementpb_haproxy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_haproxy_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddHAProxyResponse); i { case 0: return &v.state diff --git a/api/managementpb/metrics.pb.go b/api/managementpb/metrics.pb.go index c98b36cd18..51eead4fd3 100644 --- a/api/managementpb/metrics.pb.go +++ b/api/managementpb/metrics.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/metrics.proto @@ -106,7 +106,7 @@ func file_managementpb_metrics_proto_rawDescGZIP() []byte { var ( file_managementpb_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_managementpb_metrics_proto_goTypes = []interface{}{ + file_managementpb_metrics_proto_goTypes = []any{ (MetricsMode)(0), // 0: management.MetricsMode } ) diff --git a/api/managementpb/mongodb.pb.go b/api/managementpb/mongodb.pb.go index 92e02d18b9..e820ae0a79 100644 --- a/api/managementpb/mongodb.pb.go +++ b/api/managementpb/mongodb.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/mongodb.proto @@ -603,7 +603,7 @@ func file_managementpb_mongodb_proto_rawDescGZIP() []byte { var ( file_managementpb_mongodb_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_mongodb_proto_goTypes = []interface{}{ + file_managementpb_mongodb_proto_goTypes = []any{ (*AddMongoDBRequest)(nil), // 0: management.AddMongoDBRequest (*AddMongoDBResponse)(nil), // 1: management.AddMongoDBResponse nil, // 2: management.AddMongoDBRequest.CustomLabelsEntry @@ -641,7 +641,7 @@ func file_managementpb_mongodb_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_mongodb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_mongodb_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBRequest); i { case 0: return &v.state @@ -653,7 +653,7 @@ func file_managementpb_mongodb_proto_init() { return nil } } - file_managementpb_mongodb_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_mongodb_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddMongoDBResponse); i { case 0: return &v.state diff --git a/api/managementpb/mysql.pb.go b/api/managementpb/mysql.pb.go index f478edd4b9..f2a9447eb8 100644 --- a/api/managementpb/mysql.pb.go +++ b/api/managementpb/mysql.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/mysql.proto @@ -624,7 +624,7 @@ func file_managementpb_mysql_proto_rawDescGZIP() []byte { var ( file_managementpb_mysql_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_mysql_proto_goTypes = []interface{}{ + file_managementpb_mysql_proto_goTypes = []any{ (*AddMySQLRequest)(nil), // 0: management.AddMySQLRequest (*AddMySQLResponse)(nil), // 1: management.AddMySQLResponse nil, // 2: management.AddMySQLRequest.CustomLabelsEntry @@ -664,7 +664,7 @@ func file_managementpb_mysql_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_mysql_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_mysql_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLRequest); i { case 0: return &v.state @@ -676,7 +676,7 @@ func file_managementpb_mysql_proto_init() { return nil } } - file_managementpb_mysql_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_mysql_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddMySQLResponse); i { case 0: return &v.state diff --git a/api/managementpb/node.pb.go b/api/managementpb/node.pb.go index b8328a867f..4991fd4e51 100644 --- a/api/managementpb/node.pb.go +++ b/api/managementpb/node.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/node.proto @@ -531,7 +531,7 @@ func file_managementpb_node_proto_rawDescGZIP() []byte { var ( file_managementpb_node_proto_msgTypes = make([]protoimpl.MessageInfo, 5) - file_managementpb_node_proto_goTypes = []interface{}{ + file_managementpb_node_proto_goTypes = []any{ (*RegisterNodeRequest)(nil), // 0: management.RegisterNodeRequest (*RegisterNodeResponse)(nil), // 1: management.RegisterNodeResponse (*UnregisterNodeRequest)(nil), // 2: management.UnregisterNodeRequest @@ -570,7 +570,7 @@ func file_managementpb_node_proto_init() { } file_managementpb_metrics_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*RegisterNodeRequest); i { case 0: return &v.state @@ -582,7 +582,7 @@ func file_managementpb_node_proto_init() { return nil } } - file_managementpb_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*RegisterNodeResponse); i { case 0: return &v.state @@ -594,7 +594,7 @@ func file_managementpb_node_proto_init() { return nil } } - file_managementpb_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*UnregisterNodeRequest); i { case 0: return &v.state @@ -606,7 +606,7 @@ func file_managementpb_node_proto_init() { return nil } } - file_managementpb_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*UnregisterNodeResponse); i { case 0: return &v.state diff --git a/api/managementpb/node/node.pb.go b/api/managementpb/node/node.pb.go index fd4bb758a2..45c015de56 100644 --- a/api/managementpb/node/node.pb.go +++ b/api/managementpb/node/node.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/node/node.proto @@ -761,7 +761,7 @@ func file_managementpb_node_node_proto_rawDescGZIP() []byte { var ( file_managementpb_node_node_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_node_node_proto_msgTypes = make([]protoimpl.MessageInfo, 8) - file_managementpb_node_node_proto_goTypes = []interface{}{ + file_managementpb_node_node_proto_goTypes = []any{ (UniversalNode_Status)(0), // 0: node.v1beta1.UniversalNode.Status (*UniversalNode)(nil), // 1: node.v1beta1.UniversalNode (*ListNodeRequest)(nil), // 2: node.v1beta1.ListNodeRequest @@ -803,7 +803,7 @@ func file_managementpb_node_node_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_node_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*UniversalNode); i { case 0: return &v.state @@ -815,7 +815,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListNodeRequest); i { case 0: return &v.state @@ -827,7 +827,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListNodeResponse); i { case 0: return &v.state @@ -839,7 +839,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*GetNodeRequest); i { case 0: return &v.state @@ -851,7 +851,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*GetNodeResponse); i { case 0: return &v.state @@ -863,7 +863,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*UniversalNode_Service); i { case 0: return &v.state @@ -875,7 +875,7 @@ func file_managementpb_node_node_proto_init() { return nil } } - file_managementpb_node_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_node_node_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*UniversalNode_Agent); i { case 0: return &v.state diff --git a/api/managementpb/pagination.pb.go b/api/managementpb/pagination.pb.go index f7f5c8e011..265f5c6888 100644 --- a/api/managementpb/pagination.pb.go +++ b/api/managementpb/pagination.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/pagination.proto @@ -182,7 +182,7 @@ func file_managementpb_pagination_proto_rawDescGZIP() []byte { var ( file_managementpb_pagination_proto_msgTypes = make([]protoimpl.MessageInfo, 2) - file_managementpb_pagination_proto_goTypes = []interface{}{ + file_managementpb_pagination_proto_goTypes = []any{ (*PageParams)(nil), // 0: management.PageParams (*PageTotals)(nil), // 1: management.PageTotals } @@ -202,7 +202,7 @@ func file_managementpb_pagination_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_pagination_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_pagination_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*PageParams); i { case 0: return &v.state @@ -214,7 +214,7 @@ func file_managementpb_pagination_proto_init() { return nil } } - file_managementpb_pagination_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_pagination_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*PageTotals); i { case 0: return &v.state diff --git a/api/managementpb/postgresql.pb.go b/api/managementpb/postgresql.pb.go index 6193c049f3..0b0d7ca1be 100644 --- a/api/managementpb/postgresql.pb.go +++ b/api/managementpb/postgresql.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/postgresql.proto @@ -640,7 +640,7 @@ func file_managementpb_postgresql_proto_rawDescGZIP() []byte { var ( file_managementpb_postgresql_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_postgresql_proto_goTypes = []interface{}{ + file_managementpb_postgresql_proto_goTypes = []any{ (*AddPostgreSQLRequest)(nil), // 0: management.AddPostgreSQLRequest (*AddPostgreSQLResponse)(nil), // 1: management.AddPostgreSQLResponse nil, // 2: management.AddPostgreSQLRequest.CustomLabelsEntry @@ -680,7 +680,7 @@ func file_managementpb_postgresql_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_postgresql_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_postgresql_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddPostgreSQLRequest); i { case 0: return &v.state @@ -692,7 +692,7 @@ func file_managementpb_postgresql_proto_init() { return nil } } - file_managementpb_postgresql_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_postgresql_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddPostgreSQLResponse); i { case 0: return &v.state diff --git a/api/managementpb/proxysql.pb.go b/api/managementpb/proxysql.pb.go index 226d165be5..90f40520be 100644 --- a/api/managementpb/proxysql.pb.go +++ b/api/managementpb/proxysql.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/proxysql.proto @@ -465,7 +465,7 @@ func file_managementpb_proxysql_proto_rawDescGZIP() []byte { var ( file_managementpb_proxysql_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_managementpb_proxysql_proto_goTypes = []interface{}{ + file_managementpb_proxysql_proto_goTypes = []any{ (*AddProxySQLRequest)(nil), // 0: management.AddProxySQLRequest (*AddProxySQLResponse)(nil), // 1: management.AddProxySQLResponse nil, // 2: management.AddProxySQLRequest.CustomLabelsEntry @@ -501,7 +501,7 @@ func file_managementpb_proxysql_proto_init() { file_managementpb_metrics_proto_init() file_managementpb_service_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_proxysql_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_proxysql_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLRequest); i { case 0: return &v.state @@ -513,7 +513,7 @@ func file_managementpb_proxysql_proto_init() { return nil } } - file_managementpb_proxysql_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_proxysql_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AddProxySQLResponse); i { case 0: return &v.state diff --git a/api/managementpb/rds.pb.go b/api/managementpb/rds.pb.go index 6d350d04fd..b93e50e43b 100644 --- a/api/managementpb/rds.pb.go +++ b/api/managementpb/rds.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/rds.proto @@ -975,7 +975,7 @@ func file_managementpb_rds_proto_rawDescGZIP() []byte { var ( file_managementpb_rds_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_rds_proto_msgTypes = make([]protoimpl.MessageInfo, 6) - file_managementpb_rds_proto_goTypes = []interface{}{ + file_managementpb_rds_proto_goTypes = []any{ (DiscoverRDSEngine)(0), // 0: management.DiscoverRDSEngine (*DiscoverRDSInstance)(nil), // 1: management.DiscoverRDSInstance (*DiscoverRDSRequest)(nil), // 2: management.DiscoverRDSRequest @@ -1027,7 +1027,7 @@ func file_managementpb_rds_proto_init() { } file_managementpb_metrics_proto_init() if !protoimpl.UnsafeEnabled { - file_managementpb_rds_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_rds_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*DiscoverRDSInstance); i { case 0: return &v.state @@ -1039,7 +1039,7 @@ func file_managementpb_rds_proto_init() { return nil } } - file_managementpb_rds_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_rds_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*DiscoverRDSRequest); i { case 0: return &v.state @@ -1051,7 +1051,7 @@ func file_managementpb_rds_proto_init() { return nil } } - file_managementpb_rds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_rds_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*DiscoverRDSResponse); i { case 0: return &v.state @@ -1063,7 +1063,7 @@ func file_managementpb_rds_proto_init() { return nil } } - file_managementpb_rds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_rds_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*AddRDSRequest); i { case 0: return &v.state @@ -1075,7 +1075,7 @@ func file_managementpb_rds_proto_init() { return nil } } - file_managementpb_rds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_rds_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*AddRDSResponse); i { case 0: return &v.state diff --git a/api/managementpb/role/role.pb.go b/api/managementpb/role/role.pb.go index bd246884da..6bf69db813 100644 --- a/api/managementpb/role/role.pb.go +++ b/api/managementpb/role/role.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/role/role.proto @@ -967,7 +967,7 @@ func file_managementpb_role_role_proto_rawDescGZIP() []byte { var ( file_managementpb_role_role_proto_msgTypes = make([]protoimpl.MessageInfo, 15) - file_managementpb_role_role_proto_goTypes = []interface{}{ + file_managementpb_role_role_proto_goTypes = []any{ (*CreateRoleRequest)(nil), // 0: role.v1beta1.CreateRoleRequest (*CreateRoleResponse)(nil), // 1: role.v1beta1.CreateRoleResponse (*UpdateRoleRequest)(nil), // 2: role.v1beta1.UpdateRoleRequest @@ -1015,7 +1015,7 @@ func file_managementpb_role_role_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_role_role_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*CreateRoleRequest); i { case 0: return &v.state @@ -1027,7 +1027,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*CreateRoleResponse); i { case 0: return &v.state @@ -1039,7 +1039,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*UpdateRoleRequest); i { case 0: return &v.state @@ -1051,7 +1051,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*UpdateRoleResponse); i { case 0: return &v.state @@ -1063,7 +1063,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*DeleteRoleRequest); i { case 0: return &v.state @@ -1075,7 +1075,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*DeleteRoleResponse); i { case 0: return &v.state @@ -1087,7 +1087,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*GetRoleRequest); i { case 0: return &v.state @@ -1099,7 +1099,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*GetRoleResponse); i { case 0: return &v.state @@ -1111,7 +1111,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*SetDefaultRoleRequest); i { case 0: return &v.state @@ -1123,7 +1123,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*SetDefaultRoleResponse); i { case 0: return &v.state @@ -1135,7 +1135,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*AssignRolesRequest); i { case 0: return &v.state @@ -1147,7 +1147,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*AssignRolesResponse); i { case 0: return &v.state @@ -1159,7 +1159,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*ListRolesRequest); i { case 0: return &v.state @@ -1171,7 +1171,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*ListRolesResponse); i { case 0: return &v.state @@ -1183,7 +1183,7 @@ func file_managementpb_role_role_proto_init() { return nil } } - file_managementpb_role_role_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_role_role_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*ListRolesResponse_RoleData); i { case 0: return &v.state diff --git a/api/managementpb/service.pb.go b/api/managementpb/service.pb.go index 6285fdea0d..2bd52da246 100644 --- a/api/managementpb/service.pb.go +++ b/api/managementpb/service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/service.proto @@ -354,7 +354,7 @@ func file_managementpb_service_proto_rawDescGZIP() []byte { var ( file_managementpb_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4) - file_managementpb_service_proto_goTypes = []interface{}{ + file_managementpb_service_proto_goTypes = []any{ (*AddNodeParams)(nil), // 0: management.AddNodeParams (*RemoveServiceRequest)(nil), // 1: management.RemoveServiceRequest (*RemoveServiceResponse)(nil), // 2: management.RemoveServiceResponse @@ -383,7 +383,7 @@ func file_managementpb_service_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AddNodeParams); i { case 0: return &v.state @@ -395,7 +395,7 @@ func file_managementpb_service_proto_init() { return nil } } - file_managementpb_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*RemoveServiceRequest); i { case 0: return &v.state @@ -407,7 +407,7 @@ func file_managementpb_service_proto_init() { return nil } } - file_managementpb_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*RemoveServiceResponse); i { case 0: return &v.state diff --git a/api/managementpb/service/service.pb.go b/api/managementpb/service/service.pb.go index 58428f7799..0775fbb609 100644 --- a/api/managementpb/service/service.pb.go +++ b/api/managementpb/service/service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/service/service.proto @@ -543,7 +543,7 @@ func file_managementpb_service_service_proto_rawDescGZIP() []byte { var ( file_managementpb_service_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) file_managementpb_service_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4) - file_managementpb_service_service_proto_goTypes = []interface{}{ + file_managementpb_service_service_proto_goTypes = []any{ (UniversalService_Status)(0), // 0: service.v1beta1.UniversalService.Status (*UniversalService)(nil), // 1: service.v1beta1.UniversalService (*ListServiceRequest)(nil), // 2: service.v1beta1.ListServiceRequest @@ -578,7 +578,7 @@ func file_managementpb_service_service_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_managementpb_service_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_service_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*UniversalService); i { case 0: return &v.state @@ -590,7 +590,7 @@ func file_managementpb_service_service_proto_init() { return nil } } - file_managementpb_service_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_service_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListServiceRequest); i { case 0: return &v.state @@ -602,7 +602,7 @@ func file_managementpb_service_service_proto_init() { return nil } } - file_managementpb_service_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_managementpb_service_service_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListServiceResponse); i { case 0: return &v.state diff --git a/api/managementpb/severity.pb.go b/api/managementpb/severity.pb.go index cb8af63f07..096e764c2a 100644 --- a/api/managementpb/severity.pb.go +++ b/api/managementpb/severity.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: managementpb/severity.proto @@ -133,7 +133,7 @@ func file_managementpb_severity_proto_rawDescGZIP() []byte { var ( file_managementpb_severity_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_managementpb_severity_proto_goTypes = []interface{}{ + file_managementpb_severity_proto_goTypes = []any{ (Severity)(0), // 0: management.Severity } ) diff --git a/api/platformpb/platform.pb.go b/api/platformpb/platform.pb.go index f65138ae3e..326da2b1e5 100644 --- a/api/platformpb/platform.pb.go +++ b/api/platformpb/platform.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: platformpb/platform.proto @@ -1363,7 +1363,7 @@ func file_platformpb_platform_proto_rawDescGZIP() []byte { var ( file_platformpb_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 18) - file_platformpb_platform_proto_goTypes = []interface{}{ + file_platformpb_platform_proto_goTypes = []any{ (*ConnectRequest)(nil), // 0: platform.ConnectRequest (*ConnectResponse)(nil), // 1: platform.ConnectResponse (*DisconnectRequest)(nil), // 2: platform.DisconnectRequest @@ -1429,7 +1429,7 @@ func file_platformpb_platform_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_platformpb_platform_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ConnectRequest); i { case 0: return &v.state @@ -1441,7 +1441,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ConnectResponse); i { case 0: return &v.state @@ -1453,7 +1453,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*DisconnectRequest); i { case 0: return &v.state @@ -1465,7 +1465,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*DisconnectResponse); i { case 0: return &v.state @@ -1477,7 +1477,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*SearchOrganizationTicketsRequest); i { case 0: return &v.state @@ -1489,7 +1489,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*SearchOrganizationTicketsResponse); i { case 0: return &v.state @@ -1501,7 +1501,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*OrganizationTicket); i { case 0: return &v.state @@ -1513,7 +1513,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*SearchOrganizationEntitlementsRequest); i { case 0: return &v.state @@ -1525,7 +1525,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*SearchOrganizationEntitlementsResponse); i { case 0: return &v.state @@ -1537,7 +1537,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*OrganizationEntitlement); i { case 0: return &v.state @@ -1549,7 +1549,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*GetContactInformationRequest); i { case 0: return &v.state @@ -1561,7 +1561,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*GetContactInformationResponse); i { case 0: return &v.state @@ -1573,7 +1573,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*ServerInfoRequest); i { case 0: return &v.state @@ -1585,7 +1585,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*ServerInfoResponse); i { case 0: return &v.state @@ -1597,7 +1597,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*UserStatusRequest); i { case 0: return &v.state @@ -1609,7 +1609,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*UserStatusResponse); i { case 0: return &v.state @@ -1621,7 +1621,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*OrganizationEntitlement_Platform); i { case 0: return &v.state @@ -1633,7 +1633,7 @@ func file_platformpb_platform_proto_init() { return nil } } - file_platformpb_platform_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_platformpb_platform_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*GetContactInformationResponse_CustomerSuccess); i { case 0: return &v.state diff --git a/api/qanpb/collector.pb.go b/api/qanpb/collector.pb.go index 560df94e47..426fd33b0f 100644 --- a/api/qanpb/collector.pb.go +++ b/api/qanpb/collector.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/collector.proto @@ -2719,7 +2719,7 @@ func file_qanpb_collector_proto_rawDescGZIP() []byte { var ( file_qanpb_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 6) - file_qanpb_collector_proto_goTypes = []interface{}{ + file_qanpb_collector_proto_goTypes = []any{ (*CollectRequest)(nil), // 0: qan.v1beta1.CollectRequest (*MetricsBucket)(nil), // 1: qan.v1beta1.MetricsBucket (*CollectResponse)(nil), // 2: qan.v1beta1.CollectResponse @@ -2756,7 +2756,7 @@ func file_qanpb_collector_proto_init() { } file_qanpb_qan_proto_init() if !protoimpl.UnsafeEnabled { - file_qanpb_collector_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_collector_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*CollectRequest); i { case 0: return &v.state @@ -2768,7 +2768,7 @@ func file_qanpb_collector_proto_init() { return nil } } - file_qanpb_collector_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_collector_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*MetricsBucket); i { case 0: return &v.state @@ -2780,7 +2780,7 @@ func file_qanpb_collector_proto_init() { return nil } } - file_qanpb_collector_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_collector_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*CollectResponse); i { case 0: return &v.state diff --git a/api/qanpb/filters.pb.go b/api/qanpb/filters.pb.go index cfeeac82aa..46984fceae 100644 --- a/api/qanpb/filters.pb.go +++ b/api/qanpb/filters.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/filters.proto @@ -337,7 +337,7 @@ func file_qanpb_filters_proto_rawDescGZIP() []byte { var ( file_qanpb_filters_proto_msgTypes = make([]protoimpl.MessageInfo, 5) - file_qanpb_filters_proto_goTypes = []interface{}{ + file_qanpb_filters_proto_goTypes = []any{ (*FiltersRequest)(nil), // 0: qan.v1beta1.FiltersRequest (*FiltersReply)(nil), // 1: qan.v1beta1.FiltersReply (*ListLabels)(nil), // 2: qan.v1beta1.ListLabels @@ -371,7 +371,7 @@ func file_qanpb_filters_proto_init() { } file_qanpb_qan_proto_init() if !protoimpl.UnsafeEnabled { - file_qanpb_filters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_filters_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*FiltersRequest); i { case 0: return &v.state @@ -383,7 +383,7 @@ func file_qanpb_filters_proto_init() { return nil } } - file_qanpb_filters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_filters_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*FiltersReply); i { case 0: return &v.state @@ -395,7 +395,7 @@ func file_qanpb_filters_proto_init() { return nil } } - file_qanpb_filters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_filters_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ListLabels); i { case 0: return &v.state @@ -407,7 +407,7 @@ func file_qanpb_filters_proto_init() { return nil } } - file_qanpb_filters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_filters_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*Values); i { case 0: return &v.state diff --git a/api/qanpb/metrics_names.pb.go b/api/qanpb/metrics_names.pb.go index b466715337..8b0b9aedb7 100644 --- a/api/qanpb/metrics_names.pb.go +++ b/api/qanpb/metrics_names.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/metrics_names.proto @@ -164,7 +164,7 @@ func file_qanpb_metrics_names_proto_rawDescGZIP() []byte { var ( file_qanpb_metrics_names_proto_msgTypes = make([]protoimpl.MessageInfo, 3) - file_qanpb_metrics_names_proto_goTypes = []interface{}{ + file_qanpb_metrics_names_proto_goTypes = []any{ (*MetricsNamesRequest)(nil), // 0: qan.v1beta1.MetricsNamesRequest (*MetricsNamesReply)(nil), // 1: qan.v1beta1.MetricsNamesReply nil, // 2: qan.v1beta1.MetricsNamesReply.DataEntry @@ -188,7 +188,7 @@ func file_qanpb_metrics_names_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_qanpb_metrics_names_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_metrics_names_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*MetricsNamesRequest); i { case 0: return &v.state @@ -200,7 +200,7 @@ func file_qanpb_metrics_names_proto_init() { return nil } } - file_qanpb_metrics_names_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_metrics_names_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*MetricsNamesReply); i { case 0: return &v.state diff --git a/api/qanpb/object_details.pb.go b/api/qanpb/object_details.pb.go index ccb598cb01..ece89214b0 100644 --- a/api/qanpb/object_details.pb.go +++ b/api/qanpb/object_details.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/object_details.proto @@ -1851,7 +1851,7 @@ func file_qanpb_object_details_proto_rawDescGZIP() []byte { var ( file_qanpb_object_details_proto_msgTypes = make([]protoimpl.MessageInfo, 25) - file_qanpb_object_details_proto_goTypes = []interface{}{ + file_qanpb_object_details_proto_goTypes = []any{ (*MetricsRequest)(nil), // 0: qan.v1beta1.MetricsRequest (*MetricsReply)(nil), // 1: qan.v1beta1.MetricsReply (*MetricValues)(nil), // 2: qan.v1beta1.MetricValues @@ -1941,7 +1941,7 @@ func file_qanpb_object_details_proto_init() { } file_qanpb_qan_proto_init() if !protoimpl.UnsafeEnabled { - file_qanpb_object_details_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*MetricsRequest); i { case 0: return &v.state @@ -1953,7 +1953,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*MetricsReply); i { case 0: return &v.state @@ -1965,7 +1965,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*MetricValues); i { case 0: return &v.state @@ -1977,7 +1977,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*Labels); i { case 0: return &v.state @@ -1989,7 +1989,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*QueryExampleRequest); i { case 0: return &v.state @@ -2001,7 +2001,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*QueryExampleReply); i { case 0: return &v.state @@ -2013,7 +2013,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*QueryExample); i { case 0: return &v.state @@ -2025,7 +2025,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*ObjectDetailsLabelsRequest); i { case 0: return &v.state @@ -2037,7 +2037,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*ObjectDetailsLabelsReply); i { case 0: return &v.state @@ -2049,7 +2049,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*ListLabelValues); i { case 0: return &v.state @@ -2061,7 +2061,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*QueryPlanRequest); i { case 0: return &v.state @@ -2073,7 +2073,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*QueryPlanReply); i { case 0: return &v.state @@ -2085,7 +2085,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*HistogramRequest); i { case 0: return &v.state @@ -2097,7 +2097,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*HistogramReply); i { case 0: return &v.state @@ -2109,7 +2109,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*HistogramItem); i { case 0: return &v.state @@ -2121,7 +2121,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*QueryExistsRequest); i { case 0: return &v.state @@ -2133,7 +2133,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*SchemaByQueryIDRequest); i { case 0: return &v.state @@ -2145,7 +2145,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*SchemaByQueryIDReply); i { case 0: return &v.state @@ -2157,7 +2157,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*ExplainFingerprintByQueryIDRequest); i { case 0: return &v.state @@ -2169,7 +2169,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*ExplainFingerprintByQueryIDReply); i { case 0: return &v.state @@ -2181,7 +2181,7 @@ func file_qanpb_object_details_proto_init() { return nil } } - file_qanpb_object_details_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_object_details_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*GetSelectedQueryMetadataReply); i { case 0: return &v.state diff --git a/api/qanpb/profile.pb.go b/api/qanpb/profile.pb.go index 2843a86a92..c59103d912 100644 --- a/api/qanpb/profile.pb.go +++ b/api/qanpb/profile.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/profile.proto @@ -653,7 +653,7 @@ func file_qanpb_profile_proto_rawDescGZIP() []byte { var ( file_qanpb_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 7) - file_qanpb_profile_proto_goTypes = []interface{}{ + file_qanpb_profile_proto_goTypes = []any{ (*ReportRequest)(nil), // 0: qan.v1beta1.ReportRequest (*ReportMapFieldEntry)(nil), // 1: qan.v1beta1.ReportMapFieldEntry (*ReportReply)(nil), // 2: qan.v1beta1.ReportReply @@ -691,7 +691,7 @@ func file_qanpb_profile_proto_init() { } file_qanpb_qan_proto_init() if !protoimpl.UnsafeEnabled { - file_qanpb_profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ReportRequest); i { case 0: return &v.state @@ -703,7 +703,7 @@ func file_qanpb_profile_proto_init() { return nil } } - file_qanpb_profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ReportMapFieldEntry); i { case 0: return &v.state @@ -715,7 +715,7 @@ func file_qanpb_profile_proto_init() { return nil } } - file_qanpb_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ReportReply); i { case 0: return &v.state @@ -727,7 +727,7 @@ func file_qanpb_profile_proto_init() { return nil } } - file_qanpb_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*Row); i { case 0: return &v.state @@ -739,7 +739,7 @@ func file_qanpb_profile_proto_init() { return nil } } - file_qanpb_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*Metric); i { case 0: return &v.state @@ -751,7 +751,7 @@ func file_qanpb_profile_proto_init() { return nil } } - file_qanpb_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_profile_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*Stat); i { case 0: return &v.state diff --git a/api/qanpb/qan.pb.go b/api/qanpb/qan.pb.go index eb1fb80d7d..8ecf238221 100644 --- a/api/qanpb/qan.pb.go +++ b/api/qanpb/qan.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: qanpb/qan.proto @@ -1072,7 +1072,7 @@ func file_qanpb_qan_proto_rawDescGZIP() []byte { var ( file_qanpb_qan_proto_enumTypes = make([]protoimpl.EnumInfo, 2) file_qanpb_qan_proto_msgTypes = make([]protoimpl.MessageInfo, 2) - file_qanpb_qan_proto_goTypes = []interface{}{ + file_qanpb_qan_proto_goTypes = []any{ (ExampleFormat)(0), // 0: qan.v1beta1.ExampleFormat (ExampleType)(0), // 1: qan.v1beta1.ExampleType (*Point)(nil), // 2: qan.v1beta1.Point @@ -1094,7 +1094,7 @@ func file_qanpb_qan_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_qanpb_qan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_qan_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Point); i { case 0: return &v.state @@ -1106,7 +1106,7 @@ func file_qanpb_qan_proto_init() { return nil } } - file_qanpb_qan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_qanpb_qan_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*MapFieldEntry); i { case 0: return &v.state diff --git a/api/serverpb/httperror.pb.go b/api/serverpb/httperror.pb.go index e238075af4..de03a86510 100644 --- a/api/serverpb/httperror.pb.go +++ b/api/serverpb/httperror.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: serverpb/httperror.proto @@ -137,7 +137,7 @@ func file_serverpb_httperror_proto_rawDescGZIP() []byte { var ( file_serverpb_httperror_proto_msgTypes = make([]protoimpl.MessageInfo, 1) - file_serverpb_httperror_proto_goTypes = []interface{}{ + file_serverpb_httperror_proto_goTypes = []any{ (*HttpError)(nil), // 0: server.HttpError (*anypb.Any)(nil), // 1: google.protobuf.Any } @@ -158,7 +158,7 @@ func file_serverpb_httperror_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_serverpb_httperror_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_httperror_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*HttpError); i { case 0: return &v.state diff --git a/api/serverpb/json/client/server/check_updates_responses.go b/api/serverpb/json/client/server/check_updates_responses.go index 93cda62aae..fb791b2c07 100644 --- a/api/serverpb/json/client/server/check_updates_responses.go +++ b/api/serverpb/json/client/server/check_updates_responses.go @@ -637,17 +637,17 @@ func (o *CheckUpdatesOKBodyInstalled) UnmarshalBinary(b []byte) error { } /* -CheckUpdatesOKBodyLatest VersionInfo describes component version, or PMM Server as a whole. +CheckUpdatesOKBodyLatest check updates OK body latest swagger:model CheckUpdatesOKBodyLatest */ type CheckUpdatesOKBodyLatest struct { - // User-visible version. + // PMM Version. Version string `json:"version,omitempty"` - // Full version for debugging. - FullVersion string `json:"full_version,omitempty"` + // Docker image tag. + Tag string `json:"tag,omitempty"` - // Build or release date. + // Release date. // Format: date-time Timestamp strfmt.DateTime `json:"timestamp,omitempty"` } diff --git a/api/serverpb/json/serverpb.json b/api/serverpb/json/serverpb.json index 3c3baa749c..f425d7fc35 100644 --- a/api/serverpb/json/serverpb.json +++ b/api/serverpb/json/serverpb.json @@ -720,22 +720,21 @@ "x-order": 4 }, "latest": { - "description": "VersionInfo describes component version, or PMM Server as a whole.", "type": "object", "properties": { - "full_version": { - "description": "Full version for debugging.", + "tag": { + "description": "Docker image tag.", "type": "string", "x-order": 1 }, "timestamp": { - "description": "Build or release date.", + "description": "Release date.", "type": "string", "format": "date-time", "x-order": 2 }, "version": { - "description": "User-visible version.", + "description": "PMM Version.", "type": "string", "x-order": 0 } diff --git a/api/serverpb/server.pb.go b/api/serverpb/server.pb.go index ead8dcae93..427155434a 100644 --- a/api/serverpb/server.pb.go +++ b/api/serverpb/server.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: serverpb/server.proto @@ -484,6 +484,72 @@ func (x *CheckUpdatesRequest) GetOnlyInstalledVersion() bool { return false } +type DockerVersionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // PMM Version. + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Docker image tag. + Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` + // Release date. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *DockerVersionInfo) Reset() { + *x = DockerVersionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_serverpb_server_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DockerVersionInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DockerVersionInfo) ProtoMessage() {} + +func (x *DockerVersionInfo) ProtoReflect() protoreflect.Message { + mi := &file_serverpb_server_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DockerVersionInfo.ProtoReflect.Descriptor instead. +func (*DockerVersionInfo) Descriptor() ([]byte, []int) { + return file_serverpb_server_proto_rawDescGZIP(), []int{8} +} + +func (x *DockerVersionInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *DockerVersionInfo) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *DockerVersionInfo) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + type CheckUpdatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -492,7 +558,7 @@ type CheckUpdatesResponse struct { // Currently installed PMM Server version. Installed *VersionInfo `protobuf:"bytes,1,opt,name=installed,proto3" json:"installed,omitempty"` // Latest available PMM Server version. - Latest *VersionInfo `protobuf:"bytes,2,opt,name=latest,proto3" json:"latest,omitempty"` + Latest *DockerVersionInfo `protobuf:"bytes,2,opt,name=latest,proto3" json:"latest,omitempty"` // True if there is a PMM Server update available. UpdateAvailable bool `protobuf:"varint,3,opt,name=update_available,json=updateAvailable,proto3" json:"update_available,omitempty"` // Latest available PMM Server release announcement URL. @@ -504,7 +570,7 @@ type CheckUpdatesResponse struct { func (x *CheckUpdatesResponse) Reset() { *x = CheckUpdatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[8] + mi := &file_serverpb_server_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -517,7 +583,7 @@ func (x *CheckUpdatesResponse) String() string { func (*CheckUpdatesResponse) ProtoMessage() {} func (x *CheckUpdatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[8] + mi := &file_serverpb_server_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -530,7 +596,7 @@ func (x *CheckUpdatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckUpdatesResponse.ProtoReflect.Descriptor instead. func (*CheckUpdatesResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{8} + return file_serverpb_server_proto_rawDescGZIP(), []int{9} } func (x *CheckUpdatesResponse) GetInstalled() *VersionInfo { @@ -540,7 +606,7 @@ func (x *CheckUpdatesResponse) GetInstalled() *VersionInfo { return nil } -func (x *CheckUpdatesResponse) GetLatest() *VersionInfo { +func (x *CheckUpdatesResponse) GetLatest() *DockerVersionInfo { if x != nil { return x.Latest } @@ -579,7 +645,7 @@ type StartUpdateRequest struct { func (x *StartUpdateRequest) Reset() { *x = StartUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[9] + mi := &file_serverpb_server_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -592,7 +658,7 @@ func (x *StartUpdateRequest) String() string { func (*StartUpdateRequest) ProtoMessage() {} func (x *StartUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[9] + mi := &file_serverpb_server_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -605,7 +671,7 @@ func (x *StartUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartUpdateRequest.ProtoReflect.Descriptor instead. func (*StartUpdateRequest) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{9} + return file_serverpb_server_proto_rawDescGZIP(), []int{10} } func (x *StartUpdateRequest) GetNewImage() string { @@ -629,7 +695,7 @@ type StartUpdateResponse struct { func (x *StartUpdateResponse) Reset() { *x = StartUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[10] + mi := &file_serverpb_server_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -642,7 +708,7 @@ func (x *StartUpdateResponse) String() string { func (*StartUpdateResponse) ProtoMessage() {} func (x *StartUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[10] + mi := &file_serverpb_server_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -655,7 +721,7 @@ func (x *StartUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartUpdateResponse.ProtoReflect.Descriptor instead. func (*StartUpdateResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{10} + return file_serverpb_server_proto_rawDescGZIP(), []int{11} } func (x *StartUpdateResponse) GetAuthToken() string { @@ -686,7 +752,7 @@ type UpdateStatusRequest struct { func (x *UpdateStatusRequest) Reset() { *x = UpdateStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[11] + mi := &file_serverpb_server_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -699,7 +765,7 @@ func (x *UpdateStatusRequest) String() string { func (*UpdateStatusRequest) ProtoMessage() {} func (x *UpdateStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[11] + mi := &file_serverpb_server_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -712,7 +778,7 @@ func (x *UpdateStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStatusRequest.ProtoReflect.Descriptor instead. func (*UpdateStatusRequest) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{11} + return file_serverpb_server_proto_rawDescGZIP(), []int{12} } func (x *UpdateStatusRequest) GetAuthToken() string { @@ -745,7 +811,7 @@ type UpdateStatusResponse struct { func (x *UpdateStatusResponse) Reset() { *x = UpdateStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[12] + mi := &file_serverpb_server_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -758,7 +824,7 @@ func (x *UpdateStatusResponse) String() string { func (*UpdateStatusResponse) ProtoMessage() {} func (x *UpdateStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[12] + mi := &file_serverpb_server_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -771,7 +837,7 @@ func (x *UpdateStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStatusResponse.ProtoReflect.Descriptor instead. func (*UpdateStatusResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{12} + return file_serverpb_server_proto_rawDescGZIP(), []int{13} } func (x *UpdateStatusResponse) GetLogLines() []string { @@ -812,7 +878,7 @@ type MetricsResolutions struct { func (x *MetricsResolutions) Reset() { *x = MetricsResolutions{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[13] + mi := &file_serverpb_server_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -825,7 +891,7 @@ func (x *MetricsResolutions) String() string { func (*MetricsResolutions) ProtoMessage() {} func (x *MetricsResolutions) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[13] + mi := &file_serverpb_server_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -838,7 +904,7 @@ func (x *MetricsResolutions) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricsResolutions.ProtoReflect.Descriptor instead. func (*MetricsResolutions) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{13} + return file_serverpb_server_proto_rawDescGZIP(), []int{14} } func (x *MetricsResolutions) GetHr() *durationpb.Duration { @@ -879,7 +945,7 @@ type STTCheckIntervals struct { func (x *STTCheckIntervals) Reset() { *x = STTCheckIntervals{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[14] + mi := &file_serverpb_server_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -892,7 +958,7 @@ func (x *STTCheckIntervals) String() string { func (*STTCheckIntervals) ProtoMessage() {} func (x *STTCheckIntervals) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[14] + mi := &file_serverpb_server_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -905,7 +971,7 @@ func (x *STTCheckIntervals) ProtoReflect() protoreflect.Message { // Deprecated: Use STTCheckIntervals.ProtoReflect.Descriptor instead. func (*STTCheckIntervals) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{14} + return file_serverpb_server_proto_rawDescGZIP(), []int{15} } func (x *STTCheckIntervals) GetStandardInterval() *durationpb.Duration { @@ -970,7 +1036,7 @@ type Settings struct { func (x *Settings) Reset() { *x = Settings{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[15] + mi := &file_serverpb_server_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -983,7 +1049,7 @@ func (x *Settings) String() string { func (*Settings) ProtoMessage() {} func (x *Settings) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[15] + mi := &file_serverpb_server_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -996,7 +1062,7 @@ func (x *Settings) ProtoReflect() protoreflect.Message { // Deprecated: Use Settings.ProtoReflect.Descriptor instead. func (*Settings) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{15} + return file_serverpb_server_proto_rawDescGZIP(), []int{16} } func (x *Settings) GetUpdatesDisabled() bool { @@ -1127,7 +1193,7 @@ type GetSettingsRequest struct { func (x *GetSettingsRequest) Reset() { *x = GetSettingsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[16] + mi := &file_serverpb_server_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1140,7 +1206,7 @@ func (x *GetSettingsRequest) String() string { func (*GetSettingsRequest) ProtoMessage() {} func (x *GetSettingsRequest) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[16] + mi := &file_serverpb_server_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1153,7 +1219,7 @@ func (x *GetSettingsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSettingsRequest.ProtoReflect.Descriptor instead. func (*GetSettingsRequest) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{16} + return file_serverpb_server_proto_rawDescGZIP(), []int{17} } type GetSettingsResponse struct { @@ -1167,7 +1233,7 @@ type GetSettingsResponse struct { func (x *GetSettingsResponse) Reset() { *x = GetSettingsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[17] + mi := &file_serverpb_server_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1180,7 +1246,7 @@ func (x *GetSettingsResponse) String() string { func (*GetSettingsResponse) ProtoMessage() {} func (x *GetSettingsResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[17] + mi := &file_serverpb_server_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1193,7 +1259,7 @@ func (x *GetSettingsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSettingsResponse.ProtoReflect.Descriptor instead. func (*GetSettingsResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{17} + return file_serverpb_server_proto_rawDescGZIP(), []int{18} } func (x *GetSettingsResponse) GetSettings() *Settings { @@ -1247,7 +1313,7 @@ type ChangeSettingsRequest struct { func (x *ChangeSettingsRequest) Reset() { *x = ChangeSettingsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[18] + mi := &file_serverpb_server_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1260,7 +1326,7 @@ func (x *ChangeSettingsRequest) String() string { func (*ChangeSettingsRequest) ProtoMessage() {} func (x *ChangeSettingsRequest) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[18] + mi := &file_serverpb_server_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1273,7 +1339,7 @@ func (x *ChangeSettingsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeSettingsRequest.ProtoReflect.Descriptor instead. func (*ChangeSettingsRequest) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{18} + return file_serverpb_server_proto_rawDescGZIP(), []int{19} } func (x *ChangeSettingsRequest) GetEnableUpdates() bool { @@ -1434,7 +1500,7 @@ type ChangeSettingsResponse struct { func (x *ChangeSettingsResponse) Reset() { *x = ChangeSettingsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[19] + mi := &file_serverpb_server_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1447,7 +1513,7 @@ func (x *ChangeSettingsResponse) String() string { func (*ChangeSettingsResponse) ProtoMessage() {} func (x *ChangeSettingsResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[19] + mi := &file_serverpb_server_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1460,7 +1526,7 @@ func (x *ChangeSettingsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeSettingsResponse.ProtoReflect.Descriptor instead. func (*ChangeSettingsResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{19} + return file_serverpb_server_proto_rawDescGZIP(), []int{20} } func (x *ChangeSettingsResponse) GetSettings() *Settings { @@ -1482,7 +1548,7 @@ type AWSInstanceCheckRequest struct { func (x *AWSInstanceCheckRequest) Reset() { *x = AWSInstanceCheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[20] + mi := &file_serverpb_server_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1495,7 +1561,7 @@ func (x *AWSInstanceCheckRequest) String() string { func (*AWSInstanceCheckRequest) ProtoMessage() {} func (x *AWSInstanceCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[20] + mi := &file_serverpb_server_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1508,7 +1574,7 @@ func (x *AWSInstanceCheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AWSInstanceCheckRequest.ProtoReflect.Descriptor instead. func (*AWSInstanceCheckRequest) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{20} + return file_serverpb_server_proto_rawDescGZIP(), []int{21} } func (x *AWSInstanceCheckRequest) GetInstanceId() string { @@ -1527,7 +1593,7 @@ type AWSInstanceCheckResponse struct { func (x *AWSInstanceCheckResponse) Reset() { *x = AWSInstanceCheckResponse{} if protoimpl.UnsafeEnabled { - mi := &file_serverpb_server_proto_msgTypes[21] + mi := &file_serverpb_server_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1540,7 +1606,7 @@ func (x *AWSInstanceCheckResponse) String() string { func (*AWSInstanceCheckResponse) ProtoMessage() {} func (x *AWSInstanceCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_serverpb_server_proto_msgTypes[21] + mi := &file_serverpb_server_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1553,7 +1619,7 @@ func (x *AWSInstanceCheckResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AWSInstanceCheckResponse.ProtoReflect.Descriptor instead. func (*AWSInstanceCheckResponse) Descriptor() ([]byte, []int) { - return file_serverpb_server_proto_rawDescGZIP(), []int{21} + return file_serverpb_server_proto_rawDescGZIP(), []int{22} } var File_serverpb_server_proto protoreflect.FileDescriptor @@ -1608,324 +1674,332 @@ var file_serverpb_server_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6f, 0x6e, 0x6c, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2b, - 0x0a, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x5f, 0x6e, 0x65, 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x39, - 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x31, 0x0a, 0x12, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x53, 0x0a, 0x13, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x22, 0x53, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x67, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x66, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, - 0x6f, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x6c, 0x6f, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, - 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x22, 0x95, - 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x02, 0x68, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x68, 0x72, - 0x12, 0x29, 0x0a, 0x02, 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x11, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x74, 0x61, 0x67, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x8a, 0x02, + 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x73, 0x55, 0x72, 0x6c, 0x12, + 0x39, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x31, 0x0a, 0x12, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x53, 0x0a, + 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x22, 0x53, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, + 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x66, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x22, + 0x95, 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x02, 0x68, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x68, + 0x72, 0x12, 0x29, 0x0a, 0x02, 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6d, 0x72, 0x12, 0x29, 0x0a, 0x02, + 0x6c, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x72, 0x22, 0xe3, 0x01, 0x0a, 0x11, 0x53, 0x54, 0x54, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x46, 0x0a, + 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x0d, 0x72, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6d, 0x72, 0x12, 0x29, 0x0a, 0x02, 0x6c, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x72, 0x22, 0xe3, 0x01, 0x0a, 0x11, 0x53, 0x54, 0x54, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x46, 0x0a, 0x11, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x11, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x66, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xe7, 0x06, + 0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x40, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x0d, 0x72, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x11, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x66, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xe7, 0x06, 0x0a, - 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x4b, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, - 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x17, 0x0a, 0x07, 0x73, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x77, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x65, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6d, 0x6d, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x70, 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x49, 0x0a, 0x13, 0x73, 0x74, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x54, 0x54, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x52, 0x11, 0x73, 0x74, 0x74, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x19, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x17, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, - 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, - 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x4a, 0x04, - 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, - 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x22, 0xce, 0x08, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x77, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, - 0x74, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x65, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6d, 0x6d, 0x5f, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x70, 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, - 0x6d, 0x6d, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x49, 0x0a, 0x13, 0x73, 0x74, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x54, 0x54, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x52, 0x11, 0x73, 0x74, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, - 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x34, 0x0a, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, - 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, - 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, 0x12, - 0x10, 0x13, 0x22, 0x46, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x43, 0x0a, 0x17, 0x41, 0x57, - 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, - 0x1a, 0x0a, 0x18, 0x41, 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x66, 0x0a, 0x12, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x01, 0x12, 0x07, - 0x0a, 0x03, 0x4f, 0x56, 0x46, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4d, 0x49, 0x10, 0x03, - 0x12, 0x09, 0x0a, 0x05, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x44, - 0x4f, 0x10, 0x05, 0x32, 0xe5, 0x0c, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x79, - 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x27, 0x12, - 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x1c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x73, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, - 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x9e, 0x02, 0x0a, 0x09, 0x52, 0x65, - 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, - 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, 0x92, - 0x41, 0xc5, 0x01, 0x12, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x1a, 0xaa, 0x01, 0x52, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x79, 0x20, 0x79, 0x65, 0x74, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x69, - 0x6e, 0x67, 0x20, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x7a, 0x12, 0xf7, 0x01, 0x0a, 0x11, 0x4c, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x12, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x79, 0x12, 0x10, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x20, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x1a, 0x65, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x2e, 0x20, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x69, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, - 0x76, 0x31, 0x2f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x58, 0x92, 0x41, 0x39, 0x12, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x1a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x2f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x29, 0x12, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x50, - 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x9d, 0x01, - 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x32, 0x12, 0x0d, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x21, 0x52, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9a, 0x01, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x34, 0x12, 0x0c, 0x47, 0x65, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x24, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x73, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, - 0x2f, 0x12, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x1a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x50, 0x4d, 0x4d, 0x20, + 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x77, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6d, 0x6d, 0x5f, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x70, 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x73, 0x74, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x54, 0x54, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x52, 0x11, 0x73, 0x74, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x3a, 0x0a, + 0x19, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x17, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, + 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x12, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x4a, + 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x0d, 0x10, + 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0xce, 0x08, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, + 0x61, 0x77, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, + 0x74, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x53, 0x74, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6d, 0x6d, 0x5f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, + 0x70, 0x6d, 0x6d, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x50, 0x6d, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x49, 0x0a, 0x13, 0x73, 0x74, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x54, 0x54, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x52, 0x11, 0x73, 0x74, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, + 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, + 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x34, 0x0a, + 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, + 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0f, 0x10, + 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, + 0x12, 0x10, 0x13, 0x22, 0x46, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, + 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x43, 0x0a, 0x17, 0x41, + 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, + 0x22, 0x1a, 0x0a, 0x18, 0x41, 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x66, 0x0a, 0x12, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x4f, 0x56, 0x46, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4d, 0x49, 0x10, + 0x03, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, + 0x44, 0x4f, 0x10, 0x05, 0x32, 0xe5, 0x0c, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, + 0x79, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x27, + 0x12, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x1c, 0x52, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x73, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, + 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x9e, 0x02, 0x0a, 0x09, 0x52, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, + 0x92, 0x41, 0xc5, 0x01, 0x12, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x1a, 0xaa, 0x01, 0x52, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x20, 0x79, 0x65, 0x74, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x62, + 0x69, 0x6e, 0x67, 0x20, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, + 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x7a, 0x12, 0xf7, 0x01, 0x0a, 0x11, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x12, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x79, 0x12, 0x10, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x20, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x1a, 0x65, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x2e, 0x20, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x69, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, + 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x58, 0x92, 0x41, 0x39, 0x12, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x50, 0x4d, 0x4d, 0x20, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x90, 0x01, 0x0a, 0x0b, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x29, 0x12, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, + 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, + 0x2f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x9d, + 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x32, 0x12, + 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x21, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9a, + 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x34, 0x12, 0x0c, 0x47, 0x65, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x24, 0x52, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x73, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x4d, 0x4d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xaa, - 0x01, 0x0a, 0x10, 0x41, 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x57, 0x53, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x57, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xa1, 0x01, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, + 0x41, 0x2f, 0x12, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x1a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x50, 0x4d, 0x4d, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0xaa, 0x01, 0x0a, 0x10, 0x41, 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x31, 0x12, 0x12, 0x41, 0x57, 0x53, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x1a, - 0x1b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x41, 0x57, 0x53, 0x20, 0x45, 0x43, 0x32, 0x20, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x41, 0x57, 0x53, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x76, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x70, 0x62, 0xa2, 0x02, 0x03, - 0x53, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0xca, 0x02, 0x06, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0xe2, 0x02, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, + 0x57, 0x53, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x31, 0x12, 0x12, 0x41, 0x57, + 0x53, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x1a, 0x1b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x41, 0x57, 0x53, 0x20, 0x45, 0x43, 0x32, + 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x41, 0x57, 0x53, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x76, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x0b, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, + 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x70, 0x62, 0xa2, 0x02, + 0x03, 0x53, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0xca, 0x02, 0x06, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0xe2, 0x02, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1942,8 +2016,8 @@ func file_serverpb_server_proto_rawDescGZIP() []byte { var ( file_serverpb_server_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_serverpb_server_proto_msgTypes = make([]protoimpl.MessageInfo, 22) - file_serverpb_server_proto_goTypes = []interface{}{ + file_serverpb_server_proto_msgTypes = make([]protoimpl.MessageInfo, 23) + file_serverpb_server_proto_goTypes = []any{ (DistributionMethod)(0), // 0: server.DistributionMethod (*VersionInfo)(nil), // 1: server.VersionInfo (*VersionRequest)(nil), // 2: server.VersionRequest @@ -1953,70 +2027,72 @@ var ( (*LeaderHealthCheckRequest)(nil), // 6: server.LeaderHealthCheckRequest (*LeaderHealthCheckResponse)(nil), // 7: server.LeaderHealthCheckResponse (*CheckUpdatesRequest)(nil), // 8: server.CheckUpdatesRequest - (*CheckUpdatesResponse)(nil), // 9: server.CheckUpdatesResponse - (*StartUpdateRequest)(nil), // 10: server.StartUpdateRequest - (*StartUpdateResponse)(nil), // 11: server.StartUpdateResponse - (*UpdateStatusRequest)(nil), // 12: server.UpdateStatusRequest - (*UpdateStatusResponse)(nil), // 13: server.UpdateStatusResponse - (*MetricsResolutions)(nil), // 14: server.MetricsResolutions - (*STTCheckIntervals)(nil), // 15: server.STTCheckIntervals - (*Settings)(nil), // 16: server.Settings - (*GetSettingsRequest)(nil), // 17: server.GetSettingsRequest - (*GetSettingsResponse)(nil), // 18: server.GetSettingsResponse - (*ChangeSettingsRequest)(nil), // 19: server.ChangeSettingsRequest - (*ChangeSettingsResponse)(nil), // 20: server.ChangeSettingsResponse - (*AWSInstanceCheckRequest)(nil), // 21: server.AWSInstanceCheckRequest - (*AWSInstanceCheckResponse)(nil), // 22: server.AWSInstanceCheckResponse - (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 24: google.protobuf.Duration + (*DockerVersionInfo)(nil), // 9: server.DockerVersionInfo + (*CheckUpdatesResponse)(nil), // 10: server.CheckUpdatesResponse + (*StartUpdateRequest)(nil), // 11: server.StartUpdateRequest + (*StartUpdateResponse)(nil), // 12: server.StartUpdateResponse + (*UpdateStatusRequest)(nil), // 13: server.UpdateStatusRequest + (*UpdateStatusResponse)(nil), // 14: server.UpdateStatusResponse + (*MetricsResolutions)(nil), // 15: server.MetricsResolutions + (*STTCheckIntervals)(nil), // 16: server.STTCheckIntervals + (*Settings)(nil), // 17: server.Settings + (*GetSettingsRequest)(nil), // 18: server.GetSettingsRequest + (*GetSettingsResponse)(nil), // 19: server.GetSettingsResponse + (*ChangeSettingsRequest)(nil), // 20: server.ChangeSettingsRequest + (*ChangeSettingsResponse)(nil), // 21: server.ChangeSettingsResponse + (*AWSInstanceCheckRequest)(nil), // 22: server.AWSInstanceCheckRequest + (*AWSInstanceCheckResponse)(nil), // 23: server.AWSInstanceCheckResponse + (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 25: google.protobuf.Duration } ) var file_serverpb_server_proto_depIdxs = []int32{ - 23, // 0: server.VersionInfo.timestamp:type_name -> google.protobuf.Timestamp + 24, // 0: server.VersionInfo.timestamp:type_name -> google.protobuf.Timestamp 1, // 1: server.VersionResponse.server:type_name -> server.VersionInfo 1, // 2: server.VersionResponse.managed:type_name -> server.VersionInfo 0, // 3: server.VersionResponse.distribution_method:type_name -> server.DistributionMethod - 1, // 4: server.CheckUpdatesResponse.installed:type_name -> server.VersionInfo - 1, // 5: server.CheckUpdatesResponse.latest:type_name -> server.VersionInfo - 23, // 6: server.CheckUpdatesResponse.last_check:type_name -> google.protobuf.Timestamp - 24, // 7: server.MetricsResolutions.hr:type_name -> google.protobuf.Duration - 24, // 8: server.MetricsResolutions.mr:type_name -> google.protobuf.Duration - 24, // 9: server.MetricsResolutions.lr:type_name -> google.protobuf.Duration - 24, // 10: server.STTCheckIntervals.standard_interval:type_name -> google.protobuf.Duration - 24, // 11: server.STTCheckIntervals.rare_interval:type_name -> google.protobuf.Duration - 24, // 12: server.STTCheckIntervals.frequent_interval:type_name -> google.protobuf.Duration - 14, // 13: server.Settings.metrics_resolutions:type_name -> server.MetricsResolutions - 24, // 14: server.Settings.data_retention:type_name -> google.protobuf.Duration - 15, // 15: server.Settings.stt_check_intervals:type_name -> server.STTCheckIntervals - 16, // 16: server.GetSettingsResponse.settings:type_name -> server.Settings - 14, // 17: server.ChangeSettingsRequest.metrics_resolutions:type_name -> server.MetricsResolutions - 24, // 18: server.ChangeSettingsRequest.data_retention:type_name -> google.protobuf.Duration - 15, // 19: server.ChangeSettingsRequest.stt_check_intervals:type_name -> server.STTCheckIntervals - 16, // 20: server.ChangeSettingsResponse.settings:type_name -> server.Settings - 2, // 21: server.Server.Version:input_type -> server.VersionRequest - 4, // 22: server.Server.Readiness:input_type -> server.ReadinessRequest - 6, // 23: server.Server.LeaderHealthCheck:input_type -> server.LeaderHealthCheckRequest - 8, // 24: server.Server.CheckUpdates:input_type -> server.CheckUpdatesRequest - 10, // 25: server.Server.StartUpdate:input_type -> server.StartUpdateRequest - 12, // 26: server.Server.UpdateStatus:input_type -> server.UpdateStatusRequest - 17, // 27: server.Server.GetSettings:input_type -> server.GetSettingsRequest - 19, // 28: server.Server.ChangeSettings:input_type -> server.ChangeSettingsRequest - 21, // 29: server.Server.AWSInstanceCheck:input_type -> server.AWSInstanceCheckRequest - 3, // 30: server.Server.Version:output_type -> server.VersionResponse - 5, // 31: server.Server.Readiness:output_type -> server.ReadinessResponse - 7, // 32: server.Server.LeaderHealthCheck:output_type -> server.LeaderHealthCheckResponse - 9, // 33: server.Server.CheckUpdates:output_type -> server.CheckUpdatesResponse - 11, // 34: server.Server.StartUpdate:output_type -> server.StartUpdateResponse - 13, // 35: server.Server.UpdateStatus:output_type -> server.UpdateStatusResponse - 18, // 36: server.Server.GetSettings:output_type -> server.GetSettingsResponse - 20, // 37: server.Server.ChangeSettings:output_type -> server.ChangeSettingsResponse - 22, // 38: server.Server.AWSInstanceCheck:output_type -> server.AWSInstanceCheckResponse - 30, // [30:39] is the sub-list for method output_type - 21, // [21:30] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 24, // 4: server.DockerVersionInfo.timestamp:type_name -> google.protobuf.Timestamp + 1, // 5: server.CheckUpdatesResponse.installed:type_name -> server.VersionInfo + 9, // 6: server.CheckUpdatesResponse.latest:type_name -> server.DockerVersionInfo + 24, // 7: server.CheckUpdatesResponse.last_check:type_name -> google.protobuf.Timestamp + 25, // 8: server.MetricsResolutions.hr:type_name -> google.protobuf.Duration + 25, // 9: server.MetricsResolutions.mr:type_name -> google.protobuf.Duration + 25, // 10: server.MetricsResolutions.lr:type_name -> google.protobuf.Duration + 25, // 11: server.STTCheckIntervals.standard_interval:type_name -> google.protobuf.Duration + 25, // 12: server.STTCheckIntervals.rare_interval:type_name -> google.protobuf.Duration + 25, // 13: server.STTCheckIntervals.frequent_interval:type_name -> google.protobuf.Duration + 15, // 14: server.Settings.metrics_resolutions:type_name -> server.MetricsResolutions + 25, // 15: server.Settings.data_retention:type_name -> google.protobuf.Duration + 16, // 16: server.Settings.stt_check_intervals:type_name -> server.STTCheckIntervals + 17, // 17: server.GetSettingsResponse.settings:type_name -> server.Settings + 15, // 18: server.ChangeSettingsRequest.metrics_resolutions:type_name -> server.MetricsResolutions + 25, // 19: server.ChangeSettingsRequest.data_retention:type_name -> google.protobuf.Duration + 16, // 20: server.ChangeSettingsRequest.stt_check_intervals:type_name -> server.STTCheckIntervals + 17, // 21: server.ChangeSettingsResponse.settings:type_name -> server.Settings + 2, // 22: server.Server.Version:input_type -> server.VersionRequest + 4, // 23: server.Server.Readiness:input_type -> server.ReadinessRequest + 6, // 24: server.Server.LeaderHealthCheck:input_type -> server.LeaderHealthCheckRequest + 8, // 25: server.Server.CheckUpdates:input_type -> server.CheckUpdatesRequest + 11, // 26: server.Server.StartUpdate:input_type -> server.StartUpdateRequest + 13, // 27: server.Server.UpdateStatus:input_type -> server.UpdateStatusRequest + 18, // 28: server.Server.GetSettings:input_type -> server.GetSettingsRequest + 20, // 29: server.Server.ChangeSettings:input_type -> server.ChangeSettingsRequest + 22, // 30: server.Server.AWSInstanceCheck:input_type -> server.AWSInstanceCheckRequest + 3, // 31: server.Server.Version:output_type -> server.VersionResponse + 5, // 32: server.Server.Readiness:output_type -> server.ReadinessResponse + 7, // 33: server.Server.LeaderHealthCheck:output_type -> server.LeaderHealthCheckResponse + 10, // 34: server.Server.CheckUpdates:output_type -> server.CheckUpdatesResponse + 12, // 35: server.Server.StartUpdate:output_type -> server.StartUpdateResponse + 14, // 36: server.Server.UpdateStatus:output_type -> server.UpdateStatusResponse + 19, // 37: server.Server.GetSettings:output_type -> server.GetSettingsResponse + 21, // 38: server.Server.ChangeSettings:output_type -> server.ChangeSettingsResponse + 23, // 39: server.Server.AWSInstanceCheck:output_type -> server.AWSInstanceCheckResponse + 31, // [31:40] is the sub-list for method output_type + 22, // [22:31] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_serverpb_server_proto_init() } @@ -2025,7 +2101,7 @@ func file_serverpb_server_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_serverpb_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*VersionInfo); i { case 0: return &v.state @@ -2037,7 +2113,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*VersionRequest); i { case 0: return &v.state @@ -2049,7 +2125,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*VersionResponse); i { case 0: return &v.state @@ -2061,7 +2137,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ReadinessRequest); i { case 0: return &v.state @@ -2073,7 +2149,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ReadinessResponse); i { case 0: return &v.state @@ -2085,7 +2161,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*LeaderHealthCheckRequest); i { case 0: return &v.state @@ -2097,7 +2173,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*LeaderHealthCheckResponse); i { case 0: return &v.state @@ -2109,7 +2185,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*CheckUpdatesRequest); i { case 0: return &v.state @@ -2121,7 +2197,19 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[8].Exporter = func(v any, i int) any { + switch v := v.(*DockerVersionInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_serverpb_server_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*CheckUpdatesResponse); i { case 0: return &v.state @@ -2133,7 +2221,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*StartUpdateRequest); i { case 0: return &v.state @@ -2145,7 +2233,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*StartUpdateResponse); i { case 0: return &v.state @@ -2157,7 +2245,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*UpdateStatusRequest); i { case 0: return &v.state @@ -2169,7 +2257,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*UpdateStatusResponse); i { case 0: return &v.state @@ -2181,7 +2269,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*MetricsResolutions); i { case 0: return &v.state @@ -2193,7 +2281,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*STTCheckIntervals); i { case 0: return &v.state @@ -2205,7 +2293,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*Settings); i { case 0: return &v.state @@ -2217,7 +2305,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*GetSettingsRequest); i { case 0: return &v.state @@ -2229,7 +2317,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*GetSettingsResponse); i { case 0: return &v.state @@ -2241,7 +2329,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*ChangeSettingsRequest); i { case 0: return &v.state @@ -2253,7 +2341,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*ChangeSettingsResponse); i { case 0: return &v.state @@ -2265,7 +2353,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*AWSInstanceCheckRequest); i { case 0: return &v.state @@ -2277,7 +2365,7 @@ func file_serverpb_server_proto_init() { return nil } } - file_serverpb_server_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_serverpb_server_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*AWSInstanceCheckResponse); i { case 0: return &v.state @@ -2296,7 +2384,7 @@ func file_serverpb_server_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_serverpb_server_proto_rawDesc, NumEnums: 1, - NumMessages: 22, + NumMessages: 23, NumExtensions: 0, NumServices: 1, }, diff --git a/api/serverpb/server.pb.validate.go b/api/serverpb/server.pb.validate.go index 3bba154397..7b80039780 100644 --- a/api/serverpb/server.pb.validate.go +++ b/api/serverpb/server.pb.validate.go @@ -943,6 +943,141 @@ var _ interface { ErrorName() string } = CheckUpdatesRequestValidationError{} +// Validate checks the field values on DockerVersionInfo with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *DockerVersionInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DockerVersionInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DockerVersionInfoMultiError, or nil if none found. +func (m *DockerVersionInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *DockerVersionInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Version + + // no validation rules for Tag + + if all { + switch v := interface{}(m.GetTimestamp()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DockerVersionInfoValidationError{ + field: "Timestamp", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DockerVersionInfoValidationError{ + field: "Timestamp", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTimestamp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DockerVersionInfoValidationError{ + field: "Timestamp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return DockerVersionInfoMultiError(errors) + } + + return nil +} + +// DockerVersionInfoMultiError is an error wrapping multiple validation errors +// returned by DockerVersionInfo.ValidateAll() if the designated constraints +// aren't met. +type DockerVersionInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DockerVersionInfoMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DockerVersionInfoMultiError) AllErrors() []error { return m } + +// DockerVersionInfoValidationError is the validation error returned by +// DockerVersionInfo.Validate if the designated constraints aren't met. +type DockerVersionInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DockerVersionInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DockerVersionInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DockerVersionInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DockerVersionInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DockerVersionInfoValidationError) ErrorName() string { + return "DockerVersionInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e DockerVersionInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDockerVersionInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DockerVersionInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DockerVersionInfoValidationError{} + // Validate checks the field values on CheckUpdatesResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/api/serverpb/server.proto b/api/serverpb/server.proto index 629d06b9a8..284d2ed481 100644 --- a/api/serverpb/server.proto +++ b/api/serverpb/server.proto @@ -66,11 +66,20 @@ message CheckUpdatesRequest { bool only_installed_version = 2; } +message DockerVersionInfo { + // PMM Version. + string version = 1; + // Docker image tag. + string tag = 2; + // Release date. + google.protobuf.Timestamp timestamp = 3; +} + message CheckUpdatesResponse { // Currently installed PMM Server version. VersionInfo installed = 1; // Latest available PMM Server version. - VersionInfo latest = 2; + DockerVersionInfo latest = 2; // True if there is a PMM Server update available. bool update_available = 3; // Latest available PMM Server release announcement URL. diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 8d2d80a278..054efed28a 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -3558,21 +3558,20 @@ "x-order": 0 }, "latest": { - "description": "VersionInfo describes component version, or PMM Server as a whole.", "type": "object", "properties": { "version": { - "description": "User-visible version.", + "description": "PMM Version.", "type": "string", "x-order": 0 }, - "full_version": { - "description": "Full version for debugging.", + "tag": { + "description": "Docker image tag.", "type": "string", "x-order": 1 }, "timestamp": { - "description": "Build or release date.", + "description": "Release date.", "type": "string", "format": "date-time", "x-order": 2 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 05406132fc..dd3b3b8091 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -714,21 +714,20 @@ "x-order": 0 }, "latest": { - "description": "VersionInfo describes component version, or PMM Server as a whole.", "type": "object", "properties": { "version": { - "description": "User-visible version.", + "description": "PMM Version.", "type": "string", "x-order": 0 }, - "full_version": { - "description": "Full version for debugging.", + "tag": { + "description": "Docker image tag.", "type": "string", "x-order": 1 }, "timestamp": { - "description": "Build or release date.", + "description": "Release date.", "type": "string", "format": "date-time", "x-order": 2 diff --git a/api/uieventspb/server.pb.go b/api/uieventspb/server.pb.go index d1da9792ae..0630f43618 100644 --- a/api/uieventspb/server.pb.go +++ b/api/uieventspb/server.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: uieventspb/server.proto @@ -548,7 +548,7 @@ func file_uieventspb_server_proto_rawDescGZIP() []byte { var ( file_uieventspb_server_proto_msgTypes = make([]protoimpl.MessageInfo, 7) - file_uieventspb_server_proto_goTypes = []interface{}{ + file_uieventspb_server_proto_goTypes = []any{ (*NotificationEvent)(nil), // 0: uievents.NotificationEvent (*FetchingEvent)(nil), // 1: uievents.FetchingEvent (*DashboardUsageEvent)(nil), // 2: uievents.DashboardUsageEvent @@ -580,7 +580,7 @@ func file_uieventspb_server_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_uieventspb_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*NotificationEvent); i { case 0: return &v.state @@ -592,7 +592,7 @@ func file_uieventspb_server_proto_init() { return nil } } - file_uieventspb_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*FetchingEvent); i { case 0: return &v.state @@ -604,7 +604,7 @@ func file_uieventspb_server_proto_init() { return nil } } - file_uieventspb_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*DashboardUsageEvent); i { case 0: return &v.state @@ -616,7 +616,7 @@ func file_uieventspb_server_proto_init() { return nil } } - file_uieventspb_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*UserFlowEvent); i { case 0: return &v.state @@ -628,7 +628,7 @@ func file_uieventspb_server_proto_init() { return nil } } - file_uieventspb_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*StoreRequest); i { case 0: return &v.state @@ -640,7 +640,7 @@ func file_uieventspb_server_proto_init() { return nil } } - file_uieventspb_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_uieventspb_server_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*StoreResponse); i { case 0: return &v.state diff --git a/api/userpb/user.pb.go b/api/userpb/user.pb.go index 9628723644..4a0edebccc 100644 --- a/api/userpb/user.pb.go +++ b/api/userpb/user.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: userpb/user.proto @@ -424,7 +424,7 @@ func file_userpb_user_proto_rawDescGZIP() []byte { var ( file_userpb_user_proto_msgTypes = make([]protoimpl.MessageInfo, 6) - file_userpb_user_proto_goTypes = []interface{}{ + file_userpb_user_proto_goTypes = []any{ (*UserDetailsRequest)(nil), // 0: user.UserDetailsRequest (*UserDetailsResponse)(nil), // 1: user.UserDetailsResponse (*UserUpdateRequest)(nil), // 2: user.UserUpdateRequest @@ -455,7 +455,7 @@ func file_userpb_user_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_userpb_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*UserDetailsRequest); i { case 0: return &v.state @@ -467,7 +467,7 @@ func file_userpb_user_proto_init() { return nil } } - file_userpb_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*UserDetailsResponse); i { case 0: return &v.state @@ -479,7 +479,7 @@ func file_userpb_user_proto_init() { return nil } } - file_userpb_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*UserUpdateRequest); i { case 0: return &v.state @@ -491,7 +491,7 @@ func file_userpb_user_proto_init() { return nil } } - file_userpb_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*ListUsersRequest); i { case 0: return &v.state @@ -503,7 +503,7 @@ func file_userpb_user_proto_init() { return nil } } - file_userpb_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ListUsersResponse); i { case 0: return &v.state @@ -515,7 +515,7 @@ func file_userpb_user_proto_init() { return nil } } - file_userpb_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_userpb_user_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*ListUsersResponse_UserDetail); i { case 0: return &v.state diff --git a/build/docker/client/Dockerfile b/build/docker/client/Dockerfile index 2c03161268..a5d82c7165 100644 --- a/build/docker/client/Dockerfile +++ b/build/docker/client/Dockerfile @@ -1,6 +1,6 @@ FROM redhat/ubi9-minimal as users -RUN microdnf install shadow-utils jq -y +RUN microdnf install shadow-utils jq tar -y RUN groupadd -g 1002 pmm-agent && \ useradd -u 1002 -r -g pmm-agent -s /sbin/nologin \ @@ -24,9 +24,26 @@ COPY --from=users --chown=0:0 /etc/group /etc/group # Install jq along with its dependencies COPY --from=users --chown=0:0 /usr/bin/jq /usr/bin/ +COPY --from=users --chown=0:0 /usr/bin/tar /usr/bin/ +COPY --from=users --chown=0:0 /usr/bin/curl /usr/bin/ + COPY --from=users --chown=0:0 /usr/lib64/libjq.so.1.0.4 /lib64/libjq.so.1 COPY --from=users --chown=0:0 /usr/lib64/libonig.so.5.1.0 /lib64/libonig.so.5 +# Dependencies of curl +COPY --from=users --chown=0:0 /usr/lib64/libkeyutils.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libz.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libkrb5support.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libkrb5.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libk5crypto.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libgssapi_krb5.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libcom_err.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libssl.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libcrypto.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libcurl.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libnghttp2.so* /lib64/ +COPY --from=users --chown=0:0 /usr/lib64/libresolv.so* /lib64/ + RUN install -d -o pmm-agent -g pmm-agent -m 0775 /usr/local/percona/pmm ADD pmm-client.tar.gz /tmp/ diff --git a/cli-tests/package-lock.json b/cli-tests/package-lock.json index d59a2ce49d..fe6ff9374f 100644 --- a/cli-tests/package-lock.json +++ b/cli-tests/package-lock.json @@ -20,8 +20,8 @@ "devDependencies": { "@types/promise-retry": "^1.1.3", "@types/shelljs": "^0.8.12", - "@typescript-eslint/eslint-plugin": "^7.12.0", - "@typescript-eslint/parser": "^7.12.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", "eslint": "8.56", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^18.0.0", @@ -249,16 +249,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.12.0.tgz", - "integrity": "sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz", + "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.12.0", - "@typescript-eslint/type-utils": "7.12.0", - "@typescript-eslint/utils": "7.12.0", - "@typescript-eslint/visitor-keys": "7.12.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/type-utils": "7.13.1", + "@typescript-eslint/utils": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -282,15 +282,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.12.0.tgz", - "integrity": "sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz", + "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.12.0", - "@typescript-eslint/types": "7.12.0", - "@typescript-eslint/typescript-estree": "7.12.0", - "@typescript-eslint/visitor-keys": "7.12.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4" }, "engines": { @@ -310,13 +310,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz", - "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz", + "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.12.0", - "@typescript-eslint/visitor-keys": "7.12.0" + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -327,13 +327,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.12.0.tgz", - "integrity": "sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz", + "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.12.0", - "@typescript-eslint/utils": "7.12.0", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/utils": "7.13.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -354,9 +354,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz", - "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz", + "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -367,13 +367,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz", - "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz", + "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.12.0", - "@typescript-eslint/visitor-keys": "7.12.0", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -419,15 +419,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.12.0.tgz", - "integrity": "sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz", + "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.12.0", - "@typescript-eslint/types": "7.12.0", - "@typescript-eslint/typescript-estree": "7.12.0" + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -441,12 +441,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz", - "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz", + "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/types": "7.13.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -673,12 +673,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1347,9 +1347,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" diff --git a/cli-tests/package.json b/cli-tests/package.json index 82b0bf1e64..c2eb02253d 100644 --- a/cli-tests/package.json +++ b/cli-tests/package.json @@ -24,8 +24,8 @@ "devDependencies": { "@types/promise-retry": "^1.1.3", "@types/shelljs": "^0.8.12", - "@typescript-eslint/eslint-plugin": "^7.12.0", - "@typescript-eslint/parser": "^7.12.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", "eslint": "8.56", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^18.0.0", diff --git a/descriptor.bin b/descriptor.bin index 0fef5fb206..d801759200 100644 Binary files a/descriptor.bin and b/descriptor.bin differ diff --git a/docker-compose.yml b/docker-compose.yml index 7317df4e0f..ebc8370319 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: # context: . # args: # PMM_SERVER_IMAGE: ${PMM_SERVER_IMAGE:-perconalab/pmm-server:3-dev-latest} - # dockerfile: devcontainer.Dockerfile + # dockerfile: ./.devcontainer/Dockerfile container_name: pmm-server hostname: pmm-server networks: @@ -25,6 +25,7 @@ services: - PMM_DEV_VERSION_SERVICE_URL=${PMM_DEV_VERSION_SERVICE_URL} - PMM_WATCHTOWER_HOST=${PMM_WATCHTOWER_HOST:-http://watchtower:8080} - PMM_WATCHTOWER_TOKEN=${PMM_WATCHTOWER_TOKEN:-INSECURE_TOKEN} + - PMM_RELEASE_VERSION=3.0.0-alpha # - PMM_DEV_PERCONA_PLATFORM_ADDRESS=https://check.localhost # - PMM_DEV_PERCONA_PLATFORM_INSECURE=1 # - PMM_DEV_PERCONA_PLATFORM_PUBLIC_KEY= @@ -33,8 +34,6 @@ services: # - PMM_DEV_TELEMETRY_RETRY_BACKOFF=10s # - PMM_CLICKHOUSE_ADDR=127.0.0.1:9000 # - PMM_CLICKHOUSE_DATABASE=pmm - # - PMM_CLICKHOUSE_BLOCK_SIZE=10000 - # - PMM_CLICKHOUSE_POOL_SIZE=2 # - PMM_DEBUG=1 # - PMM_DEV_ADVISOR_CHECKS_FILE=/srv/checks/local-checks.yml # - PMM_POSTGRES_ADDR=pg @@ -232,8 +231,6 @@ services: # - PMM_DEV_TELEMETRY_DISABLE_START_DELAY=1 - PMM_CLICKHOUSE_ADDR=${CH_HOSTNAME:-ch}:9000 - PMM_CLICKHOUSE_DATABASE=pmm - - PMM_CLICKHOUSE_BLOCK_SIZE=10000 - - PMM_CLICKHOUSE_POOL_SIZE=2 - PMM_DISABLE_BUILTIN_CLICKHOUSE=1 - PMM_POSTGRES_ADDR=pg:5432 - PMM_POSTGRES_USERNAME=pmm-managed @@ -246,7 +243,7 @@ services: - GF_DATABASE_URL=postgres://grafana:grafana@pg:5432/grafana # - GF_DATABASE_SSL_MODE=require # - PMM_DEBUG=1 - - GO_VERSION=1.20 + - GO_VERSION=1.22 - PMM_VM_URL=${PMM_VM_URL:-http://victoriametrics:8428/} - PMM_TEST_HA_ENABLE=1 - PMM_TEST_HA_BOOTSTRAP=1 @@ -315,8 +312,6 @@ services: # - PMM_DEV_TELEMETRY_DISABLE_START_DELAY=1 - PMM_CLICKHOUSE_ADDR=${CH_HOSTNAME:-ch}:9000 - PMM_CLICKHOUSE_DATABASE=pmm - - PMM_CLICKHOUSE_BLOCK_SIZE=10000 - - PMM_CLICKHOUSE_POOL_SIZE=2 - PMM_DISABLE_BUILTIN_CLICKHOUSE=1 - PMM_POSTGRES_ADDR=pg:5432 - PMM_POSTGRES_USERNAME=pmm-managed @@ -397,8 +392,6 @@ services: # - PMM_DEV_TELEMETRY_DISABLE_START_DELAY=1 - PMM_CLICKHOUSE_ADDR=${CH_HOSTNAME:-ch}:9000 - PMM_CLICKHOUSE_DATABASE=pmm - - PMM_CLICKHOUSE_BLOCK_SIZE=10000 - - PMM_CLICKHOUSE_POOL_SIZE=2 - PMM_DISABLE_BUILTIN_CLICKHOUSE=1 - PMM_POSTGRES_ADDR=pg:5432 - PMM_POSTGRES_USERNAME=pmm-managed diff --git a/docs/process/v2_to_v3_environment_variables.md b/docs/process/v2_to_v3_environment_variables.md index f059f978da..91021c6931 100644 --- a/docs/process/v2_to_v3_environment_variables.md +++ b/docs/process/v2_to_v3_environment_variables.md @@ -26,11 +26,11 @@ Below is a list of affected variables and their new names. | `PERCONA_TEST_CHECKS_PUBLIC_KEY` | | Removed in PMM v3, use `PMM_DEV_PERCONA_PLATFORM_PUBLIC_KEY` | | `PERCONA_TEST_NICER_API` | `PMM_NICER_API` | | | `PERCONA_TEST_PMM_CLICKHOUSE_ADDR` | `PMM_CLICKHOUSE_ADDR` | | -| `PERCONA_TEST_PMM_CLICKHOUSE_BLOCK_SIZE` | `PMM_CLICKHOUSE_BLOCK_SIZE` | | +| `PERCONA_TEST_PMM_CLICKHOUSE_BLOCK_SIZE` | | Removed in PMM v3, because of new clickhouse version. | | `PERCONA_TEST_PMM_CLICKHOUSE_DATABASE` | `PMM_CLICKHOUSE_DATABASE` | | | `PERCONA_TEST_PMM_CLICKHOUSE_DATASOURCE` | `PMM_CLICKHOUSE_DATASOURCE` | | | `PERCONA_TEST_PMM_CLICKHOUSE_HOST` | `PMM_CLICKHOUSE_HOST` | | -| `PERCONA_TEST_PMM_CLICKHOUSE_POOL_SIZE` | `PMM_CLICKHOUSE_POOL_SIZE` | | +| `PERCONA_TEST_PMM_CLICKHOUSE_POOL_SIZE` | | Removed in PMM v3, because of new clickhouse version. | | `PERCONA_TEST_PMM_CLICKHOUSE_PORT` | `PMM_CLICKHOUSE_PORT` | | | `PERCONA_TEST_PMM_DISABLE_BUILTIN_CLICKHOUSE` | `PMM_DISABLE_BUILTIN_CLICKHOUSE` | | | `PERCONA_TEST_PMM_DISABLE_BUILTIN_POSTGRES` | `PMM_DISABLE_BUILTIN_POSTGRES` | | diff --git a/go.mod b/go.mod index 633fe44020..ad68576e64 100644 --- a/go.mod +++ b/go.mod @@ -15,11 +15,8 @@ replace gopkg.in/alecthomas/kingpin.v2 => github.com/Percona-Lab/kingpin v2.2.6- replace golang.org/x/crypto => github.com/percona-lab/crypto v0.0.0-20231108144114-756dfb24eaf2 -replace github.com/ClickHouse/clickhouse-go/151 => github.com/ClickHouse/clickhouse-go v1.5.1 // clickhouse-go/v2 cannot work with 1.5.1 which we need for QAN-API - require ( github.com/AlekSi/pointer v1.2.0 - github.com/ClickHouse/clickhouse-go/151 v0.0.0-00010101000000-000000000000 github.com/ClickHouse/clickhouse-go/v2 v2.23.0 github.com/DATA-DOG/go-sqlmock v1.5.0 github.com/alecthomas/kong v0.9.0 @@ -59,7 +56,7 @@ require ( github.com/percona/go-mysql v0.0.0-20210427141028-73d29c6da78c github.com/percona/percona-toolkit v3.2.1+incompatible github.com/percona/promconfig v0.2.5 - github.com/pganalyze/pg_query_go/v2 v2.2.0 + github.com/pganalyze/pg_query_go/v5 v5.1.0 github.com/pkg/errors v0.9.1 github.com/pkg/sftp v1.13.6 github.com/pmezard/go-difflib v1.0.0 @@ -77,10 +74,10 @@ require ( golang.org/x/sys v0.19.0 golang.org/x/text v0.14.0 golang.org/x/tools v0.20.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/grpc v1.63.0 - google.golang.org/protobuf v1.33.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/grpc v1.64.0 + google.golang.org/protobuf v1.34.1 gopkg.in/alecthomas/kingpin.v2 v2.2.6 gopkg.in/reform.v1 v1.5.1 gopkg.in/yaml.v3 v3.0.1 @@ -113,7 +110,6 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.uber.org/atomic v1.11.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect gopkg.in/ini.v1 v1.67.0 // indirect ) @@ -124,7 +120,6 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect github.com/ClickHouse/ch-go v0.61.5 // indirect - github.com/ClickHouse/clickhouse-go v1.5.4 // indirect github.com/HdrHistogram/hdrhistogram-go v1.1.2 github.com/Microsoft/go-winio v0.6.1 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect @@ -133,7 +128,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charmbracelet/harmonica v0.2.0 // indirect - github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect diff --git a/go.sum b/go.sum index 00755a9541..ace99c1f3c 100644 --- a/go.sum +++ b/go.sum @@ -19,8 +19,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 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 v1.5.1 h1:I8zVFZTz80crCs0FFEBJooIxsPcV0xfthzK1YrkpJTc= -github.com/ClickHouse/clickhouse-go v1.5.1/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= github.com/ClickHouse/clickhouse-go/v2 v2.23.0 h1:srmRrkS0BR8gEut87u8jpcZ7geOob6nGj9ifrb+aKmg= @@ -70,8 +68,6 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 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/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= -github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/brianvoe/gofakeit v3.18.0+incompatible h1:wDOmHc9DLG4nRjUVVaxA+CEglKOW72Y5+4WNxUIkjM8= @@ -178,7 +174,6 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= @@ -216,7 +211,6 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU 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.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= @@ -291,7 +285,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y 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.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -330,7 +323,6 @@ 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/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= @@ -354,7 +346,6 @@ github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+Ei github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= @@ -426,10 +417,8 @@ github.com/percona/percona-toolkit v3.2.1+incompatible h1:5jLvtZKcu9fDmaLRB8qA4b github.com/percona/percona-toolkit v3.2.1+incompatible/go.mod h1:netQWdWMaF1cnmwiIS+i5uyaqNXz46yNeM6HKkR6yeI= github.com/percona/promconfig v0.2.5 h1:f/HN/CbECQs7d9RIB6MKVkuXstsrsqEDxRvf6yigquc= github.com/percona/promconfig v0.2.5/go.mod h1:Y2uXi5QNk71+ceJHuI9poank+0S1kjxd3K105fXKVkg= -github.com/pganalyze/pg_query_go/v2 v2.2.0 h1:OW+reH+ZY7jdEuPyuLGlf1m7dLbE+fDudKXhLs0Ttpk= -github.com/pganalyze/pg_query_go/v2 v2.2.0/go.mod h1:XAxmVqz1tEGqizcQ3YSdN90vCOHBWjJi8URL1er5+cA= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pganalyze/pg_query_go/v5 v5.1.0 h1:MlxQqHZnvA3cbRQYyIrjxEjzo560P6MyTgtlaf3pmXg= +github.com/pganalyze/pg_query_go/v5 v5.1.0/go.mod h1:FsglvxidZsVN+Ltw3Ai6nTgPVcK2BPukH3jCDEqc1Ug= 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= @@ -703,33 +692,31 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8= -google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= 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.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.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= diff --git a/managed/Makefile b/managed/Makefile index 48005e7d3c..fa0ab06fa8 100644 --- a/managed/Makefile +++ b/managed/Makefile @@ -8,7 +8,7 @@ help: ## Display this help message # `cut` is used to remove first `v` from `git describe` output PMM_RELEASE_PATH ?= ../bin -PMM_RELEASE_VERSION ?= $(shell git describe --always --dirty | cut -b2-) +PMM_RELEASE_VERSION ?= $(shell git describe --always | cut -b2-) PMM_RELEASE_TIMESTAMP ?= $(shell date '+%s') PMM_RELEASE_FULLCOMMIT ?= $(shell git rev-parse HEAD) PMM_RELEASE_BRANCH ?= $(shell git describe --always --contains --all) @@ -22,6 +22,13 @@ PMM_LD_FLAGS = -ldflags " \ -X 'github.com/percona/pmm/version.Branch=$(PMM_RELEASE_BRANCH)' \ " +IS_ARM := $(filter arm64,$(shell uname -m)) +PMM_RACE_FLAG ?= $(if $(IS_ARM),,-race) + +PMM_TEST_FLAGS ?= -timeout=180s +PMM_TEST_RUN_UPDATE ?= 0 +PMM_TEST_FILES ?= ./... + gen: clean ## Generate files go generate ./... @@ -36,17 +43,8 @@ release-starlark: env CGO_ENABLED=0 go build -v $(PMM_LD_FLAGS) -o $(PMM_RELEASE_PATH)/ ./cmd/pmm-managed-starlark/... $(PMM_RELEASE_PATH)/pmm-managed-starlark --version -ARCH=$(shell uname -m) release-dev: ## Build pmm-managed binaries for development - if [ $(ARCH) = "aarch64" ]; then \ - go build -gcflags="all=-N -l" -v $(PMM_LD_FLAGS) -o $(PMM_RELEASE_PATH)/ ./cmd/... ; \ - else \ - go build -race -gcflags="all=-N -l" -v $(PMM_LD_FLAGS) -o $(PMM_RELEASE_PATH)/ ./cmd/... ; \ - fi - -PMM_TEST_FLAGS ?= -timeout=180s -PMM_TEST_RUN_UPDATE ?= 0 -PMM_TEST_FILES ?= ./... + go build $(PMM_RACE_FLAG) -gcflags="all=-N -l" -v $(PMM_LD_FLAGS) -o $(PMM_RELEASE_PATH)/ ./cmd/... test: ## Run tests go test $(PMM_TEST_FLAGS) -p 1 -race $(PMM_TEST_FILES) diff --git a/managed/cmd/pmm-managed/main.go b/managed/cmd/pmm-managed/main.go index c6b4a85b70..9268365c25 100644 --- a/managed/cmd/pmm-managed/main.go +++ b/managed/cmd/pmm-managed/main.go @@ -137,7 +137,7 @@ const ( var pprofSemaphore = semaphore.NewWeighted(1) -func addLogsHandler(mux *http.ServeMux, logs *supervisord.Logs) { +func addLogsHandler(mux *http.ServeMux, logs *server.Logs) { l := logrus.WithField("component", "logs.zip") mux.HandleFunc("/logs.zip", func(rw http.ResponseWriter, req *http.Request) { @@ -147,7 +147,7 @@ func addLogsHandler(mux *http.ServeMux, logs *supervisord.Logs) { if err != nil { l.Debug("Unable to read 'pprof' query param. Using default: pprof=false") } - var pprofConfig *supervisord.PprofConfig + var pprofConfig *server.PprofConfig if pprofQueryParameter { if !pprofSemaphore.TryAcquire(1) { rw.WriteHeader(http.StatusLocked) @@ -160,7 +160,7 @@ func addLogsHandler(mux *http.ServeMux, logs *supervisord.Logs) { defer pprofSemaphore.Release(1) contextTimeout += pProfProfileDuration + pProfTraceDuration - pprofConfig = &supervisord.PprofConfig{ + pprofConfig = &server.PprofConfig{ ProfileDuration: pProfProfileDuration, TraceDuration: pProfTraceDuration, } @@ -263,7 +263,8 @@ func runGRPCServer(ctx context.Context, deps *gRPCServerDeps) { inventorypb.RegisterServicesServer(gRPCServer, inventorygrpc.NewServicesServer(servicesSvc, mgmtServices)) inventorypb.RegisterAgentsServer(gRPCServer, inventorygrpc.NewAgentsServer(agentsSvc)) - nodeSvc := management.NewNodeService(deps.db, deps.grafanaClient) + nodeSvc := management.NewNodeService(deps.db, deps.grafanaClient, deps.agentsRegistry, deps.agentsStateUpdater, + deps.vmdb) agentSvc := management.NewAgentService(deps.db, deps.agentsRegistry) serviceSvc := management.NewServiceService(deps.db, deps.agentsRegistry, deps.agentsStateUpdater, deps.vmdb) mysqlSvc := management.NewMySQLService(deps.db, deps.agentsStateUpdater, deps.connectionCheck, deps.serviceInfoBroker, deps.versionCache) @@ -334,7 +335,7 @@ func runGRPCServer(ctx context.Context, deps *gRPCServerDeps) { } type http1ServerDeps struct { - logs *supervisord.Logs + logs *server.Logs authServer *grafana.AuthServer } @@ -875,13 +876,12 @@ func main() { //nolint:cyclop,maintidx connectionCheck := agents.NewConnectionChecker(agentsRegistry) serviceInfoBroker := agents.NewServiceInfoBroker(agentsRegistry) - pmmUpdateCheck := supervisord.NewPMMUpdateChecker(logrus.WithField("component", "supervisord/pmm-update-checker")) + updater := server.NewUpdater(*watchtowerHostF, gRPCMessageMaxSize) - logs := supervisord.NewLogs(version.FullInfo(), pmmUpdateCheck, vmParams) + logs := server.NewLogs(version.FullInfo(), updater, vmParams) supervisord := supervisord.New( *supervisordConfigDirF, - pmmUpdateCheck, &models.Params{ VMParams: vmParams, PGParams: &models.PGParams{ @@ -895,8 +895,7 @@ func main() { //nolint:cyclop,maintidx SSLCertPath: *postgresSSLCertPathF, }, HAParams: haParams, - }, - gRPCMessageMaxSize) + }) haService.AddLeaderService(ha.NewStandardService("pmm-agent-runner", func(ctx context.Context) error { return supervisord.StartSupervisedService("pmm-agent") @@ -971,8 +970,6 @@ func main() { //nolint:cyclop,maintidx dumpService := dump.New(db) - updater := server.NewUpdater(supervisord, *watchtowerHostF) - serverParams := &server.Params{ DB: db, VMDB: vmdb, @@ -1087,6 +1084,12 @@ func main() { //nolint:cyclop,maintidx supervisord.Run(ctx) }() + wg.Add(1) + go func() { + defer wg.Done() + updater.Run(ctx) + }() + wg.Add(1) haService.AddLeaderService(ha.NewContextService("telemetry", func(ctx context.Context) error { defer wg.Done() diff --git a/managed/services/management/node.go b/managed/services/management/node.go index b685ec3939..06bf642437 100644 --- a/managed/services/management/node.go +++ b/managed/services/management/node.go @@ -19,6 +19,7 @@ import ( "context" "github.com/AlekSi/pointer" + "github.com/pkg/errors" "github.com/sirupsen/logrus" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -33,23 +34,30 @@ import ( // NodeService represents service for working with nodes. type NodeService struct { - db *reform.DB - ap authProvider - l *logrus.Entry + db *reform.DB + ap authProvider + l *logrus.Entry + r agentsRegistry + state agentsStateUpdater + vmdb prometheusService } // NewNodeService creates NodeService instance. -func NewNodeService(db *reform.DB, ap authProvider) *NodeService { +func NewNodeService(db *reform.DB, ap authProvider, r agentsRegistry, state agentsStateUpdater, vmdb prometheusService) *NodeService { return &NodeService{ - db: db, - ap: ap, - l: logrus.WithField("component", "node"), + db: db, + ap: ap, + r: r, + state: state, + vmdb: vmdb, + l: logrus.WithField("component", "node"), } } // Register do registration of the new node. func (s *NodeService) Register(ctx context.Context, req *managementpb.RegisterNodeRequest) (*managementpb.RegisterNodeResponse, error) { res := &managementpb.RegisterNodeResponse{} + e := s.db.InTransaction(func(tx *reform.TX) error { node, err := models.FindNodeByName(tx.Querier, req.NodeName) switch status.Code(err) { //nolint:exhaustive @@ -147,16 +155,60 @@ func (s *NodeService) Register(ctx context.Context, req *managementpb.RegisterNo // Unregister do unregistration of the node. func (s *NodeService) Unregister(ctx context.Context, req *managementpb.UnregisterNodeRequest) (*managementpb.UnregisterNodeResponse, error) { + idsToKick := make(map[string]struct{}) + idsToSetState := make(map[string]struct{}) + node, err := models.FindNodeByID(s.db.Querier, req.NodeId) if err != nil { return nil, err } - err = s.db.InTransaction(func(tx *reform.TX) error { - return models.RemoveNode(tx.Querier, req.NodeId, models.RemoveCascade) - }) - if err != nil { - return nil, err + if e := s.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { + mode := models.RemoveRestrict + if req.Force { + mode = models.RemoveCascade + + agents, err := models.FindPMMAgentsRunningOnNode(tx.Querier, node.NodeID) + if err != nil { + return errors.WithStack(err) + } + for _, a := range agents { + idsToKick[a.AgentID] = struct{}{} + } + + agents, err = models.FindAgents(tx.Querier, models.AgentFilters{NodeID: node.NodeID}) + if err != nil { + return errors.WithStack(err) + } + for _, a := range agents { + if a.PMMAgentID != nil { + idsToSetState[pointer.GetString(a.PMMAgentID)] = struct{}{} + } + } + + agents, err = models.FindPMMAgentsForServicesOnNode(tx.Querier, node.NodeID) + if err != nil { + return errors.WithStack(err) + } + for _, a := range agents { + idsToSetState[a.AgentID] = struct{}{} + } + } + return models.RemoveNode(tx.Querier, node.NodeID, mode) + }); e != nil { + return nil, e + } + + for id := range idsToSetState { + s.state.RequestStateUpdate(ctx, id) + } + for id := range idsToKick { + s.r.Kick(ctx, id) + } + + if req.Force { + // It's required to regenerate victoriametrics config file for the agents which aren't run by pmm-agent. + s.vmdb.RequestConfigurationUpdate() } warning, err := s.ap.DeleteServiceAccount(ctx, node.NodeName, req.Force) diff --git a/managed/services/management/node_test.go b/managed/services/management/node_test.go index 3241429229..a9dced7140 100644 --- a/managed/services/management/node_test.go +++ b/managed/services/management/node_test.go @@ -23,7 +23,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" - "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" "gopkg.in/reform.v1" "gopkg.in/reform.v1/dialects/postgresql" @@ -40,191 +39,183 @@ func TestNodeService(t *testing.T) { getTestNodeName := func() string { return "test-node" } - t.Run("Register/Unregister", func(t *testing.T) { - setup := func(t *testing.T) (ctx context.Context, s *NodeService, teardown func(t *testing.T)) { + setup := func(t *testing.T) (context.Context, *NodeService, func(t *testing.T)) { + t.Helper() + + ctx := logger.Set(context.Background(), t.Name()) + uuid.SetRand(&tests.IDReader{}) + + sqlDB := testdb.Open(t, models.SetupFixtures, nil) + db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) + + serviceAccountID := int(0) + nodeName := getTestNodeName() + reregister := false + + r := &mockAgentsRegistry{} + r.Test(t) + + vmdb := &mockPrometheusService{} + vmdb.Test(t) + + state := &mockAgentsStateUpdater{} + state.Test(t) + + authProvider := &mockAuthProvider{} + authProvider.Test(t) + authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) + + teardown := func(t *testing.T) { t.Helper() + uuid.SetRand(nil) - ctx = logger.Set(context.Background(), t.Name()) - uuid.SetRand(&tests.IDReader{}) + require.NoError(t, sqlDB.Close()) - sqlDB := testdb.Open(t, models.SetupFixtures, nil) - db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) + r.AssertExpectations(t) + vmdb.AssertExpectations(t) + state.AssertExpectations(t) + authProvider.AssertExpectations(t) + } - teardown = func(t *testing.T) { - t.Helper() - uuid.SetRand(nil) + s := NewNodeService(db, authProvider, r, state, vmdb) - require.NoError(t, sqlDB.Close()) - } - md := metadata.New(map[string]string{ - "Authorization": "Basic username:password", - }) - ctx = metadata.NewIncomingContext(ctx, md) + return ctx, s, teardown + } - serviceAccountID := int(0) - nodeName := getTestNodeName() - reregister := false - force := true + ctx, s, teardown := setup(t) + defer teardown(t) - var authProvider mockAuthProvider - authProvider.Test(t) - authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) - authProvider.On("DeleteServiceAccount", ctx, nodeName, force).Return("", nil) - s = NewNodeService(db, &authProvider) + t.Run("New", func(t *testing.T) { + nodeName := getTestNodeName() - return + res, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ + NodeType: inventorypb.NodeType_GENERIC_NODE, + NodeName: nodeName, + Address: "some.address.org", + Region: "region", + }) + expected := &managementpb.RegisterNodeResponse{ + GenericNode: &inventorypb.GenericNode{ + NodeId: "/node_id/00000000-0000-4000-8000-000000000005", + NodeName: nodeName, + Address: "some.address.org", + Region: "region", + }, + ContainerNode: (*inventorypb.ContainerNode)(nil), + PmmAgent: &inventorypb.PMMAgent{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", + RunsOnNodeId: "/node_id/00000000-0000-4000-8000-000000000005", + }, + Token: "test-token", } + assert.Equal(t, expected, res) + assert.NoError(t, err) + }) + + t.Run("Exist", func(t *testing.T) { + res, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ + NodeType: inventorypb.NodeType_GENERIC_NODE, + NodeName: getTestNodeName(), + }) + assert.Nil(t, res) + tests.AssertGRPCError(t, status.New(codes.AlreadyExists, `Node with name "test-node" already exists.`), err) + }) - t.Run("New", func(t *testing.T) { - ctx, s, teardown := setup(t) - defer teardown(t) + t.Run("Reregister", func(t *testing.T) { + serviceAccountID := int(0) + nodeName := "test-node-new" + reregister := false + + authProvider := &mockAuthProvider{} + authProvider.Test(t) + authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) + s.ap = authProvider + + _, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ + NodeType: inventorypb.NodeType_GENERIC_NODE, + NodeName: nodeName, + Address: "some.address.org", + Region: "region", + Reregister: false, + }) + + tests.AssertGRPCError(t, status.New(codes.AlreadyExists, `Node with instance "some.address.org" and region "region" already exists.`), err) + }) - res, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ - NodeType: inventorypb.NodeType_GENERIC_NODE, - NodeName: "test-node", + t.Run("Reregister-force", func(t *testing.T) { + serviceAccountID := int(0) + nodeName := "test-node-new" + reregister := true + + authProvider := &mockAuthProvider{} + authProvider.Test(t) + authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) + s.ap = authProvider + + res, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ + NodeType: inventorypb.NodeType_GENERIC_NODE, + NodeName: nodeName, + Address: "some.address.org", + Region: "region", + Reregister: true, + }) + expected := &managementpb.RegisterNodeResponse{ + GenericNode: &inventorypb.GenericNode{ + NodeId: "/node_id/00000000-0000-4000-8000-000000000008", + NodeName: nodeName, Address: "some.address.org", Region: "region", - }) - expected := &managementpb.RegisterNodeResponse{ - GenericNode: &inventorypb.GenericNode{ - NodeId: "/node_id/00000000-0000-4000-8000-000000000005", - NodeName: "test-node", - Address: "some.address.org", - Region: "region", - }, - ContainerNode: (*inventorypb.ContainerNode)(nil), - PmmAgent: &inventorypb.PMMAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", - RunsOnNodeId: "/node_id/00000000-0000-4000-8000-000000000005", - }, - Token: "test-token", - } - assert.Equal(t, expected, res) - assert.NoError(t, err) - - t.Run("Exist", func(t *testing.T) { - res, err = s.Register(ctx, &managementpb.RegisterNodeRequest{ - NodeType: inventorypb.NodeType_GENERIC_NODE, - NodeName: "test-node", - }) - assert.Nil(t, res) - tests.AssertGRPCError(t, status.New(codes.AlreadyExists, `Node with name "test-node" already exists.`), err) - }) - - t.Run("Reregister", func(t *testing.T) { - serviceAccountID := int(0) - nodeName := getTestNodeName() - reregister := true - - var authProvider mockAuthProvider - authProvider.Test(t) - authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) - s.ap = &authProvider - - res, err = s.Register(ctx, &managementpb.RegisterNodeRequest{ - NodeType: inventorypb.NodeType_GENERIC_NODE, - NodeName: "test-node", - Address: "some.address.org", - Region: "region", - Reregister: true, - }) - expected := &managementpb.RegisterNodeResponse{ - GenericNode: &inventorypb.GenericNode{ - NodeId: "/node_id/00000000-0000-4000-8000-000000000008", - NodeName: "test-node", - Address: "some.address.org", - Region: "region", - }, - ContainerNode: (*inventorypb.ContainerNode)(nil), - PmmAgent: &inventorypb.PMMAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000009", - RunsOnNodeId: "/node_id/00000000-0000-4000-8000-000000000008", - }, - Token: "test-token", - } - assert.Equal(t, expected, res) - assert.NoError(t, err) - }) - - t.Run("Reregister-force", func(t *testing.T) { - serviceAccountID := int(0) - nodeName := "test-node-new" - reregister := true - - var authProvider mockAuthProvider - authProvider.Test(t) - authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) - s.ap = &authProvider - - res, err = s.Register(ctx, &managementpb.RegisterNodeRequest{ - NodeType: inventorypb.NodeType_GENERIC_NODE, - NodeName: "test-node-new", - Address: "some.address.org", - Region: "region", - Reregister: true, - }) - expected := &managementpb.RegisterNodeResponse{ - GenericNode: &inventorypb.GenericNode{ - NodeId: "/node_id/00000000-0000-4000-8000-00000000000b", - NodeName: "test-node-new", - Address: "some.address.org", - Region: "region", - }, - ContainerNode: (*inventorypb.ContainerNode)(nil), - PmmAgent: &inventorypb.PMMAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000c", - RunsOnNodeId: "/node_id/00000000-0000-4000-8000-00000000000b", - }, - Token: "test-token", - } - assert.Equal(t, expected, res) - assert.NoError(t, err) - }) - - t.Run("Unregister", func(t *testing.T) { - serviceAccountID := int(0) - nodeName := getTestNodeName() - reregister := true - force := true - - var authProvider mockAuthProvider - authProvider.Test(t) - authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) - authProvider.On("DeleteServiceAccount", ctx, nodeName, force).Return("", nil) - s.ap = &authProvider - - resRegister, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ - NodeType: inventorypb.NodeType_GENERIC_NODE, - NodeName: "test-node", - Address: "some.address.org", - Region: "region", - Reregister: true, - }) - assert.NoError(t, err) - - expected := &managementpb.RegisterNodeResponse{ - GenericNode: &inventorypb.GenericNode{ - NodeId: "/node_id/00000000-0000-4000-8000-00000000000e", - NodeName: "test-node", - Address: "some.address.org", - Region: "region", - }, - ContainerNode: (*inventorypb.ContainerNode)(nil), - PmmAgent: &inventorypb.PMMAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000f", - RunsOnNodeId: "/node_id/00000000-0000-4000-8000-00000000000e", - }, - Token: "test-token", - } - assert.Equal(t, expected, resRegister) - - res, err := s.Unregister(ctx, &managementpb.UnregisterNodeRequest{ - NodeId: resRegister.GenericNode.NodeId, - Force: true, - }) - assert.NoError(t, err) - assert.Equal(t, "", res.Warning) - }) + }, + ContainerNode: (*inventorypb.ContainerNode)(nil), + PmmAgent: &inventorypb.PMMAgent{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000009", + RunsOnNodeId: "/node_id/00000000-0000-4000-8000-000000000008", + }, + Token: "test-token", + } + assert.Equal(t, expected, res) + assert.NoError(t, err) + }) + + t.Run("Register/Unregister", func(t *testing.T) { + serviceAccountID := int(0) + nodeName := getTestNodeName() + reregister := true + force := true + + authProvider := &mockAuthProvider{} + authProvider.Test(t) + authProvider.On("CreateServiceAccount", ctx, nodeName, reregister).Return(serviceAccountID, "test-token", nil) + authProvider.On("DeleteServiceAccount", ctx, nodeName, force).Return("", nil) + s.ap = authProvider + + state := &mockAgentsStateUpdater{} + state.Test(t) + state.On("RequestStateUpdate", ctx, "/agent_id/00000000-0000-4000-8000-00000000000c") + s.state = state + r := &mockAgentsRegistry{} + r.Test(t) + r.On("Kick", ctx, "/agent_id/00000000-0000-4000-8000-00000000000c").Return(true) + s.r = r + vmdb := &mockPrometheusService{} + vmdb.Test(t) + vmdb.On("RequestConfigurationUpdate").Return() + s.vmdb = vmdb + + resRegister, err := s.Register(ctx, &managementpb.RegisterNodeRequest{ + NodeType: inventorypb.NodeType_GENERIC_NODE, + NodeName: nodeName, + Address: "some.address.org", + Region: "region", + Reregister: true, + }) + assert.NoError(t, err) + + res, err := s.Unregister(ctx, &managementpb.UnregisterNodeRequest{ + NodeId: resRegister.GenericNode.NodeId, + Force: true, }) + assert.NoError(t, err) + assert.Equal(t, "", res.Warning) }) } diff --git a/managed/services/server/deps.go b/managed/services/server/deps.go index b675fba85d..2215551ba7 100644 --- a/managed/services/server/deps.go +++ b/managed/services/server/deps.go @@ -17,11 +17,11 @@ package server import ( "context" + "net/url" "time" "github.com/percona/pmm/api/serverpb" "github.com/percona/pmm/managed/models" - "github.com/percona/pmm/version" ) // healthChecker interface wraps all services that implements the IsReady method to report the @@ -73,14 +73,6 @@ type vmAlertExternalRules interface { // supervisordService is a subset of methods of supervisord.Service used by this package. // We use it instead of real type for testing and to avoid dependency cycle. type supervisordService interface { - InstalledPMMVersion(ctx context.Context) *version.PackageInfo - LastCheckUpdatesResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) - ForceCheckUpdates(ctx context.Context) error - - StartUpdate() (uint32, error) - UpdateRunning() bool - UpdateLog(offset uint32) ([]string, uint32, error) - UpdateConfiguration(settings *models.Settings, ssoDetails *models.PerconaSSODetails) error } @@ -108,3 +100,10 @@ type templatesService interface { type haService interface { IsLeader() bool } + +// victoriaMetricsParams is a subset of methods of models.VMParams used by this package. +// We use it instead of real type to avoid dependency cycle. +type victoriaMetricsParams interface { + ExternalVM() bool + URLFor(path string) (*url.URL, error) +} diff --git a/managed/services/supervisord/logs.go b/managed/services/server/logs.go similarity index 97% rename from managed/services/supervisord/logs.go rename to managed/services/server/logs.go index 207a69947d..a32735e503 100644 --- a/managed/services/supervisord/logs.go +++ b/managed/services/server/logs.go @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package supervisord +package server import ( "archive/zip" @@ -56,12 +56,12 @@ type fileContent struct { // Logs is responsible for interactions with logs. type Logs struct { pmmVersion string - pmmUpdateChecker *PMMUpdateChecker + pmmUpdateChecker *Updater vmParams victoriaMetricsParams } // NewLogs creates a new Logs service. -func NewLogs(pmmVersion string, pmmUpdateChecker *PMMUpdateChecker, vmParams victoriaMetricsParams) *Logs { +func NewLogs(pmmVersion string, pmmUpdateChecker *Updater, vmParams victoriaMetricsParams) *Logs { return &Logs{ pmmVersion: pmmVersion, pmmUpdateChecker: pmmUpdateChecker, @@ -204,7 +204,7 @@ func (l *Logs) files(ctx context.Context, pprofConfig *PprofConfig) []fileConten }) // update checker installed info - b, err = json.Marshal(l.pmmUpdateChecker.Installed(ctx)) + b, err = json.Marshal(l.pmmUpdateChecker.InstalledPMMVersion()) files = append(files, fileContent{ Name: "installed.json", Data: b, diff --git a/managed/services/supervisord/logs_test.go b/managed/services/server/logs_test.go similarity index 95% rename from managed/services/supervisord/logs_test.go rename to managed/services/server/logs_test.go index 8fb6f2a7aa..2085f632cb 100644 --- a/managed/services/supervisord/logs_test.go +++ b/managed/services/server/logs_test.go @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package supervisord +package server import ( "archive/zip" @@ -27,7 +27,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -143,10 +142,10 @@ func TestAddAdminSummary(t *testing.T) { } func TestFiles(t *testing.T) { - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) + updater := &Updater{} params, err := models.NewVictoriaMetricsParams(models.BasePrometheusConfigPath, models.VMBaseURL) require.NoError(t, err) - l := NewLogs("2.4.5", checker, params) + l := NewLogs("2.4.5", updater, params) ctx := logger.Set(context.Background(), t.Name()) files := l.files(ctx, nil) @@ -184,10 +183,10 @@ func TestFiles(t *testing.T) { func TestZip(t *testing.T) { t.Skip("FIXME") - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) + updater := &Updater{} params, err := models.NewVictoriaMetricsParams(models.BasePrometheusConfigPath, models.VMBaseURL) require.NoError(t, err) - l := NewLogs("2.4.5", checker, params) + l := NewLogs("2.4.5", updater, params) ctx := logger.Set(context.Background(), t.Name()) var buf bytes.Buffer diff --git a/managed/services/server/mock_supervisord_service_test.go b/managed/services/server/mock_supervisord_service_test.go index b958fc55b3..792e5987f1 100644 --- a/managed/services/server/mock_supervisord_service_test.go +++ b/managed/services/server/mock_supervisord_service_test.go @@ -3,13 +3,9 @@ package server import ( - context "context" - time "time" - mock "github.com/stretchr/testify/mock" models "github.com/percona/pmm/managed/models" - version "github.com/percona/pmm/version" ) // mockSupervisordService is an autogenerated mock type for the supervisordService type @@ -17,102 +13,6 @@ type mockSupervisordService struct { mock.Mock } -// ForceCheckUpdates provides a mock function with given fields: ctx -func (_m *mockSupervisordService) ForceCheckUpdates(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for ForceCheckUpdates") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// InstalledPMMVersion provides a mock function with given fields: ctx -func (_m *mockSupervisordService) InstalledPMMVersion(ctx context.Context) *version.PackageInfo { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for InstalledPMMVersion") - } - - var r0 *version.PackageInfo - if rf, ok := ret.Get(0).(func(context.Context) *version.PackageInfo); ok { - r0 = rf(ctx) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*version.PackageInfo) - } - } - - return r0 -} - -// LastCheckUpdatesResult provides a mock function with given fields: ctx -func (_m *mockSupervisordService) LastCheckUpdatesResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for LastCheckUpdatesResult") - } - - var r0 *version.UpdateCheckResult - var r1 time.Time - if rf, ok := ret.Get(0).(func(context.Context) (*version.UpdateCheckResult, time.Time)); ok { - return rf(ctx) - } - if rf, ok := ret.Get(0).(func(context.Context) *version.UpdateCheckResult); ok { - r0 = rf(ctx) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*version.UpdateCheckResult) - } - } - - if rf, ok := ret.Get(1).(func(context.Context) time.Time); ok { - r1 = rf(ctx) - } else { - r1 = ret.Get(1).(time.Time) - } - - return r0, r1 -} - -// StartUpdate provides a mock function with given fields: -func (_m *mockSupervisordService) StartUpdate() (uint32, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for StartUpdate") - } - - var r0 uint32 - var r1 error - if rf, ok := ret.Get(0).(func() (uint32, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() uint32); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(uint32) - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - // UpdateConfiguration provides a mock function with given fields: settings, ssoDetails func (_m *mockSupervisordService) UpdateConfiguration(settings *models.Settings, ssoDetails *models.PerconaSSODetails) error { ret := _m.Called(settings, ssoDetails) @@ -131,61 +31,6 @@ func (_m *mockSupervisordService) UpdateConfiguration(settings *models.Settings, return r0 } -// UpdateLog provides a mock function with given fields: offset -func (_m *mockSupervisordService) UpdateLog(offset uint32) ([]string, uint32, error) { - ret := _m.Called(offset) - - if len(ret) == 0 { - panic("no return value specified for UpdateLog") - } - - var r0 []string - var r1 uint32 - var r2 error - if rf, ok := ret.Get(0).(func(uint32) ([]string, uint32, error)); ok { - return rf(offset) - } - if rf, ok := ret.Get(0).(func(uint32) []string); ok { - r0 = rf(offset) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - if rf, ok := ret.Get(1).(func(uint32) uint32); ok { - r1 = rf(offset) - } else { - r1 = ret.Get(1).(uint32) - } - - if rf, ok := ret.Get(2).(func(uint32) error); ok { - r2 = rf(offset) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// UpdateRunning provides a mock function with given fields: -func (_m *mockSupervisordService) UpdateRunning() bool { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for UpdateRunning") - } - - var r0 bool - if rf, ok := ret.Get(0).(func() bool); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - // newMockSupervisordService creates a new instance of mockSupervisordService. 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 newMockSupervisordService(t interface { diff --git a/managed/services/supervisord/pprof_config.go b/managed/services/server/pprof_config.go similarity index 97% rename from managed/services/supervisord/pprof_config.go rename to managed/services/server/pprof_config.go index 52ab238389..9697cb8108 100644 --- a/managed/services/supervisord/pprof_config.go +++ b/managed/services/server/pprof_config.go @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package supervisord +package server import "time" diff --git a/managed/services/server/server.go b/managed/services/server/server.go index 0a18699ecb..fecbe93660 100644 --- a/managed/services/server/server.go +++ b/managed/services/server/server.go @@ -189,15 +189,14 @@ func (s *Server) Version(ctx context.Context, req *serverpb.VersionRequest) (*se res.Managed.Timestamp = timestamppb.New(t) } - if v := s.supervisord.InstalledPMMVersion(ctx); v != nil { - res.Version = v.Version - res.Server = &serverpb.VersionInfo{ - Version: v.Version, - FullVersion: v.FullVersion, - } - if v.BuildTime != nil { - res.Server.Timestamp = timestamppb.New(*v.BuildTime) - } + v := s.updater.InstalledPMMVersion() + res.Version = v.Version + res.Server = &serverpb.VersionInfo{ + Version: v.Version, + FullVersion: v.FullVersion, + } + if v.BuildTime != nil { + res.Server.Timestamp = timestamppb.New(*v.BuildTime) } return res, nil @@ -242,7 +241,14 @@ func (s *Server) CheckUpdates(ctx context.Context, req *serverpb.CheckUpdatesReq s.envRW.RUnlock() if req.OnlyInstalledVersion { - return s.updater.onlyInstalledVersionResponse(), nil + installedPMMVersion := s.updater.InstalledPMMVersion() + return &serverpb.CheckUpdatesResponse{ + Installed: &serverpb.VersionInfo{ + Version: installedPMMVersion.Version, + FullVersion: installedPMMVersion.FullVersion, + Timestamp: timestamppb.New(*installedPMMVersion.BuildTime), + }, + }, nil } if req.Force { @@ -260,12 +266,13 @@ func (s *Server) CheckUpdates(ctx context.Context, req *serverpb.CheckUpdatesReq Installed: &serverpb.VersionInfo{ Version: v.Installed.Version, FullVersion: v.Installed.FullVersion, + Timestamp: timestamppb.New(*v.Installed.BuildTime), }, - Latest: &serverpb.VersionInfo{ - Version: v.Latest.Version, - FullVersion: v.Latest.FullVersion, + Latest: &serverpb.DockerVersionInfo{ + Version: v.Latest.Version.String(), + Tag: v.Latest.DockerImage, }, - UpdateAvailable: true, + UpdateAvailable: v.Latest.DockerImage != "", LatestNewsUrl: v.LatestNewsURL, } @@ -280,7 +287,7 @@ func (s *Server) CheckUpdates(ctx context.Context, req *serverpb.CheckUpdatesReq res.Installed.Timestamp = timestamppb.New(t) } - if v.Latest.BuildTime != nil { + if v.Latest.DockerImage != "" { t := v.Latest.BuildTime.UTC().Truncate(24 * time.Hour) // return only date res.Latest.Timestamp = timestamppb.New(t) } @@ -298,7 +305,17 @@ func (s *Server) StartUpdate(ctx context.Context, req *serverpb.StartUpdateReque return nil, status.Error(codes.FailedPrecondition, "Updates are disabled via PMM_DISABLE_UPDATES environment variable.") } - err := s.updater.StartUpdate(ctx, req.GetNewImage()) + newImage := req.GetNewImage() + if newImage == "" { + latest, err := s.updater.latest(ctx) + if err != nil { + s.l.WithError(err).Error("Failed to get latest version") + newImage = defaultLatestPMMImage + } else { + newImage = latest.DockerImage + } + } + err := s.updater.StartUpdate(ctx, newImage) if err != nil { return nil, err } @@ -331,13 +348,13 @@ func (s *Server) UpdateStatus(ctx context.Context, req *serverpb.UpdateStatusReq ctx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() for ctx.Err() == nil { - done = !s.supervisord.UpdateRunning() + done = !s.updater.IsRunning() if done { // give supervisord a second to flush logs to file time.Sleep(time.Second) } - lines, newOffset, err = s.supervisord.UpdateLog(req.LogOffset) + lines, newOffset, err = s.updater.UpdateLog(req.GetLogOffset()) if err != nil { s.l.Warn(err) } diff --git a/managed/services/server/updater.go b/managed/services/server/updater.go index 9fc66da088..0240536e19 100644 --- a/managed/services/server/updater.go +++ b/managed/services/server/updater.go @@ -16,48 +16,88 @@ package server import ( + "bufio" "context" "encoding/json" "fmt" + "io" + "net" "net/http" "net/url" "os" "strings" + "sync" "time" "github.com/pkg/errors" "github.com/sirupsen/logrus" + "google.golang.org/grpc/codes" + grpcstatus "google.golang.org/grpc/status" - "github.com/percona/pmm/api/serverpb" "github.com/percona/pmm/version" ) // defaultLatestPMMImage is the default image name to use when the latest version cannot be determined. -const defaultLatestPMMImage = "perconalab/pmm-server:3-dev-latest" +const ( + defaultLatestPMMImage = "perconalab/pmm-server:3-dev-latest" + pmmUpdatePerformLog = "/srv/logs/pmm-update-perform-init.log" + updateCheckInterval = 24 * time.Hour + updateCheckResultFresh = updateCheckInterval + 10*time.Minute + updateDefaultTimeout = 30 * time.Second +) + +var fileName = "/etc/pmm-server-update-version.json" // Updater is a service to check for updates and trigger the update process. type Updater struct { - l *logrus.Entry - supervisord supervisordService - watchtowerHost *url.URL + l *logrus.Entry + watchtowerHost *url.URL + gRPCMessageMaxSize uint32 + + performM sync.Mutex + running bool + + checkRW sync.RWMutex + lastCheckResult *version.DockerVersionInfo + lastCheckTime time.Time } // NewUpdater creates a new Updater service. -func NewUpdater(supervisord supervisordService, watchtowerHost *url.URL) *Updater { - return &Updater{ - l: logrus.WithField("service", "updater"), - supervisord: supervisord, - watchtowerHost: watchtowerHost, +func NewUpdater(watchtowerHost *url.URL, gRPCMessageMaxSize uint32) *Updater { + u := &Updater{ + l: logrus.WithField("service", "updater"), + watchtowerHost: watchtowerHost, + gRPCMessageMaxSize: gRPCMessageMaxSize, + } + return u +} + +// Run runs check for updates loop until ctx is canceled. +func (up *Updater) Run(ctx context.Context) { + up.l.Info("Starting...") + ticker := time.NewTicker(updateCheckInterval) + defer ticker.Stop() + + for { + _ = up.check(ctx) + + select { + case <-ticker.C: + // continue with next loop iteration + case <-ctx.Done(): + up.l.Info("Done.") + return + } } } -func (s *Updater) sendRequestToWatchtower(ctx context.Context, newImageName string) error { +func (up *Updater) sendRequestToWatchtower(ctx context.Context, newImageName string) error { hostname, err := os.Hostname() if err != nil { return errors.Wrap(err, "failed to get hostname") } - u, err := s.watchtowerHost.Parse("/v1/update") + u, err := up.watchtowerHost.Parse("/v1/update") if err != nil { return errors.Wrap(err, "failed to parse URL") } @@ -91,135 +131,293 @@ func (s *Updater) sendRequestToWatchtower(ctx context.Context, newImageName stri return errors.Errorf("received non-OK response: %v", resp.StatusCode) } - s.l.Info("Successfully triggered update") + up.l.Info("Successfully triggered update") return nil } -func (s *Updater) currentVersion() string { - return version.Version +func (up *Updater) currentVersion() *version.Parsed { + return version.MustParse(version.Version) } // StartUpdate triggers the update process. -func (s *Updater) StartUpdate(ctx context.Context, newImageName string) error { +func (up *Updater) StartUpdate(ctx context.Context, newImageName string) error { + up.performM.Lock() + defer up.performM.Unlock() + if up.running { + return errors.New("update already in progress") + } + up.running = true + up.performM.Unlock() if newImageName == "" { - latest, err := s.latest(ctx) - if err != nil { - s.l.WithError(err).Error("Failed to get latest version") - newImageName = defaultLatestPMMImage - } else { - newImageName = fmt.Sprintf("%s:%s", latest.Repo, latest.Version) - } + return errors.New("newImageName is empty") } - if err := s.sendRequestToWatchtower(ctx, newImageName); err != nil { - s.l.WithError(err).Error("Failed to trigger update") - return errors.Wrap(err, "failed to trigger update") + err := up.checkWatchtowerHost() + if err != nil { + up.l.WithError(err).Error("Failed to check watchtower host") + return grpcstatus.Errorf(codes.FailedPrecondition, "failed to check watchtower host") } - return nil -} -func (s *Updater) onlyInstalledVersionResponse() *serverpb.CheckUpdatesResponse { - return &serverpb.CheckUpdatesResponse{ - Installed: &serverpb.VersionInfo{ - Version: s.currentVersion(), - }, + if err := up.sendRequestToWatchtower(ctx, newImageName); err != nil { + up.l.WithError(err).Error("Failed to trigger update") + return errors.Wrap(err, "failed to trigger update") } + return nil } // ForceCheckUpdates forces an update check. -func (s *Updater) ForceCheckUpdates(_ context.Context) error { - // TODO: PMM-11261 Implement this method - return nil +func (up *Updater) ForceCheckUpdates(ctx context.Context) error { + return up.check(ctx) } -// TagsResponse is a response from DockerHub. -type TagsResponse struct { - Results []struct { - Name string `json:"name"` - } `json:"results"` +// LastCheckUpdatesResult returns the result of the last update check. +func (up *Updater) LastCheckUpdatesResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) { + installed := up.InstalledPMMVersion() + latest, lastCheckTime := up.checkResult(ctx) + return &version.UpdateCheckResult{ + Installed: installed, + Latest: *latest, + UpdateAvailable: latest.DockerImage != "", + LatestNewsURL: "https://per.co.na/pmm/" + latest.Version.String(), + }, lastCheckTime } -// LastCheckUpdatesResult returns the result of the last update check. -func (s *Updater) LastCheckUpdatesResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) { - buildTime, err := version.Time() +func (up *Updater) latest(ctx context.Context) (*version.DockerVersionInfo, error) { + info, err := up.readFromFile() if err != nil { - s.l.WithError(err).Error("Failed to get build time") - return nil, time.Now() + return nil, errors.Wrap(err, "failed to read from file") } - latest, err := s.latest(ctx) - if err != nil { - s.l.WithError(err).Error("Failed to get latest version") - return nil, time.Now() + if info != nil { + return info, nil } - return &version.UpdateCheckResult{ - Installed: version.PackageInfo{ - Version: s.currentVersion(), - FullVersion: version.PMMVersion, - BuildTime: &buildTime, - Repo: "local", - }, - Latest: *latest, - UpdateAvailable: true, - LatestNewsURL: "", - }, time.Now() + if os.Getenv("PMM_DEV_UPDATE_DOCKER_IMAGE") != "" { + return up.parseDockerTag(os.Getenv("PMM_DEV_UPDATE_DOCKER_IMAGE")) + } + + // If file does not exist, and ENV variable is not set, go get the latest tag from DockerHub + return up.latestAvailableFromDockerHub(ctx) } -func (s *Updater) latest(ctx context.Context) (*version.PackageInfo, error) { +func (up *Updater) readFromFile() (*version.DockerVersionInfo, error) { // Read from file, if it's not exist read from ENV variable, if it's not exist get the latest tag from DockerHub. - fileName := "/etc/pmm-server-update-version.json" content, err := os.ReadFile(fileName) if err != nil && !os.IsNotExist(err) { - s.l.WithError(err).Error("Failed to read file") + up.l.WithError(err).Error("Failed to read file") return nil, errors.Wrap(err, "failed to read file") } - if err == nil { - info := version.PackageInfo{} - err = json.Unmarshal(content, &info) - if err != nil { - s.l.WithError(err).Error("Failed to unmarshal file") - return nil, errors.Wrap(err, "failed to unmarshal file") - } - return &info, nil + if os.IsNotExist(err) { + return nil, nil //nolint:nilnil } - if os.Getenv("PMM_SERVER_UPDATE_VERSION") != "" { - return s.parseDockerTag(os.Getenv("PMM_SERVER_UPDATE_VERSION")), nil + info := version.DockerVersionInfo{} + err = json.Unmarshal(content, &info) + if err != nil { + up.l.WithError(err).Error("Failed to unmarshal file") + return nil, errors.Wrap(err, "failed to unmarshal file") } + return &info, nil +} - // If file does not exist, and ENV variable is not set, go get the latest tag from DockerHub - u := "https://registry.hub.docker.com/v2/repositories/percona/pmm-server/tags/" +type result struct { + Name string `json:"name"` + TagLastPushed time.Time `json:"tag_last_pushed"` +} + +// TagsResponse is a response from DockerHub. +type TagsResponse struct { + Results []result `json:"results"` +} + +// latestAvailableFromDockerHub returns the latest available version from DockerHub. +// It returns the latest minor version for the current major version. +// If the current version is the latest minor version, it returns the next major version. +// If the current version is the latest version, it returns the current version. +func (up *Updater) latestAvailableFromDockerHub(ctx context.Context) (*version.DockerVersionInfo, error) { + repo := os.Getenv("PMM_DEV_UPDATE_DOCKER_REPO") + if repo == "" { + repo = "percona/pmm-server" + } + u := "https://registry.hub.docker.com/v2/repositories/" + repo + "/tags/?page_size=100" req, err := http.NewRequestWithContext(ctx, http.MethodGet, u, nil) if err != nil { - s.l.WithError(err).Error("Failed to create request") + up.l.WithError(err).Error("Failed to create request") return nil, errors.Wrap(err, "failed to create request") } resp, err := http.DefaultClient.Do(req) if err != nil { - s.l.WithError(err).Error("Failed to get tags from DockerHub") + up.l.WithError(err).Error("Failed to get tags from DockerHub") return nil, errors.Wrap(err, "failed to get tags from DockerHub") } defer resp.Body.Close() //nolint:errcheck var tagsResponse TagsResponse if err := json.NewDecoder(resp.Body).Decode(&tagsResponse); err != nil { - s.l.WithError(err).Error("Failed to decode response") + up.l.WithError(err).Error("Failed to decode response") return nil, errors.Wrap(err, "failed to decode response") } if len(tagsResponse.Results) != 0 { - // Assuming the first tag is the latest - return s.parseDockerTag(tagsResponse.Results[0].Name), nil + up.l.Infof("Found %d tags", len(tagsResponse.Results)) + next := up.next(*up.currentVersion(), tagsResponse.Results) + if next.DockerImage != "" { + next.DockerImage = repo + ":" + next.DockerImage + } + return next, err } return nil, errors.New("no tags found") } -func (s *Updater) parseDockerTag(tag string) *version.PackageInfo { +func (up *Updater) parseDockerTag(tag string) (*version.DockerVersionInfo, error) { splitTag := strings.Split(tag, ":") if len(splitTag) != 2 { - return nil + return nil, fmt.Errorf("invalid tag: %s", tag) + } + parsed, err := version.Parse(splitTag[1]) + if err != nil { + up.l.Debugf("Failed to parse version: %s", splitTag[1]) + return &version.DockerVersionInfo{DockerImage: tag}, nil //nolint:nilerr + } + return &version.DockerVersionInfo{ + Version: *parsed, + DockerImage: tag, + }, nil +} + +func (up *Updater) next(currentVersion version.Parsed, results []result) *version.DockerVersionInfo { + nextMinor := &version.DockerVersionInfo{ + Version: currentVersion, + } + var nextMajor *version.DockerVersionInfo + for _, result := range results { + v, err := version.Parse(result.Name) + if err != nil { + up.l.Debugf("Failed to parse version: %s", result.Name) + continue + } + if !currentVersion.Less(v) { + continue + } + if v.Major == currentVersion.Major && nextMinor.Version.Less(v) { // next major + nextMinor = &version.DockerVersionInfo{ + Version: *v, + DockerImage: result.Name, + BuildTime: result.TagLastPushed, + } + } + if v.Major > currentVersion.Major && + (nextMajor == nil || (nextMajor.Version.Less(v) && nextMajor.Version.Major == v.Major) || v.Major < nextMajor.Version.Major) { + nextMajor = &version.DockerVersionInfo{ + Version: *v, + DockerImage: result.Name, + BuildTime: result.TagLastPushed, + } + } + } + if nextMinor.Version == currentVersion && nextMajor != nil { + return nextMajor + } + return nextMinor +} + +// InstalledPMMVersion returns the currently installed PMM version. +func (up *Updater) InstalledPMMVersion() version.PackageInfo { + t, _ := version.Time() + return version.PackageInfo{ + Version: version.Version, + FullVersion: version.PMMVersion, + BuildTime: &t, + } +} + +// IsRunning returns true if the update process is running. +func (up *Updater) IsRunning() bool { + up.performM.Lock() + defer up.performM.Unlock() + return up.running +} + +// UpdateLog returns the log of the update process. +func (up *Updater) UpdateLog(offset uint32) ([]string, uint32, error) { + up.performM.Lock() + defer up.performM.Unlock() + + f, err := os.Open(pmmUpdatePerformLog) + if err != nil { + return nil, 0, errors.WithStack(err) + } + defer f.Close() //nolint:errcheck,gosec,nolintlint + + if _, err = f.Seek(int64(offset), io.SeekStart); err != nil { + return nil, 0, errors.WithStack(err) + } + + lines := make([]string, 0, 10) + reader := bufio.NewReader(f) + newOffset := offset + for { + line, err := reader.ReadString('\n') + if err == nil { + newOffset += uint32(len(line)) + if newOffset-offset > up.gRPCMessageMaxSize { + return lines, newOffset - uint32(len(line)), nil + } + lines = append(lines, strings.TrimSuffix(line, "\n")) + continue + } + if err == io.EOF { + err = nil + } + return lines, newOffset, errors.WithStack(err) + } +} + +// checkResult returns the result of the last update check. +// It may force re-check if last result is empty or too old. +func (up *Updater) checkResult(ctx context.Context) (*version.DockerVersionInfo, time.Time) { + up.checkRW.RLock() + defer up.checkRW.RUnlock() + + if time.Since(up.lastCheckTime) > updateCheckResultFresh { + up.checkRW.RUnlock() + _ = up.check(ctx) + up.checkRW.RLock() + } + + return up.lastCheckResult, up.lastCheckTime +} + +// check performs update check. +func (up *Updater) check(ctx context.Context) error { + up.checkRW.Lock() + defer up.checkRW.Unlock() + + latest, err := up.latest(ctx) + if err != nil { + return errors.Wrap(err, "failed to get latest version") + } + up.lastCheckResult = latest + up.lastCheckTime = time.Now() + return nil +} + +func (up *Updater) checkWatchtowerHost() error { + // Check if watchtower host is available + if up.watchtowerHost == nil { + return errors.New("watchtower host is not set") + } + if !isHostAvailable(up.watchtowerHost.Hostname(), up.watchtowerHost.Port(), updateDefaultTimeout) { + return errors.New("watchtower host is not available") + } + return nil +} + +func isHostAvailable(host string, port string, timeout time.Duration) bool { + conn, err := net.DialTimeout("tcp", net.JoinHostPort(host, port), timeout) + if err != nil { + return false } - return &version.PackageInfo{ - Version: splitTag[1], - FullVersion: tag, - Repo: splitTag[0], + if conn != nil { + defer conn.Close() //nolint:errcheck + return true } + return false } diff --git a/managed/services/server/updater_test.go b/managed/services/server/updater_test.go new file mode 100644 index 0000000000..68bb6e69f4 --- /dev/null +++ b/managed/services/server/updater_test.go @@ -0,0 +1,274 @@ +// Copyright (C) 2023 Percona LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package server + +import ( + "context" + "net/url" + "os" + "path/filepath" + "strings" + "testing" + "time" + + "github.com/AlekSi/pointer" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/percona/pmm/version" +) + +func TestUpdater(t *testing.T) { + gRPCMessageMaxSize := uint32(100 * 1024 * 1024) + watchtowerURL, _ := url.Parse("http://watchtower:8080") + + t.Run("TestNextVersion", func(t *testing.T) { + type args struct { + currentVersion string + results []result + } + type versionInfo struct { + Version string + DockerImage string + BuildTime *time.Time + } + tests := []struct { + name string + args args + want *versionInfo + }{ + { + name: "no results", + args: args{ + currentVersion: "3.0.0", + results: nil, + }, + want: &versionInfo{ + Version: "3.0.0", + DockerImage: "", + }, + }, + { + name: "no new version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + }, + }, + want: &versionInfo{ + Version: "3.0.0", + DockerImage: "", + }, + }, + { + name: "new minor versions", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.2.0"}, + {Name: "3.1.0"}, + {Name: "3.0.0"}, + }, + }, + want: &versionInfo{ + Version: "3.2.0", + DockerImage: "3.2.0", + }, + }, + { + name: "new patch version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + {Name: "3.0.1", TagLastPushed: time.Date(2024, 3, 20, 15, 48, 7, 145620000, time.UTC)}, + }, + }, + want: &versionInfo{ + Version: "3.0.1", + DockerImage: "3.0.1", + BuildTime: pointer.To(time.Date(2024, 3, 20, 15, 48, 7, 145620000, time.UTC)), + }, + }, + { + name: "new major version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "4.0.0"}, + {Name: "3.0.0"}, + }, + }, + want: &versionInfo{ + Version: "4.0.0", + DockerImage: "4.0.0", + }, + }, + { + name: "new major version with rc version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "4.0.0"}, + {Name: "3.0.0"}, + {Name: "4.0.0-rc"}, + }, + }, + want: &versionInfo{ + Version: "4.0.0", + DockerImage: "4.0.0", + }, + }, + { + name: "multiple new major versions", + args: args{ + currentVersion: "3.3.0", + results: []result{ + {Name: "4.1.0"}, + {Name: "4.0.0"}, + {Name: "3.0.0"}, + {Name: "5.1.0"}, + }, + }, + want: &versionInfo{ + Version: "4.1.0", + DockerImage: "4.1.0", + }, + }, + { + name: "new major version with minor version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "4.1.0"}, + {Name: "4.0.0"}, + {Name: "3.0.0"}, + {Name: "3.1.0"}, + }, + }, + want: &versionInfo{ + Version: "3.1.0", + DockerImage: "3.1.0", + }, + }, + { + name: "invalid version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + {Name: "3.1.0"}, + {Name: "invalid"}, + }, + }, + want: &versionInfo{ + Version: "3.1.0", + DockerImage: "3.1.0", + }, + }, + { + name: "non semver version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + {Name: "3.1"}, + }, + }, + want: &versionInfo{ + Version: "3.0.0", + DockerImage: "", + }, + }, + { + name: "rc version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + {Name: "3.1.0-rc"}, + {Name: "3.1.0-rc757"}, + }, + }, + want: &versionInfo{ + Version: "3.1.0-rc757", + DockerImage: "3.1.0-rc757", + }, + }, + { + name: "rc version and release version", + args: args{ + currentVersion: "3.0.0", + results: []result{ + {Name: "3.0.0"}, + {Name: "3.1.0"}, + {Name: "3.1.0-rc"}, + {Name: "3.1.0-rc757"}, + }, + }, + want: &versionInfo{ + Version: "3.1.0", + DockerImage: "3.1.0", + }, + }, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + u := NewUpdater(watchtowerURL, gRPCMessageMaxSize) + parsed, err := version.Parse(tt.args.currentVersion) + require.NoError(t, err) + next := u.next(*parsed, tt.args.results) + require.NoError(t, err) + assert.Equal(t, tt.want.Version, next.Version.String()) + assert.Equal(t, tt.want.DockerImage, next.DockerImage) + if tt.want.BuildTime != nil { + assert.NotNil(t, next.BuildTime) + assert.Equal(t, *tt.want.BuildTime, next.BuildTime) + } + }) + } + }) + + t.Run("TestLatest", func(t *testing.T) { + // Used PMM 2, because PMM 3 is not released yet. + version.Version = "2.41.0" + u := NewUpdater(watchtowerURL, gRPCMessageMaxSize) + latest, err := u.latest(context.Background()) + require.NoError(t, err) + assert.NotNil(t, latest) + assert.True(t, strings.HasPrefix(latest.Version.String(), "2.41."), "latest version of PMM 2 should have prefix 2.41.") + }) + + t.Run("TestParseFile", func(t *testing.T) { + fileBody := `{ "version": "2.41.1" , "docker_image": "2.41.1" , "build_time": "2024-03-20T15:48:07.14562Z" }` + oldFileName := fileName + fileName = filepath.Join(os.TempDir(), "pmm-update.json") + defer func() { fileName = oldFileName }() + + err := os.WriteFile(fileName, []byte(fileBody), 0o600) + require.NoError(t, err) + + u := NewUpdater(watchtowerURL, gRPCMessageMaxSize) + latest, err := u.latest(context.Background()) + require.NoError(t, err) + assert.Equal(t, "2.41.1", latest.Version.String()) + assert.Equal(t, "2.41.1", latest.DockerImage) + assert.Equal(t, time.Date(2024, 3, 20, 15, 48, 7, 145620000, time.UTC), latest.BuildTime) + }) +} diff --git a/managed/services/supervisord/deps.go b/managed/services/supervisord/deps.go index 9de477c334..9176f8b1bb 100644 --- a/managed/services/supervisord/deps.go +++ b/managed/services/supervisord/deps.go @@ -14,12 +14,3 @@ // along with this program. If not, see . package supervisord - -import "net/url" - -// victoriaMetricsParams is a subset of methods of models.VMParams used by this package. -// We use it instead of real type to avoid dependency cycle. -type victoriaMetricsParams interface { - ExternalVM() bool - URLFor(path string) (*url.URL, error) -} diff --git a/managed/services/supervisord/devcontainer_test.go b/managed/services/supervisord/devcontainer_test.go index e7b688c011..d2679a729f 100644 --- a/managed/services/supervisord/devcontainer_test.go +++ b/managed/services/supervisord/devcontainer_test.go @@ -19,105 +19,23 @@ import ( "context" "os" "path/filepath" - "strconv" - "strings" "testing" "time" - "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" "github.com/percona/pmm/managed/models" - "github.com/percona/pmm/version" ) // TODO move tests to other files and remove this one. func TestDevContainer(t *testing.T) { - gRPCMessageMaxSize := uint32(100 * 1024 * 1024) - gaReleaseDate := time.Date(2019, 9, 18, 0, 0, 0, 0, time.UTC) - - t.Run("Installed", func(t *testing.T) { - ctx := context.TODO() - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) - - info := checker.Installed(ctx) - require.NotNil(t, info) - - assert.True(t, strings.HasPrefix(info.Version, "3."), "version should start with `3.`. Actual value is: %s", info.Version) - fullVersion, _ := normalizeFullversion(info) - assert.True(t, strings.HasPrefix(fullVersion, "3."), "full version should start with `3.`. Actual value is: %s", fullVersion) - require.NotEmpty(t, info.BuildTime) - assert.True(t, info.BuildTime.After(gaReleaseDate), "BuildTime = %s", info.BuildTime) - assert.Equal(t, "local", info.Repo) - - info2 := checker.Installed(ctx) - assert.Equal(t, info, info2) - }) - - t.Run("Check", func(t *testing.T) { - t.Skip("This test is to be deprecated or completely rewritten") - - ctx := context.TODO() - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) - - res, resT := checker.checkResult(ctx) - assert.WithinDuration(t, time.Now(), resT, time.Second) - - assert.True(t, strings.HasPrefix(res.Installed.Version, "3."), "installed version should start with `3.`. Actual value is: %s", res.Installed.Version) - installedFullVersion, _ := normalizeFullversion(&res.Installed) - assert.True(t, strings.HasPrefix(installedFullVersion, "3."), "installed full version should start with `3.`. Actual value is: %s", installedFullVersion) - require.NotEmpty(t, res.Installed.BuildTime) - assert.True(t, res.Installed.BuildTime.After(gaReleaseDate), "Installed.BuildTime = %s", res.Installed.BuildTime) - assert.Equal(t, "local", res.Installed.Repo) - - assert.True(t, strings.HasPrefix(res.Latest.Version, "3."), "The latest available version should start with `3.`. Actual value is: %s", res.Latest.Version) - latestFullVersion, isFeatureBranch := normalizeFullversion(&res.Latest) - if isFeatureBranch { - t.Skip("Skipping check latest version.") - } - assert.True(t, strings.HasPrefix(latestFullVersion, "3."), "The latest available versions full value should start with `3.`. Actual value is: %s", latestFullVersion) - require.NotEmpty(t, res.Latest.BuildTime) - assert.True(t, res.Latest.BuildTime.After(gaReleaseDate), "Latest.BuildTime = %s", res.Latest.BuildTime) - assert.NotEmpty(t, res.Latest.Repo) - - // We assume that the latest perconalab/pmm-server:3-dev-latest image - // always contains the latest pmm-update package versions. - // If this test fails, re-pull them and recreate devcontainer. - t.Log("Assuming the latest pmm-update version.") - assert.False(t, res.UpdateAvailable, "update should not be available") - assert.Empty(t, res.LatestNewsURL, "latest_news_url should be empty") - assert.Equal(t, res.Installed, res.Latest, "version should be the same (latest)") - assert.Equal(t, *res.Installed.BuildTime, *res.Latest.BuildTime, "build times should be the same") - assert.Equal(t, "local", res.Latest.Repo) - - // cached result - res2, resT2 := checker.checkResult(ctx) - assert.Equal(t, res, res2) - assert.Equal(t, resT, resT2) - - time.Sleep(100 * time.Millisecond) - ctx, cancel := context.WithTimeout(context.Background(), updateDefaultTimeout) - defer cancel() - go checker.run(ctx) - time.Sleep(100 * time.Millisecond) - - // should block and wait for run to finish one iteration - res3, resT3 := checker.checkResult(ctx) - assert.Equal(t, res2, res3) - assert.NotEqual(t, resT2, resT3, "%s", resT2) - assert.WithinDuration(t, resT2, resT3, 10*time.Second) - }) - t.Run("UpdateConfiguration", func(t *testing.T) { // logrus.SetLevel(logrus.DebugLevel) - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) vmParams, err := models.NewVictoriaMetricsParams(models.BasePrometheusConfigPath, models.VMBaseURL) require.NoError(t, err) - s := New("/etc/supervisord.d", checker, &models.Params{VMParams: vmParams, PGParams: &models.PGParams{}, HAParams: &models.HAParams{}}, gRPCMessageMaxSize) + s := New("/etc/supervisord.d", &models.Params{VMParams: vmParams, PGParams: &models.PGParams{}, HAParams: &models.HAParams{}}) require.NotEmpty(t, s.supervisorctlPath) ctx, cancel := context.WithCancel(context.Background()) @@ -159,88 +77,4 @@ func TestDevContainer(t *testing.T) { err = s.UpdateConfiguration(settings, nil) require.NoError(t, err) }) - - t.Run("Update", func(t *testing.T) { - // This test can be run only once as it breaks assumptions of other tests. - // It also should be the last test in devcontainer. - if ok, _ := strconv.ParseBool(os.Getenv("PMM_TEST_RUN_UPDATE")); !ok { - t.Skip("skipping update test") - } - - // logrus.SetLevel(logrus.DebugLevel) - checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) - vmParams := &models.VictoriaMetricsParams{} - s := New("/etc/supervisord.d", checker, &models.Params{VMParams: vmParams, PGParams: &models.PGParams{}, HAParams: &models.HAParams{}}, gRPCMessageMaxSize) - require.NotEmpty(t, s.supervisorctlPath) - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - go s.Run(ctx) - - require.Equal(t, false, s.UpdateRunning()) - - offset, err := s.StartUpdate() - require.NoError(t, err) - assert.Zero(t, offset) - - assert.True(t, s.UpdateRunning()) - - _, err = s.StartUpdate() - assert.Equal(t, status.Errorf(codes.FailedPrecondition, "Update is already running."), err) - - // get logs as often as possible to increase a chance for race detector to spot something - var lastLine string - for { - done := s.UpdateRunning() - if done { - // give supervisord a second to flush logs to file - time.Sleep(time.Second) - } - - lines, newOffset, err := s.UpdateLog(offset) - require.NoError(t, err) - if newOffset == offset { - assert.Empty(t, lines, "lines:\n%s", strings.Join(lines, "\n")) - if done { - continue - } - break - } - - assert.NotEmpty(t, lines) - t.Logf("%s", strings.Join(lines, "\n")) - lastLine = lines[len(lines)-1] - - assert.NotZero(t, newOffset) - assert.True(t, newOffset > offset, "expected newOffset = %d > offset = %d", newOffset, offset) - offset = newOffset - } - - t.Logf("lastLine = %q", lastLine) - assert.Contains(t, lastLine, "Waiting for Grafana dashboards update to finish...") - - // extra checks that we did not miss `pmp-update -perform` self-update and restart by supervisord - const wait = 3 * time.Second - const delay = 200 * time.Millisecond - for i := 0; i < int(wait/delay); i++ { - time.Sleep(delay) - require.False(t, s.UpdateRunning()) - lines, newOffset, err := s.UpdateLog(offset) - require.NoError(t, err) - require.Empty(t, lines, "lines:\n%s", strings.Join(lines, "\n")) - require.Equal(t, offset, newOffset, "offset = %d, newOffset = %d", offset, newOffset) - } - }) -} - -func normalizeFullversion(info *version.PackageInfo) (version string, isFeatureBranch bool) { - fullVersion := info.FullVersion - - epochPrefix := "1:" // set by RPM_EPOCH in PMM Server build scripts - isFeatureBranch = strings.HasPrefix(fullVersion, epochPrefix) - if isFeatureBranch { - fullVersion = strings.TrimPrefix(fullVersion, epochPrefix) - } - - return fullVersion, isFeatureBranch } diff --git a/managed/services/supervisord/maintail_test.go b/managed/services/supervisord/maintail_test.go index 2e108a66f6..61d9373e9a 100644 --- a/managed/services/supervisord/maintail_test.go +++ b/managed/services/supervisord/maintail_test.go @@ -29,11 +29,6 @@ func TestParseEvent(t *testing.T) { t.Parallel() log := strings.Split(` - 2019-08-08 17:09:41,806 INFO spawned: 'pmm-update-perform' with pid 12983 - 2019-08-08 17:09:43,509 INFO success: pmm-update-perform entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) - 2019-08-08 17:09:48,494 INFO exited: pmm-update-perform (exit status 1; not expected) - 2019-08-08 17:09:48,506 INFO spawned: 'pmm-update-perform' with pid 13000 - 2019-08-08 17:09:49,506 INFO success: pmm-update-perform entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-08-08 17:09:57,284 INFO received SIGUSR2 indicating log reopen request 2019-08-08 17:09:57,284 INFO supervisord logreopen 2019-08-08 17:09:57,854 INFO waiting for pmm-managed to stop @@ -45,7 +40,6 @@ func TestParseEvent(t *testing.T) { 2019-08-08 17:10:27,686 INFO spawned: 'dashboard-upgrade' with pid 13888 2019-08-08 17:10:27,686 INFO success: dashboard-upgrade entered RUNNING state, process has stayed up for > than 0 seconds (startsecs) 2019-08-08 17:10:27,761 INFO exited: dashboard-upgrade (exit status 0; expected) - 2019-08-08 17:10:28,975 INFO exited: pmm-update-perform (exit status 0; expected) `, "\n") var actual []*event @@ -59,11 +53,6 @@ func TestParseEvent(t *testing.T) { } } expected := []*event{ - {Time: time.Date(2019, 8, 8, 17, 9, 41, 806000000, time.UTC), Type: starting, Program: "pmm-update-perform"}, - {Time: time.Date(2019, 8, 8, 17, 9, 43, 509000000, time.UTC), Type: running, Program: "pmm-update-perform"}, - {Time: time.Date(2019, 8, 8, 17, 9, 48, 494000000, time.UTC), Type: exitedUnexpected, Program: "pmm-update-perform"}, - {Time: time.Date(2019, 8, 8, 17, 9, 48, 506000000, time.UTC), Type: starting, Program: "pmm-update-perform"}, - {Time: time.Date(2019, 8, 8, 17, 9, 49, 506000000, time.UTC), Type: running, Program: "pmm-update-perform"}, {Time: time.Date(2019, 8, 8, 17, 9, 57, 284000000, time.UTC), Type: logReopen, Program: "supervisord"}, {Time: time.Date(2019, 8, 8, 17, 9, 57, 854000000, time.UTC), Type: stopping, Program: "pmm-managed"}, {Time: time.Date(2019, 8, 8, 17, 9, 59, 854000000, time.UTC), Type: stopping, Program: "pmm-managed"}, @@ -73,7 +62,6 @@ func TestParseEvent(t *testing.T) { {Time: time.Date(2019, 8, 8, 17, 10, 27, 686000000, time.UTC), Type: starting, Program: "dashboard-upgrade"}, {Time: time.Date(2019, 8, 8, 17, 10, 27, 686000000, time.UTC), Type: running, Program: "dashboard-upgrade"}, {Time: time.Date(2019, 8, 8, 17, 10, 27, 761000000, time.UTC), Type: exitedExpected, Program: "dashboard-upgrade"}, - {Time: time.Date(2019, 8, 8, 17, 10, 28, 975000000, time.UTC), Type: exitedExpected, Program: "pmm-update-perform"}, } assert.Equal(t, expected, actual) }) diff --git a/managed/services/supervisord/pmm_config.go b/managed/services/supervisord/pmm_config.go index 4ef71c0fdd..432e22ea32 100644 --- a/managed/services/supervisord/pmm_config.go +++ b/managed/services/supervisord/pmm_config.go @@ -196,20 +196,4 @@ stdout_logfile = /srv/logs/pmm-agent.log stdout_logfile_maxbytes = 50MB stdout_logfile_backups = 2 redirect_stderr = true - -[program:pmm-update-perform] -command = /usr/sbin/pmm-update -perform -playbook=/opt/ansible/pmm-docker/update.yml -user = pmm -directory = / -autorestart = unexpected -exitcodes = 0 -autostart = false -startretries = 10 -startsecs = 1 -stopsignal = TERM -stopwaitsecs = 300 -stdout_logfile = /srv/logs/pmm-update-perform.log -stdout_logfile_maxbytes = 50MB -stdout_logfile_backups = 3 -redirect_stderr = true `)) diff --git a/managed/services/supervisord/pmm_update_checker.go b/managed/services/supervisord/pmm_update_checker.go deleted file mode 100644 index fe062da7fe..0000000000 --- a/managed/services/supervisord/pmm_update_checker.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright (C) 2023 Percona LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package supervisord - -import ( - "bytes" - "context" - "encoding/json" - "os/exec" - "strings" - "sync" - "time" - - "github.com/pkg/errors" - "github.com/sirupsen/logrus" - "golang.org/x/sys/unix" - - "github.com/percona/pmm/utils/pdeathsig" - "github.com/percona/pmm/version" -) - -const ( - updateCheckInterval = 24 * time.Hour - updateCheckResultFresh = updateCheckInterval + 10*time.Minute - updateDefaultTimeout = 30 * time.Second -) - -// PMMUpdateChecker wraps `pmm-update -installed` and `pmm-update -check` with caching. -// -// We almost could use `supervisorctl start pmm-update-check` and then get output from stdout log file, -// but that is too painful, and, unlike with `pmm-update -perform`, we don't have to do it. -type PMMUpdateChecker struct { - l *logrus.Entry - - checkRW sync.RWMutex - installedRW sync.RWMutex - cmdMutex sync.Mutex - lastInstalledPackageInfo *version.PackageInfo - lastCheckResult *version.UpdateCheckResult - lastCheckTime time.Time -} - -// NewPMMUpdateChecker returns a PMMUpdateChecker instance that can be shared across different parts of the code. -// Since this is used inside this package, it could be a singleton, but it would make things mode difficult to test. -func NewPMMUpdateChecker(l *logrus.Entry) *PMMUpdateChecker { - return &PMMUpdateChecker{ - l: l, - } -} - -// run runs check for updates loop until ctx is canceled. -func (p *PMMUpdateChecker) run(ctx context.Context) { - p.l.Info("Starting...") - ticker := time.NewTicker(updateCheckInterval) - defer ticker.Stop() - - for { - _ = p.check(ctx) - - select { - case <-ticker.C: - // continue with next loop iteration - case <-ctx.Done(): - p.l.Info("Done.") - return - } - } -} - -// Installed returns currently installed version information. -// It is always cached since pmm-update RPM package is always updated before pmm-managed update/restart. -func (p *PMMUpdateChecker) Installed(ctx context.Context) *version.PackageInfo { - p.installedRW.RLock() - if p.lastInstalledPackageInfo != nil { - res := p.lastInstalledPackageInfo - p.installedRW.RUnlock() - return res - } - p.installedRW.RUnlock() - - // use -installed since it is much faster - cmdLine := "pmm-update -installed" - b, stderr, err := p.cmdRun(ctx, cmdLine) - if err != nil { - p.l.Errorf("%s output: %s. Error: %s", cmdLine, stderr.Bytes(), err) - return nil - } - - var res version.UpdateInstalledResult - if err = json.Unmarshal(b, &res); err != nil { - p.l.Errorf("%s output: %s", cmdLine, stderr.Bytes()) - return nil - } - - p.installedRW.Lock() - p.lastInstalledPackageInfo = &res.Installed - p.installedRW.Unlock() - - return &res.Installed -} - -func (p *PMMUpdateChecker) cmdRun(ctx context.Context, cmdLine string) ([]byte, bytes.Buffer, error) { - args := strings.Split(cmdLine, " ") - p.cmdMutex.Lock() - timeoutCtx, cancel := context.WithTimeout(ctx, updateDefaultTimeout) - defer cancel() - cmd := exec.CommandContext(timeoutCtx, args[0], args[1:]...) //nolint:gosec - var stderr bytes.Buffer - cmd.Stderr = &stderr - pdeathsig.Set(cmd, unix.SIGKILL) - - b, err := cmd.Output() - p.cmdMutex.Unlock() - return b, stderr, err -} - -// checkResult returns last `pmm-update -check` result and check time. -// It may force re-check if last result is empty or too old. -func (p *PMMUpdateChecker) checkResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) { - p.checkRW.RLock() - defer p.checkRW.RUnlock() - - if time.Since(p.lastCheckTime) > updateCheckResultFresh { - p.checkRW.RUnlock() - _ = p.check(ctx) - p.checkRW.RLock() - } - - return p.lastCheckResult, p.lastCheckTime -} - -// check calls `pmm-update -check` and fills lastInstalledPackageInfo/lastCheckResult/lastCheckTime on success. -func (p *PMMUpdateChecker) check(ctx context.Context) error { - p.checkRW.Lock() - defer p.checkRW.Unlock() - - cmdLine := "pmm-update -check" - b, stderr, err := p.cmdRun(ctx, cmdLine) - if err != nil { - p.l.Errorf("%s output: %s. Error: %s", cmdLine, stderr.Bytes(), err) - return errors.WithStack(err) - } - - var res version.UpdateCheckResult - if err = json.Unmarshal(b, &res); err != nil { - p.l.Errorf("%s output: %s", cmdLine, stderr.Bytes()) - return errors.WithStack(err) - } - - p.l.Debugf("%s output: %s", cmdLine, stderr.Bytes()) - p.installedRW.Lock() - p.lastInstalledPackageInfo = &res.Installed - p.installedRW.Unlock() - p.lastCheckResult = &res - p.lastCheckTime = time.Now() - return nil -} diff --git a/managed/services/supervisord/supervisord.go b/managed/services/supervisord/supervisord.go index 41c0f5bf19..bbf6a85498 100644 --- a/managed/services/supervisord/supervisord.go +++ b/managed/services/supervisord/supervisord.go @@ -21,7 +21,6 @@ import ( "bytes" "context" "fmt" - "io" "io/fs" "net/url" "os" @@ -38,13 +37,10 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" "golang.org/x/sys/unix" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" "github.com/percona/pmm/managed/models" "github.com/percona/pmm/managed/utils/envvars" "github.com/percona/pmm/utils/pdeathsig" - "github.com/percona/pmm/version" ) const ( @@ -63,18 +59,15 @@ const ( // Service is responsible for interactions with Supervisord via supervisorctl. type Service struct { - configDir string - supervisorctlPath string - gRPCMessageMaxSize uint32 - l *logrus.Entry - pmmUpdateCheck *PMMUpdateChecker + configDir string + supervisorctlPath string + l *logrus.Entry eventsM sync.Mutex subs map[chan *event]sub lastEvents map[string]eventType - pmmUpdatePerformLogM sync.Mutex - supervisordConfigsM sync.Mutex + supervisordConfigsM sync.Mutex vmParams *models.VictoriaMetricsParams pgParams *models.PGParams @@ -88,52 +81,26 @@ type sub struct { // values from supervisord configuration. const ( - pmmUpdatePerformProgram = "pmm-update-perform" - pmmUpdatePerformLog = "/srv/logs/pmm-update-perform.log" - pmmConfig = "/etc/supervisord.d/pmm.ini" + pmmConfig = "/etc/supervisord.d/pmm.ini" ) // New creates new service. -func New(configDir string, pmmUpdateCheck *PMMUpdateChecker, params *models.Params, gRPCMessageMaxSize uint32) *Service { +func New(configDir string, params *models.Params) *Service { path, _ := exec.LookPath("supervisorctl") return &Service{ - configDir: configDir, - supervisorctlPath: path, - gRPCMessageMaxSize: gRPCMessageMaxSize, - l: logrus.WithField("component", "supervisord"), - pmmUpdateCheck: pmmUpdateCheck, - subs: make(map[chan *event]sub), - lastEvents: make(map[string]eventType), - vmParams: params.VMParams, - pgParams: params.PGParams, - haParams: params.HAParams, + configDir: configDir, + supervisorctlPath: path, + l: logrus.WithField("component", "supervisord"), + subs: make(map[chan *event]sub), + lastEvents: make(map[string]eventType), + vmParams: params.VMParams, + pgParams: params.PGParams, + haParams: params.HAParams, } } // Run reads supervisord's log (maintail) and sends events to subscribers. func (s *Service) Run(ctx context.Context) { - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - - // pre-set installed packages info to cache it. - s.pmmUpdateCheck.Installed(ctx) - - // Do not check for updates for the first 10 minutes. - // That solves PMM Server building problems when we start pmm-managed. - // TODO https://jira.percona.com/browse/PMM-4429 - sleepCtx, sleepCancel := context.WithTimeout(ctx, 10*time.Minute) - <-sleepCtx.Done() - sleepCancel() - if ctx.Err() != nil { - return - } - - s.pmmUpdateCheck.run(ctx) - }() - defer wg.Wait() - if s.supervisorctlPath == "" { s.l.Errorf("supervisorctl not found, updates are disabled.") return @@ -210,21 +177,6 @@ func (s *Service) Run(ctx context.Context) { } } -// InstalledPMMVersion returns currently installed PMM version information. -func (s *Service) InstalledPMMVersion(ctx context.Context) *version.PackageInfo { - return s.pmmUpdateCheck.Installed(ctx) -} - -// LastCheckUpdatesResult returns last PMM update check result and last check time. -func (s *Service) LastCheckUpdatesResult(ctx context.Context) (*version.UpdateCheckResult, time.Time) { - return s.pmmUpdateCheck.checkResult(ctx) -} - -// ForceCheckUpdates forces check for PMM updates. Result can be obtained via LastCheckUpdatesResult. -func (s *Service) ForceCheckUpdates(ctx context.Context) error { - return s.pmmUpdateCheck.check(ctx) -} - func (s *Service) subscribe(program string, eventTypes ...eventType) chan *event { ch := make(chan *event, 1) s.eventsM.Lock() @@ -249,66 +201,6 @@ func (s *Service) supervisorctl(args ...string) ([]byte, error) { return b, errors.Wrapf(err, "%s failed", cmdLine) } -// StartUpdate starts pmm-update-perform supervisord program with some preparations. -// It returns initial log file offset. -func (s *Service) StartUpdate() (uint32, error) { - if s.UpdateRunning() { - return 0, status.Errorf(codes.FailedPrecondition, "Update is already running.") - } - - // We need to remove and reopen log file for UpdateStatus API to be able to read it without it being rotated. - // Additionally, SIGUSR2 is expected by our Ansible playbook. - - s.pmmUpdatePerformLogM.Lock() - defer s.pmmUpdatePerformLogM.Unlock() - - // remove existing log file - err := os.Remove(pmmUpdatePerformLog) - if err != nil && errors.Is(err, fs.ErrNotExist) { - err = nil - } - if err != nil { - s.l.Warn(err) - } - - // send SIGUSR2 to supervisord and wait for it to reopen log file - ch := s.subscribe("supervisord", logReopen) - b, err := s.supervisorctl("pid") - if err != nil { - return 0, err - } - pid, err := strconv.Atoi(strings.TrimSpace(string(b))) - if err != nil { - return 0, errors.WithStack(err) - } - p, err := os.FindProcess(pid) - if err != nil { - return 0, errors.WithStack(err) - } - if err = p.Signal(unix.SIGUSR2); err != nil { - s.l.Warnf("Failed to send SIGUSR2: %s", err) - } - s.l.Debug("Waiting for log reopen...") - <-ch - - var offset uint32 - fi, err := os.Stat(pmmUpdatePerformLog) - switch { - case err == nil: - if fi.Size() != 0 { - s.l.Warnf("Unexpected log file size: %+v", fi) - } - offset = uint32(fi.Size()) - case errors.Is(err, fs.ErrNotExist): - // that's expected as we remove this file above - default: - s.l.Warn(err) - } - - _, err = s.supervisorctl("start", pmmUpdatePerformProgram) - return offset, err -} - // parseStatus parses `supervisorctl status ` output, returns true if is running, // false if definitely not, and nil if status can't be determined. func parseStatus(status string) *bool { @@ -327,11 +219,6 @@ func parseStatus(status string) *bool { return nil } -// UpdateRunning returns true if pmm-update-perform is not done yet. -func (s *Service) UpdateRunning() bool { - return s.programRunning(pmmUpdatePerformProgram) -} - // UpdateRunning returns true if given supervisord program is running or being restarted, // false if it is not running / failed. func (s *Service) programRunning(program string) bool { @@ -367,42 +254,6 @@ func (s *Service) programRunning(program string) bool { } } -// UpdateLog returns some lines and a new offset from pmm-update-perform log starting from the given offset. -// It may return zero lines and the same offset. Caller is expected to handle this. -func (s *Service) UpdateLog(offset uint32) ([]string, uint32, error) { - s.pmmUpdatePerformLogM.Lock() - defer s.pmmUpdatePerformLogM.Unlock() - - f, err := os.Open(pmmUpdatePerformLog) - if err != nil { - return nil, 0, errors.WithStack(err) - } - defer f.Close() //nolint:errcheck,gosec,nolintlint - - if _, err = f.Seek(int64(offset), io.SeekStart); err != nil { - return nil, 0, errors.WithStack(err) - } - - lines := make([]string, 0, 10) - reader := bufio.NewReader(f) - newOffset := offset - for { - line, err := reader.ReadString('\n') - if err == nil { - newOffset += uint32(len(line)) - if newOffset-offset > s.gRPCMessageMaxSize { - return lines, newOffset - uint32(len(line)), nil - } - lines = append(lines, strings.TrimSuffix(line, "\n")) - continue - } - if err == io.EOF { - err = nil - } - return lines, newOffset, errors.WithStack(err) - } -} - // reload asks supervisord to reload configuration. func (s *Service) reload(name string) error { if _, err := s.supervisorctl("reread"); err != nil { @@ -425,8 +276,6 @@ func (s *Service) marshalConfig(tmpl *template.Template, settings *models.Settin clickhouseDatabase := getValueFromENV("PMM_CLICKHOUSE_DATABASE", defaultClickhouseDatabase) clickhouseAddr := getValueFromENV("PMM_CLICKHOUSE_ADDR", defaultClickhouseAddr) clickhouseDataSourceAddr := getValueFromENV("PMM_CLICKHOUSE_DATASOURCE_ADDR", defaultClickhouseDataSourceAddr) - clickhousePoolSize := getValueFromENV("PMM_CLICKHOUSE_POOL_SIZE", "") - clickhouseBlockSize := getValueFromENV("PMM_CLICKHOUSE_BLOCK_SIZE", "") clickhouseAddrPair := strings.SplitN(clickhouseAddr, ":", 2) vmSearchDisableCache := getValueFromENV("VM_search_disableCache", strconv.FormatBool(!settings.VictoriaMetrics.CacheEnabled)) vmSearchMaxQueryLen := getValueFromENV("VM_search_maxQueryLen", defaultVMSearchMaxQueryLen) @@ -457,8 +306,6 @@ func (s *Service) marshalConfig(tmpl *template.Template, settings *models.Settin "ClickhouseAddr": clickhouseAddr, "ClickhouseDataSourceAddr": clickhouseDataSourceAddr, "ClickhouseDatabase": clickhouseDatabase, - "ClickhousePoolSize": clickhousePoolSize, - "ClickhouseBlockSize": clickhouseBlockSize, "ClickhouseHost": clickhouseAddrPair[0], "ClickhousePort": clickhouseAddrPair[1], } @@ -727,8 +574,8 @@ command = environment = PMM_CLICKHOUSE_ADDR="{{ .ClickhouseAddr }}", PMM_CLICKHOUSE_DATABASE="{{ .ClickhouseDatabase }}", -{{ if .ClickhousePoolSize }} PMM_CLICKHOUSE_POOL_SIZE={{ .ClickhousePoolSize }},{{- end}} -{{ if .ClickhouseBlockSize }} PMM_CLICKHOUSE_BLOCK_SIZE={{ .ClickhouseBlockSize }}{{- end}} + + user = pmm autorestart = true autostart = true diff --git a/managed/services/supervisord/supervisord_test.go b/managed/services/supervisord/supervisord_test.go index b0fe8ef8b3..b6cee7d384 100644 --- a/managed/services/supervisord/supervisord_test.go +++ b/managed/services/supervisord/supervisord_test.go @@ -22,19 +22,15 @@ import ( "time" "github.com/AlekSi/pointer" - "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/percona/pmm/managed/models" ) -const gRPCMessageMaxSize = uint32(100 * 1024 * 1024) - func TestConfig(t *testing.T) { t.Parallel() - pmmUpdateCheck := NewPMMUpdateChecker(logrus.WithField("component", "supervisord/pmm-update-checker_logs")) configDir := filepath.Join("..", "..", "testdata", "supervisord.d") vmParams, err := models.NewVictoriaMetricsParams(models.BasePrometheusConfigPath, models.VMBaseURL) require.NoError(t, err) @@ -48,7 +44,7 @@ func TestConfig(t *testing.T) { SSLKeyPath: "path-to-key", SSLCertPath: "path-to-cert", } - s := New(configDir, pmmUpdateCheck, &models.Params{VMParams: vmParams, PGParams: pgParams, HAParams: &models.HAParams{}}, gRPCMessageMaxSize) + s := New(configDir, &models.Params{VMParams: vmParams, PGParams: pgParams, HAParams: &models.HAParams{}}) settings := &models.Settings{ DataRetention: 30 * 24 * time.Hour, PMMPublicAddress: "192.168.0.42:8443", @@ -73,7 +69,6 @@ func TestConfig(t *testing.T) { } func TestConfigVictoriaMetricsEnvvars(t *testing.T) { - pmmUpdateCheck := NewPMMUpdateChecker(logrus.WithField("component", "supervisord/pmm-update-checker_logs")) configDir := filepath.Join("..", "..", "testdata", "supervisord.d") vmParams, err := models.NewVictoriaMetricsParams(models.BasePrometheusConfigPath, models.VMBaseURL) require.NoError(t, err) @@ -87,7 +82,7 @@ func TestConfigVictoriaMetricsEnvvars(t *testing.T) { SSLKeyPath: "path-to-key", SSLCertPath: "path-to-cert", } - s := New(configDir, pmmUpdateCheck, &models.Params{VMParams: vmParams, PGParams: pgParams, HAParams: &models.HAParams{}}, gRPCMessageMaxSize) + s := New(configDir, &models.Params{VMParams: vmParams, PGParams: pgParams, HAParams: &models.HAParams{}}) settings := &models.Settings{ DataRetention: 30 * 24 * time.Hour, PMMPublicAddress: "192.168.0.42:8443", @@ -127,8 +122,8 @@ func TestParseStatus(t *testing.T) { for str, expected := range map[string]*bool{ `pmm-agent STOPPED Sep 20 08:55 AM`: pointer.ToBool(false), `pmm-managed RUNNING pid 826, uptime 0:19:36`: pointer.ToBool(true), - `pmm-update-perform EXITED Sep 20 07:42 AM`: nil, - `pmm-update-perform STARTING`: pointer.ToBool(true), // no last column in that case + `pmm-update-perform-init EXITED Sep 20 07:42 AM`: nil, + `pmm-update-perform-init STARTING`: pointer.ToBool(true), // no last column in that case } { assert.Equal(t, expected, parseStatus(str), "%q", str) } diff --git a/managed/services/telemetry/telemetry_test.go b/managed/services/telemetry/telemetry_test.go index 62bbcec44e..4de3244245 100644 --- a/managed/services/telemetry/telemetry_test.go +++ b/managed/services/telemetry/telemetry_test.go @@ -50,7 +50,7 @@ func TestRunTelemetryService(t *testing.T) { if ok { pgHostPort = pgHostPortFromEnv } - qanDSN := "tcp://localhost:9000?database=pmm" + qanDSN := "tcp://localhost:9000/pmm" qanDSNFromEnv, ok := os.LookupEnv(envQanDSN) if ok { qanDSN = qanDSNFromEnv diff --git a/managed/testdata/supervisord.d/pmm-db_disabled.ini b/managed/testdata/supervisord.d/pmm-db_disabled.ini index a9191eb4b5..5e5f482897 100644 --- a/managed/testdata/supervisord.d/pmm-db_disabled.ini +++ b/managed/testdata/supervisord.d/pmm-db_disabled.ini @@ -89,19 +89,3 @@ stdout_logfile = /srv/logs/pmm-agent.log stdout_logfile_maxbytes = 50MB stdout_logfile_backups = 2 redirect_stderr = true - -[program:pmm-update-perform] -command = /usr/sbin/pmm-update -perform -playbook=/opt/ansible/pmm-docker/update.yml -user = pmm -directory = / -autorestart = unexpected -exitcodes = 0 -autostart = false -startretries = 10 -startsecs = 1 -stopsignal = TERM -stopwaitsecs = 300 -stdout_logfile = /srv/logs/pmm-update-perform.log -stdout_logfile_maxbytes = 50MB -stdout_logfile_backups = 3 -redirect_stderr = true diff --git a/managed/testdata/supervisord.d/pmm-db_enabled.ini b/managed/testdata/supervisord.d/pmm-db_enabled.ini index bb28208342..bd0ca87ab8 100644 --- a/managed/testdata/supervisord.d/pmm-db_enabled.ini +++ b/managed/testdata/supervisord.d/pmm-db_enabled.ini @@ -113,19 +113,3 @@ stdout_logfile = /srv/logs/pmm-agent.log stdout_logfile_maxbytes = 50MB stdout_logfile_backups = 2 redirect_stderr = true - -[program:pmm-update-perform] -command = /usr/sbin/pmm-update -perform -playbook=/opt/ansible/pmm-docker/update.yml -user = pmm -directory = / -autorestart = unexpected -exitcodes = 0 -autostart = false -startretries = 10 -startsecs = 1 -stopsignal = TERM -stopwaitsecs = 300 -stdout_logfile = /srv/logs/pmm-update-perform.log -stdout_logfile_maxbytes = 50MB -stdout_logfile_backups = 3 -redirect_stderr = true diff --git a/managed/utils/envvars/parser.go b/managed/utils/envvars/parser.go index 35adf8fa2c..7868117eed 100644 --- a/managed/utils/envvars/parser.go +++ b/managed/utils/envvars/parser.go @@ -98,7 +98,7 @@ func ParseEnvVars(envs []string) (*models.ChangeSettingsParams, []error, []strin case "PMM_DEV_VERSION_SERVICE_URL": // skip pmm-managed environment variables that are already handled by kingpin continue - case "PMM_CLICKHOUSE_DATABASE", "PMM_CLICKHOUSE_ADDR", "PMM_CLICKHOUSE_BLOCK_SIZE", "PMM_CLICKHOUSE_POOL_SIZE": + case "PMM_CLICKHOUSE_DATABASE", "PMM_CLICKHOUSE_ADDR": // skip env variables for external clickhouse continue case "PMM_DISABLE_UPDATES": diff --git a/qan-api2/db.go b/qan-api2/db.go index 060e137f70..e97e3a90aa 100644 --- a/qan-api2/db.go +++ b/qan-api2/db.go @@ -22,7 +22,7 @@ import ( "net/url" "strings" - clickhouse "github.com/ClickHouse/clickhouse-go/151" // register database/sql driver + clickhouse "github.com/ClickHouse/clickhouse-go/v2" // register database/sql driver "github.com/golang-migrate/migrate/v4" _ "github.com/golang-migrate/migrate/v4/database/clickhouse" // register golang-migrate driver "github.com/golang-migrate/migrate/v4/source/iofs" @@ -78,11 +78,8 @@ func createDB(dsn string) error { if err != nil { return err } - q := clickhouseURL.Query() - databaseName := q.Get("database") - q.Set("database", "default") - - clickhouseURL.RawQuery = q.Encode() + databaseName := strings.Replace(clickhouseURL.Path, "/", "", 1) + clickhouseURL.Path = "/default" defaultDB, err := sqlx.Connect("clickhouse", clickhouseURL.String()) if err != nil { diff --git a/qan-api2/db_test.go b/qan-api2/db_test.go index 841803965e..9683f4cf5a 100644 --- a/qan-api2/db_test.go +++ b/qan-api2/db_test.go @@ -25,7 +25,7 @@ import ( "testing" "time" - _ "github.com/ClickHouse/clickhouse-go/151" // register database/sql driver + _ "github.com/ClickHouse/clickhouse-go/v2" // register database/sql driver _ "github.com/golang-migrate/migrate/v4/database/clickhouse" "github.com/jmoiron/sqlx" "github.com/stretchr/testify/assert" @@ -39,9 +39,9 @@ func setup() *sqlx.DB { } dsn, ok := os.LookupEnv("QANAPI_DSN_TEST") - dsn = strings.Replace(dsn, "?database=pmm_test", "?database=pmm_test_parts", 1) + dsn = strings.Replace(dsn, "/pmm_test", "/pmm_test_parts", 1) if !ok { - dsn = "clickhouse://127.0.0.1:19000?database=pmm_test_parts" + dsn = "clickhouse://127.0.0.1:19000/pmm_test_parts" } db, err := sqlx.Connect("clickhouse", dsn) if err != nil { @@ -113,13 +113,13 @@ func TestCreateDbIfNotExists(t *testing.T) { t.Run("connect to db that doesnt exist", func(t *testing.T) { dsn, ok := os.LookupEnv("QANAPI_DSN_TEST") - dsn = strings.Replace(dsn, "?database=pmm_test", "?database=pmm_created_db", 1) + dsn = strings.Replace(dsn, "/pmm_test", "/pmm_created_db", 1) if !ok { - dsn = "clickhouse://127.0.0.1:19000?database=pmm_created_db" + dsn = "clickhouse://127.0.0.1:19000/pmm_created_db" } db := createDB(dsn) - require.Equal(t, db, nil, "Check connection after we create database") + require.Nil(t, db, "Check connection after we create database") }) } diff --git a/qan-api2/main.go b/qan-api2/main.go index c1496b1e76..fa7aee401b 100644 --- a/qan-api2/main.go +++ b/qan-api2/main.go @@ -61,7 +61,7 @@ import ( const ( shutdownTimeout = 3 * time.Second - defaultDsnF = "clickhouse://%s?database=%s&block_size=%s&pool_size=%s" + defaultDsnF = "clickhouse://%s/%s" maxIdleConns = 5 maxOpenConns = 10 ) @@ -264,10 +264,6 @@ func main() { dsnF := kingpin.Flag("dsn", "ClickHouse database DSN. Can be override with database/host/port options").Default(defaultDsnF).String() clickHouseDatabaseF := kingpin.Flag("clickhouse-name", "Clickhouse database name").Default("pmm").Envar("PMM_CLICKHOUSE_DATABASE").String() clickhouseAddrF := kingpin.Flag("clickhouse-addr", "Clickhouse database address").Default("127.0.0.1:9000").Envar("PMM_CLICKHOUSE_ADDR").String() - clickhouseBlockSizeF := kingpin.Flag("clickhouse-block-size", "Number of rows that can be load from table in one cycle"). - Default("10000").Envar("PMM_CLICKHOUSE_BLOCK_SIZE").String() - clickhousePoolSizeF := kingpin.Flag("clickhouse-pool-size", "Controls how much queries can be run simultaneously"). - Default("2").Envar("PMM_CLICKHOUSE_POOL_SIZE").String() debugF := kingpin.Flag("debug", "Enable debug logging").Bool() traceF := kingpin.Flag("trace", "Enable trace logging (implies debug)").Bool() @@ -295,7 +291,7 @@ func main() { var dsn string if *dsnF == defaultDsnF { - dsn = fmt.Sprintf(defaultDsnF, *clickhouseAddrF, *clickHouseDatabaseF, *clickhouseBlockSizeF, *clickhousePoolSizeF) + dsn = fmt.Sprintf(defaultDsnF, *clickhouseAddrF, *clickHouseDatabaseF) } else { dsn = *dsnF } diff --git a/qan-api2/models/metrics.go b/qan-api2/models/metrics.go index 6db8380acf..9633bf65c1 100644 --- a/qan-api2/models/metrics.go +++ b/qan-api2/models/metrics.go @@ -825,7 +825,7 @@ func (m *Metrics) SelectQueryPlan(ctx context.Context, queryID string) (*qanpb.Q defer cancel() var res qanpb.QueryPlanReply - err := m.db.GetContext(queryCtx, &res, planByQueryID, []interface{}{queryID}) //nolint:asasalint + err := m.db.GetContext(queryCtx, &res, planByQueryID, queryID) if err != nil && !errors.Is(err, sql.ErrNoRows) { return nil, fmt.Errorf("QueryxContext error:%v", err) //nolint:errorlint } diff --git a/qan-api2/services/analytics/filters_test.go b/qan-api2/services/analytics/filters_test.go index a627add915..3d10f080a1 100644 --- a/qan-api2/services/analytics/filters_test.go +++ b/qan-api2/services/analytics/filters_test.go @@ -23,7 +23,7 @@ import ( "testing" "time" - _ "github.com/ClickHouse/clickhouse-go/151" // register database/sql driver + _ "github.com/ClickHouse/clickhouse-go/v2" // register database/sql driver "github.com/jmoiron/sqlx" "github.com/stretchr/testify/assert" "google.golang.org/protobuf/types/known/timestamppb" @@ -53,7 +53,7 @@ type testValuesUnmarshal struct { func TestService_GetFilters(t *testing.T) { dsn, ok := os.LookupEnv("QANAPI_DSN_TEST") if !ok { - dsn = "clickhouse://127.0.0.1:19000?database=pmm_test" + dsn = "clickhouse://127.0.0.1:19000/pmm_test" } db, err := sqlx.Connect("clickhouse", dsn) if err != nil { diff --git a/qan-api2/services/analytics/profile_test.go b/qan-api2/services/analytics/profile_test.go index 4d4d466516..627ec6d0c7 100644 --- a/qan-api2/services/analytics/profile_test.go +++ b/qan-api2/services/analytics/profile_test.go @@ -36,7 +36,7 @@ import ( func setup() *sqlx.DB { dsn, ok := os.LookupEnv("QANAPI_DSN_TEST") if !ok { - dsn = "clickhouse://127.0.0.1:19000?database=pmm_test" + dsn = "clickhouse://127.0.0.1:19000/pmm_test" } db, err := sqlx.Connect("clickhouse", dsn) if err != nil { diff --git a/tools/go.mod b/tools/go.mod index ff0ca966cb..61e266f7a3 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -10,35 +10,36 @@ require ( github.com/BurntSushi/go-sumtype v0.0.0-20190304192233-fcb4a6205bdc github.com/Percona-Lab/swagger-order v0.0.0-20191002141859-166b3973d026 github.com/apache/skywalking-eyes v0.6.0 - github.com/bufbuild/buf v1.29.0 + github.com/bufbuild/buf v1.31.0 github.com/daixiang0/gci v0.13.0 github.com/envoyproxy/protoc-gen-validate v1.0.4 github.com/go-delve/delve v1.22.0 github.com/go-openapi/runtime v0.25.0 github.com/go-openapi/spec v0.20.4 github.com/go-swagger/go-swagger v0.29.0 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 github.com/jstemmer/go-junit-report v1.0.0 github.com/quasilyte/go-consistent v0.6.0 - github.com/reviewdog/reviewdog v0.17.0 + github.com/reviewdog/reviewdog v0.18.0 github.com/vburenin/ifacemaker v1.2.1 github.com/vektra/mockery/v2 v2.43.0 golang.org/x/perf v0.0.0-20230717203022-1ba3a21238c9 - golang.org/x/tools v0.21.0 + golang.org/x/tools v0.22.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.32.0 + google.golang.org/protobuf v1.34.2 gopkg.in/reform.v1 v1.5.1 mvdan.cc/gofumpt v0.6.0 ) require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.32.0-20231115204500-e097f827e652.1 // indirect - cloud.google.com/go v0.111.0 // indirect - cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/datastore v1.15.0 // indirect - code.gitea.io/sdk/gitea v0.17.1 // indirect - connectrpc.com/connect v1.14.0 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1 // indirect + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/datastore v1.17.1 // indirect + code.gitea.io/sdk/gitea v0.18.0 // indirect + connectrpc.com/connect v1.16.1 // indirect connectrpc.com/otelconnect v0.7.0 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect @@ -53,33 +54,32 @@ require ( github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect github.com/bmatcuk/doublestar/v2 v2.0.4 // indirect - github.com/bradleyfalzon/ghinstallation/v2 v2.9.0 // indirect - github.com/bufbuild/protocompile v0.8.0 // indirect - github.com/bufbuild/protovalidate-go v0.5.0 // indirect - github.com/bufbuild/protoyaml-go v0.1.7 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/bradleyfalzon/ghinstallation/v2 v2.11.0 // indirect + github.com/bufbuild/protocompile v0.9.0 // indirect + github.com/bufbuild/protovalidate-go v0.6.2 // indirect + github.com/bufbuild/protoyaml-go v0.1.9 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/cilium/ebpf v0.11.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect github.com/cosiner/argv v0.1.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/denisenkom/go-mssqldb v0.9.0 // indirect github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d // indirect - github.com/distribution/reference v0.5.0 // indirect - github.com/docker/cli v24.0.7+incompatible // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/cli v26.1.0+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker v25.0.5+incompatible // indirect + github.com/docker/docker v26.1.0+incompatible // indirect github.com/docker/docker-credential-helpers v0.8.1 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/felixge/fgprof v0.9.3 // indirect + github.com/felixge/fgprof v0.9.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-chi/chi/v5 v5.0.11 // indirect + github.com/go-chi/chi/v5 v5.0.12 // indirect github.com/go-delve/gore v0.11.6 // indirect github.com/go-delve/liner v1.2.3-0.20220127212407-d32d89dd2a5d // indirect github.com/go-fed/httpsig v1.1.0 // indirect @@ -105,26 +105,26 @@ require ( github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5 // indirect github.com/go-toolsmith/typep v1.0.2 // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect - github.com/gofrs/uuid/v5 v5.0.0 // indirect + github.com/gofrs/uuid/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/google/cel-go v0.19.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/cel-go v0.20.1 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/go-containerregistry v0.18.0 // indirect + github.com/google/go-containerregistry v0.19.1 // indirect github.com/google/go-dap v0.11.0 // indirect github.com/google/go-github/v33 v33.0.0 // indirect - github.com/google/go-github/v57 v57.0.0 // indirect - github.com/google/go-github/v58 v58.0.0 // indirect + github.com/google/go-github/v60 v60.0.0 // indirect + github.com/google/go-github/v62 v62.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/licensecheck v0.3.1 // indirect - github.com/google/pprof v0.0.0-20240117000934-35fc243c5815 // indirect + github.com/google/pprof v0.0.0-20240422182052-72c8669ad3e7 // indirect github.com/google/s2a-go v0.1.7 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.2 // indirect @@ -132,6 +132,7 @@ require ( github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/haya14busa/go-actions-toolkit v0.0.0-20200105081403-ca0307860f01 // indirect + github.com/haya14busa/go-sarif v0.0.0-20210102043135-e2c5fed2fa3d // indirect github.com/hexops/gotextdiff v1.0.3 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/iancoleman/orderedmap v0.2.0 // indirect @@ -146,7 +147,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kisielk/gotool v1.0.0 // indirect - github.com/klauspost/compress v1.17.4 // indirect + github.com/klauspost/compress v1.17.8 // indirect github.com/klauspost/pgzip v1.2.6 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect @@ -163,11 +164,12 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect @@ -175,7 +177,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pkg/profile v1.7.0 // indirect github.com/reva2/bitbucket-insights-api v1.0.0 // indirect - github.com/reviewdog/errorformat v0.0.0-20231214114315-6dd01ea41b1f // indirect + github.com/reviewdog/errorformat v0.0.0-20240608101709-1d3280ed6bd4 // indirect github.com/reviewdog/go-bitbucket v0.0.0-20201024094602-708c3f6a7de0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect @@ -194,43 +196,41 @@ require ( github.com/spf13/viper v1.15.0 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/subosito/gotenv v1.4.2 // indirect - github.com/tetratelabs/wazero v1.6.0 // indirect github.com/toqueteos/webbrowser v1.2.0 // indirect github.com/vbatts/tar-split v0.11.5 // indirect github.com/vvakame/sdlog v1.2.0 // indirect - github.com/xanzy/go-gitlab v0.96.0 // indirect + github.com/xanzy/go-gitlab v0.105.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect go.mongodb.org/mongo-driver v1.9.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/sdk v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect - go.opentelemetry.io/proto/otlp v1.1.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/sdk v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.26.0 // indirect + go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.6.0 // indirect - golang.org/x/build v0.0.0-20230906094020-6ed658a430ec // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/build v0.0.0-20240616231658-d6ee231f334b // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/term v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - golang.org/x/time v0.3.0 // indirect - google.golang.org/api v0.149.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/grpc v1.60.1 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.183.0 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/grpc v1.64.0 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/tools/go.sum b/tools/go.sum index 3b57bdcbe6..8067b7b899 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -1,5 +1,5 @@ -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.32.0-20231115204500-e097f827e652.1 h1:u0olL4yf2p7Tl5jfsAK5keaFi+JFJuv1CDHrbiXkxkk= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.32.0-20231115204500-e097f827e652.1/go.mod h1:tiTMKD8j6Pd/D2WzREoweufjzaJKHZg35f/VGcZ2v3I= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1 h1:2IGhRovxlsOIQgx2ekZWo4wTPAYpck41+18ICxs37is= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1/go.mod h1:Tgn5bgL220vkFOI0KPStlcClPeOJzAv4uT+V8JXGUnw= cloud.google.com/go v0.0.0-20170206221025-ce650573d812/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 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= @@ -20,22 +20,24 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb 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.111.0 h1:YHLKNupSD1KqjDbQ3+LVdQ81h/UJbJyZG203cEfnQgM= -cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= 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.15.0 h1:0P9WcsQeTWjuD1H14JIY7XQscIPQ4Laje8ti96IC5vg= -cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.17.1 h1:6Me8ugrAOAxssGhSo8im0YSuy4YvYk4mbGvCadAH5aE= +cloud.google.com/go/datastore v1.17.1/go.mod h1:mtzZ2HcVtz90OVrEXXGDc2pO4NM1kiBQy8YV4qGe0ZM= 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= @@ -46,10 +48,10 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl 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= -code.gitea.io/sdk/gitea v0.17.1 h1:3jCPOG2ojbl8AcfaUCRYLT5MUcBMFwS0OSK2mA5Zok8= -code.gitea.io/sdk/gitea v0.17.1/go.mod h1:aCnBqhHpoEWA180gMbaCtdX9Pl6BWBAuuP2miadoTNM= -connectrpc.com/connect v1.14.0 h1:PDS+J7uoz5Oui2VEOMcfz6Qft7opQM9hPiKvtGC01pA= -connectrpc.com/connect v1.14.0/go.mod h1:uoAq5bmhhn43TwhaKdGKN/bZcGtzPW1v+ngDTn5u+8s= +code.gitea.io/sdk/gitea v0.18.0 h1:+zZrwVmujIrgobt6wVBWCqITz6bn1aBjnCUHmpZrerI= +code.gitea.io/sdk/gitea v0.18.0/go.mod h1:IG9xZJoltDNeDSW0qiF2Vqx5orMWa7OhVWrjvrd5NpI= +connectrpc.com/connect v1.16.1 h1:rOdrK/RTI/7TVnn3JsVxt3n028MlTRwmK5Q4heSpjis= +connectrpc.com/connect v1.16.1/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8xpNZw= connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= @@ -106,27 +108,33 @@ github.com/bmatcuk/doublestar/v2 v2.0.4 h1:6I6oUiT/sU27eE2OFcWqBhL1SwjyvQuOssxT4 github.com/bmatcuk/doublestar/v2 v2.0.4/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw= 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/bradleyfalzon/ghinstallation/v2 v2.9.0 h1:HmxIYqnxubRYcYGRc5v3wUekmo5Wv2uX3gukmWJ0AFk= -github.com/bradleyfalzon/ghinstallation/v2 v2.9.0/go.mod h1:wmkTDJf8CmVypxE8ijIStFnKoTa6solK5QfdmJrP9KI= +github.com/bradleyfalzon/ghinstallation/v2 v2.11.0 h1:R9d0v+iobRHSaE4wKUnXFiZp53AL4ED5MzgEMwGTZag= +github.com/bradleyfalzon/ghinstallation/v2 v2.11.0/go.mod h1:0LWKQwOHewXO/1acI6TtyE0Xc4ObDb2rFN7eHBAG71M= github.com/brianvoe/gofakeit v3.18.0+incompatible h1:wDOmHc9DLG4nRjUVVaxA+CEglKOW72Y5+4WNxUIkjM8= github.com/brianvoe/gofakeit v3.18.0+incompatible/go.mod h1:kfwdRA90vvNhPutZWfH7WPaDzUjz+CZFqG+rPkOjGOc= -github.com/bufbuild/buf v1.29.0 h1:llP6HqOcCaSGBxOfnrp/mwvcY1O/dciEOl1QaMEOB3M= -github.com/bufbuild/buf v1.29.0/go.mod h1:UTjvPXTObvKQiGqxod32wt9zRz70TJsMpaigpbIZGuc= -github.com/bufbuild/protocompile v0.8.0 h1:9Kp1q6OkS9L4nM3FYbr8vlJnEwtbpDPQlQOVXfR+78s= -github.com/bufbuild/protocompile v0.8.0/go.mod h1:+Etjg4guZoAqzVk2czwEQP12yaxLJ8DxuqCJ9qHdH94= -github.com/bufbuild/protovalidate-go v0.5.0 h1:xFery2RlLh07FQTvB7hlasKqPrDK2ug+uw6DUiuadjo= -github.com/bufbuild/protovalidate-go v0.5.0/go.mod h1:3XAwFeJ2x9sXyPLgkxufH9sts1tQRk8fdt1AW93NiUU= -github.com/bufbuild/protoyaml-go v0.1.7 h1:3uKIoNb/l5zrZ93u+Xzsg6cdAO06lveZE/K7UUbUQLw= -github.com/bufbuild/protoyaml-go v0.1.7/go.mod h1:R8vE2+l49bSiIExP4VJpxOXleHE+FDzZ6HVxr3cYunw= +github.com/bufbuild/buf v1.31.0 h1:YHLGIr8bjcLaTCIw0+/bCAvJLiR8u46QTwKvn7miSEg= +github.com/bufbuild/buf v1.31.0/go.mod h1:LlxpG2LF33f1Ixw29BTt0pyLriLzg3rXY1K9XQVHSio= +github.com/bufbuild/protocompile v0.9.0 h1:DI8qLG5PEO0Mu1Oj51YFPqtx6I3qYXUAhJVJ/IzAVl0= +github.com/bufbuild/protocompile v0.9.0/go.mod h1:s89m1O8CqSYpyE/YaSGtg1r1YFMF5nLTwh4vlj6O444= +github.com/bufbuild/protovalidate-go v0.6.2 h1:U/V3CGF0kPlR12v41rjO4DrYZtLcS4ZONLmWN+rJVCQ= +github.com/bufbuild/protovalidate-go v0.6.2/go.mod h1:4BR3rKEJiUiTy+sqsusFn2ladOf0kYmA2Reo6BHSBgQ= +github.com/bufbuild/protoyaml-go v0.1.9 h1:anV5UtF1Mlvkkgp4NWA6U/zOnJFng8Orq4Vf3ZUQHBU= +github.com/bufbuild/protoyaml-go v0.1.9/go.mod h1:KCBItkvZOK/zwGueLdH1Wx1RLyFn5rCH7YjQrdty2Wc= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +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/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= +github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y= github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -145,8 +153,9 @@ github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9N github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg= github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8= -github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +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/creack/pty v1.1.20 h1:VIPb/a2s17qNeQgDnkfZC35RScx+blkKF8GV68n80J4= github.com/creack/pty v1.1.20/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= @@ -163,14 +172,14 @@ github.com/denisenkom/go-mssqldb v0.9.0 h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d h1:hUWoLdw5kvo2xCsqlsIBMvWUc1QCSsCYD2J2+Fg6YoU= github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d/go.mod h1:C7Es+DLenIpPc9J6IYw4jrK0h7S9bKj4DNl8+KxGEXU= -github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= -github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v24.0.7+incompatible h1:wa/nIwYFW7BVTGa7SWPVyyXU9lgORqUb1xfI36MSkFg= -github.com/docker/cli v24.0.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +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/docker/cli v26.1.0+incompatible h1:+nwRy8Ocd8cYNQ60mozDDICICD8aoFGtlPXifX/UQ3Y= +github.com/docker/cli v26.1.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= -github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.0+incompatible h1:W1G9MPNbskA6VZWL7b3ZljTh0pXI68FpINx0GKaOdaM= +github.com/docker/docker v26.1.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo= github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -191,8 +200,9 @@ github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= +github.com/felixge/fgprof v0.9.4 h1:ocDNwMFlnA0NU0zSB3I52xkO4sFXk80VK9lXjLClu88= +github.com/felixge/fgprof v0.9.4/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -204,8 +214,8 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= -github.com/go-chi/chi/v5 v5.0.11 h1:BnpYbFZ3T3S1WMpD79r7R5ThWX40TaFB7L31Y8xqSwA= -github.com/go-chi/chi/v5 v5.0.11/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= +github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-delve/delve v1.22.0 h1:c7GOFs49/jMGHdp10KphKkGqNmLjOp7fcwz1MQwcMlw= github.com/go-delve/delve v1.22.0/go.mod h1:cSvtTzN0Ei8NsPH7TbxeQSLBmdsreeAD5p1UNhrII7w= github.com/go-delve/gore v0.11.6 h1:MyP7xTNQO+dDiLBKxI/DKgkn74cMBjHZZxS8grtJ6G8= @@ -313,14 +323,17 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= -github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/gofrs/uuid/v5 v5.1.0 h1:S5rqVKIigghZTCBKPCw0Y+bXkn26K3TB5mvQq2Ix8dk= +github.com/gofrs/uuid/v5 v5.1.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= 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.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -356,9 +369,8 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD 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.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -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/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= @@ -367,8 +379,8 @@ github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2 github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= 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/cel-go v0.19.0 h1:vVgaZoHPBDd1lXCYGQOh5A06L4EtuIfmqQ/qnSXSKiU= -github.com/google/cel-go v0.19.0/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= +github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= 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= @@ -382,16 +394,16 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 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-containerregistry v0.18.0 h1:ShE7erKNPqRh5ue6Z9DUOlk04WsnFWPO6YGr3OxnfoQ= -github.com/google/go-containerregistry v0.18.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/go-containerregistry v0.19.1 h1:yMQ62Al6/V0Z7CqIrrS1iYoA5/oQCm88DeNujc7C1KY= +github.com/google/go-containerregistry v0.19.1/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= github.com/google/go-dap v0.11.0 h1:SpAZJL41rOOvd85PuLCCLE1dteTQOyKNnn0H3DBHywo= github.com/google/go-dap v0.11.0/go.mod h1:HAeyoSd2WIfTfg+0GRXcFrb+RnojAtGNh+k+XTIxJDE= github.com/google/go-github/v33 v33.0.0 h1:qAf9yP0qc54ufQxzwv+u9H0tiVOnPJxo0lI/JXqw3ZM= github.com/google/go-github/v33 v33.0.0/go.mod h1:GMdDnVZY/2TsWgp/lkYnpSAh6TrzhANBBwm6k6TTEXg= -github.com/google/go-github/v57 v57.0.0 h1:L+Y3UPTY8ALM8x+TV0lg+IEBI+upibemtBD8Q9u7zHs= -github.com/google/go-github/v57 v57.0.0/go.mod h1:s0omdnye0hvK/ecLvpsGfJMiRt85PimQh4oygmLIxHw= -github.com/google/go-github/v58 v58.0.0 h1:Una7GGERlF/37XfkPwpzYJe0Vp4dt2k1kCjlxwjIvzw= -github.com/google/go-github/v58 v58.0.0/go.mod h1:k4hxDKEfoWpSqFlc8LTpGd9fu2KrV1YAa6Hi6FmDNY4= +github.com/google/go-github/v60 v60.0.0 h1:oLG98PsLauFvvu4D/YPxq374jhSxFYdzQGNCyONLfn8= +github.com/google/go-github/v60 v60.0.0/go.mod h1:ByhX2dP9XT9o/ll2yXAu2VD8l5eNVg8hD4Cr0S/LmQk= +github.com/google/go-github/v62 v62.0.0 h1:/6mGCaRywZz9MuHyw9gD1CwsbmBX8GWsbFkwMmHdhl4= +github.com/google/go-github/v62 v62.0.0/go.mod h1:EMxeUqGJq2xRu9DYBMwel/mr7kZrzUOfQmmpYrZn2a4= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= @@ -411,8 +423,9 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe 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-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= -github.com/google/pprof v0.0.0-20240117000934-35fc243c5815 h1:WzfWbQz/Ze8v6l++GGbGNFZnUShVpP/0xffCPLL+ax8= -github.com/google/pprof v0.0.0-20240117000934-35fc243c5815/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240422182052-72c8669ad3e7 h1:3q13T5NW3mlTJZM6B5UAsf2N5NYFbYWIyI3W8DlvBDU= +github.com/google/pprof v0.0.0-20240422182052-72c8669ad3e7/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= @@ -420,20 +433,20 @@ github.com/google/safehtml v0.0.2/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZj github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= 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.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.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.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go v0.0.0-20161107002406-da06d194a00e/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= 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.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF/w5E9CNxSwbpD6No= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0/go.mod h1:qmOFXW2epJhM0qSnUUYpldc7gVz2KMQwJ/QYCDIa7XU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM= 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.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= @@ -452,6 +465,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/haya14busa/go-actions-toolkit v0.0.0-20200105081403-ca0307860f01 h1:HiJF8Mek+I7PY0Bm+SuhkwaAZSZP83sw6rrTMrgZ0io= github.com/haya14busa/go-actions-toolkit v0.0.0-20200105081403-ca0307860f01/go.mod h1:1DWDZmeYf0LX30zscWb7K9rUMeirNeBMd5Dum+seUhc= github.com/haya14busa/go-checkstyle v0.0.0-20170303121022-5e9d09f51fa1/go.mod h1:RsN5RGgVYeXpcXNtWyztD5VIe7VNSEqpJvF2iEH7QvI= +github.com/haya14busa/go-sarif v0.0.0-20210102043135-e2c5fed2fa3d h1:2uCbyMhWNFYI+HkRqXfIeTq5pTPxQM68yG+INJ2gvq8= github.com/haya14busa/go-sarif v0.0.0-20210102043135-e2c5fed2fa3d/go.mod h1:1Hkn3JseGMB/hv1ywzkapVQDWV3bFgp6POZobZmR/5g= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= @@ -465,6 +479,7 @@ github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47 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/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= @@ -481,8 +496,8 @@ github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= -github.com/jhump/protoreflect v1.15.4 h1:mrwJhfQGGljwvR/jPEocli8KA6G9afbQpH8NY2wORcI= -github.com/jhump/protoreflect v1.15.4/go.mod h1:2B+zwrnMY3TTIqEK01OG/d3pyUycQBfDf+bx8fE2DNg= +github.com/jhump/protoreflect v1.15.6 h1:WMYJbw2Wo+KOWwZFvgY0jMoVHM6i4XIvRs2RcBj5VmI= +github.com/jhump/protoreflect v1.15.6/go.mod h1:jCHoyYQIJnaabEYnbGwyo9hUqfyUMTbJw/tAut5t97E= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -502,8 +517,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= -github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -518,6 +533,7 @@ 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/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= @@ -560,6 +576,8 @@ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR 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/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -572,10 +590,11 @@ github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= 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-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +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/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= @@ -601,12 +620,12 @@ github.com/quasilyte/go-consistent v0.6.0 h1:tY8DYfgM+7ADpOyr5X47i8hV/XbMNoucqnq github.com/quasilyte/go-consistent v0.6.0/go.mod h1:dKYK1JZl3150J1+Jh4cDYPCIu2MqybUBi0YVW2b2E6c= github.com/reva2/bitbucket-insights-api v1.0.0 h1:lpQ/Q7OmnG04w/EM77piOwZBxP41PeTlbytXxVrnplA= github.com/reva2/bitbucket-insights-api v1.0.0/go.mod h1:pLs+ki3MKUntrPryxaGIvpRLiEtBhwfJ/uvxQIMfqHU= -github.com/reviewdog/errorformat v0.0.0-20231214114315-6dd01ea41b1f h1:y9BDlVuHOxSJK4PQNGhxtcZyAtK9TLcPy5kKbcIezDA= -github.com/reviewdog/errorformat v0.0.0-20231214114315-6dd01ea41b1f/go.mod h1:AqhrP0G7F9YRROF10JQwdd4cNO8bdm6bY6KzcOc3Cp8= +github.com/reviewdog/errorformat v0.0.0-20240608101709-1d3280ed6bd4 h1:wFzV+/KigR9v01F8+cK/QyaMg6NgyfOOZaSquborhpY= +github.com/reviewdog/errorformat v0.0.0-20240608101709-1d3280ed6bd4/go.mod h1:AqhrP0G7F9YRROF10JQwdd4cNO8bdm6bY6KzcOc3Cp8= github.com/reviewdog/go-bitbucket v0.0.0-20201024094602-708c3f6a7de0 h1:XZ60Bp2UqwaJ6fDQExoFVrgs4nIzwBCy9ct6GCj9hH8= github.com/reviewdog/go-bitbucket v0.0.0-20201024094602-708c3f6a7de0/go.mod h1:5JbWAMFyq9hbISZawRyIe7QTcLaptvCIvmZnYo+1VvA= -github.com/reviewdog/reviewdog v0.17.0 h1:Va1qerz6fSCnFJenszFXxpgS7bP9QWcUHK22Jj5WvK4= -github.com/reviewdog/reviewdog v0.17.0/go.mod h1:0N85Brf1mOuNsXIccV85I8aprQ3sAtwc69DMhFNejj4= +github.com/reviewdog/reviewdog v0.18.0 h1:U7em0JfRjEp1oaUvIe2kMI4NwTOUQkW8gK8b+hVb61M= +github.com/reviewdog/reviewdog v0.18.0/go.mod h1:7TGHiO6vrNCLEdlo5WcurtIFabcHNhQx9i6R7DxKydI= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -657,8 +676,9 @@ github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8w 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.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.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= @@ -668,12 +688,10 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +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= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/tetratelabs/wazero v1.6.0 h1:z0H1iikCdP8t+q341xqepY4EWvHEw8Es7tlqiVzlP3g= -github.com/tetratelabs/wazero v1.6.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9rrstGQ= @@ -686,8 +704,8 @@ github.com/vektra/mockery/v2 v2.43.0 h1:9jgLwYbFIKPwWJUeK6Y+0s9oLRIGXLfW4FWlmF9R github.com/vektra/mockery/v2 v2.43.0/go.mod h1:XNTE9RIu3deGAGQRVjP1VZxGpQNm0YedZx4oDs3prr8= github.com/vvakame/sdlog v1.2.0 h1:gwZRXZ0EmhJQJN/Do/+PTQigcmFiSqZ07aDjxqGOLT8= github.com/vvakame/sdlog v1.2.0/go.mod h1:gFYv2g/iR3pJSxkJz0YnkNmhNbXT5R3PzWsfZKGQADY= -github.com/xanzy/go-gitlab v0.96.0 h1:LGkZ+wSNMRtHIBaYE4Hq3dZVjprwHv3Y1+rhKU3WETs= -github.com/xanzy/go-gitlab v0.96.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= +github.com/xanzy/go-gitlab v0.105.0 h1:3nyLq0ESez0crcaM19o5S//SvezOQguuIHZ3wgX64hM= +github.com/xanzy/go-gitlab v0.105.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -711,38 +729,40 @@ 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.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= -go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= -go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI= -go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= go.starlark.net v0.0.0-20231101134539-556fd59b42f6 h1:+eC0F/k4aBLC4szgOcjd7bDTEnpxADJyWJE0yowgM3E= go.starlark.net v0.0.0-20231101134539-556fd59b42f6/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= 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/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= -go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +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.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +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/arch v0.6.0 h1:S0JTfE48HbRj80+4tbvZDYsJ3tGv6BUU3XxyZ7CirAc= golang.org/x/arch v0.6.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/build v0.0.0-20230906094020-6ed658a430ec h1:yMJe4SyVd1CYtjYLH/THl39sCe5bRbwvjEDLBIjqBpk= -golang.org/x/build v0.0.0-20230906094020-6ed658a430ec/go.mod h1:MxpeLdBPNhS3SrunE4G6YOdcYL2RH/Vbw+TNE7PYNSk= +golang.org/x/build v0.0.0-20240616231658-d6ee231f334b h1:g2bDentUrL5ARPWxm9++zo6zvqaby93QvbQJqxRCZHY= +golang.org/x/build v0.0.0-20240616231658-d6ee231f334b/go.mod h1:Q3Y4+jnPQCnNizilofBXOJ7EmO14lCIRAAE8pKZshic= 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-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -761,9 +781,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= 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= @@ -778,8 +797,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 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-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= -golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f h1:99ci1mjWVBWwJiEKYY6jWa4d2nTQVIEhZIptnrVb1XY= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= 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= @@ -814,8 +833,8 @@ 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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= @@ -854,9 +873,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.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.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20170207211851-4464e7848382/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 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= @@ -867,8 +885,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ 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.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20230717203022-1ba3a21238c9 h1:HPASJO/sBgVQqFwIsL7A5o5GfTRe30dOhyX94F+4as0= golang.org/x/perf v0.0.0-20230717203022-1ba3a21238c9/go.mod h1:UBKtEnL8aqnd+0JHqZ+2qoMDwtuy6cYhhKNoHLBiTQc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -935,6 +953,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc 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-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/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-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -945,20 +964,16 @@ 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.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.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-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= 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.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 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= @@ -968,19 +983,16 @@ 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.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 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= 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.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1040,8 +1052,8 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= 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= @@ -1073,8 +1085,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 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.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= 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= @@ -1082,8 +1094,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww 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-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1120,12 +1130,12 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D 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-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= -google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= -google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac h1:OZkkudMUu9LVQMCoRUbI/1p5VCo9BOrlvkqMvWtqa6s= -google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac h1:nUQEQmH/csSvFECKYRv6HWEyypysidKl2I6Qpsglq/0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v0.0.0-20170208002647-2a6bf6142e96/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= @@ -1143,8 +1153,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM 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.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -1158,9 +1168,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD 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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/update/main.go b/update/main.go index 4ecffaf352..68e40ab755 100644 --- a/update/main.go +++ b/update/main.go @@ -17,7 +17,6 @@ package main import ( "context" - "encoding/json" "flag" "log" "os" @@ -27,67 +26,9 @@ import ( "golang.org/x/sys/unix" "github.com/percona/pmm/update/pkg/ansible" - "github.com/percona/pmm/update/pkg/yum" "github.com/percona/pmm/version" ) -const ( - pmmManagedPackageName = "pmm-managed" -) - -func installed(ctx context.Context) { - v, err := yum.Installed(ctx, pmmManagedPackageName) - if err != nil { - logrus.Tracef("%+v", err) - logrus.Fatalf("Installed failed: %s", err) - } - if err = json.NewEncoder(os.Stdout).Encode(v); err != nil { - logrus.Fatal(err) - } -} - -func check(ctx context.Context) { - pmmManagedPackage, err := yum.Check(ctx, pmmManagedPackageName) - if err != nil { - logrus.Tracef("%+v", err) - logrus.Fatalf("Check failed: %s", err) - } - - if err = json.NewEncoder(os.Stdout).Encode(pmmManagedPackage); err != nil { - logrus.Fatal(err) - } -} - -func performStage1SelfUpdate(ctx context.Context) { - const name = "pmm-update" - v, err := yum.Installed(ctx, name) - if err != nil { - logrus.Tracef("%+v", err) - logrus.Fatalf("Installed failed before update: %s", err) - } - before := v.Installed - - if err = yum.Update(ctx, name); err != nil { - logrus.Tracef("%+v", err) - logrus.Fatalf("Update failed: %s", err) - } - - v, err = yum.Installed(ctx, name) - if err != nil { - logrus.Tracef("%+v", err) - logrus.Fatalf("Installed failed after update: %s", err) - } - after := v.Installed - - logrus.Infof("%s:\nbefore update = %+v\n after update = %+v", name, before, after) - if before.FullVersion != after.FullVersion { - // exit with non-zero code to let supervisord restart `pmm-update -perform` from the start - logrus.Info("Version changed, exiting.") - os.Exit(42) - } - logrus.Info("Version did not change.") -} - func performStage2Ansible(ctx context.Context, playbook string, opts *ansible.RunPlaybookOpts) { err := ansible.RunPlaybook(ctx, playbook, opts) if err != nil { @@ -99,22 +40,10 @@ func runAnsible(ctx context.Context, playbook string, opts *ansible.RunPlaybookO performStage2Ansible(ctx, playbook, opts) } -func perform(ctx context.Context, playbook string, opts *ansible.RunPlaybookOpts) { - performStage1SelfUpdate(ctx) - performStage2Ansible(ctx, playbook, opts) - - // pmm-managed will still wait for dashboard-upgrade to finish; - // that string is expected by various automated tests. - logrus.Info("Waiting for Grafana dashboards update to finish...") -} - // Flags have to be global variables for maincover_test.go to work. // //nolint:gochecknoglobals var ( - installedF = flag.Bool("installed", false, "Return installed version") - checkF = flag.Bool("check", false, "Check for updates") - performF = flag.Bool("perform", false, "Perform update") runPlaybookF = flag.Bool("run-playbook", false, "Run playbook without self-update") playbookF = flag.String("playbook", "", "Ansible playbook for -perform") debugF = flag.Bool("debug", false, "Enable debug logging") @@ -137,15 +66,6 @@ func main() { } var modes int - if *installedF { - modes++ - } - if *checkF { - modes++ - } - if *performF { - modes++ - } if *runPlaybookF { modes++ } @@ -165,10 +85,6 @@ func main() { }() switch { - case *installedF: - installed(ctx) - case *checkF: - check(ctx) case *runPlaybookF: if *playbookF == "" { logrus.Fatalf("-playbook flag must be set.") @@ -178,13 +94,5 @@ func main() { Debug: *debugF, Trace: *traceF, }) - case *performF: - if *playbookF == "" { - logrus.Fatalf("-playbook flag must be set.") - } - perform(ctx, *playbookF, &ansible.RunPlaybookOpts{ - Debug: *debugF, - Trace: *traceF, - }) } } diff --git a/update/pkg/yum/info.go b/update/pkg/yum/info.go deleted file mode 100644 index 95728e928d..0000000000 --- a/update/pkg/yum/info.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (C) 2023 Percona LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -// Package yum provides functionality for yum dependency manager. -package yum - -import ( - "os/exec" - "regexp" - "strings" - "time" - - "github.com/pkg/errors" -) - -// parseInfo parses `yum info` stdout for a single version of a single package. -// Also used to parse `yum repoinfo`. -func parseInfo(lines []string, firstKey string) (map[string]string, error) { - res := make(map[string]string) - var prevKey string - var keyFound bool - for _, line := range lines { - // separate progress output from data - line = strings.TrimSpace(line) - if line == "" { - continue - } - parts := strings.SplitN(line, ":", 2) - if len(parts) != 2 { - continue - } - key := strings.TrimSpace(parts[0]) - if key == firstKey { - // sanity check that we do not try to parse multiple packages - if keyFound { - return res, errors.New("second `Name` encountered") - } - keyFound = true - } - if !keyFound { - continue - } - - // parse data while handling multiline values - value := strings.TrimSpace(parts[1]) - if key == "" { - if prevKey != "" { - res[prevKey] += " " + value - } - continue - } - res[key] = value - prevKey = key - } - return res, nil -} - -func parseInfoTime(s string) (time.Time, error) { - layout := "Mon 2 Jan 2006 15:04:05 PM UTC" // layout for EL9, default - v, err := getRHELVersion() - if err == nil && v == "7" { - layout = "Mon Jan 2 15:04:05 2006" // change the layout for EL7 - } - return time.Parse(layout, s) -} - -// fullVersion returns full (ugly) package version. -func fullVersion(info map[string]string) string { - var res string - if e := info["Epoch"]; e != "" { - res = e + ":" - } - res += info["Version"] - res += "-" + info["Release"] - return res -} - -// niceVersion returns nice user-visible package version. -func niceVersion(info map[string]string) string { - // cut suffixes from full release - release := info["Release"] - for _, re := range []*regexp.Regexp{ - regexp.MustCompile(`^(.*)\.el\d+$`), // el7 suffix - regexp.MustCompile(`^(.*)\.[0-9a-f]{7}$`), // abbreviated commit suffix - regexp.MustCompile(`^(.*)\.\d{10}$`), // timestamp suffix - } { - release = re.ReplaceAllString(release, "$1") - } - - // if there is more than just release digits (like `9.beta5` or `18.rc4`), return them; - // return only version otherwise. - if !regexp.MustCompile(`^\d+$`).MatchString(release) { - return info["Version"] + "-" + release - } - return info["Version"] -} - -func getRHELVersion() (string, error) { - raw, err := exec.Command("rpm", "--eval", "%{rhel}").Output() - if err != nil { - return "", errors.Wrap(err, "couldn't get RHEL version") - } - - return strings.TrimSpace(string(raw)), nil -} diff --git a/update/pkg/yum/info_test.go b/update/pkg/yum/info_test.go deleted file mode 100644 index 1f06c1e249..0000000000 --- a/update/pkg/yum/info_test.go +++ /dev/null @@ -1,683 +0,0 @@ -// Copyright (C) 2023 Percona LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package yum - -import ( - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestParseInfoEL7(t *testing.T) { - v, _ := getRHELVersion() - if v == "9" { - t.Skip("Skip running EL7 tests on EL9") - } - t.Run("Installed", func(t *testing.T) { - stdout := strings.Split(` - Loading "fastestmirror" plugin - Loading "ovl" plugin - Config time: 0.005 - rpmdb time: 0.000 - ovl: Copying up (0) files from OverlayFS lower layer - Yum version: 3.4.3 - Installed Packages - Name : pmm-managed - Arch : x86_64 - Version : 2.0.0 - Release : 9.beta5.1907301101.74f8a67.el7 - Size : 18 M - Repo : installed - From repo : local - Committer : Mykola Marzhan - Committime : Thu Sep 21 12:00:00 2017 - Buildtime : Tue Jul 30 11:02:19 2019 - Install time: Tue Jul 30 18:43:02 2019 - Installed by: 500 - Changed by : System - Summary : Percona Monitoring and Management management daemon - URL : https://github.com/percona/pmm-managed - License : AGPLv3 - Description : pmm-managed manages configuration of PMM server components (Prometheus, - : Grafana, etc.) and exposes API for that. Those APIs are used by pmm-admin tool. - : See the PMM docs for more information. - `, "\n") - expected := map[string]string{ - "Name": "pmm-managed", - "Arch": "x86_64", - "Version": "2.0.0", - "Release": "9.beta5.1907301101.74f8a67.el7", - "Size": "18 M", - "Repo": "installed", - "From repo": "local", - "Committer": "Mykola Marzhan ", - "Committime": "Thu Sep 21 12:00:00 2017", - "Buildtime": "Tue Jul 30 11:02:19 2019", - "Install time": "Tue Jul 30 18:43:02 2019", - "Installed by": "500", - "Changed by": "System ", - "Summary": "Percona Monitoring and Management management daemon", - "URL": "https://github.com/percona/pmm-managed", - "License": "AGPLv3", - "Description": "pmm-managed manages configuration of PMM server components (Prometheus, " + - "Grafana, etc.) and exposes API for that. Those APIs are used by pmm-admin tool. " + - "See the PMM docs for more information.", - } - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2019, 7, 30, 11, 2, 19, 0, time.UTC), buildtime) - assert.Equal(t, "2.0.0-9.beta5.1907301101.74f8a67.el7", fullVersion(actual)) - assert.Equal(t, "2.0.0-9.beta5", niceVersion(actual)) - }) - - t.Run("Updates", func(t *testing.T) { - stdout := strings.Split(` - Loading "fastestmirror" plugin - Loading "ovl" plugin - Config time: 0.017 - rpmdb time: 0.000 - ovl: Copying up (14) files from OverlayFS lower layer - Yum version: 3.4.3 - Building updates object - Setting up Package Sacks - Determining fastest mirrors - * base: mirror.reconn.ru - * epel: mirror.yandex.ru - * extras: mirror.reconn.ru - * updates: mirror.reconn.ru - pkgsack time: 14.667 - up:Obs Init time: 0.235 - up:simple updates time: 0.004 - up:obs time: 0.003 - up:condense time: 0.000 - updates time: 15.139 - Updated Packages - Name : pmm-update - Arch : noarch - Version : 2.0.0 - Release : 9.beta5.1907301223.90149dd.el7 - Size : 1.5 M - Repo : pmm-laboratory - Committer : Mykola Marzhan - Committime : Fri Jun 30 12:00:00 2017 - Buildtime : Tue Jul 30 12:23:10 2019 - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm/update - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - `, "\n") - expected := map[string]string{ - "Name": "pmm-update", - "Arch": "noarch", - "Version": "2.0.0", - "Release": "9.beta5.1907301223.90149dd.el7", - "Size": "1.5 M", - "Repo": "pmm-laboratory", - "Committer": "Mykola Marzhan ", - "Committime": "Fri Jun 30 12:00:00 2017", - "Buildtime": "Tue Jul 30 12:23:10 2019", - "Summary": "Tool for updating packages and OS configuration for PMM Server", - "URL": "https://github.com/percona/pmm/update", - "License": "AGPLv3", - "Description": "Tool for updating packages and OS configuration for PMM Server", - } - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2019, 7, 30, 12, 23, 10, 0, time.UTC), buildtime) - assert.Equal(t, "2.0.0-9.beta5.1907301223.90149dd.el7", fullVersion(actual)) - assert.Equal(t, "2.0.0-9.beta5", niceVersion(actual)) - }) - - t.Run("Available", func(t *testing.T) { - // yum --verbose --showduplicates info available pmm-update, abbreviated - stdout := strings.Split(` - Loading "fastestmirror" plugin - Loading "ovl" plugin - Config time: 0.007 - rpmdb time: 0.000 - ovl: Copying up (0) files from OverlayFS lower layer - Yum version: 3.4.3 - Setting up Package Sacks - Loading mirror speeds from cached hostfile - * base: mirror.logol.ru - * epel: fedora-mirror01.rbc.ru - * extras: mirror.logol.ru - * updates: mirror.logol.ru - pkgsack time: 0.027 - Available Packages - Name : pmm-update - Arch : noarch - Version : PMM - Release : 7.4358.1907161009.7685dba.el7 - Size : 20 k - Repo : pmm-laboratory - Committer : Mykola Marzhan - Committime : Fri Jun 30 12:00:00 2017 - Buildtime : Tue Jul 16 10:09:01 2019 - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm/update - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - - Name : pmm-update - Arch : noarch - Version : 2.0.0 - Release : 1.1903221448.2e245f9.el7 - Size : 20 k - Repo : pmm-laboratory - Committer : Mykola Marzhan - Committime : Fri Jun 30 12:00:00 2017 - Buildtime : Fri Mar 22 14:48:42 2019 - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm/update - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - - … - `, "\n") - expected := map[string]string{ - "Name": "pmm-update", - "Arch": "noarch", - "Version": "PMM", - "Release": "7.4358.1907161009.7685dba.el7", - "Size": "20 k", - "Repo": "pmm-laboratory", - "Committer": "Mykola Marzhan ", - "Committime": "Fri Jun 30 12:00:00 2017", - "Buildtime": "Tue Jul 16 10:09:01 2019", - "Summary": "Tool for updating packages and OS configuration for PMM Server", - "URL": "https://github.com/percona/pmm/update", - "License": "AGPLv3", - "Description": "Tool for updating packages and OS configuration for PMM Server", - } - actual, err := parseInfo(stdout, "Name") - assert.EqualError(t, err, "second `Name` encountered") - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2019, 7, 16, 10, 9, 1, 0, time.UTC), buildtime) - assert.Equal(t, "PMM-7.4358.1907161009.7685dba.el7", fullVersion(actual)) - assert.Equal(t, "PMM-7.4358", niceVersion(actual)) // yes, that one is broken - }) - - t.Run("AvailableGA", func(t *testing.T) { - // yum --verbose --showduplicates info available pmm-update, abbreviated - stdout := strings.Split(` - Available Packages - Name : pmm-update - Arch : noarch - Version : 2.0.0 - Release : 18.1909180550.6de91ea.el7 - Size : 857 k - Repo : pmm-server - Committer : Alexey Palazhchenko - Committime : Wed Sep 18 12:00:00 2019 - Buildtime : Wed Sep 18 05:51:01 2019 - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm/update - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - - … - `, "\n") - expected := map[string]string{ - "Name": "pmm-update", - "Arch": "noarch", - "Version": "2.0.0", - "Release": "18.1909180550.6de91ea.el7", - "Size": "857 k", - "Repo": "pmm-server", - "Committer": "Alexey Palazhchenko ", - "Committime": "Wed Sep 18 12:00:00 2019", - "Buildtime": "Wed Sep 18 05:51:01 2019", - "Summary": "Tool for updating packages and OS configuration for PMM Server", - "URL": "https://github.com/percona/pmm/update", - "License": "AGPLv3", - "Description": "Tool for updating packages and OS configuration for PMM Server", - } - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2019, 9, 18, 5, 51, 1, 0, time.UTC), buildtime) - assert.Equal(t, "2.0.0-18.1909180550.6de91ea.el7", fullVersion(actual)) - assert.Equal(t, "2.0.0", niceVersion(actual)) - }) - - t.Run("Empty", func(t *testing.T) { - // "Error: No matching Packages to list" goes to stderr. - stdout := strings.Split(` - Loading "fastestmirror" plugin - Loading "ovl" plugin - Config time: 0.007 - rpmdb time: 0.000 - ovl: Copying up (0) files from OverlayFS lower layer - Yum version: 3.4.3 - Building updates object - Setting up Package Sacks - Loading mirror speeds from cached hostfile - * base: mirror.logol.ru - * epel: fedora-mirror01.rbc.ru - * extras: mirror.logol.ru - * updates: mirror.logol.ru - pkgsack time: 0.030 - up:Obs Init time: 0.217 - up:simple updates time: 0.008 - up:obs time: 0.004 - up:condense time: 0.000 - updates time: 0.469 - `, "\n") - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Empty(t, actual) - }) - - t.Run("RepoInfo", func(t *testing.T) { - // yum repoinfo pmm-server. - stdout := strings.Split(` - Loaded plugins: changelog, fastestmirror, ovl - Loading mirror speeds from cached hostfile - * base: centos.schlundtech.de - * epel: mirror.netcologne.de - * extras: centos.mirror.iphh.net - * updates: mirror.netcologne.de - Repo-id : pmm-server - Repo-name : PMM Server YUM repository - x86_64 - Repo-status : enabled - Repo-revision: 1622561436 - Repo-updated : Tue Jun 1 15:30:45 2021 - Repo-pkgs : 237 - Repo-size : 2.4 G - Repo-baseurl : https://repo.percona.com/pmm3-components/yum/experimental/7/RPMS/x86_64/ - Repo-expire : 21600 second(s) (last: Thu Jun 10 16:08:12 2021) - Filter : read-only:present - Repo-filename: /etc/yum.repos.d/pmm-server.repo - - repolist: 237 - … - `, "\n") - expected := map[string]string{ - "Repo-id": "pmm-server", - "Repo-name": "PMM Server YUM repository - x86_64", - "Repo-status": "enabled", - "Repo-revision": "1622561436", - "Repo-updated": "Tue Jun 1 15:30:45 2021", - "Repo-pkgs": "237", - "Repo-size": "2.4 G", - "Repo-baseurl": "https://repo.percona.com/pmm3-components/yum/experimental/7/RPMS/x86_64/", - "Repo-expire": "21600 second(s) (last: Thu Jun 10 16:08:12 2021)", - "Filter": "read-only:present", - "Repo-filename": "/etc/yum.repos.d/pmm-server.repo", - "repolist": "237", - } - actual, err := parseInfo(stdout, "Repo-id") - require.NoError(t, err) - assert.Equal(t, expected, actual) - releasetime, err := parseInfoTime(actual["Repo-updated"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2021, 6, 1, 15, 30, 45, 0, time.UTC), releasetime) - }) -} - -func TestParseInfoEL9(t *testing.T) { - v, _ := getRHELVersion() - if v == "7" { - t.Skip("Skip running EL9 tests on EL7") - } - t.Run("Installed EL9", func(t *testing.T) { - stdout := strings.Split(` - Starting "yum --verbose info installed pmm-managed" ... - Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync, system-upgrade - YUM version: 4.14.0 - cachedir: /var/cache/dnf - Unknown configuration option: async = 1 in /etc/yum.repos.d/clickhouse.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/local.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/nginx.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-11.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-14.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/pmm-server.repo - User-Agent: constructed: 'libdnf (Oracle Linux Server 9.2; server; Linux.x86_64)' - Installed Packages - Name : pmm-managed - Version : 2.39.0 - Release : 20.2306271313.b6d58b6.el9 - Architecture : x86_64 - Size : 125 M - Source : pmm-managed-2.39.0-20.2306271313.b6d58b6.el9.src.rpm - Repository : @System - From repo : local - Packager : None - Buildtime : Tue 27 Jun 2023 01:13:03 PM UTC - Install time : Tue 27 Jun 2023 01:31:05 PM UTC - Installed by : System - Summary : Percona Monitoring and Management management daemon - URL : https://github.com/percona/pmm - License : AGPLv3 - Description : pmm-managed manages configuration of PMM server components (VictoriaMetrics, - : Grafana, etc.) and exposes API for that. Those APIs are used by pmm-admin tool. - : See PMM docs for more information. - `, "\n") - expected := map[string]string{ - "Name": "pmm-managed", - "Version": "2.39.0", - "Release": "20.2306271313.b6d58b6.el9", - "Architecture": "x86_64", - "Size": "125 M", - "Source": "pmm-managed-2.39.0-20.2306271313.b6d58b6.el9.src.rpm", - "Repository": "@System", - "From repo": "local", - "Packager": "None", - "Buildtime": "Tue 27 Jun 2023 01:13:03 PM UTC", - "Install time": "Tue 27 Jun 2023 01:31:05 PM UTC", - "Installed by": "System ", - "Summary": "Percona Monitoring and Management management daemon", - "URL": "https://github.com/percona/pmm", - "License": "AGPLv3", - "Description": "pmm-managed manages configuration of PMM server components (VictoriaMetrics, " + - "Grafana, etc.) and exposes API for that. Those APIs are used by pmm-admin tool. " + - "See PMM docs for more information.", - } - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2023, 6, 27, 13, 13, 3, 0, time.UTC), buildtime) - assert.Equal(t, "2.39.0-20.2306271313.b6d58b6.el9", fullVersion(actual)) - assert.Equal(t, "2.39.0", niceVersion(actual)) - }) - - t.Run("Updates EL9", func(t *testing.T) { - // yum --verbose info updates pmm-update - stdout := strings.Split(` - Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync, system-upgrade - YUM version: 4.14.0 - cachedir: /var/cache/dnf - Unknown configuration option: async = 1 in /etc/yum.repos.d/clickhouse.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/local.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/nginx.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-11.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-14.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/pmm-server.repo - User-Agent: constructed: 'libdnf (Oracle Linux Server 9.2; server; Linux.x86_64)' - repo: using cache for: ol9_developer_EPEL - ol9_developer_EPEL: using metadata from Wed 28 Jun 2023 02:28:50 PM UTC. - repo: using cache for: ol9_baseos_latest - ol9_baseos_latest: using metadata from Fri 23 Jun 2023 04:59:24 AM UTC. - repo: using cache for: ol9_appstream - ol9_appstream: using metadata from Fri 23 Jun 2023 05:03:17 AM UTC. - repo: using cache for: percona-release-x86_64 - percona-release-x86_64: using metadata from Mon 26 Jun 2023 01:02:27 PM UTC. - repo: using cache for: percona-release-noarch - percona-release-noarch: using metadata from Wed 06 Jul 2022 08:25:44 PM UTC. - repo: using cache for: percona-testing-x86_64 - percona-testing-x86_64: using metadata from Wed 28 Jun 2023 05:27:06 PM UTC. - repo: using cache for: percona-testing-noarch - percona-testing-noarch: using metadata from Wed 06 Jul 2022 08:20:55 PM UTC. - repo: using cache for: percona-ppg-11 - percona-ppg-11: using metadata from Mon 22 May 2023 08:40:15 AM UTC. - repo: using cache for: percona-ppg-14 - percona-ppg-14: using metadata from Wed 28 Jun 2023 02:57:51 PM UTC. - repo: using cache for: prel-release-noarch - prel-release-noarch: using metadata from Thu 16 Sep 2021 06:35:55 AM UTC. - repo: using cache for: pmm-server - pmm-server: using metadata from Wed 28 Jun 2023 02:46:09 PM UTC. - Last metadata expiration check: 1:42:51 ago on Wed 28 Jun 2023 07:06:43 PM UTC. - Available Upgrades - Name : pmm-update - Version : 2.39.0 - Release : 67.2306281336.d0d7fcb.el9 - Architecture : noarch - Size : 886 k - Source : pmm-update-2.39.0-67.2306281336.d0d7fcb.el9.src.rpm - Repository : pmm-server - Packager : None - Buildtime : Wed 28 Jun 2023 01:36:03 PM UTC - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - `, "\n") - expected := map[string]string{ - "Name": "pmm-update", - "Architecture": "noarch", - "Version": "2.39.0", - "Release": "67.2306281336.d0d7fcb.el9", - "Size": "886 k", - "Source": "pmm-update-2.39.0-67.2306281336.d0d7fcb.el9.src.rpm", - "Repository": "pmm-server", - "Packager": "None", - "Buildtime": "Wed 28 Jun 2023 01:36:03 PM UTC", - "Summary": "Tool for updating packages and OS configuration for PMM Server", - "URL": "https://github.com/percona/pmm", - "License": "AGPLv3", - "Description": "Tool for updating packages and OS configuration for PMM Server", - } - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2023, 6, 28, 13, 36, 3, 0, time.UTC), buildtime) - assert.Equal(t, "2.39.0-67.2306281336.d0d7fcb.el9", fullVersion(actual)) - assert.Equal(t, "2.39.0", niceVersion(actual)) - }) - - t.Run("AvailableGA EL9", func(t *testing.T) { - // yum --verbose --showduplicates info available pmm-update (just two versions) - stdout := strings.Split(` - Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync, system-upgrade - YUM version: 4.14.0 - cachedir: /var/cache/dnf - Unknown configuration option: async = 1 in /etc/yum.repos.d/clickhouse.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/local.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/nginx.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-11.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-14.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/pmm-server.repo - User-Agent: constructed: 'libdnf (Oracle Linux Server 9.2; server; Linux.x86_64)' - repo: using cache for: ol9_developer_EPEL - ol9_developer_EPEL: using metadata from Wed 28 Jun 2023 02:28:50 PM UTC. - repo: using cache for: ol9_baseos_latest - ol9_baseos_latest: using metadata from Fri 23 Jun 2023 04:59:24 AM UTC. - repo: using cache for: ol9_appstream - ol9_appstream: using metadata from Fri 23 Jun 2023 05:03:17 AM UTC. - repo: using cache for: percona-release-x86_64 - percona-release-x86_64: using metadata from Mon 26 Jun 2023 01:02:27 PM UTC. - repo: using cache for: percona-release-noarch - percona-release-noarch: using metadata from Wed 06 Jul 2022 08:25:44 PM UTC. - repo: using cache for: percona-testing-x86_64 - percona-testing-x86_64: using metadata from Wed 28 Jun 2023 05:27:06 PM UTC. - repo: using cache for: percona-testing-noarch - percona-testing-noarch: using metadata from Wed 06 Jul 2022 08:20:55 PM UTC. - repo: using cache for: percona-ppg-11 - percona-ppg-11: using metadata from Mon 22 May 2023 08:40:15 AM UTC. - repo: using cache for: percona-ppg-14 - percona-ppg-14: using metadata from Wed 28 Jun 2023 02:57:51 PM UTC. - repo: using cache for: prel-release-noarch - prel-release-noarch: using metadata from Thu 16 Sep 2021 06:35:55 AM UTC. - repo: using cache for: pmm-server - pmm-server: using metadata from Wed 28 Jun 2023 02:46:09 PM UTC. - Last metadata expiration check: 1:18:00 ago on Wed 28 Jun 2023 07:06:43 PM UTC. - Available Packages - Name : pmm-update - Version : 2.39.0 - Release : 67.2306280932.70f3748.el9 - Architecture : noarch - Size : 887 k - Source : pmm-update-2.39.0-67.2306280932.70f3748.el9.src.rpm - Repository : pmm-server - Packager : None - Buildtime : Wed 28 Jun 2023 09:32:21 AM UTC - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - - Name : pmm-update - Version : 2.39.0 - Release : 67.2306281012.fe8e947.el9 - Architecture : noarch - Size : 887 k - Source : pmm-update-2.39.0-67.2306281012.fe8e947.el9.src.rpm - Repository : pmm-server - Packager : None - Buildtime : Wed 28 Jun 2023 10:12:02 AM UTC - Summary : Tool for updating packages and OS configuration for PMM Server - URL : https://github.com/percona/pmm - License : AGPLv3 - Description : Tool for updating packages and OS configuration for PMM Server - `, "\n") - expected := map[string]string{ - "Name": "pmm-update", - "Architecture": "noarch", - "Version": "2.39.0", - "Release": "67.2306280932.70f3748.el9", - "Size": "887 k", - "Source": "pmm-update-2.39.0-67.2306280932.70f3748.el9.src.rpm", - "Repository": "pmm-server", - "Packager": "None", - "Buildtime": "Wed 28 Jun 2023 09:32:21 AM UTC", - "Summary": "Tool for updating packages and OS configuration for PMM Server", - "URL": "https://github.com/percona/pmm", - "License": "AGPLv3", - "Description": "Tool for updating packages and OS configuration for PMM Server", - } - actual, err := parseInfo(stdout, "Name") - assert.EqualError(t, err, "second `Name` encountered") - assert.Equal(t, expected, actual) - buildtime, err := parseInfoTime(actual["Buildtime"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2023, 6, 28, 9, 32, 21, 0, time.UTC), buildtime) - assert.Equal(t, "2.39.0-67.2306280932.70f3748.el9", fullVersion(actual)) - assert.Equal(t, "2.39.0", niceVersion(actual)) - }) - - t.Run("Empty EL9", func(t *testing.T) { - // yum --verbose info updates pmm-managed - // "Error: No matching Packages to list" goes to stderr. - // The output below is generated when there are no updates available. - stdout := strings.Split(` - Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync, system-upgrade - YUM version: 4.14.0 - cachedir: /var/cache/dnf - Unknown configuration option: async = 1 in /etc/yum.repos.d/clickhouse.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/local.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/nginx.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-11.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/percona-ppg-14.repo - Unknown configuration option: async = 1 in /etc/yum.repos.d/pmm-server.repo - User-Agent: constructed: 'libdnf (Oracle Linux Server 9.2; server; Linux.x86_64)' - repo: using cache for: ol9_developer_EPEL - ol9_developer_EPEL: using metadata from Wed 28 Jun 2023 02:28:50 PM UTC. - repo: using cache for: ol9_baseos_latest - ol9_baseos_latest: using metadata from Fri 23 Jun 2023 04:59:24 AM UTC. - repo: using cache for: ol9_appstream - ol9_appstream: using metadata from Fri 23 Jun 2023 05:03:17 AM UTC. - repo: using cache for: percona-release-x86_64 - percona-release-x86_64: using metadata from Mon 26 Jun 2023 01:02:27 PM UTC. - repo: using cache for: percona-release-noarch - percona-release-noarch: using metadata from Wed 06 Jul 2022 08:25:44 PM UTC. - repo: using cache for: percona-testing-x86_64 - percona-testing-x86_64: using metadata from Wed 28 Jun 2023 05:27:06 PM UTC. - repo: using cache for: percona-testing-noarch - percona-testing-noarch: using metadata from Wed 06 Jul 2022 08:20:55 PM UTC. - repo: using cache for: percona-ppg-11 - percona-ppg-11: using metadata from Mon 22 May 2023 08:40:15 AM UTC. - repo: using cache for: percona-ppg-14 - percona-ppg-14: using metadata from Wed 28 Jun 2023 02:57:51 PM UTC. - repo: using cache for: prel-release-noarch - prel-release-noarch: using metadata from Thu 16 Sep 2021 06:35:55 AM UTC. - repo: using cache for: pmm-server - pmm-server: using metadata from Wed 28 Jun 2023 02:46:09 PM UTC. - Last metadata expiration check: 0:59:54 ago on Wed 28 Jun 2023 07:06:43 PM UTC. - `, "\n") - actual, err := parseInfo(stdout, "Name") - require.NoError(t, err) - assert.Empty(t, actual) - }) - - t.Run("RepoInfo EL9", func(t *testing.T) { - // yum repoinfo pmm-server. - stdout := strings.Split(` - Last metadata expiration check: 9:26:06 ago on Wed 28 Jun 2023 09:26:18 AM UTC. - Repo-id : pmm-server - Repo-name : PMM Server YUM repository - x86_64 - Repo-status : enabled - Repo-revision : 1687873070 - Repo-updated : Tue 27 Jun 2023 01:25:23 PM UTC - Repo-pkgs : 478 - Repo-available-pkgs: 478 - Repo-size : 3.7 G - Repo-baseurl : https://repo.percona.com/pmm3-components/yum/experimental/9/RPMS/x86_64/ - Repo-expire : 172,800 second(s) (last: Wed 28 Jun 2023 09:26:18 AM UTC) - Repo-filename : /etc/yum.repos.d/pmm-server.repo - Total packages: 478 - `, "\n") - expected := map[string]string{ - "Repo-id": "pmm-server", - "Repo-name": "PMM Server YUM repository - x86_64", - "Repo-status": "enabled", - "Repo-revision": "1687873070", - "Repo-updated": "Tue 27 Jun 2023 01:25:23 PM UTC", - "Repo-pkgs": "478", - "Repo-available-pkgs": "478", - "Repo-size": "3.7 G", - "Repo-baseurl": "https://repo.percona.com/pmm3-components/yum/experimental/9/RPMS/x86_64/", - "Repo-expire": "172,800 second(s) (last: Wed 28 Jun 2023 09:26:18 AM UTC)", - "Repo-filename": "/etc/yum.repos.d/pmm-server.repo", - "Total packages": "478", - } - actual, err := parseInfo(stdout, "Repo-id") - require.NoError(t, err) - assert.Equal(t, expected, actual) - releasetime, err := parseInfoTime(actual["Repo-updated"]) - require.NoError(t, err) - assert.Equal(t, time.Date(2023, time.June, 27, 13, 25, 23, 0, time.UTC), releasetime) - }) -} - -func TestGetRHELVersion(t *testing.T) { - t.Run("getRHELVersion EL9", func(t *testing.T) { - actual, err := getRHELVersion() - if actual == "7" { - t.Skip("Skip running EL9 tests on EL7") - } - expected := "9" - require.NoError(t, err) - assert.Equal(t, expected, actual) - }) - - t.Run("getRHELVersion EL7", func(t *testing.T) { - actual, err := getRHELVersion() - if actual == "9" { - t.Skip("Skip running EL7 test on EL9") - } - expected := "7" - require.NoError(t, err) - assert.Equal(t, expected, actual) - }) -} diff --git a/update/pkg/yum/yum.go b/update/pkg/yum/yum.go deleted file mode 100644 index 008ad208b1..0000000000 --- a/update/pkg/yum/yum.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (C) 2023 Percona LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package yum - -import ( - "context" - "strings" - "time" - - "github.com/pkg/errors" - - "github.com/percona/pmm/update/pkg/run" - "github.com/percona/pmm/version" -) - -const ( - yumInfoCancelTimeout = 30 * time.Second // must be _much_ less than stopwaitsecs in supervisord config - yumUpdateCancelTimeout = 120 * time.Second // must be less than stopwaitsecs in supervisord config - changeLogURLPath = "https://per.co.na/pmm/" -) - -// http://man7.org/linux/man-pages/man8/yum.8.html#LIST_OPTIONS - -// Installed returns current version information for a package with given name. -// It runs quickly. -func Installed(ctx context.Context, name string) (*version.UpdateInstalledResult, error) { - cmdLine := "yum --verbose info installed " + name - stdout, _, err := run.Run(ctx, yumInfoCancelTimeout, cmdLine, nil) - if err != nil { - return nil, errors.Wrapf(err, "%#q failed", cmdLine) - } - - info, err := parseInfo(stdout, "Name") - if err != nil { - return nil, err - } - res := version.PackageInfo{ - Version: niceVersion(info), - FullVersion: fullVersion(info), - Repo: info["From repo"], - } - buildTime, err := parseInfoTime(info["Buildtime"]) - if err == nil { - res.BuildTime = &buildTime - } - return &version.UpdateInstalledResult{ - Installed: res, - }, nil -} - -// getReleaseTime returns date and time when repo was updated (packages published or repo got rebuilt). -func getReleaseTime(ctx context.Context, repo string) (string, error) { - cmdLine := "yum repoinfo " + repo - stdout, _, err := run.Run(ctx, yumInfoCancelTimeout, cmdLine, nil) - if err != nil { - return "", errors.Wrapf(err, "%#q failed", cmdLine) - } - - info, err := parseInfo(stdout, "Repo-id") - if err != nil { - return "", err - } - - if time, ok := info["Repo-updated"]; ok { - return time, nil - } - - return "", errors.New("Repo-updated field is not found in repoinfo") -} - -// Check returns up-to-date versions information for a package with given name. -// It runs slowly. -func Check(ctx context.Context, name string) (*version.UpdateCheckResult, error) { - repoPropName := "Repository" // default value for RHEL9 - - installed, err := Installed(ctx, name) - if err != nil { - return nil, err - } - res := &version.UpdateCheckResult{ - Installed: installed.Installed, - } - - cmdLine := "yum --verbose info updates " + name - stdout, stderr, err := run.Run(ctx, yumInfoCancelTimeout, cmdLine, nil) - if err != nil { - if strings.Contains(strings.Join(stderr, "\n"), "Error: No matching Packages to list") { - // no update available, return the same values - res.Latest = res.Installed - return res, nil - } - - return nil, errors.Wrapf(err, "%#q failed", cmdLine) - } - - info, err := parseInfo(stdout, "Name") - if err != nil { - return nil, err - } - - v, err := getRHELVersion() - if err == nil && v == "7" { - // change the prop name for EL7 - repoPropName = "Repo" - } - repo, ok := info[repoPropName] - if !ok { - return nil, errors.New("Repository field is not found in yum info") - } - - res.Latest = version.PackageInfo{ - Version: niceVersion(info), - FullVersion: fullVersion(info), - Repo: repo, - } - - // replace Buildtime with repo release time to show time of release. - repoUpdated, err := getReleaseTime(ctx, repo) - if err != nil { - return nil, err - } - releaseTime, err := parseInfoTime(repoUpdated) - if err == nil { - res.Latest.BuildTime = &releaseTime - } - - res.LatestNewsURL = changeLogURLPath + res.Latest.Version - - res.UpdateAvailable = true - return res, nil -} - -// Update updates package with given name. -func Update(ctx context.Context, name string) error { - cmdLine := "yum update --assumeyes " + name - _, _, err := run.Run(ctx, yumUpdateCancelTimeout, cmdLine, nil) - if err != nil { - return errors.Wrapf(err, "%#q failed", cmdLine) - } - return nil -} diff --git a/update/pkg/yum/yum_test.go b/update/pkg/yum/yum_test.go deleted file mode 100644 index a508b47749..0000000000 --- a/update/pkg/yum/yum_test.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (C) 2023 Percona LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package yum - -import ( - "context" - "os" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -var gaReleaseDate = time.Date(2019, 9, 18, 0, 0, 0, 0, time.UTC) - -const ( - pmmManagedPackageName = "pmm-managed" -) - -func TestInstalled(t *testing.T) { - res, err := Installed(context.Background(), pmmManagedPackageName) - require.NoError(t, err) - - assert.True(t, strings.HasPrefix(res.Installed.Version, "3."), "installed version should start with `3.`. Actual value is: %s", res.Installed.Version) - assert.True(t, strings.HasPrefix(res.Installed.FullVersion, "3."), "installed full version should start with `3.`. Actual value is: %s", res.Installed.FullVersion) - require.NotEmpty(t, res.Installed.BuildTime) - assert.True(t, res.Installed.BuildTime.After(gaReleaseDate), "Installed.BuildTime = %s", res.Installed.BuildTime) - assert.Equal(t, "local", res.Installed.Repo) -} - -func TestCheck(t *testing.T) { - res, err := Check(context.Background(), pmmManagedPackageName) - - require.NoError(t, err) - - assert.True(t, strings.HasPrefix(res.Installed.Version, "3."), "installed version should start with `3.`. Actual value is: %s", res.Installed.Version) - assert.True(t, strings.HasPrefix(res.Installed.FullVersion, "3."), "installed full version should start with `3.`. Actual value is: %s", res.Installed.FullVersion) - require.NotEmpty(t, res.Installed.BuildTime) - assert.True(t, res.Installed.BuildTime.After(gaReleaseDate), "Installed.BuildTime = %s", res.Installed.BuildTime) - assert.Equal(t, "local", res.Installed.Repo) - - assert.True(t, strings.HasPrefix(res.Latest.Version, "3."), "The latest available version should start with `3.`. Actual value is: %s", res.Latest.Version) - assert.True(t, strings.HasPrefix(res.Latest.FullVersion, "3."), "The latest available versions full value should start with `3.`. Actual value is: %s", res.Latest.FullVersion) - require.NotEmpty(t, res.Latest.BuildTime) - assert.True(t, res.Latest.BuildTime.After(gaReleaseDate), "Latest.BuildTime = %s", res.Latest.BuildTime) - assert.NotEmpty(t, res.Latest.Repo) - - // We assume that the latest perconalab/pmm-server:3-dev-latest image - // always contains the latest pmm-update package versions. - // If this test fails, re-pull them and recreate devcontainer. - var updateAvailable bool - image := os.Getenv("PMM_SERVER_IMAGE") - require.NotEmpty(t, image) - if image != "perconalab/pmm-server:3-dev-latest" { - updateAvailable = true - } - - if updateAvailable { - t.Log("Assuming pmm-update update is available.") - assert.True(t, res.UpdateAvailable, "update should be available") - - // latest_news_url may not be present yet for this version if VERSION file was bumped already, - // but pmm-update.spec's changelog wasn't updated yet - if res.LatestNewsURL != "" { - assert.True(t, strings.HasPrefix(res.LatestNewsURL, "https://per.co.na/pmm/3."), "latest_news_url = %q", res.LatestNewsURL) - } - - assert.NotEqual(t, res.Installed.Version, res.Latest.Version, "versions should not be the same") - assert.NotEqual(t, res.Installed.FullVersion, res.Latest.FullVersion, "versions should not be the same") - assert.NotEqual(t, *res.Installed.BuildTime, *res.Latest.BuildTime, "build times should not be the same (%s)", *res.Installed.BuildTime) - assert.Equal(t, "pmm-server", res.Latest.Repo) - } else { - t.Log("Assuming the latest pmm-update version.") - assert.False(t, res.UpdateAvailable, "update should not be available") - assert.Empty(t, res.LatestNewsURL, "latest_news_url should be empty") - assert.Equal(t, res.Installed, res.Latest, "version should be the same (latest)") - assert.Equal(t, *res.Installed.BuildTime, *res.Latest.BuildTime, "build times should be the same") - assert.Equal(t, "local", res.Latest.Repo) - } -} - -func TestUpdate(t *testing.T) { - err := Update(context.Background(), "make") - require.NoError(t, err) -} diff --git a/version/parsed.go b/version/parsed.go index dce3d6887d..a256beeef6 100644 --- a/version/parsed.go +++ b/version/parsed.go @@ -19,6 +19,7 @@ import ( "fmt" "regexp" "strconv" + "strings" "github.com/pkg/errors" ) @@ -100,3 +101,15 @@ func (p *Parsed) Less(right *Parsed) bool { return p.Rest < right.Rest } + +// UnmarshalJSON implements json.Unmarshaler interface and allows to unmarshal version information from JSON. +func (p *Parsed) UnmarshalJSON(b []byte) error { + s := string(b) + s = strings.Trim(s, `"`) + parsed, err := Parse(s) + if err != nil { + return err + } + *p = *parsed + return nil +} diff --git a/version/update.go b/version/update.go index 5441043343..235004df4d 100644 --- a/version/update.go +++ b/version/update.go @@ -32,8 +32,15 @@ type UpdateInstalledResult struct { // UpdateCheckResult represents `pmm-update -check` result. type UpdateCheckResult struct { - Installed PackageInfo `json:"installed"` - Latest PackageInfo `json:"latest,omitempty"` - UpdateAvailable bool `json:"update_available"` - LatestNewsURL string `json:"latest_news_url"` + Installed PackageInfo `json:"installed"` + Latest DockerVersionInfo `json:"latest,omitempty"` + UpdateAvailable bool `json:"update_available"` + LatestNewsURL string `json:"latest_news_url"` +} + +// DockerVersionInfo describes the version of the Docker image. +type DockerVersionInfo struct { + Version Parsed `json:"version"` + DockerImage string `json:"docker_image"` + BuildTime time.Time `json:"build_time"` }