diff --git a/bigquery/go.mod b/bigquery/go.mod index 2a4f8a0482d..d313d68c48f 100644 --- a/bigquery/go.mod +++ b/bigquery/go.mod @@ -11,6 +11,6 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 // indirect golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/bigquery/go.sum b/bigquery/go.sum index 3d35a3d67b9..f7b8b2defd0 100644 --- a/bigquery/go.sum +++ b/bigquery/go.sum @@ -521,8 +521,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/bigtable/go.mod b/bigtable/go.mod index ceb01c66777..b9160f41acd 100644 --- a/bigtable/go.mod +++ b/bigtable/go.mod @@ -11,7 +11,7 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 rsc.io/binaryregexp v0.2.0 ) diff --git a/bigtable/go.sum b/bigtable/go.sum index 945cbe455c2..da7d210dff1 100644 --- a/bigtable/go.sum +++ b/bigtable/go.sum @@ -533,8 +533,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/bigtable/integration_test.go b/bigtable/integration_test.go index b6d2edafe87..38ad5942507 100644 --- a/bigtable/integration_test.go +++ b/bigtable/integration_test.go @@ -22,6 +22,7 @@ import ( "fmt" "math" "math/rand" + "os/exec" "reflect" "sort" "strings" @@ -73,6 +74,10 @@ func populatePresidentsGraph(table *Table) error { var instanceToCreate string var instanceToCreateZone string var instanceToCreateZone2 string +var blackholeDpv6Cmd string +var blackholeDpv4Cmd string +var allowDpv6Cmd string +var allowDpv4Cmd string func init() { // Don't test instance creation by default, as quota is necessary and aborted tests could strand resources. @@ -82,6 +87,11 @@ func init() { "The zone in which to create the new test instance.") flag.StringVar(&instanceToCreateZone2, "it.instance-to-create-zone2", "us-east1-c", "The zone in which to create a second cluster in the test instance.") + // Use sysctl or iptables to blackhole DirectPath IP for fallback tests. + flag.StringVar(&blackholeDpv6Cmd, "it.blackhole-dpv6-cmd", "", "Command to make LB and backend addresses blackholed over dpv6") + flag.StringVar(&blackholeDpv4Cmd, "it.blackhole-dpv4-cmd", "", "Command to make LB and backend addresses blackholed over dpv4") + flag.StringVar(&allowDpv6Cmd, "it.allow-dpv6-cmd", "", "Command to make LB and backend addresses allowed over dpv6") + flag.StringVar(&allowDpv4Cmd, "it.allow-dpv4-cmd", "", "Command to make LB and backend addresses allowed over dpv4") } func TestIntegration_ConditionalMutations(t *testing.T) { @@ -2208,6 +2218,81 @@ func TestIntegration_AdminBackup(t *testing.T) { } } +// TestIntegration_DirectPathFallback tests the CFE fallback when the directpath net is blackholed. +func TestIntegration_DirectPathFallback(t *testing.T) { + ctx := context.Background() + testEnv, _, _, table, _, cleanup, err := setupIntegration(ctx, t) + if err != nil { + t.Fatal(err) + } + defer cleanup() + + if !testEnv.Config().AttemptDirectPath { + t.Skip() + } + + if len(blackholeDpv6Cmd) == 0 { + t.Fatal("-it.blackhole-dpv6-cmd unset") + } + if len(blackholeDpv4Cmd) == 0 { + t.Fatal("-it.blackhole-dpv4-cmd unset") + } + if len(allowDpv6Cmd) == 0 { + t.Fatal("-it.allowdpv6-cmd unset") + } + if len(allowDpv4Cmd) == 0 { + t.Fatal("-it.allowdpv4-cmd unset") + } + + if err := populatePresidentsGraph(table); err != nil { + t.Fatal(err) + } + + // Precondition: wait for DirectPath to connect. + dpEnabled := examineTraffic(ctx, testEnv, table, false) + if !dpEnabled { + t.Fatalf("Failed to observe RPCs over DirectPath") + } + + // Enable the blackhole, which will prevent communication with grpclb and thus DirectPath. + blackholeDirectPath(testEnv, t) + dpDisabled := examineTraffic(ctx, testEnv, table, true) + if !dpDisabled { + t.Fatalf("Failed to fallback to CFE after blackhole DirectPath") + } + + // Disable the blackhole, and client should use DirectPath again. + allowDirectPath(testEnv, t) + dpEnabled = examineTraffic(ctx, testEnv, table, false) + if !dpEnabled { + t.Fatalf("Failed to fallback to CFE after blackhole DirectPath") + } +} + +// examineTraffic returns whether RPCs use DirectPath (blackholeDP = false) or CFE (blackholeDP = true). +func examineTraffic(ctx context.Context, testEnv IntegrationEnv, table *Table, blackholeDP bool) bool { + numCount := 0 + const ( + numRPCsToSend = 20 + minCompleteRPC = 40 + ) + + start := time.Now() + for time.Since(start) < 2*time.Minute { + for i := 0; i < numRPCsToSend; i++ { + _, _ = table.ReadRow(ctx, "jadams") + if _, useDP := isDirectPathRemoteAddress(testEnv); useDP != blackholeDP { + numCount++ + if numCount >= minCompleteRPC { + return true + } + } + time.Sleep(100 * time.Millisecond) + } + } + return false +} + func setupIntegration(ctx context.Context, t *testing.T) (_ IntegrationEnv, _ *Client, _ *AdminClient, table *Table, tableName string, cleanup func(), _ error) { testEnv, err := NewIntegrationEnv() if err != nil { @@ -2325,3 +2410,27 @@ func isDirectPathRemoteAddress(testEnv IntegrationEnv) (_ string, _ bool) { // DirectPath ipv6 can use either ipv4 or ipv6 traffic. return remoteIP, strings.HasPrefix(remoteIP, directPathIPV4Prefix) || strings.HasPrefix(remoteIP, directPathIPV6Prefix) } + +func blackholeDirectPath(testEnv IntegrationEnv, t *testing.T) { + cmdRes := exec.Command("bash", "-c", blackholeDpv4Cmd) + out, _ := cmdRes.CombinedOutput() + t.Logf(string(out)) + if testEnv.Config().DirectPathIPV4Only { + return + } + cmdRes = exec.Command("bash", "-c", blackholeDpv6Cmd) + out, _ = cmdRes.CombinedOutput() + t.Logf(string(out)) +} + +func allowDirectPath(testEnv IntegrationEnv, t *testing.T) { + cmdRes := exec.Command("bash", "-c", allowDpv4Cmd) + out, _ := cmdRes.CombinedOutput() + t.Logf(string(out)) + if testEnv.Config().DirectPathIPV4Only { + return + } + cmdRes = exec.Command("bash", "-c", allowDpv6Cmd) + out, _ = cmdRes.CombinedOutput() + t.Logf(string(out)) +} diff --git a/datastore/go.mod b/datastore/go.mod index 4b69d9f982e..e241ef74cc6 100644 --- a/datastore/go.mod +++ b/datastore/go.mod @@ -10,7 +10,7 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 // indirect golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 google.golang.org/protobuf v1.25.0 ) diff --git a/datastore/go.sum b/datastore/go.sum index a91f7e42d33..5257a95f85b 100644 --- a/datastore/go.sum +++ b/datastore/go.sum @@ -527,8 +527,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/firestore/go.mod b/firestore/go.mod index 4371d006ca2..867540448f5 100644 --- a/firestore/go.mod +++ b/firestore/go.mod @@ -10,6 +10,6 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 // indirect golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/firestore/go.sum b/firestore/go.sum index 2b5cace1e7b..ea75c29b027 100644 --- a/firestore/go.sum +++ b/firestore/go.sum @@ -499,8 +499,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/go.mod b/go.mod index 58ec7b56f90..96ed8144508 100644 --- a/go.mod +++ b/go.mod @@ -19,6 +19,6 @@ require ( golang.org/x/text v0.3.5 golang.org/x/tools v0.0.0-20210113180300-f96436850f18 google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/go.sum b/go.sum index 5f77fcc3cc8..abff120fec0 100644 --- a/go.sum +++ b/go.sum @@ -508,8 +508,8 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU= diff --git a/internal/examples/fake/go.mod b/internal/examples/fake/go.mod index 11bcb324642..a89ac49c777 100644 --- a/internal/examples/fake/go.mod +++ b/internal/examples/fake/go.mod @@ -7,6 +7,6 @@ require ( golang.org/x/net v0.0.0-20201224014010-6772e930b67b // indirect golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.33.2 ) diff --git a/internal/examples/fake/go.sum b/internal/examples/fake/go.sum index 7bc695c7dd0..4c008fd197d 100644 --- a/internal/examples/fake/go.sum +++ b/internal/examples/fake/go.sum @@ -376,8 +376,8 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/internal/examples/mock/go.mod b/internal/examples/mock/go.mod index a87a7325ba6..5af8f17133e 100644 --- a/internal/examples/mock/go.mod +++ b/internal/examples/mock/go.mod @@ -10,6 +10,6 @@ require ( golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3 // indirect golang.org/x/text v0.3.4 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.33.2 // indirect ) diff --git a/internal/examples/mock/go.sum b/internal/examples/mock/go.sum index cc0583a44ba..ffa20ee5a22 100644 --- a/internal/examples/mock/go.sum +++ b/internal/examples/mock/go.sum @@ -77,8 +77,8 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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= diff --git a/internal/godocfx/go.sum b/internal/godocfx/go.sum index 8511b608a14..8c117942b95 100644 --- a/internal/godocfx/go.sum +++ b/internal/godocfx/go.sum @@ -304,8 +304,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200827165113-ac2560b5e952/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/logging/go.mod b/logging/go.mod index 516d6a0d70d..1712e88eca3 100644 --- a/logging/go.mod +++ b/logging/go.mod @@ -12,6 +12,6 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/logging/go.sum b/logging/go.sum index 8d39b37d033..26896a8a067 100644 --- a/logging/go.sum +++ b/logging/go.sum @@ -505,8 +505,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/pubsub/go.mod b/pubsub/go.mod index b10a427b9aa..de10d69eec1 100644 --- a/pubsub/go.mod +++ b/pubsub/go.mod @@ -13,6 +13,6 @@ require ( golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/pubsub/go.sum b/pubsub/go.sum index e0732ddaf08..bbb33967b12 100644 --- a/pubsub/go.sum +++ b/pubsub/go.sum @@ -438,8 +438,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/pubsublite/go.mod b/pubsublite/go.mod index 97403ccae2c..f921dba434c 100644 --- a/pubsublite/go.mod +++ b/pubsublite/go.mod @@ -14,7 +14,7 @@ require ( golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 google.golang.org/protobuf v1.25.0 ) diff --git a/pubsublite/go.sum b/pubsublite/go.sum index caa362e7790..3a4093a6ed4 100644 --- a/pubsublite/go.sum +++ b/pubsublite/go.sum @@ -409,8 +409,8 @@ google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201203001206-6486ece9c497/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201209185603-f92720507ed4/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-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/spanner/go.mod b/spanner/go.mod index cc14dd44a18..9d1285828d7 100644 --- a/spanner/go.mod +++ b/spanner/go.mod @@ -12,7 +12,7 @@ require ( golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 google.golang.org/protobuf v1.25.0 ) diff --git a/spanner/go.sum b/spanner/go.sum index 34f9a132923..e68a1e48fce 100644 --- a/spanner/go.sum +++ b/spanner/go.sum @@ -497,8 +497,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/storage/go.mod b/storage/go.mod index 724e4ad3a15..4c5d7028cc6 100644 --- a/storage/go.mod +++ b/storage/go.mod @@ -10,6 +10,6 @@ require ( golang.org/x/oauth2 v0.0.0-20210113160501-8b1d76fa0423 golang.org/x/tools v0.0.0-20210113180300-f96436850f18 // indirect google.golang.org/api v0.36.0 - google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 + google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 google.golang.org/grpc v1.34.1 ) diff --git a/storage/go.sum b/storage/go.sum index ddfc8d8b9ba..f0736b8ca7c 100644 --- a/storage/go.sum +++ b/storage/go.sum @@ -482,8 +482,8 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06 h1:hj19rqmCfOxC/9vSgCO2ChmXBs+S8d1Niga10ujmqr0= -google.golang.org/genproto v0.0.0-20210113155445-facbc42f5e06/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595 h1:x7nk+/4+SvuTDI4wnzQUlhvi+DTpyfncXBo3QWTFs7U= +google.golang.org/genproto v0.0.0-20210113195801-ae06605f4595/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=