From d4561c66545094f08e6f7d0329b020f6e2803df3 Mon Sep 17 00:00:00 2001 From: Chandan Pinjani Date: Thu, 5 Dec 2024 17:49:17 +0530 Subject: [PATCH] CI/UI - Bump to Rancher 2.10 (#85) * Bump & fix code to work with rancher 2.10 Signed-off-by: Chandan Pinjani * Bump testhelpers & dependencies Signed-off-by: Chandan Pinjani * Fix for cloud tests Signed-off-by: Chandan Pinjani --------- Signed-off-by: Chandan Pinjani --- .github/workflows/ui-e2e.yaml | 6 +- README.md | 2 +- .../e2e/unit_tests/capa_eks_cluster.spec.ts | 8 +-- .../e2e/unit_tests/capa_rke2_cluster.spec.ts | 8 +-- .../unit_tests/capd_kubeadm_cluster.spec.ts | 6 +- .../e2e/unit_tests/capd_rke2_cluster.spec.ts | 6 +- .../e2e/unit_tests/capz_cluster.spec.ts | 8 +-- .../e2e/unit_tests/providers_setup.spec.ts | 10 +-- .../e2e/unit_tests/turtles_operator.spec.ts | 2 +- tests/cypress/latest/package.json | 2 +- tests/cypress/latest/support/commands.ts | 23 +++--- tests/cypress/latest/support/e2e.ts | 1 + tests/go.mod | 32 ++++----- tests/go.sum | 70 +++++++++---------- 14 files changed, 91 insertions(+), 93 deletions(-) diff --git a/.github/workflows/ui-e2e.yaml b/.github/workflows/ui-e2e.yaml index 79f25bb..983592d 100644 --- a/.github/workflows/ui-e2e.yaml +++ b/.github/workflows/ui-e2e.yaml @@ -1,6 +1,6 @@ # This workflow calls the master E2E workflow with custom variables name: UI-E2E -run-name: ${{ github.event_name == 'workflow_dispatch' && format('Rancher-`{0}` - `{1}` destroy={2}', inputs.rancher_version, inputs.grep_test_by_tag, inputs.destroy_runner) || github.event_name == 'schedule' && 'UI-E2E on Rancher-latest/devel/2.9' }} +run-name: ${{ github.event_name == 'workflow_dispatch' && format('Rancher-`{0}` - `{1}` destroy={2}', inputs.rancher_version, inputs.grep_test_by_tag, inputs.destroy_runner) || github.event_name == 'schedule' && 'UI-E2E on Rancher-latest/devel/2.10' }} on: workflow_dispatch: @@ -15,7 +15,7 @@ on: type: boolean rancher_version: description: Rancher Manager channel/version/head_version to use for installation - default: latest/devel/2.9 + default: latest/devel/2.10 type: string grep_test_by_tag: description: Grep tags. For multiple selection separate with spaces. Keep always @install @@ -45,7 +45,7 @@ jobs: cluster_name: cluster-k3s destroy_runner: ${{ github.event_name == 'schedule' && true || inputs.destroy_runner }} capi_ui_version: dev - rancher_version: ${{ inputs.rancher_version || 'latest/devel/2.9' }} + rancher_version: ${{ inputs.rancher_version || 'latest/devel/2.10' }} qase_run_id: ${{ inputs.qase_run_id || 'auto' }} grep_test_by_tag: ${{ inputs.grep_test_by_tag || '@install @short' }} diff --git a/README.md b/README.md index 7d73022..63e86f9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # rancher-turtles-e2e -[![UI-E2E_head_2.9](https://github.com/rancher-sandbox/rancher-turtles-e2e/actions/workflows/ui-e2e.yaml/badge.svg?branch=main)](https://github.com/rancher-sandbox/rancher-turtles-e2e/actions/workflows/ui-e2e.yaml) +[![UI-E2E_head_2.10](https://github.com/rancher-sandbox/rancher-turtles-e2e/actions/workflows/ui-e2e.yaml/badge.svg?branch=main)](https://github.com/rancher-sandbox/rancher-turtles-e2e/actions/workflows/ui-e2e.yaml) What tests are doing: 1. Create the infra stack ( GCP runner, cert-manager, rancher ) diff --git a/tests/cypress/latest/e2e/unit_tests/capa_eks_cluster.spec.ts b/tests/cypress/latest/e2e/unit_tests/capa_eks_cluster.spec.ts index 672bd6b..d11794d 100644 --- a/tests/cypress/latest/e2e/unit_tests/capa_eks_cluster.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/capa_eks_cluster.spec.ts @@ -30,18 +30,18 @@ describe('Import CAPA EKS', { tags: '@full' }, () => { // Go to Cluster Management > CAPI > Clusters and check if the cluster has started provisioning cy.checkCAPIMenu(); - cy.contains('Provisioned ' + clusterName, { timeout: timeout }); + cy.contains(new RegExp('Provisioned.*' + clusterName), { timeout: timeout }); }) ); it('Auto import child CAPA cluster', () => { // Check child cluster is created and auto-imported cy.goToHome(); - cy.contains('Pending ' + clusterName); + cy.contains(new RegExp('Pending.*' + clusterName)); // Check cluster is Active - cy.clickButton('Manage'); - cy.contains('Active ' + clusterName, { timeout: 300000 }); + cy.searchCluster(clusterName); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: 300000 }); }) qase(32, diff --git a/tests/cypress/latest/e2e/unit_tests/capa_rke2_cluster.spec.ts b/tests/cypress/latest/e2e/unit_tests/capa_rke2_cluster.spec.ts index 8a9d2b6..1ac4ab4 100644 --- a/tests/cypress/latest/e2e/unit_tests/capa_rke2_cluster.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/capa_rke2_cluster.spec.ts @@ -30,19 +30,19 @@ describe('Import CAPA RKE2', { tags: '@full' }, () => { // Go to Cluster Management > CAPI > Clusters and check if the cluster has started provisioning cy.checkCAPIMenu(); - cy.contains('Provisioned ' + clusterName, { timeout: timeout }); + cy.contains(new RegExp('Provisioned.*' + clusterName), { timeout: timeout }); }) ); it('Auto import child CAPA cluster', () => { // Check child cluster is created and auto-imported cy.goToHome(); - cy.contains('Pending ' + clusterName) || cy.contains('Active ' + clusterName); + cy.contains(new RegExp('Pending.*' + clusterName)) || cy.contains(new RegExp('Active.*' + clusterName)); // cy.getBySel('sortable-table-list-container') // Check cluster is Active - cy.clickButton('Manage'); - cy.contains('Active ' + clusterName, { timeout: 300000 }); + cy.searchCluster(clusterName); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: 300000 }); }) qase(32, diff --git a/tests/cypress/latest/e2e/unit_tests/capd_kubeadm_cluster.spec.ts b/tests/cypress/latest/e2e/unit_tests/capd_kubeadm_cluster.spec.ts index 59418e1..a49c475 100644 --- a/tests/cypress/latest/e2e/unit_tests/capd_kubeadm_cluster.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/capd_kubeadm_cluster.spec.ts @@ -66,11 +66,11 @@ describe('Import CAPD Kubeadm', { tags: '@short' }, () => { it('Auto import child CAPD cluster', () => { // Check child cluster is created and auto-imported cy.goToHome(); - cy.contains('Pending ' + clusterName, { timeout: timeout }); + cy.contains(new RegExp('Pending.*' + clusterName), { timeout: timeout }); // Check cluster is Active - cy.clickButton('Manage'); - cy.contains('Active ' + clusterName, { timeout: timeout }); + cy.searchCluster(clusterName); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: timeout }); // TODO: Check MachineSet unavailable status and use checkCAPIClusterActive cy.checkCAPIClusterProvisioned(clusterName); }) diff --git a/tests/cypress/latest/e2e/unit_tests/capd_rke2_cluster.spec.ts b/tests/cypress/latest/e2e/unit_tests/capd_rke2_cluster.spec.ts index 9aef29f..910b742 100644 --- a/tests/cypress/latest/e2e/unit_tests/capd_rke2_cluster.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/capd_rke2_cluster.spec.ts @@ -63,11 +63,11 @@ describe('Import CAPD RKE2', { tags: '@short' }, () => { it('Auto import child CAPD cluster', () => { // Check child cluster is created and auto-imported cy.goToHome(); - cy.contains('Pending ' + clusterName, { timeout: timeout }); + cy.contains(new RegExp('Pending.*' + clusterName), { timeout: timeout }); // Check cluster is Active - cy.clickButton('Manage'); - cy.contains('Active ' + clusterName, { timeout: timeout }); + cy.searchCluster(clusterName); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: timeout }); // TODO: Check MachineSet unavailable status and use checkCAPIClusterActive cy.checkCAPIClusterProvisioned(clusterName); }) diff --git a/tests/cypress/latest/e2e/unit_tests/capz_cluster.spec.ts b/tests/cypress/latest/e2e/unit_tests/capz_cluster.spec.ts index c9426b2..de6bf75 100644 --- a/tests/cypress/latest/e2e/unit_tests/capz_cluster.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/capz_cluster.spec.ts @@ -84,18 +84,18 @@ describe('Import CAPZ', { tags: '@full' }, () => { // Go to Cluster Management > CAPI > Clusters and check if the cluster has started provisioning cypressLib.burgerMenuToggle(); cy.checkCAPIMenu(); - cy.contains('Provisioned ' + clusterName, { timeout: timeout }); + cy.contains(new RegExp('Provisioned.*' + clusterName), { timeout: timeout }); }) ); qase(22, it('Auto import child CAPZ cluster', () => { // Check child cluster is created and auto-imported cy.goToHome(); - cy.contains('Pending ' + clusterName); + cy.contains(new RegExp('Pending.*' + clusterName)); // Check cluster is Active - cy.clickButton('Manage'); - cy.contains('Active ' + clusterName, { timeout: 300000 }); + cy.searchCluster(clusterName); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: 300000 }); }) ); qase(23, it('Install App on imported cluster', { retries: 1 }, () => { diff --git a/tests/cypress/latest/e2e/unit_tests/providers_setup.spec.ts b/tests/cypress/latest/e2e/unit_tests/providers_setup.spec.ts index 19bbb9a..127940d 100644 --- a/tests/cypress/latest/e2e/unit_tests/providers_setup.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/providers_setup.spec.ts @@ -66,7 +66,7 @@ describe('Enable CAPI Providers', () => { // Create Docker Infrastructure provider cy.addInfraProvider('Docker', dockerProvider, 'capd-system'); var statusReady = 'Ready' - statusReady = statusReady.concat(' ', dockerProvider, ' infrastructure ', dockerProvider, ' ', kubeadmProviderVersion) + statusReady = statusReady.concat(dockerProvider, 'infrastructure', dockerProvider, kubeadmProviderVersion) cy.contains(statusReady); }) ); @@ -89,7 +89,7 @@ describe('Enable CAPI Providers', () => { cy.checkCAPIMenu(); cy.contains('Providers').click(); var statusReady = 'Ready' - statusReady = statusReady.concat(' ', fleetProvider, ' addon ', fleetProvider, ' ', 'v0.4.0') + statusReady = statusReady.concat(fleetProvider, 'addon', fleetProvider, 'v0.4.0') cy.contains(statusReady).scrollIntoView(); }); }); @@ -102,7 +102,7 @@ describe('Enable CAPI Providers', () => { cypressLib.burgerMenuToggle(); cy.addInfraProvider('Amazon', amazonProvider, 'capa-system', amazonProvider); var statusReady = 'Ready' - statusReady = statusReady.concat(' ', amazonProvider, ' infrastructure ', amazonProvider, ' ', 'v2.6.1') + statusReady = statusReady.concat(amazonProvider, 'infrastructure', amazonProvider, 'v2.6.1') cy.contains(statusReady); }) ); @@ -114,7 +114,7 @@ describe('Enable CAPI Providers', () => { cypressLib.burgerMenuToggle(); cy.addInfraProvider('Google', googleProvider, 'capg-system', googleProvider); var statusReady = 'Ready' - statusReady = statusReady.concat(' ', googleProvider, ' infrastructure ', googleProvider, ' ', 'v1.8.0') + statusReady = statusReady.concat(googleProvider, 'infrastructure', googleProvider, 'v1.8.0') cy.contains(statusReady, { timeout: 120000 }); }) ); @@ -125,7 +125,7 @@ describe('Enable CAPI Providers', () => { cypressLib.burgerMenuToggle(); cy.addInfraProvider('Azure', azureProvider, 'capz-system', azureProvider); var statusReady = 'Ready' - statusReady = statusReady.concat(' ', azureProvider, ' infrastructure ', azureProvider) + statusReady = statusReady.concat(azureProvider, 'infrastructure', azureProvider) cy.contains(statusReady, { timeout: 180000 }); }) ); diff --git a/tests/cypress/latest/e2e/unit_tests/turtles_operator.spec.ts b/tests/cypress/latest/e2e/unit_tests/turtles_operator.spec.ts index dd0abc1..bf4e933 100644 --- a/tests/cypress/latest/e2e/unit_tests/turtles_operator.spec.ts +++ b/tests/cypress/latest/e2e/unit_tests/turtles_operator.spec.ts @@ -67,7 +67,7 @@ describe('Install Turtles Operator', { tags: '@install' }, () => { cy.byLabel('Arguments').as('label') cy.get('@label').type(' --insecure-skip-verify=true') cy.clickButton('Save'); - cy.contains('Active' + ' ' + deployment); + cy.contains(new RegExp('Active.*' + deployment)); cy.namespaceReset(); }) diff --git a/tests/cypress/latest/package.json b/tests/cypress/latest/package.json index c39856a..f997c28 100644 --- a/tests/cypress/latest/package.json +++ b/tests/cypress/latest/package.json @@ -22,7 +22,7 @@ "homepage": "https://github.com/rancher/rancher-turtles-e2e", "dependencies": { "@cypress/grep": "^4.1.0", - "@rancher-ecp-qa/cypress-library": "1.1.0", + "@rancher-ecp-qa/cypress-library": "1.2.2", "cy-verify-downloads": "^0.1.8", "cypress": "^13.6.4", "cypress-dark": "^1.8.3", diff --git a/tests/cypress/latest/support/commands.ts b/tests/cypress/latest/support/commands.ts index 67aebc9..1897725 100644 --- a/tests/cypress/latest/support/commands.ts +++ b/tests/cypress/latest/support/commands.ts @@ -61,7 +61,7 @@ Cypress.Commands.add('createNamespace', (namespace) => { cy.contains('Create Namespace').click(); cy.typeValue('Name', namespace); cy.clickButton('Create'); - cy.contains('Active' + ' ' + namespace); + cy.contains(new RegExp('Active.*' + namespace)); cy.namespaceReset(); }); @@ -81,17 +81,17 @@ Cypress.Commands.add('namespaceReset', () => { // Command to check CAPI cluster Active status Cypress.Commands.add('checkCAPIClusterActive', (clusterName) => { cy.checkCAPIMenu(); - cy.contains('Provisioned ' + clusterName, { timeout: 90000 }); + cy.contains(new RegExp('Provisioned.*' + clusterName), { timeout: 90000 }); cy.contains('Machine Deployments').click(); - cy.contains('Running ' + clusterName, { timeout: 90000 }); + cy.contains(new RegExp('Running.*' + clusterName), { timeout: 90000 }); cy.contains('Machine Sets').click(); - cy.contains('Active ' + clusterName, { timeout: 90000 }); + cy.contains(new RegExp('Active.*' + clusterName), { timeout: 90000 }); }); // Command to check CAPI cluster Provisioned status Cypress.Commands.add('checkCAPIClusterProvisioned', (clusterName) => { cy.checkCAPIMenu(); - cy.contains('Provisioned ' + clusterName, { timeout: 90000 }); + cy.contains(new RegExp('Provisioned.*' + clusterName), { timeout: 90000 }); }); // Command to check CAPI cluster deletion status @@ -321,15 +321,18 @@ Cypress.Commands.add('patchYamlResource', (clusterName, namespace, resourceKind, cy.namespaceReset(); }); -// Command to remove cluster from Rancher -Cypress.Commands.add('deleteCluster', (clusterName) => { +// Command to search cluster in cluster-list +Cypress.Commands.add('searchCluster', (clusterName) => { cy.goToHome(); cy.clickButton('Manage'); cy.getBySel('cluster-list').should('be.visible'); - cy.contains(clusterName); + cy.typeInFilter(clusterName); +}); +// Command to remove cluster from Rancher +Cypress.Commands.add('deleteCluster', (clusterName) => { + cy.searchCluster(clusterName); cy.viewport(1920, 1080); - cy.typeInFilter(clusterName); cy.getBySel('sortable-table_check_select_all').click(); cy.clickButton('Delete'); cy.getBySel('prompt-remove-input') @@ -411,7 +414,7 @@ Cypress.Commands.add('checkFleetGitRepo', (repoName, workspace) => { if (!workspace) { workspace = 'fleet-local'; } - cy.contains(workspace).should('be.visible').click(); + cy.contains(workspace).click(); // Click the repo link cy.contains(repoName).click(); cy.url().should("include", "fleet/fleet.cattle.io.gitrepo/" + workspace + "/" + repoName) diff --git a/tests/cypress/latest/support/e2e.ts b/tests/cypress/latest/support/e2e.ts index 37bd452..6e81321 100644 --- a/tests/cypress/latest/support/e2e.ts +++ b/tests/cypress/latest/support/e2e.ts @@ -28,6 +28,7 @@ declare global { accesMenuSelection(firstAccessMenu: string, secondAccessMenu?: string): Chainable; installApp(appName: string, namespace: string, questions?: any): Chainable; deleteCluster(clusterName: string): Chainable; + searchCluster(clusterName: string): Chainable; createNamespace(namespace: string): Chainable; setNamespace(namespace: string): Chainable; checkCAPIClusterActive(clustername: string): Chainable; diff --git a/tests/go.mod b/tests/go.mod index 11e7674..0f610c4 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -1,11 +1,13 @@ module github.com/rancher/rancher-turtles-e2e/tests -go 1.20 +go 1.22.0 + +toolchain go1.23.3 require ( - github.com/onsi/ginkgo/v2 v2.12.1 - github.com/onsi/gomega v1.28.0 - github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241105101633-1357dc536a2e + github.com/onsi/ginkgo/v2 v2.22.0 + github.com/onsi/gomega v1.34.2 + github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241114104736-0d5b41ca9158 github.com/rancher-sandbox/qase-ginkgo v1.0.1 github.com/sirupsen/logrus v1.9.3 ) @@ -13,23 +15,21 @@ require ( require ( github.com/antihax/optional v1.0.0 // indirect github.com/bramvdbogaerde/go-scp v1.2.1 // indirect - github.com/go-logr/logr v1.2.4 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect + github.com/google/pprof v0.0.0-20241203143554-1e3fdc7de467 // indirect github.com/pkg/errors v0.9.1 // indirect go.qase.io/client v0.0.0-20231114201952-65195ec001fa // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect - google.golang.org/appengine v1.6.6 // indirect - google.golang.org/protobuf v1.28.0 // indirect + golang.org/x/crypto v0.29.0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/tools v0.27.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect libvirt.org/libvirt-go-xml v7.4.0+incompatible // indirect diff --git a/tests/go.sum b/tests/go.sum index ce4c32d..183bcab 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -53,10 +53,10 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -81,9 +81,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W 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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -93,7 +90,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.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/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -105,8 +101,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 h1:pUa4ghanp6q4IJHwE9RwLgmVFfReJN+KbQ8ExNEUUoQ= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20241203143554-1e3fdc7de467 h1:keEZFtbLJugfE0qHn+Ge1JCE71spzkchQobDf3mzS/4= +github.com/google/pprof v0.0.0-20241203143554-1e3fdc7de467/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= 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= @@ -121,19 +117,18 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/onsi/ginkgo/v2 v2.12.1 h1:uHNEO1RP2SpuZApSkel9nEh1/Mu+hmQe7Q+Pepg5OYA= -github.com/onsi/ginkgo/v2 v2.12.1/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= -github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c= -github.com/onsi/gomega v1.28.0/go.mod h1:A1H2JE76sI14WIP57LMKj7FVfCHx3g3BcZVjJG8bjX8= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= +github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rancher-sandbox/ele-testhelpers v0.0.0-20240814133125-6458c0123aad h1:TM0FVtBT+A1RT7mcFVW3i5JaxMcAEWMe0diHLQlUg9s= -github.com/rancher-sandbox/ele-testhelpers v0.0.0-20240814133125-6458c0123aad/go.mod h1:Ex+a/ng4u2BvcGQdQjTHI48h88bQ6k2a7q8rnvU0XbQ= -github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241105101633-1357dc536a2e h1:sBIQJXNx+FS4dXdJjczYMvMwS2N4CsauXrYL9ye8yGc= -github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241105101633-1357dc536a2e/go.mod h1:Ex+a/ng4u2BvcGQdQjTHI48h88bQ6k2a7q8rnvU0XbQ= +github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241114104736-0d5b41ca9158 h1:qQjjaS+nhifw5iPLIvMmLqDpxr39DPWJRFOskw0AJlg= +github.com/rancher-sandbox/ele-testhelpers v0.0.0-20241114104736-0d5b41ca9158/go.mod h1:Ex+a/ng4u2BvcGQdQjTHI48h88bQ6k2a7q8rnvU0XbQ= github.com/rancher-sandbox/qase-ginkgo v1.0.1 h1:LB9ITLavX3PmcOe0hp0Y7rwQCjJ3WpL8kG8v1MxPadE= github.com/rancher-sandbox/qase-ginkgo v1.0.1/go.mod h1:sIF43xaLHtEzmPqADKlZZV6oatc66GHz1N6gpBNn6QY= github.com/rancher/qase-go/client v0.0.0-20231114201952-65195ec001fa h1:/qeYlQVfyvsO5yY0dZmm7mRTAsDm54jACiRDx3LAwsA= @@ -143,9 +138,9 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +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/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -155,6 +150,7 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.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/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= @@ -165,8 +161,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -197,7 +193,6 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -225,15 +220,16 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 h1:B333XXssMuKQeBwiNODx4TupZy7bf4sxFZnN2ZOcvUE= golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -270,17 +266,18 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= +golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -324,8 +321,8 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= +golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= 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= @@ -351,7 +348,6 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 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= @@ -404,10 +400,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=