Граф коммитов

228 Коммитов

Автор SHA1 Сообщение Дата
Anthony Yeh 9b00cd4e72 test.go: rename rebalance operation to avoid confusion. 2015-08-23 21:56:06 -07:00
Anthony Yeh 740d1bd8f4 Remove obsolete Travis files. 2015-08-23 21:41:12 -07:00
Anthony Yeh 1ac3d8166a Use test.go for Travis and "make test". 2015-08-23 19:51:42 -07:00
Anthony Yeh 082f9afd6d test.go: Add goveralls script as a manual target. 2015-08-23 17:43:41 -07:00
Anthony Yeh 8511ab0193 Add PHP tests to Travis. 2015-08-23 01:28:44 -07:00
Anthony Yeh 9000a34565 Add php_test rule to Makefile. 2015-08-22 19:21:26 -07:00
Alain Jobart cdf3a7bb2f Adding utils.py option to skip builds, using it in the Makefile
(after adding a rule to build before tests).

Global build takes about 2s to build all binaries, and it saves
about 4s in one run of mysqlctl.py, so it's gonna be good!
2015-08-21 09:51:08 -07:00
Dean Yasuda 6a8f7ee7e1 Revert Makefile. 2015-08-20 12:48:17 -07:00
Dean Yasuda 5fa76ff6f5 Merge remote-tracking branch 'upstream/master' 2015-08-20 12:45:05 -07:00
Dean Yasuda c5eeb8d65c Fix a bug where self.session was not read correctly from response.
Remove some stray debugging statements.
2015-08-20 12:32:23 -07:00
Dean Yasuda 232c6a870d Change Makefile to add individual integration test targets.
Hook up effective_caller_id and add a simple test in python_client_test.py.
2015-08-20 11:57:33 -07:00
Michael Berlin d4d9d3ee25 Makefile: Let each integration test run fail after a 5 minutes timeout.
Currently, the worker tests are hanging from time to time.

Travis kills these tests automatically after 10 minutes (of not
receiving any output). We can be more aggressive about it and kill them
ourselves after 5 minutes.
2015-08-18 14:43:50 -07:00
Michael Berlin e878386bcb Revert "Makefile: Enable debug logging for worker.py."
This reverts commit 24348ab625.

The intent of the commit was to find out why worker tests sometimes do
not complete.

We know the cause now: The worker command is hanging in State: finding
target instances

Here's an example log:
https://s3.amazonaws.com/archive.travis-ci.org/jobs/75359822/log.txt
2015-08-18 14:39:03 -07:00
Alain Jobart 81571296b8 Making vertical_split.py always and only work with vtgate. 2015-08-18 08:09:56 -07:00
Alain Jobart ca77d9a5d2 Retiring zkclient2. toposerver API is going away. 2015-08-17 08:34:18 -07:00
Michael Berlin 615e002385 Makefile: Target "unit_test_goveralls", run by Travis, outputs top 10 packages with
worst coverage at the end.
2015-08-12 16:32:37 -07:00
Michael Berlin 6f9458ced2 travis: Run coveralls without specifying the repotoken.
This enables coverage reports on pull requests from Github forks.
2015-08-12 15:48:12 -07:00
Anthony Yeh c66c0b81ed go1.5: Use new syntax for ldflags -X variables. 2015-07-31 13:40:44 -07:00
Shengzhe Yao 982e1e2acf refactor java client pom structure
1. move common dependencies into parent pom.
2. upgrade com.google.guava to 18.0.
3. rename java build target to java_client_test.
4. fix makefile so java client test will run tests from each sub package.
2015-07-29 14:35:49 -07:00
Alain Jobart 1240ab94c0 Merge branch 'master' into resharding 2015-07-27 15:37:29 -07:00
Alain Jobart d4a91c59bd Adding vtgateclienttest, and using it for python client.
A lot more work will happen there over the next few weeks.
2015-07-27 15:36:30 -07:00
dumbunny a0bbdd36ee Merge pull request #904 from dumbunny/feature1
Refactor sql_builder.py
2015-07-27 12:30:23 -07:00
Michael Berlin 9b908f8085 Merge pull request #931 from michael-berlin/travis_enable_debug_logging_worker_py
Makefile: Enable debug logging for worker.py.
2015-07-27 11:35:48 -07:00
Michael Berlin 24348ab625 Makefile: Enable debug logging for worker.py.
We sporadically see that the worker.py test times out on Travis CI after 10 minutes. Enabling logging will give us better visibility to debug the problem.
2015-07-27 11:09:55 -07:00
Shengzhe Yao 2c42db70cc allow user to plugin a customized TestEnv implementation
1. Get rid of SetupCommand.java and move its logic to TestEnv.
2. Add getRpcClientFactory method in TestEnv.
3. Use setters & getters in TestEnv.
4. define vtgate.test.env and vtgate.rpcclient.factory properties in vtgate-client/pom.xml.
2015-07-26 18:47:19 -07:00
Dean Yasuda d4ec6220dc Modify sql_builder.py, add test/sql_builder_test.py. 2015-07-24 11:22:05 -07:00
sougou 65f9935095 Merge pull request #918 from youtube/suguwork
vtgate api: delete tests in client_test.py
2015-07-23 23:03:25 -07:00
Sugu Sougoumarane 42b9509636 vtgate api: delete tests in client_test.py
I removed functions from client.py because they need
to be rethought in light of the new API, but missed
removing them from client_test.py.
I've now added client_test to our integration tests
to make sure it doesn't get missed.
I'll submit this right away because it breaks import.
2015-07-23 22:54:29 -07:00
Michael Berlin 300242059c Makefile: unit_test_goveralls: Mask internal goveralls errors. 2015-07-23 15:00:20 -07:00
Michael Berlin 8a4d29b5f9 Travis: Shuffle tests around to better even out the test durations.
Moved tests out of the "ci_skip_integration_test" target because they don't seem to be so flaky.

Included "ci_skip_integration_test" target in Travis because the tests in there don't seem to be so flaky and we want maximum coverage.
2015-07-23 00:32:03 -07:00
Michael Berlin 876ce6fe21 Travis: build and test 4 Go packages simultaneously with -p flag.
Between 1, 2 and 4, 4 resulted in the shortest total duration. 4 was also better than 2 which is the capped number of availble cores in a Travis CI container.

I suspect that the default is 32 (the number of cores) and by setting it explicitly we effectively reduce the value - but reduce the stress on the system and therefore everything goes faster.
2015-07-23 00:13:29 -07:00
Michael Berlin 4d0a05134c Travis: Work-around MariaDB installation by extracting *.deb packages.
With this change, the following dependencies are no longer installed as well:
- New Relic monitoring (is no longer necessary)
- Java dependencies (no more necessary since we killed most of the old Java code)
2015-07-23 00:07:47 -07:00
Michael Berlin 51cf3301d5 Use "run_integration_tests" function to run queryservice_test. 2015-07-22 23:55:43 -07:00
Alain Jobart 0f5c7562bb Moving all python proto-generated files into py/vtproto. 2015-07-16 14:07:11 -07:00
Shengzhe Yao d4ce73af03 simplify proto generate command.
Use single line shell command to generate proto file instead of
hard coding command for each proto.

Steps:
  1. list all proto files.
  2. remove 'proto/' prefix and '.proto' suffix.
  3. run protoc for each proto and put in go/vt/proto/${proto_file_name}
2015-07-15 17:42:21 -07:00
Michael Berlin b6c924463e test: Add end-to-end test for automated horizontal resharding. 2015-07-09 23:13:17 -07:00
Alain Jobart df32088737 Switching mysqlctl command protocol from bsonrpc to gRPC. 2015-07-06 15:17:41 -07:00
Michael Berlin 6feb668dfd Merge branch 'master' into vtworker_rpc_interface_review1 2015-07-06 12:17:05 -07:00
Anthony Yeh 3ffb17ce7e Build all flavors in make docker_bootstrap. 2015-06-26 17:12:04 -07:00
Ammar Aijazi 493bfb15f1 Merge remote-tracking branch 'origin/master' into fix_tablet_clients 2015-06-26 11:59:40 -07:00
Ammar Aijazi 9b5b06c899 Added unit tests for vtdb.tablet 2015-06-25 22:52:09 -07:00
Alain Jobart 197a06d851 Splitting up time and logger event to logutil proto3. 2015-06-25 07:37:19 -07:00
Michael Berlin f49ed484a3 vtworker: Add gRPC server interface. 2015-06-22 21:04:32 +02:00
Alain Jobart eac090cd50 Renaming a few proto files. Turns out the proto we use in google3
cannot have the same <package name>.<data type> as these, or we cannot
load them at the same time. So to fix this:
- renaming the conflicting ones from xxx.proto to xxxdata.proto.
- renaming vtgateservice.VTGate to vtgateservice.Vitess

Note we can still change the names I chose here, just not back to
conflicting ones. If anyone has better ideas, we can implement
in subsequent changes. This is to get the import to google3 unstuck.
2015-06-19 08:20:58 -07:00
Alain Jobart 2337af3820 Now splitting automation proto. 2015-06-10 11:35:58 -07:00
Alain Jobart 337e97c341 Now splitting vtctl service. 2015-06-10 10:39:23 -07:00
Alain Jobart 14b82b06db Now splitting binlog. 2015-06-10 10:11:40 -07:00
Alain Jobart c47fc6ca94 Now splitting tabletmanager. 2015-06-10 09:32:15 -07:00
Alain Jobart 0f667475ec Now splitting queryservice into types and RPCs. 2015-06-10 09:26:39 -07:00
Alain Jobart 229f252570 Splitting vtgateservice into structures and services. 2015-06-10 09:22:08 -07:00
Alain Jobart 3d31196dec Fixing import override in make proto rule. 2015-06-09 10:58:01 -07:00
Alain Jobart 0d708af66f Adding binlog and replication protos. 2015-06-09 10:53:27 -07:00
Alain Jobart c2742b3a3d Adding vtgateservice proto. 2015-06-09 10:32:25 -07:00
Alain Jobart 31891be3fa Adding topo.proto, reworking queryservice.proto. 2015-06-09 07:57:47 -07:00
Alain Jobart c7ca1099ac Adding custom_sharding.py to automated tests. 2015-06-01 14:11:54 -07:00
Alain Jobart e15f38cd39 Removing clone.py & primecache.py, adding backup.py. 2015-05-20 09:00:23 -07:00
Michael Berlin 1b8cbb90f1 Initial version of automation framework.
The automation framework allows to automate cluster operations which
require a series of manual steps e.g. resharding.

A Cluster Operation has a list of task containers which are processed
sequentially. Each task container can contain one or more tasks which
will be executed in parallel.

Here's an example of a cluster operation with two task containers. The
second task container has two tasks:
- step 1
- step 2a | step 2b

If the task container contains one task, the task can emit new task
containers which will be inserted after the current task container. This
mechanism is used to fully expand Cluster Operations by special tasks
which emit new task containers e.g. "ReshardingTask".

This patchset implements the minimal steps to automate "resharding"
whereas task implementations for "vtctl" and "vtworker" are missing.
These will be added in later, separate commits.
2015-05-19 18:03:59 -07:00
Ammar Aijazi 383e2c52e4 Added worker.py to cover worker integration tests 2015-05-18 16:29:47 -07:00
Michael Berlin 02ef7cb722 Makefile: Disable parallel make because integration tests would race with each other for the same ports. 2015-05-07 15:27:47 -07:00
Michael Berlin 6a7eb9844e Makefile: Add Java tests to "test" target.
With this change, developers must have "mvn" installed or "make test"
will fail.

Travis CI did already run the test. Now "make test" and Travis CI config are both in sync again.
2015-05-06 11:42:45 -07:00
Alain Jobart d855c85c5c Adding queryservice proto definition for grpc.
(in order for this to compile, need to get the latest grpc, with this:
go get -u google.golang.org/grpc
)
2015-05-05 08:45:18 -07:00
Anthony Yeh b14c3a308f Add test-runner script for integration tests in Docker.
This is an alternative to 'make integration_test',
with the following advantages:

* Tests run in Docker, so no bootstrap is necessary.
* Tests are hermetic and can run in parallel.
* Test against different flavors just by setting a flag.
* Failing tests are retried to see if they are flaky.
* A failed test will be recorded for later inspection, while the script
  continues to run other tests.
* A test that takes too long will be considered stuck and retried.

There's plenty of room for improvement, but now that we have something
in a more readable language than Makefile, we can iterate.
2015-04-21 20:12:20 -07:00
Anthony Yeh 9a885e51c4 Fix permission issues when running tests in Docker.
The vtdataroot volume needs to be created after the directory itself,
and other fixes.
2015-04-20 17:11:45 -07:00
Anthony Yeh 3a8ec3799a Add Makefile rule to run tests inside Docker.
This will let contributors test changes without having to do bootstrap
at all.

It also makes it easy to test against multiple flavors without having to
swap out installed packages. You can even run tests against multiple
flavors simultaneously without interfering, if you have enough RAM.
2015-04-20 16:03:01 -07:00
Anthony Yeh 89cb8a5a01 Split off bootstrap into separate Docker image.
This makes it faster to use Docker images to test new changes, as
suggested in #492.

Since we don't need to re-bootstrap for every push to master, this also
makes our automated builds faster and more reliable (they often fail due
to network lag when installing dependencies with apt-get).

Lastly, this will make it easier to swap out bootstrap images built for
different flavors, such as MariaDB 10.0 vs MySQL 5.6.
2015-04-20 15:09:26 -07:00
Alain Jobart 015dd56874 Add python side for gRPC. 2015-03-02 09:22:52 -08:00
Alain Jobart 388bdd062b protoc is now compiled by bootstrap.sh.
Still need better python gRPC support.
2015-03-02 08:48:22 -08:00
Alain Jobart ed178436a0 Re-organizing protos.
Moving the protos to proto/
Adding a Makefile rule to re-generate the go files from them
(assuming protoc is in the path).
Moving the generated files to directories where the package name
matches the directory name, always easier that way.
2015-02-27 20:40:55 -08:00
Anand Henry cfcddad470 Travis: Disable initial_sharding_bytes test 2015-02-03 20:10:04 -08:00
Anand Henry 125a365286 Travis: Skip initial_sharding test
It is running OOM since Travis environment got last updated
2015-02-03 17:52:53 -08:00
Anand Henry 0dd9321146 Merge branch 'master' into exp-retry 2015-01-30 16:29:11 -08:00
Anand Henry b7d86c1c67 Skip installing gorpc-client dependency
Can be skipped since it will be fetched from the remote mvn-repo
2015-01-29 13:00:33 -08:00
Anthony Yeh d24d557281 Use godep for go-etcd client.
The master branch of the client is no longer compatible with the server
version we use.
2015-01-28 15:44:42 -08:00
Anthony Yeh 998da6dc30 Force a known locale when generating build time.
Adding LC_ALL=C forces the "default" locale, so the user's own setting
won't prevent us from parsing the output of the 'date' command.
2015-01-21 13:10:23 -08:00
Ammar Aijazi 8e5c275ab9 Reenable update_stream.py for Travis now that it's been deflaked 2015-01-18 01:14:51 -08:00
Ammar Aijazi 069aaec816 Use a background context per vtworker, and have all contexts derive from there. 2015-01-13 13:57:13 -08:00
Anand Henry 3e03bfee74 Comments 2015-01-02 09:07:51 -08:00
Anand Henry f4afc371f9 Travis: Skip coveralls and new relic for pull requests 2015-01-02 08:30:30 -08:00
Anthony Yeh d86142c589 Use "go generate" for bsongen instead of Makefile.
Now the bsongen command can live next to the type it operates on.

Note that you need Go 1.4 to run "go generate", but that only needs
to be done when you've modified a type that is the subject of a
generate command.
2014-12-24 02:10:49 -08:00
Anand Henry 2022af0ecf Fix merge issue: remove duplicate skips 2014-12-22 15:01:41 -08:00
Anand Henry 593534912d Travis: Fix flaky tests
Make min rdonly instances configurable for vtworker tasks
Remove unnecessary tablets wherever possible
Use lower buffer pool size in MySQL to save memory
Track performance using New Relic
2014-12-22 14:39:01 -08:00
Anand Henry 2e24f7692b Travis: More flaky tests 2014-12-19 16:24:23 -08:00
Anand Henry 63a7959c56 Travis: Mark schema.py test as flaky 2014-12-19 10:00:01 -08:00
Shengzhe Yao 8e5146936f Opt test/update_stream.py out of travis ci
test/update_stream.py is flaky and needs further investigation before
putting into travis ci.
2014-12-18 16:10:41 -08:00
Alain Jobart 1ca080869d Removing zkocc and related files. 2014-12-16 18:44:35 -08:00
Anand Henry 7d95bcdbbc Comments on Makefile 2014-12-15 10:39:20 -08:00
Anand Henry 4173df8355 Travis: Skip more integration tests due to flakiness
test/keyspace_test.py
test/initial_sharding.py
test/initial_sharding_bytes.py
test/resharding.py

[ci skip]
2014-12-12 18:36:46 -08:00
Anand Henry 61e1baed59 Skip resharding_bytes integration tests in Travis 2014-12-12 18:12:58 -08:00
Anand Henry cdfa764d7f Travis and Coveralls integration
Add travis configuration and dependencies script
Split integration test make targets to allow parallel execution in Travis
Add go packages required for coverage upload to Coveralls
Add coveralls and travis badges to README

Travis: Retry make targets to address flaky targets
2014-12-12 17:44:12 -08:00
Peter Lobsinger 5ed185a982 Merge pull request #229 from plobsing/exportBuildTags
manage build metadata
2014-12-10 13:11:52 -08:00
Peter Lobsinger 77ed30c86d Burn values into binary at build-time.
User, host, timestamp, and git-rev are values that we should capture at
build time to be able to track our instances across the fleet.
2014-12-10 10:37:56 -08:00
Alain Jobart 78ad6fdc6f Removing the non-vtworker options for integration tests. 2014-12-09 13:41:36 -08:00
Anthony Yeh 79fb6fd716 Run new vtworker tests by default. 2014-12-08 23:15:36 -08:00
Sugu Sougoumarane e7f9ff7918 v3 proto: end-to-end test for select & insert 2014-12-05 22:12:47 -08:00
Anand Henry 5984be80b2 Exponential backoff retry in VtGate client 2014-11-26 11:30:22 -08:00
Sugu Sougoumarane ed8e0ca97a vtgate v3: prep work for new router 2014-11-01 12:17:39 -07:00
shrutip 379bd84818 removed vtgate_test from Makefile. 2014-10-01 11:15:43 -07:00
Anthony Yeh f0186fbe22 Fix charset handling in filtered replication. 2014-09-26 15:36:12 -07:00
Anthony Yeh 7aed34e8e9 Add site_test Makefile target to run only recommended pre-install tests. 2014-09-10 14:56:25 -07:00
Anthony Yeh 6f3231a431 Use VT_TEST_FLAGS and stop on error in queryservice_test. 2014-09-09 00:28:49 -07:00