Commit Graph

8235 Commits

Author SHA1 Message Date
f1b2257383 MXS-1302: the keyword in the Json is now "match" and MatchRule class substitutes CaptureRule
The keyword in the Json is now "match" and MatchRule class substitutes
CaptureRule

"replace": {
"column": "d_code",
"match": "(?<=aaa).*(?=-12)|(?<=-12).*"
},…
2017-07-14 14:21:40 +02:00
85d7d67ab8 MXS-1302: capture option in use and pcre2_match matches all the patterns
pcre2_match matches all the patterns
2017-07-14 14:21:40 +02:00
00f046da1b MXS-1316: Read the raw input in cdc_kafka_producer.py
The input can be read as raw bytes since kafka expects the data to be of
type bytes instead of str.
2017-07-13 13:27:51 +03:00
fd77b18c49 Remove false debug assertion in avrorouter
The asserted value can be false without it being an error. When a table is
re-mapped to a different position, there is no guarantee that the previous
value has not been reused by another table.
2017-07-13 12:30:24 +03:00
2410c23e66 Assume that the test database exists
The tests should not drop the test database and then recreate it. This
adds an unnecessary burden on replication which will cause false positives
when replication is not fast enough.
2017-07-11 22:34:01 +03:00
a77406e134 MXS-1300: Add calling of module commands to MaxCtrl
Module commands can now be called with MaxCtrl.
2017-07-10 22:23:49 +03:00
e14aa729ab MXS-1300: Add module commands to MaxCtrl
Added inspection of module commands to MaxCtrl. The commands can't be
called yet.
2017-07-10 22:23:49 +03:00
1514ede4e1 MXS-1300: Add logging commands
Added commands for altering logging parameters and for rotating logs.
2017-07-10 22:23:48 +03:00
78a95def7d MXS-1300: Add build script for MaxCtrl
The build uses the pkg library to package a Node.js app and all of its
dependenices.
2017-07-10 22:23:48 +03:00
ebfa631bae MXS-1330: Add alter command
Servers, monitors and services can now be altered with MaxCtrl.
2017-07-10 22:23:48 +03:00
46339d620a MXS-1220: Interpret no relationships as old relationships
When a PATCH request to a resource is made with no relationships defined,
it should be interpreted to be the same as the old relationships. Removal
of relationships can still be done by defining an empty relationships
object.
2017-07-10 22:23:48 +03:00
731d19ba70 MXS-1220: Add test for monitor alteration regression
Altering monitor parameters without defining the relationships was
interpreted as an attempt to remove all relationships. This test
reproduces the problem.
2017-07-10 22:23:48 +03:00
4913cf1ec7 MXS-1300: Add maxscale to show commands
The command shows general information about MaxScale.
2017-07-10 22:23:48 +03:00
f4dacff27c MXS-1300: Correct clear entry point documentation
Corrected the clear entry point documentation by changing the method from
POST to PUT. Fixed MaxCtrl to use the correct methods for set/clear.
2017-07-10 22:23:48 +03:00
252022534c MXS-1300: Add start/stop commands
Added start and stop commands for starting and stopping services and
monitors.
2017-07-10 22:23:48 +03:00
a0e7a97729 MXS-1300: Add create/destroy/list commands for users
Users can now be listed, created and destroyed via MaxCtrl.
2017-07-10 22:23:48 +03:00
b0f2d02787 MXS-1300: Add link/unlink command to MaxCtrl
The link/unlink commands are similar to the add/remove commands in
MaxAdmin but they link services and monitors to a list of servers instead
of linking servers to a list of either services or monitors. This can
reduce the number of required calls to alter the configuration while
making the process easier for MaxCtrl to do via the REST API.

Also fixed a false negative where a service alteration which results in a
no-op would be counted as an error.
2017-07-10 22:23:47 +03:00
7db1f4c768 MXS-1300: Add create/destroy commands
Servers, monitors and listeners can now be created and destroyed with
MaxCtrl.

Exported lodash as a part of the common.js module so that commands can use
it to construct objects. If there are enough common uses of this library,
some of the object construction could be moved to the common module.
2017-07-10 22:23:46 +03:00
35745ee925 MXS-1220: Add deletion of listeners
The listeners can now be deleted via the REST API. Documented the added
endpoint in the REST API documentation.
2017-07-10 22:23:46 +03:00
7e40c93cc4 MXS-1220: Add listener creation documentation
The documentation for creating listeners was not added.
2017-07-10 22:23:45 +03:00
e0076ca8a5 MXS-1220: Fix request methods for user creation
The creation of network users and enabling of UNIX accounts documented PUT
as the method for enabling them when the commands actually used POST.
2017-07-10 22:23:45 +03:00
bb5b83bf7b MXS-1300: Add enable/disable command
The enable/disable commands allow logging options and UNIX admin accounts
to be enabled and disabled.
2017-07-10 22:23:45 +03:00
cfa0fd9803 MXS-1300: Create more helper functions
The common error logging function prints and colors the output in an
uniform way. The updateValue function allows easy PATCH updates to a
single value of a resource.
2017-07-10 22:23:45 +03:00
c7b9b7ac4a MXS-1220: Unify resource member naming
All resoures now use the `state` member to describe their internal
state. This includes servers, services and monitors. This means that the
`status` keyword can be reserved for something else and it can be removed
until it is needed again.

Changed the module maturity field to `maturity` to better describe its
purpose.
2017-07-10 22:23:45 +03:00
a8bfdac49c MXS-1220: Use PUT to set/clear server
The correct method for set/clear endpoints is PUT, not POST, as the
resource always ends up in the desired state, regardless of its current
state.
2017-07-10 22:23:45 +03:00
30a40a090b MXS-1300: Make global option descriptions more brief
The option descriptions now fit on one line with their parameter types and
default values.
2017-07-10 22:23:44 +03:00
f62e899b79 MXS-1220: Add missing start/stop documentation for service resources
The service resource start and stop endpoints weren't documented.
2017-07-10 22:23:44 +03:00
6955be901f MXS-1300: Use single quotes in Node.js code
The Node.js code should use single quotes as it appears to be a prevalent
style choice for Node.js applications.
2017-07-10 22:23:44 +03:00
8fb1137ef0 MXS-1300: Add usage to all commands
Added usage instructions for all commands. If the generated usage is used
with the `pkg` packager, it will contain generated script names which are
confusing.
2017-07-10 22:23:44 +03:00
4cf17bc450 MXS-1300: Add set and clear commands
The manipulation of server status is now possible with the set and clear
commands.
2017-07-10 22:23:44 +03:00
38930e198d MXS-1300: Fix duplicated options
Moved the option declaration to the main source file. Added default
functions for all modules to catch unknown command invokations. Cleaned up
and exposed more ways to use the doRequest function.
2017-07-10 22:23:44 +03:00
63d2eee0e3 MXS-1220: Add endpoint for set/clear of server status
The server status can now be manipulated via the REST API. Added tests for
the state manipulation. Fixed minor issues in related code.
2017-07-10 22:23:44 +03:00
c189378389 MXS-1330: Pair header names with resource paths
The getCollection and getResource now use similar mechanisms to declare
the names and values for the tables.
2017-07-10 22:23:44 +03:00
1148ed9876 MXS-1300: Add initial implementation of MaxCtrl
This is the administrative client that uses the REST API to communicate
with MaxScale. It is written in Node.js as it can handle the JSON format
data returned by the REST API natively. Currently only list and show
functionality is implemented.
2017-07-10 22:23:43 +03:00
61241f9e07 Remove old feedback system
The feedback system wasn't used and was starting to cause problems on
Debian 9 where the libcurl required different version of OpenSSL than what
MaxScale was linked against.
2017-07-10 16:03:50 +03:00
33e1878fe1 MXS-1302: addition of CaptureRule class
Addition of CaptureRule class, derived from Rule class
2017-07-10 14:10:21 +02:00
f10cc156a5 MXS-1302: added tests for "obfuscate"
Tests updated
2017-07-10 13:47:29 +02:00
f3547d14a1 Masking filter: removed create_rule_from_elements() routines
Masking filter cleanup: create_rule_from_elements() removed.
2017-07-10 09:49:20 +02:00
e70852d10b Code cleanup in ReplaceRule::create_from()
Code cleanup in ReplaceRule::create_from()
2017-07-10 09:49:20 +02:00
deef6bb030 Extend text protocol PS test
The test now checks that text protocol prepared statements are load
balanced just like normal queries.
2017-07-08 08:15:42 +03:00
8b5c6f7286 Merge branch 'MXS-1302' into develop 2017-07-07 17:37:16 +02:00
9490af2fb1 MXS-1302: Addition of ObfuscateRule derived class and 'obfuscation' rule
New rule ‘obfuscate’ is being added:
{
"obfuscate": {
"column": “p_name”,
"database": "test",
"table": "masking"
}
},
"applies_to": [ ... ],
"exempted": [ ... ]
2017-07-07 17:31:37 +02:00
01b611d895 MXS-1312: Add tests for permission type rule
The test checks that rules with only optional parts defined work.
2017-07-07 16:52:17 +03:00
26f8f9d869 MXS-1311: Add tests for keywords as function parameters
The dbfwfilter tests now test the function type rule with keywords as
parameters.
2017-07-07 16:46:54 +03:00
b26e2d8189 MXS-1302: masking filter value replacement is done by new ReplaceRule, derived form base class Rule
The value replacement is now done by new ReplaceRule, derived form base
class Rule
2017-07-07 15:02:59 +02:00
d47e32966f MXS-1312: Make the permission rule the default type
If a rule is defined with only an optional part, it should be of the
permission type. This type is used to signal that the rule matches if the
optional constraints are fulfilled.

Due to refactoring, the default type was changed from RT_PERMISSION to
RT_UNDEFINED.
2017-07-07 15:44:37 +03:00
9c4711aac8 MXS-1311: Allow backtick quoted values for function rules
The function rules can now take keywords as arguments if they are quoted
by backticks.
2017-07-07 15:17:57 +03:00
f3e98745bd MXS-1313: Fix updating of server character sets
The server character set is now updated every time a connection is created
with mxs_mysql_real_connect.
2017-07-07 14:52:15 +03:00
96b98845a2 Allow filters to be used with binlogrouter
Filters can now be used with the binlogrouter to modify the contents of
the binlog stream now that the correct function call is used.
2017-07-07 10:37:30 +03:00
54c6e0eb52 Increase verbosity and timeouts in bug662
The test restarts MaxScale while all backends are blocked. This will cause
MaxScale to wait until all connections to all servers time out which can
take a while.

Added a separate config for the test and lowered the timeouts. Also
inreased test timeouts.
2017-07-06 14:01:51 +03:00