Skip to content

Commit 1047eab

Browse files
Make --vschema-ddl-authorized-users dependent on version
Signed-off-by: Rohit Nayak <[email protected]>
1 parent 58f753c commit 1047eab

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

go/vt/vttest/vtprocess.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,37 @@ import (
2424
"os"
2525
"os/exec"
2626
"path"
27+
"regexp"
28+
"strconv"
2729
"strings"
2830
"syscall"
2931
"testing"
3032
"time"
3133

34+
vtutils "vitess.io/vitess/go/vt/utils"
35+
3236
"google.golang.org/protobuf/encoding/prototext"
3337

3438
"vitess.io/vitess/go/vt/log"
3539
"vitess.io/vitess/go/vt/servenv"
3640
)
3741

42+
var versionRegex = regexp.MustCompile(`Version: ([0-9]+)\.([0-9]+)\.([0-9]+)`)
43+
44+
// getMajorVersion extracts the major version from a binary by running binaryName --version
45+
func getMajorVersion(binaryName string) (int, error) {
46+
version, err := exec.Command(binaryName, "--version").Output()
47+
if err != nil {
48+
return 0, err
49+
}
50+
v := versionRegex.FindStringSubmatch(string(version))
51+
if len(v) != 4 {
52+
return 0, fmt.Errorf("could not parse server version from: %s", version)
53+
}
54+
55+
return strconv.Atoi(v[1])
56+
}
57+
3858
// HealthChecker is a callback that impements a service-specific health check
3959
// It must return true if the service at the given `addr` is reachable, false
4060
// otherwerise.
@@ -281,8 +301,12 @@ func VtcomboProcess(environment Environment, args *Config, mysql MySQLManager) (
281301
if servenv.GRPCAuth() == "mtls" {
282302
vt.ExtraArgs = append(vt.ExtraArgs, []string{"--grpc-auth-mode", servenv.GRPCAuth(), "--grpc-key", servenv.GRPCKey(), "--grpc-cert", servenv.GRPCCert(), "--grpc-ca", servenv.GRPCCertificateAuthority(), "--grpc-auth-mtls-allowed-substrings", servenv.ClientCertSubstrings()}...)
283303
}
304+
vtVer, err := getMajorVersion(vt.Binary)
305+
if err != nil {
306+
return nil, err
307+
}
284308
if args.VSchemaDDLAuthorizedUsers != "" {
285-
vt.ExtraArgs = append(vt.ExtraArgs, []string{"--vschema-ddl-authorized-users", args.VSchemaDDLAuthorizedUsers}...)
309+
vt.ExtraArgs = append(vt.ExtraArgs, []string{vtutils.GetFlagVariantForTestsByVersion("--vschema-ddl-authorized-users", vtVer), args.VSchemaDDLAuthorizedUsers}...)
286310
}
287311
vt.ExtraArgs = append(vt.ExtraArgs, "--mysql-server-version", servenv.MySQLServerVersion())
288312
if socket != "" {

0 commit comments

Comments
 (0)