Commit Graph

7768 Commits

Author SHA1 Message Date
509c6d25f9 QLA-filter cleanup
Changed some literal strings to constants + other cleanup.
Removed/shortened some unnecessary comments.
2017-06-12 17:29:10 +03:00
4db6712b66 Use MXS_MODULE_PARAM_REGEX in QLA-filter
The QLA filter now uses the automatically compiled regex parameter type.
Regex matching now prints errors. Some minor refactoring.
2017-06-12 15:40:06 +03:00
39c6328e9b Refactor config_get_compiled_regex_capcount()
The function now returns the compiled code or null or error. Also,
instead of capcount, it writes the ovector size. The ovector pointer
can be null. Removed the other config_get_compiled_regex()-function
and replaced it with the refactored function since they are almost
identical.
2017-06-12 10:56:00 +03:00
bff5e96b1a Query hint to influence Consistent Critical Read Filter
MXS-1067. The CCRFilter will now look at the hints in a write-type
query. The parameter-value combinations "ccr=match" and "ccr=ignore"
are recognized and will override any regex match and ignore settings.

For the hints to work, the HintFilter needs to be present in the filter
chain before the CCRFilter.

Also ran astyle and updated documentation.
2017-06-12 10:51:41 +03:00
2778056212 MXS-1220: Enable admin authentication by default
The admin interface now uses HTTP BA authentication by default. This will
prevent unrestricted access to the REST API but the authentication is by
no means secure and the HTTPS mode for the REST API should be enabled for
all production systems.
2017-06-12 10:08:25 +03:00
53d7c57982 MXS-1220: Add error descriptions to REST API module commands
The module command calls that fail can now display additional information
in the form of an error object.
2017-06-12 10:08:25 +03:00
45afbda100 Add descriptions to module commands
Each module command has to describe what it does. This should make module
commands self-documenting to some degree.
2017-06-12 10:08:25 +03:00
06995837cf MXS-1220: Use JSON output in dbfwfilter module commands
Added a new module command to the dbfwfilter to allow printing of rules
via the REST API. The old module command, `rules`, is now deprecated.
2017-06-12 10:08:25 +03:00
b3c1e15f22 MXS-1220: Add output for module commands
The module commands can now produce JSON formatted output which is passed
to the caller. The output should conform to the JSON API as closely as
possible.

Currently, the REST API wraps all JSON produced by module commands inside
a meta-object of the following type:

  {
    "meta": <output of module command>
  }

This allows the output to be JSON API conformant without modifying the
modules and allows incremental updates to code.
2017-06-12 10:08:25 +03:00
66a45fc37e MXS_MODULE_PARAM_REGEX and QUOTED_STRING now accept non-enclosed values
This is for backwards compatibility to allow current modules to use
the automatically compiled regex parameters. The enforcement should
be restored in a later version. A warning is output for every non-
enclosed regex.

Similar changes are also applied for QUOTED_STRING.
2017-06-09 12:59:11 +03:00
92fa613f93 Use worker messages for fake events
Fake events now use worker messages to trigger execution of the events.
2017-06-07 10:36:26 +03:00
fa99b97dbd MXS-1267: Add note about tee filter in release notes
The release notes now mention that the tee filter has been rewritten and
it requires some extra configuration.
2017-06-06 15:49:51 +03:00
dc67f3e4f3 MXS-1273: Use default engine for replication_heartbeat table
The MySQL monitor replication_heartbeat table now uses the default storage
engine of the database when creating the table. Most of the time the
default is InnoDB which makes the table crash-safe.
2017-06-06 15:49:21 +03:00
476fda9082 Merge branch '2.1' into develop 2017-06-05 13:50:05 +03:00
2990edc424 Update MaskingFilter documentation 2017-06-05 13:47:39 +03:00
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
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
3505d26b42 Enable 2.2 tests
Enabled tests that test 2.2 functionality.
2017-06-05 13:25:56 +03:00
457fc80647 Merge branch '2.1' into develop 2017-06-05 13:25:27 +03:00
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
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
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
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
1e52191bdf Revert "Fix and disable 2.0 related tests"
This partially reverts commit f2ba9dbed8510f7782c610c1eae1534db7ac9168.
2017-06-05 13:20:16 +03:00
2f6a5bcd07 Enable 2.1 feature tests
Enabled the tests that test 2.1 functionality.
2017-06-05 13:20:15 +03:00
20fceada58 Revert "Fix fwf_prepared_stmt expectations"
This reverts commit ae444c214b76e419e85d8c7200548c70bbb70068.
2017-06-05 13:20:15 +03:00
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
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
d5a72d1b75 Fix avrorouter client counts
The avro client numbers were decremented twice for each client.
2017-06-05 13:19:48 +03:00
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
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
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
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
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
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
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
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
962dadfb59 Disable MXS-781 test for 2.0
The bug is fixed in 2.1.
2017-06-05 13:17:15 +03:00
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
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
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
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
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
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
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
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
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
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
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
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