Just happened to notice a deprecation notice when trying to debug something:
-p POD is DEPRECATED and will be removed in a future version. Use port-forward POD instead.
The output is going to a tmpfile, so people wouldn't normally see it.
Please refer to #2694 and #2670 for motivation and reasoning for
this change.
I've tried to follow best practice in inserting the copyright
headers. In other open source projects, not all files carry
the notice. For example documentation doesn't. I've followed
similar ground rules.
I did not change the php because there is a separate LICENSE
file there by Pixel Federation. We'll first need to notify
them our intent before changing anything there.
As for the presubmit check, it's going to be non-trivial
because of the number of exceptions, like file types,
directories and generated code. So, it will have to be
a separate project.
This addresses #2723.
This change is essentially a new protocol for V3. Although
backward compatible, it changes the connection model.
Basically, the newer V3 features will work only if you used
the new protocol.
The new model deprecates keyspace_shard, tablet_type and options
from ExecuteRequest and moves them into the Session. This means
that the Session is generally not empty, and may be updated
by any call to Execute or ExecuteBatch, even if the statements are
not transactional. Consequently, transactional methods like Begin,
etc. are deprecated in favor of Execute("begin").
Transaction modes will now be supported by new `SET` syntax, which
will correspondingly update the Session variable.
This also makes a connection that contains a session non-multiplexable.
We'll need to resolve whether it's still worth exposing this flexibility
to the clients, and if so, how.
For now, I've updated the Go driver to use the "modern" protocol.
However, the low level rpc (Impl) continues to support the older
functions like Begin, etc. This allows us to test the legacy
functionality.
All other clients: Python, PHP and Java are currently unchanged.
Given that this is a major protocol change, it hints at a 3.0,
but the changes are 2.1 compatible with the following exceptions:
* Go driver uses the new protocol.
* vtclient binary requires `-target` instead of `-tablet-type`, etc.
All tests are passing including PHP & Java clients. In terms
of upgrade:
* PHP and Java can be upgraded by just updating the code.
* Python will probably require a brand new library. The existing
vtdb contains way too much baggage, and it may not be worth
retrofitting this new incompatible protocol onto what's
currently there. I'm looking for a name. `vtdb2`, `vitessdb`?
The authServerNone config lets you connect using no username & password
which is convenient for testing and demos. The example demo has been
changed to use this feature. This will allow people to just connect
to vtcombo using mysql and run ad-hoc queries.
By default, vtgate listens on the standard MySQL port 3306 for MySQL protocol requests.
This allows to point any MySQL driver to vtgate directly.
Note that this feature is currently in beta and not fully supported and documented yet.
Adds remaining SSL-related optional parameters to JDBC URL strings
Moves JDBC driver layer closer to passing TLS credentials to the gRPC client layer
Hands off TLS from the Java/JDBC layer to the gRPC client layer
Code review updates
First cut at unit testing of SSL connection from gRPC layer to VTGate
Not setting keyManager on gRPC client when client authentication is unused
Adds TLS to client side of Grpc unit test
Adds netty-tcnative to gRPC client classpath, and couple of bugfixes
Fixes bugs... first successful test of SSL connection from client to vtgateclienttest mock.
Adds unit test coverage for SSL connection with client authentication enabled.
Updates 'grpc-all' and 'netty-tcnative' dependencies to latest versions
Improves null-check and handling
Adds optional argument to 'examples/local' scripts, to allow end-to-end testing of TLS connection to VTGate
Builds optional 'fat JAR' of JDBC driver, for use in standalone situation such as DBeaver, SQuirreL, etc.
Adds JavaDocs, and misc cleanup
Temporarily ignores TLS unit tests, to diagnose issue with Travis CI
Redirects IO from external OpenSSL processes to Travis CI console log
Improves logging
Temporarily disables SSL in TLS unit test
Temporarily disables SSL in TLS unit test
Restores disabled unit tests
Testing Travis CI issues
Travis testing
Adds explicit delays to test race condition theory
Travis testing
Testing Travis
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Restores state prior to Travis CI testing
Adds support to VitessJDBCUrl for parsing optional parameter to enable SSL
Adds remaining SSL-related optional parameters to JDBC URL strings
Moves JDBC driver layer closer to passing TLS credentials to the gRPC client layer
Hands off TLS from the Java/JDBC layer to the gRPC client layer
Code review updates
First cut at unit testing of SSL connection from gRPC layer to VTGate
Not setting keyManager on gRPC client when client authentication is unused
Adds TLS to client side of Grpc unit test
Adds netty-tcnative to gRPC client classpath, and couple of bugfixes
Fixes bugs... first successful test of SSL connection from client to vtgateclienttest mock.
Adds unit test coverage for SSL connection with client authentication enabled.
Updates 'grpc-all' and 'netty-tcnative' dependencies to latest versions
Improves null-check and handling
Adds optional argument to 'examples/local' scripts, to allow end-to-end testing of TLS connection to VTGate
Builds optional 'fat JAR' of JDBC driver, for use in standalone situation such as DBeaver, SQuirreL, etc.
Adds JavaDocs, and misc cleanup
Temporarily ignores TLS unit tests, to diagnose issue with Travis CI
Redirects IO from external OpenSSL processes to Travis CI console log
Improves logging
Temporarily disables SSL in TLS unit test
Temporarily disables SSL in TLS unit test
Restores disabled unit tests
Testing Travis CI issues
Travis testing
Adds explicit delays to test race condition theory
Travis testing
Testing Travis
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Restores state prior to Travis CI testing
Adds support to VitessJDBCUrl for parsing optional parameter to enable SSL
Adds remaining SSL-related optional parameters to JDBC URL strings
Moves JDBC driver layer closer to passing TLS credentials to the gRPC client layer
Hands off TLS from the Java/JDBC layer to the gRPC client layer
Code review updates
First cut at unit testing of SSL connection from gRPC layer to VTGate
Not setting keyManager on gRPC client when client authentication is unused
Adds TLS to client side of Grpc unit test
Adds netty-tcnative to gRPC client classpath, and couple of bugfixes
Fixes bugs... first successful test of SSL connection from client to vtgateclienttest mock.
Adds unit test coverage for SSL connection with client authentication enabled.
Updates 'grpc-all' and 'netty-tcnative' dependencies to latest versions
Improves null-check and handling
Adds optional argument to 'examples/local' scripts, to allow end-to-end testing of TLS connection to VTGate
Builds optional 'fat JAR' of JDBC driver, for use in standalone situation such as DBeaver, SQuirreL, etc.
Adds JavaDocs, and misc cleanup
Temporarily ignores TLS unit tests, to diagnose issue with Travis CI
Redirects IO from external OpenSSL processes to Travis CI console log
Improves logging
Temporarily disables SSL in TLS unit test
Temporarily disables SSL in TLS unit test
Restores disabled unit tests
Testing Travis CI issues
Travis testing
Adds explicit delays to test race condition theory
Travis testing
Testing Travis
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Adds more logging
Restores state prior to Travis CI testing
Trying unit tests with larger SSL key size
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increase CA cert size to 2048 bits
Increase CA cert size to 2048 bits
Disables basic TLS tests
Re-enables but disables
Somewhat decouples JDBC TLS unit tests
Ensures that vtgateclienttest mocks terminate after each test suite
Adds delay in unit tests to make sure VTGate has time to start and stop
Adds logging of vtgateclienttest output
Restores as a subclass of
bugfix
Reverts temporary changes
Trying unit tests with larger SSL key size
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increased logging to identify java.security settings
Increase CA cert size to 2048 bits
Increase CA cert size to 2048 bits
Disables basic TLS tests
Re-enables but disables
Ensures that vtgateclienttest mocks terminate after each test suite
Adds delay in unit tests to make sure VTGate has time to start and stop
Restores as a subclass of
bugfix
Reverts temporary changes
Cleanup after git squash
Experimenting with removing sleeps from
Experimenting with removing sleeps from and
It implements both client and server side of the MySQL binary protocol.
A few notes:
- SSL is not supported yet. It wouldn't be too hard to add, but our
current client library code doesn't support it either.
- only the usual mysql native password authentication is supported.
Again, would be easy to support more.
- vtgate now has the option to listen using the MySQL protocol.
The local examples are configured to do so.
- The API is not great, but is close to sqldb.Conn. Will be refactored
once go/mysql is retired.
1. CreadentialsServer was not always used. In particular, schema changes
and backups were not using it. Re-organized the code a bit so it's
easier to see where they're used, and fixed it.
2. mysqlctl and mysqlctld only basically start and stop mysqld. So they
only need the dba user credentials. Fixed the code everywhere for that
to work.
3. the mysql password was passed as a command line parameter to mysql /
mysqladmin / mysql_upgrade, which is not secure (visible via PS, and in
the logs). Now we only pass it when necessary, and we put it in a
temporary config file.
* create orchestrator configmap
Added a Kubernetes configmap to the orchestrator wrapper scripts. Makes it easier to change the default settings while using the default image.
* hotfixes
* Orchestrator up includes the ${script_dir}
* Orchestrator down deletes configmap
* Removed items map
* fixes typo
* Fix: source from env.sh before local param subst
* Removes VITESS_NAME from scripts that source env.sh
env.sh defines VITESS_NAME with a default so for any script
which sources from env.sh, these statements are unreachable.
* Factors CELL var out to env.sh
* Dehardcodes vtctld local cell
The new construct allows you to use the `SELECT NEXT N VALUES
FROM t`. Consequently, the increment value in the sequence
table is deprecated (and ignored). We still support the previous
`SELECT NEXT VALUE...` construct, which is now essentially
`SELECT NEXT 1 VALUES...`. Once the new construct is adopted,
we'll deprecate the old one.
The returned value is the first of the N values.
I've left out the row support functions because most of them are
not supported by the protocol. The most important changes
are supported: contexts and named arguments.
* Deleted the deprecated shard specific connection support.
* Built go1.8, fixed compilation errors and added tests.
* Fixed documentation that was still stating support for v1 API.
* Fixed custom_sharding test that was relying on v1 API.
* Doc comments updated to explain isolation levels and named args.
* Code review comments addressed.
- Add vtctld2 app files into vitess/lite docker image used in the k8s example.
- Add flags to vtctld to use those files to render app2 and allow to use workflows.
- Add the same flags in the local example.
When test_flags were empty that resulted in an empty line in the template.
Kubernetes seem to have special treatment for that and it resulted in a new line
after the -etcd_global_addrs flag before the backup flags. And that resulted in
vtctld not seeing the backup flags at all (new line == next command).
For some reason putting test_flags and backup_flags on the same line in that
order resulted in the same behavior (when test_flags is empty the line has extra
space in the beginning of the line and Kubernetes inserts new line before it),
so I'm reversing their order.
The bug was introduced by https://github.com/youtube/vitess/pull/1809, in the
commit https://github.com/youtube/vitess/commit/3d82402706.
The code defaults to "grpc" for all flags now. Therefore, there's no
point in setting it explicitly to "grpc" anymore.
Only test code is still setting the flag. Verified with:
$ ack-grep -- "-[-a-zA-Z0-9_]+_protocol"