7670 Commits

Author SHA1 Message Date
Markus Mäkelä
957b50c811 Remove trailing whitespace
Removed trailing whitespace in tests and build scripts.
2017-05-26 14:29:28 +03:00
Markus Mäkelä
5c512a3945 Fix atomic code for pre-4.7 GCC versions
The CAS operation used the wrong function and the atomic_store operations
compiled into inadequate assembly on x86 and ARMv7.
2017-05-26 09:57:01 +03:00
Markus Mäkelä
b6b108c8d5 MXS-1220: Fix possible crash on NULL option value
When a request option without a value is given, microhttpd exposes this as
key with a NULL value.
2017-05-26 08:52:38 +03:00
Markus Mäkelä
607bdf3a1b Remove RocksDB storage tests for cache filter
The RocksDB based storage library is no longer built so the test do not
need to be built either.
2017-05-26 08:52:38 +03:00
MassimilianoPinto
2724af60d8 Merge branch 'develop' into MXS-1266 2017-05-25 08:43:10 +02:00
Markus Mäkelä
61d67ee539 MXS-1220: Update build script dependencies
Removed libmicrohttpd dependency, added gnutls and gcrypt dependencies.
2017-05-24 16:21:35 +03:00
Markus Mäkelä
c98f8369f2 MXS-1220: Remove redundant parameter documentation
As all requests support the only parameter `pretty`, there's no point in
documenting it separately for each resource.
2017-05-24 16:21:34 +03:00
Markus Mäkelä
43386333b3 MXS-1220: Add monitor POST documentation
The POST documentation for creation monitors was missing.
2017-05-24 16:21:34 +03:00
Markus Mäkelä
0e5bbbd625 Update Configuration-Guide.md
Renamed `passwd` to `password`. Added an anchor for the old `passwd` name.
2017-05-24 16:21:26 +03:00
Markus Mäkelä
830e47bc8b MXS-1220: Update service resource documentation
Updated service resource documentation. Fixed a few minor typos also in
the server resource documentation.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
9ccb54c107 MXS-1220: Update links in REST API documentation
Added missing v1 prefixes to links.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
c54710cfaa MXS-1220: Update users resource documentation
Updated the users resource documentation.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
6b8b19b439 MXS-1220: Add PUT support for /maxscale/ resource
The /maxscale/ resource now supports PUT requests which modify core
parameters. As not all parameters can be changed at runtime, only
modifications to parameters that support runtime configuration are
allowed.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
3fd82ebae6 MXS-1220: Add alter maxscale MaxAdmin command
A set of the core MaxScale parameters can now be altered at runtime. This
set consists of the authentication timeouts and the admin interface
authentication. Other parameters either can't be modified due to internal
limitations or aren't sensible to modify at runtime.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
69be4d263f MXS-1220: Add admin interface parameters to /maxscale/ resource
The admin interface parameters are now a part of the /maxscale/ resource.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
e6f79953b9 Add missing dependencies to Travis builds
The gnutls and gcrypt packages were missing.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
1067fd352c MXS-1220: Add creation and deletion of admin users
Admin users can now be created via the REST API. This allows remote
management of the administrative interface itself.
2017-05-24 15:05:11 +03:00
Markus Mäkelä
ead9059eeb MXS-1220: Add /users/ resource
The /users/ resource shows all user accounts that can be used with
MaxScale. This resource is further split into two resource collections,
/users/inet and /users/unix, which contain the network users and Linux
accounts respectively.
2017-05-24 15:05:10 +03:00
Markus Mäkelä
7fc2d25cf2 MXS-1220: Allow new REST API users to be created
The REST API now uses the same users as MaxAdmin network interface. This
allows them to be created with MaxAdmin.

The next step is to add user creation to the REST API.
2017-05-24 15:05:10 +03:00
Markus Mäkelä
db78eae9a8 MXS-1220: Use thread-local buffer for errors
The runtime error buffer is now a thread-local buffer. This fixes the
build failure on older systems where the compiler doesn't allow
thread-local non-POD objects to be created.

Also expanded some of the JSON validation functions so that they provide
better errors.
2017-05-24 15:05:10 +03:00
Markus Mäkelä
e3c4bd7f72 MXS-1220: Add more validation checks to request JSON
The requests that send a body should define at least a `data` member.

Added a simple test that checks that bad requests are rejected. This test
should be expanded to check that the returned error body contains the
correct members.
2017-05-24 15:05:10 +03:00
Markus Mäkelä
75e7ac35ed MXS-1220: Always build libmicrohttpd
This allows MaxScale to use the PATCH functionality that's only in the
newer versions of the library. It also removes some of the problems that
exist with older systems that don't support all of the options.
2017-05-24 15:05:10 +03:00
Timofey Turenko
c653a2121d fix avro dir 2017-05-23 21:09:30 +03:00
Timofey Turenko
4ab5db2cff fix avro build 2017-05-23 21:09:30 +03:00
Timofey Turenko
fb439e0f4a add build and test scripts 2017-05-23 21:09:30 +03:00
Timofey Turenko
82f18d1c7e install deps script cleanup 2017-05-23 21:09:30 +03:00
Timofey Turenko
8c6ca38a8a add tests 2017-05-23 21:09:30 +03:00
MassimilianoPinto
f0bb2425aa MXS-1266: added SHOW BINARY LOGS
SHOW BINARY LOGS new query shows binary logs which have GTID saved in
gtid_maps

These feature requires the ‘mariadb10_slave_gtid’ option
2017-05-22 16:26:05 +02:00
MassimilianoPinto
362824579d MXS-1266: Standalone events in transaction (no COMMIT event) are now handled
Standalone events in transaction (no COMMIT event) are now handled:

the GTID is saved to gtid_maps storage.

Transaction detection assumes there is only one query_event after GTID
event with MARIADB_FL_STANDALONE flag set.
2017-05-19 11:43:43 +02:00
MassimilianoPinto
12c862a2c2 MXS-1266: saving GTID, part1: SQL statements review
Saving GTID: SQL statements review in  blr_load_last_mariadb_gtid and
blr_fetch_mariadb_gtid
2017-05-19 10:44:23 +02:00
MassimilianoPinto
6c86e1ef2f MXS-1266: saving GTID components into gtid_maps storage. part1
Saving GTID components into gtid_maps storage will allow to create a
hiearchical binlog cache dir.

Empty GTID  for master registration can be specified with SET
@@global.gtid_slave_pos = ‘’
2017-05-19 10:23:35 +02:00
Esa Korhonen
dbfd631fed Change session registry to a template class
The template class wraps a HashMap such that only a few operations
are allowed. Usage requires specializing a RegistryTraits class
template for each entry type.
2017-05-19 10:16:37 +03:00
Markus Mäkelä
322983a5f4 Merge branch '2.1' into develop 2017-05-17 13:48:52 +03:00
Markus Mäkelä
3b8bda289e Update Resources-Session.md
Removed unimplemented features and updated response content.
2017-05-17 10:14:57 +03:00
Markus Mäkelä
f1c790db52 MXS-1220: Add logging priorities to logs resoure
The logging priorities can now be queried and altered.
2017-05-17 10:14:57 +03:00
Markus Mäkelä
05cb49d48a MXS-1220: Add error messages to bad request
Requests now contain a JSON API-conforming, human-readable error message.
2017-05-17 10:14:57 +03:00
Markus Mäkelä
ac29abd679 MXS-1220: Add support for X-HTTP-Method-Override
This header allows clients to override the request method to work around
client library limitations.
2017-05-17 10:14:57 +03:00
Markus Mäkelä
e01e4ee661 Update Resources-MaxScale.md
Updated the responses and added missing resources.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
adbf537d80 MXS-1220: Add more information to the /maxscale/ resource
The /maxscale/ resource now has values for most of the configuration
parameters in the [maxscale] section as well as the version, commit and
uptime information.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
551f635f50 MXS-1220: Make the http.hh header public
As it contains utility functions for formatting time_t values to HTTP-date
values, there's no real need to make it an internal header.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
112977e011 Update Monitor-Common.md
Minor changes to wording.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
3b9f7a74b6 Update Resources-Monitor.md
Updated monitor resource documentation with new response output.

Added links to standard monitor parameters that can be modified.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
46b07861fe Update Monitor-Common.md
Added missing `user` and `password` documentation.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
e7a6aec010 Update Resources-Filter.md
Updated filter resource documentation with up-to-date request output.
2017-05-17 10:14:56 +03:00
Markus Mäkelä
56cf06ee08 Don't use explicit struct initialization
Older GCC versions don't seem to support explicit struct member
initialization.
2017-05-16 11:39:57 +03:00
Markus Mäkelä
17ba824d9f Only close valid sessions
When a session is being closed, the state needs to be checked. If the
session creation failed, the session need to be only freed.
2017-05-16 11:39:57 +03:00
Markus Mäkelä
39ca791a49 Assign service pointer for cloned tee DCBs
When a cloned DCB is created, the service pointer is not copied and it
needs to be manually set in the newSession entry point. This most likely
due to the fact that the cloned DCB always has a different service and it
is not possible to deduce it.

Another option would be to pass the target service as a parameter but the
whole DCB cloning process could use with a rewrite so any modifications
beyond the required minimum are wasteful.
2017-05-15 19:32:02 +03:00
Markus Mäkelä
159c8bb5d1 Listen for only EPOLLIN events with listeners
The example in the epoll(7) manpage only sets the EPOLLIN event flag.

Although it is not explicitly stated that only EPOLLIN events arrive for
sockets that are listening, any other types of events should not be
relevant for listeners.
2017-05-15 19:32:02 +03:00
Markus Mäkelä
4117dcf410 Only store established connections in the pool
If a connection has not been fully established (i.e. authentication has
been completed) then it should not be considered as a connection pool
candidate.
2017-05-15 19:32:02 +03:00
MassimilianoPinto
2d7df3eb89 Merge branch 'develop' into MXS-1209 2017-05-15 10:39:07 +02:00