Commit Graph

8401 Commits

Author SHA1 Message Date
2148d78d3f MXS-1324: Fix build scripts for Debian-based systems
The avrorouter dependencies weren't correctly built for Debian-based
systems. This is due to the different way Debian and RHEL store libraries.
2017-07-25 11:25:43 +03:00
17a09412cc Update ChangeLog and Upgrading 2017-07-25 10:42:18 +03:00
6ac3484e31 Update 2.1.5 version number 2017-07-25 10:42:18 +03:00
24d20d2a1b Increse timeouts for mxs1071_maxrows
As the test does a lot of large inserts, the timeouts can be triggered at
times when the test is not actually stuck but just waiting for the insert
to complete. Increasing the timeout from 10 to 30 seconds should give it
enough time to finish processing.
2017-07-24 13:55:17 +03:00
7e38d8f6b7 Enable info log for mariadb_tests_hartmut_galera
The test fails for unknown reasons from time to time and enabling the info
log level should help resolve it.
2017-07-24 12:59:11 +03:00
26bf342e6b Merge branch '2.1' into develop 2017-07-24 12:37:25 +03:00
4bb4b921cb MXS-1300: Add check for Node.js version
The Node.js version is checked before MaxCtrl is built.
2017-07-24 12:33:19 +03:00
81327dffca Masking filter configuration update for tests
Masking filter configuration update for tests
2017-07-24 11:28:32 +02:00
dc6bc22237 Masking Filter: removed extra constraints which cause some tests to fail
Masking Filter: removed extra constraints which cause some tests to fail
2017-07-24 11:28:32 +02:00
6ba3193d5f MXS-1322 When flushing the log file, it will not be truncated
Earlier when the log file was flushed, it was also truncated,
which meant that the log content was log, unless the file first
was moved. Now it will only be opened. Thus, no data can be lost
due to the operation. If logrotate it used, the end result will
be the same, as the file is moved first.
2017-07-24 11:03:52 +03:00
f76e4cd61d Fix GCC 7 and OpenSSL 1.1 build failures
Fedora 26 and Debian 9 have both GCC 7 and OpenSSL 1.1. These fixes add
support for the newer versions of these libraries.
2017-07-24 10:38:47 +03:00
ba5a321ec3 MXS-1300: Improve overall error handling
All errors are now returned as rejected Promises. This will make the error
reporting more consistent with the tested output as well as the actual
output.

Added more tests for error cases and fixed minor argument processing bugs.
2017-07-23 08:21:00 +03:00
c9f3d014d6 MXS-1300: Improve test coverage
The tests now cover 100% of all source files with the exception of the
call.js and common.js source files.
2017-07-23 08:21:00 +03:00
090de1a0f7 MXS-1220: Make individual listeners resources
The listeners are now a proper sub-resource of the service resource. This
means that it acts like a normal resource and can be queried both as a
collection of resources and as an individual resource.
2017-07-23 08:21:00 +03:00
e76dc80e47 MXS-1300: Reorganize and refactor tests
The tests are now sorted by command type. This allows for more consistent
test creation as tests can be done per source code file instead of per
object type.

Added helper functions for common testing operations. The two main ones
are doCommand, which executes a MaxCtrl command and returns a result, and
verifyCommand, that executes a command and verifies the result via the
REST API.
2017-07-23 08:21:00 +03:00
03b00c7746 Fix error message for unknown global parameter
When an unknown global parameter was modified, the error message
mistakenly logged onl the value of the parameter instead of the name and
value.
2017-07-23 08:21:00 +03:00
5edfe3040e MXS-1300: Return a rejected promise for unknown commands
When an unknow command is executed, the core should return a rejected
promise.
2017-07-23 08:21:00 +03:00
84dc0b2d37 MXS-1300: Add enabled log priorities to /maxscale/logs resurce
The logging priorities should be displayed as a part of the resource as
they can be enabled or disabled at runtime.
2017-07-23 08:21:00 +03:00
f28a919982 MXS-1300: Remove redundant commands
The disabling of maxlog and syslog should be done by altering the logging
parameters.
2017-07-23 08:21:00 +03:00
53789f3b4b MXS-1300: Fix logging and maxscale alteration
The alterations to logging and maxscale were sending malformed JSON to
MaxScale. Boolean values weren't converted to JSON booleans but were sent
as strings.
2017-07-23 08:21:00 +03:00
310ef3b31e MXS-1300: Add show logging command
The show logging command shows the current log file and the logging
parameters.
2017-07-23 08:21:00 +03:00
cf8028a5ce MXS-1300: Un-modularize the core
Making the core a module proved to bring more problems than it solved. For
the sake of simplicity in installation and code coverage reporting, the
core is now completely contained in the `lib/` directory.

Also added preliminary coverage reporting with nyc.
2017-07-23 08:21:00 +03:00
0f1a427458 MXS-1300: Add monitor test to MaxCtrl
The test runts tests on the commands that interact with monitors.
2017-07-23 08:21:00 +03:00
0f8cd4e90c MXS-1300: Add monitor credentials as create options
The monitor user and password can now be defined as options to the create
command. This should help with the creation of a monitor in one request.

Fixed the command description of `create listener`.
2017-07-23 08:21:00 +03:00
fa6bea33fe MXS-1300: Fix monitor and listener creation
The creation commands for monitors and listeners referred to undefined
variables. Also fixed the test case names being duplicated.
2017-07-23 08:21:00 +03:00
2411288388 MXS-1300: Add service test for MaxCtrl
The test goes through the commands that affect services.
2017-07-23 08:21:00 +03:00
d515094646 Return error on bad service parameter alteration
When a service parameter is being altered and it is not in the list of
dynamic parameters, the alteration function returns an error.
2017-07-23 08:21:00 +03:00
2e274d0d8b Added virtual destructor in Rule base class
Added virtual destructor in Rule base class
2017-07-20 15:45:14 +02:00
741c6d9aaf Documentation update for obfuscation method
Example changed to reflect new algorithm output
2017-07-18 11:18:32 +02:00
e9ad2e5627 Masking filter: added new obfuscation routine
Masking filter: added new obfuscation routine
2017-07-18 11:18:32 +02:00
d1bee274fa MXS-1300: Add MaxCtrl server tests
The test creates, destroys and alters servers with both valid and invalid
parameters.
2017-07-18 11:37:18 +03:00
de546a0356 MXS-1220: Validate integer values for alter operations
All of the alter operations weren't properly validating the integer
parameters. This appeared to the client as successful modifications of
parameters with bad value.
2017-07-18 11:37:18 +03:00
11e270e60a MXS-1220: Add missing server resource fields
The server resource now correctly fills the `authenticator` and
`authenticator_options` fields` if they are defined.
2017-07-18 11:37:18 +03:00
f9e161eaf6 MXS-1300: Add finer granularity to error message content
If an unexpected network error occurs, only the error part of the response
should be printed. The complete object should be dumped only as a last
resort.
2017-07-18 11:37:18 +03:00
64c5d6d610 Control npm testing with environment variables
The NPM based tests can now skip the stopping of the docker-compose
cluster by defining the SKIP_SHUTDOWN environment variable.
2017-07-18 11:37:18 +03:00
9e688772cc MXS-1300: Make the MaxCtrl core a Node.js module
The core is now a module that is loaded by the command line client. This
allows the core library to be reused for testing.
2017-07-18 11:37:18 +03:00
9a6e281456 MXS-1300: Add list listeners command
The listeners of a service can now be listed.
2017-07-18 11:37:18 +03:00
985fea43a0 MXS-1220: Fix /sessions/ response documentation
The response body listed listener sessions when only client sessions are
listed.
2017-07-18 11:37:18 +03:00
3255d58e70 MXS-1300: Take the refactored core into use
The refactored maxctrl function is now in use.
2017-07-18 11:37:18 +03:00
b98b326bba MXS-1300: Refactor multi-hosts command execution
The main `maxctrl` function now does the cluster health checks and handles
the iteration over the host list. This solves the problem of how to
execute commands on multiple hosts while still allowing recursive calls
into the common functions.

This does not, however, solve the problem of how interconnected commands
across a set of servers are handled. One way to solve this would be to
offer a second main function, `maxctrl_cluster` which would call the
callback with a set of servers instead of a single server.
2017-07-18 11:37:18 +03:00
aabbf64991 MXS-1300: Add server state manipulation test
The test sets and clears server states and verifies it via the REST
API. It also checks that only correct arguments are accepted.
2017-07-18 11:37:18 +03:00
18f05578c3 MXS-1300: Disable all output with --quiet
As the option is currently only used for testing, it's better to have it
produce no output at all.
2017-07-18 11:37:18 +03:00
738dc48df7 MXS-1300: Add basic maxctrl tests
Added basic tests for maxctrl. They simply test that the diagnostic
commands work.
2017-07-18 11:37:18 +03:00
d938dcc701 MXS-1300: Make output optional
Minor refactoring to the core library to allow multiple calls from within
the same program.

Added --quiet option to silence output so that tests aren't so
verbose. Currently this only works on UNIX based systems.
2017-07-18 11:37:18 +03:00
ec5b0fea39 MXS-1300: Use native promises for requests
The request-promise-native package adds support for request with native
promises. This is a convenient way to synchronize multiple HTTP requests.

The functions are changed to use promises to make testing easier. With
promises, the testing code can use the chai-as-promised library.

There are a few cases where doRequest is called with a callback that again
calls doAsyncRequest. With multiple hosts, this causes each command to be
propagated to all servers. This is a design flaw of the current multi-host
mode and needs to be changed.

Changed maxctrl.js to wait on the promises to silence some warnings if the
promise rejections are ignored.
2017-07-18 11:37:18 +03:00
b54e94ce95 MXS-1300: Add TSV output to MaxCtrl
TSV output is a lot easier to parse compared to the pretty-printed
Unicode.
2017-07-18 11:37:18 +03:00
816e317485 MXS-1300: Make MaxCtrl more like a library
All invocations into the common helper functions are now done through the
`maxctrl` function. This allows the program arguments to be passed to the
core as a parameter instead of reading them from global variables.

This helps with the implicit initialization that was done when the yargs
library was required which caused duplicated output.

Refactored the core functions so that they only process the argument
vector. The parsing of the argument vector is done in maxctrl.js where it
is more appropriate.
2017-07-18 11:37:18 +03:00
67b2654f50 Move REST API test scripts into a common directory
Moved and renamed the starting and stopping scripts from the REST API
tests to a common directory. This way the MaxCtrl tests can use the same
scripts to start and stop MaxScale.

Also moved the test configuration file into the `test/` directory and
changed some of the default directory locations.
2017-07-18 11:37:18 +03:00
173a97ae70 Refactor REST API test script into a npm test framework
The script can now be used to run an arbitrary set of Node.js tests as
long as they define the `test` npm target. Refactored REST API tests to
fit into this framework.
2017-07-18 11:37:18 +03:00
01fa1a827a MXS-1300: Move the REST API tests back into the core
As the REST API is a part of the core, it is more appropriate for the
tests to reside there as well. Further refactoring of the testing needs to
be done to allow multiple components to use the same framework but with
different tests.
2017-07-18 11:37:18 +03:00