7753 Commits

Author SHA1 Message Date
Markus Mäkelä
e4a004097e MXS-1220: Add support for PATCH
The PATCH method should now be used instead the PUT method to update
resources.  As PUT request bodies should represent complete resources, the
use of PUT to update resources is no longer supported.

Altered tests to use PATCH instead of PUT for updating resources.
2017-06-05 13:37:08 +03:00
Markus Mäkelä
d63af9df0b Fix 2.2 test results
The changes to object naming and tee filter rewriting caused a number of
changes in the expected outcome of tests and how the tests have to behave.
2017-06-05 13:25:56 +03:00
Markus Mäkelä
3505d26b42 Enable 2.2 tests
Enabled tests that test 2.2 functionality.
2017-06-05 13:25:56 +03:00
Markus Mäkelä
457fc80647 Merge branch '2.1' into develop 2017-06-05 13:25:27 +03:00
Markus Mäkelä
09a445f1b7 Fix monitor credentials parameter names
The `monitoruser` and `monitorpw` parameters were mislabeled as `monuser`
and `monpw`. To allow backwards compatibility, the `monuser` and `monpw`
still work as aliases for the correct commands.
2017-06-05 13:20:16 +03:00
Markus Mäkelä
3584001281 Refactor and fix slave_failover
The test seems to fail when executed outside of a debugger. A delay
between creating the connections and checking the connection count appears
to fix the problem.

Refactored the test to use stack allocated objects and favored assertion
style functions over conditional clauses with failing assertions inside
them.
2017-06-05 13:20:16 +03:00
Markus Mäkelä
9c5114b593 Fix 2.1 tests
Changed object names to pre-2.2 format. Added a workaround for the unicode
NULL character problem in cdc_datatypes.
2017-06-05 13:20:16 +03:00
Markus Mäkelä
2e15c3b204 Update Galera configurations with 2.1 options
The root_node_as_master option needs to be disabled for 2.1 testing.
2017-06-05 13:20:16 +03:00
Markus Mäkelä
1e52191bdf Revert "Fix and disable 2.0 related tests"
This partially reverts commit f2ba9dbed8510f7782c610c1eae1534db7ac9168.
2017-06-05 13:20:16 +03:00
Markus Mäkelä
2f6a5bcd07 Enable 2.1 feature tests
Enabled the tests that test 2.1 functionality.
2017-06-05 13:20:15 +03:00
Markus Mäkelä
20fceada58 Revert "Fix fwf_prepared_stmt expectations"
This reverts commit ae444c214b76e419e85d8c7200548c70bbb70068.
2017-06-05 13:20:15 +03:00
Markus Mäkelä
539474a28d Disable RocksDB tests in 2.1
The RocksDB based cache storage is not built by default so the tests
should be disabled.
2017-06-05 13:20:15 +03:00
Markus Mäkelä
4c78e2c99a Fix avrorouter memory leaks
The loading of the JSON schemas leaked memory as functions that increment
the reference count were used.
2017-06-05 13:20:14 +03:00
Markus Mäkelä
d5a72d1b75 Fix avrorouter client counts
The avro client numbers were decremented twice for each client.
2017-06-05 13:19:48 +03:00
Markus Mäkelä
285598e0e5 Fix avrorouter type and name handling
The type and name parsing functions could move outside of allocated memory
as they didn't check for the terminating null character. Also fixed the
printf format string used when the list of used tables is being created.

Fixed CDC testing connector to abort on error and added some extra output
to the cdc_datatypes test.
2017-06-05 13:19:47 +03:00
Markus Mäkelä
b20334e09e Make avrorouter testing faster
The slave part of the binlogrouter replication can be ignored for
avrorouter tests. This will speed up the testing by skipping the
unnecessary restarting and configuration of slave servers.
2017-06-05 13:17:16 +03:00
Markus Mäkelä
738c77d0b2 Fix and disable 2.0 related tests
Fixed the expected script output for the script test.

The SSL load balancing test would fail due to a problem introduced in
connector-c 3.0 which is yet to be resolved. Due to this, the test is
disabled until an alternative way to test it is conceived.

The dbfwfilter duplicate rule detection is fixed in 2.1.
2017-06-05 13:17:16 +03:00
Markus Mäkelä
5f775551ea Remove post-2.0 functionality testing
Removed more parts of tests that tested or expected post-2.0
functionality.
2017-06-05 13:17:16 +03:00
Markus Mäkelä
ee34b26fc8 Wait for all connections to close
Added a small delay to tests that flood MaxScale with large amounts of
connections which then proceed to check whether MaxScale accepts
connections.
2017-06-05 13:17:16 +03:00
Markus Mäkelä
6c742030b4 Pass filename as maxpasswd argument
The 2.0 version of maxpasswd requires that the filename is given as the
first argument. Only 2.1 and newer versions check for the default key
file.
2017-06-05 13:17:16 +03:00
Markus Mäkelä
684e2e153f MXS-1277: Improve maxadmin error messages
Maxadmin now reports if the default socket was found and suggests actions
to take.
2017-06-05 13:17:15 +03:00
Markus Mäkelä
9f18d5a9fc Bring galera template to the replication template
The only difference in the galera template is now in the monitor
definition and in the server address values. This fixes the unexpected
responses that some of the galera mysqltest cases suffer from.
2017-06-05 13:17:15 +03:00
Markus Mäkelä
962dadfb59 Disable MXS-781 test for 2.0
The bug is fixed in 2.1.
2017-06-05 13:17:15 +03:00
Markus Mäkelä
a37a665bd2 MXS-1271: Remove redundant JSON parsing
As the cdc.py script outputs newline delimited JSON, there's no need to
parse the JSON in the cdc_kafka_producer.py script.
2017-06-05 13:17:12 +03:00
Markus Mäkelä
a667ad90e5 Fix more galera test configurations
Some tests used galera options that aren't in 2.0 which caused the tests
to fail.

Also added an upper limit to some tests to reduce excessive execution
times.
2017-06-05 13:16:36 +03:00
Markus Mäkelä
cca25376eb Add missing CLI interface to configs
The regexfilter test was missing the CLI definition which slows down the
test.
2017-06-05 13:16:36 +03:00
Markus Mäkelä
0e19dd5d1c Disable parts of tests that don't work in 2.0
The configuration checking functionality doesn't detect bad router options
in 2.0.
2017-06-05 13:16:36 +03:00
Markus Mäkelä
9dc5a2ed08 Fix fwf_prepared_stmt expectations
The test should expect all prepared statements to fail. This needs to be
changed for 2.1 and newer versions.
2017-06-05 13:16:35 +03:00
Markus Mäkelä
d4b75e18e5 Disable testing of features found in 2.1 and up
The tests can't pass as the functionality hasn't been implemented.
2017-06-05 13:16:35 +03:00
Markus Mäkelä
e786d62215 Disable tee tests for 2.0
The tee filter does not work correctly in 2.0.
2017-06-05 13:16:35 +03:00
Markus Mäkelä
480b3554c6 Fix 2.0 tests
Altered some of the tests to look for less specific log entries. Removed
new options from galera configurations. Reduced log output of some tests.
2017-06-05 13:16:35 +03:00
Markus Mäkelä
a20d96db18 Download MariaDB Connector-J for testing
Instead of bundling the connector with the tests, it should be downloaded
at configuration time.
2017-06-05 13:16:35 +03:00
Esa Korhonen
9124de86df Add default value to MaskingFilter "fill" setting
MXS-1261. If "fill" is not defined, an "X" is used as default.
Setting an empty string as "fill" or "value" is disallowed.
2017-06-05 11:30:06 +03:00
Esa Korhonen
47b7f1c69c Add automatically compiled PCRE2_REGEX config parameter type
The regex strings are compiled automatically. During file parsing,
the string is compiled once using default settings to check that
the pattern is valid. Once a module asks for the compiled pcre2_code,
the pattern is compiled again with module given settings.

The regex string in the config file should be enclosed within '/ ... /'
2017-06-05 09:42:42 +03:00
Markus Mäkelä
53a2139bb9 MXS-1267: Use filter template in tee
The tee filter now uses the MaxScale filter template.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
d59e98e238 MXS-1267: Remove DCB cloning
The DCB cloning is no longer needed as the tee filter now does the session
branching by simulating a local client connection.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
e64e24a819 MXS-1267: Fix tee filter test results
The tests should no longer expect client session creation to fail if the
branch session creation is not successful.

The main session is kept alive so that a failure in the branch session
does not cause a failure of the main session. The main session can be
considered more important as it is what the client will use. If the branch
session fails, the failure will be logged so no information is lost.

Also added a missing configuration file and removed some extra-verbose
output in a test script.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
e32937c8f2 MXS-1267: Rename tee structures
The structures now use C++ style names. This is done before the filter is
moved over to the filter template.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
d754ebdf72 MXS-1267: Iterate over available listeners
The tee filter iterates over the available ports and finds the first
available network listener and tries to connect. This allows the use of
UNIX domain sockets with services that are targeted by the tee filter.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
7fab3f5d1d MXS-1267: Use local client in tee
The tee filter now uses the local client class to clone the queries. This
imposes some restrictions on how the filter can be used but also makes
MaxScale as a whole more robust.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
c67b76b486 MXS-1267: Add local client class
The local client class handles a network connection to a local service. It
is meant to be used with the tee filter so that the internal cloning of
DCBs can be removed.

The local client class connects to a port on the local host. This requires
that the user connecting to the tee filter has adequate grants to connect
locally to a MaxScale service.

After authentication for the local client is complete, the client will
pipe all queries to the service while ignoring any responses it
generates. This could be expanded so that a special handler would be given
as an argument. The handler would then handle the responses to the
queries.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
e43cdcf741 MXS-1267: Expose MySQL backend authentication
Refactored the backend authentication functions so that they can be
exposed to the tee filter. This allows the tee filter to use the same
functions as the protocol modules use without having to reimplement them
inside the tee filter.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
7e70b8c58b MXS-1267: Compile tee filter as C++
Compile the tee filter as C++.
2017-06-02 13:07:02 +03:00
Markus Mäkelä
19c4016e65 MXS-1220: Add to_string to HttpRequest
Allowing requests to be converted to raw HTTP requests allows them to be
propagated to other instances of MaxScale. This should allow multiple
MaxScales to perform the same action in a coherent manner.

A simple clustering mechanism needs to be added to make MaxScale aware of
other instances.
2017-06-02 12:52:33 +03:00
Markus Mäkelä
ba546fcd21 MXS-1220: Add execution of module commands to REST API
The module command self links now point to an endpoint that executes the
module command. Depending on the type of the module command, either a GET
or a POST request must be made.
2017-06-02 12:52:33 +03:00
Markus Mäkelä
08a0883ec8 Fix missed change dates
A few files were missed.
2017-06-01 19:39:41 +03:00
Esa Korhonen
152c0950ef Removed policy CMP0026 from PCRE2 CMakeLists.txt
Similar to commit c798961f211cd4435087bd4e005e9b89f3ec325d.
The CMP0026 policy causes the build to fail on CMake 2.8.12 and it isn't critical
to the functionality of the library.
2017-06-01 15:40:28 +03:00
Esa Korhonen
36af74cb25 Update bundled PCRE2-library to version 10.23
Some manual changes done to the library were lost with this update.
They will be added in the next commit.
2017-06-01 15:40:28 +03:00
Esa Korhonen
7231563937 Always use bundled Pcre2 library
Some additions to config.cc will require a recent version of PCRE2.
The system libraries may not be up to date. The pcre2 source is
bundled with MaxScale anyway, so using it is a simple way of controlling
the library version.
2017-06-01 15:23:31 +03:00
Johan Wikman
83922f193b Update change date in license 2017-06-01 10:42:21 +03:00