648 Commits

Author SHA1 Message Date
Jenkins nymea
2d08e7a028 Merge PR #241: Improve log DB housekeeping performance 2020-01-22 23:47:15 +01:00
Jenkins nymea
e256ac034d Merge PR #238: Add System Time API 2020-01-22 23:47:14 +01:00
Michael Zanetti
21f61b89a2 add qtquick to build dependencies, needed by tests 2020-01-06 19:17:58 +01:00
Michael Zanetti
03c8e8d114 Improve log DB housekeeping performance
Getting row count on a db with approx 200000 entries on an RPi takes
about 500ms. To avoid this, this branch keeps better track of entries
in the DB and only queries DB count if we can't calculate it ourselves.
Trimming itself takes some 150ms. To reduce those calls it changes the
threshold of when to trim the DB from a fixed value of 100 to 1% of
maxDBSize.

Last but not least, getLogEntry() calls are now prioritized over
appendLogEntry() calls in order to stay responsive to client apps even
if the DB is overloaded with a huge job queue.

If the job queue grows to over 1000 jobs, logs of the same device/type
will be discared to avoid log flooding.
2020-01-05 23:46:51 +01:00
Michael Zanetti
d579192b49 stabilize test 2019-12-21 21:42:42 +01:00
Michael Zanetti
127aacf2f4 add copyright headers 2019-12-19 10:44:35 +01:00
Michael Zanetti
6e69e13538 add missing files 2019-12-16 12:27:09 +01:00
Michael Zanetti
b2960f5f62 fix typo 2019-12-16 12:23:26 +01:00
Michael Zanetti
4426f5a61e Drop test that won't work any more 2019-12-16 12:07:20 +01:00
Michael Zanetti
b6a3a8e0bf fix typos in api doc 2019-12-16 11:35:38 +01:00
Michael Zanetti
331966c8dd Bump JSON api version 2019-12-16 11:26:32 +01:00
Michael Zanetti
9b07216768 Add system api to configure the system time
This gets rid of the locally kept time zone which caused issues
in plugins and the ScriptEngine.
2019-12-15 12:44:14 +01:00
Michael Zanetti
24cecf9d47 Add tests for the scriptengine 2019-12-10 18:49:28 +01:00
Michael Zanetti
5a36c2347f fix logging system to cope with the qml output redirection 2019-12-01 00:08:57 +01:00
Michael Zanetti
22f7654444 bump some version numbers 2019-12-01 00:08:57 +01:00
Michael Zanetti
d4081195d4 Some more work on the script engine 2019-12-01 00:07:35 +01:00
Michael Zanetti
b97e4e5b0c Add support for JS device plugins 2019-12-01 00:07:35 +01:00
Jenkins nymea
387ce07bf3 Merge PR #234: Weaken password requirements a bit 2019-12-01 00:05:00 +01:00
Michael Zanetti
212ccc8596 remove unneeded processQueue 2019-11-30 23:56:56 +01:00
Michael Zanetti
64a494e44a Fix tests that didn't wait long enough for log entries to be written 2019-11-28 20:47:55 +01:00
Michael Zanetti
1f0e00cb9d Update tests 2019-11-25 12:33:57 +01:00
Michael Zanetti
cee2ed1542 make "make test" target work properly 2019-11-16 00:52:25 +01:00
Michael Zanetti
c7dd26d525 cleanup, fix last tests 2019-11-16 00:44:08 +01:00
Michael Zanetti
f36eac080f fix duplicate query execution 2019-11-15 23:12:27 +01:00
Michael Zanetti
3eac06de6e Threaded log database
This
a) makes the log db threaded by using QtConcurrent to run queries in a
different thread but still keeps ordering of the queries and always
only allows a single query at a time (QSql is not threadsafe). This fixes
removeDevice calls failing if we take more than $jsonprc_timeout to clean
a deleted device from the DB and keeps nymead responsive during that too.

b) generally improces performance of the system by not requiring operations
(emitting events, changing states) to wait for the sync log db entry to be
made.

c) drops some of the houskeeping code on nymea startup. While this will still
do log db housekeeping if the DB exceeds maxDbSize, it will not run
housekeeping on the DB any more at application startup. Reasoning for this
is that there have been reports of rules/log entries beimg destroyed if a
plugin can't be found at application startup. Given our general direction
of working towards more dynamic plugin loading, this might happen more often
in the future and we sure don't want to destroy rules etc when we just
temporarily miss a plugin.

d) tries to fix issue #226 by rotating the DB not only when it fails to open
initially, but also when it fails to insert new entries.
2019-11-15 18:33:10 +01:00
Michael Zanetti
ec15e664e1 cleanup warnings and allow setting "unknown" debug categories 2019-11-06 13:38:22 +01:00
Michael Zanetti
25152c5e27 Add readonly feature to JSONRPC 2019-11-06 00:06:03 +01:00
Michael Zanetti
fa1cd3605c Add deprecation warnings 2019-11-04 11:56:24 +01:00
Michael Zanetti
0e7edd5abd cleanup 2019-11-04 10:52:06 +01:00
Michael Zanetti
3cbd01c1d2 drop all pack/unpack methds 2019-11-03 21:24:16 +01:00
Michael Zanetti
feee5ef23a Fix tests 2019-11-01 20:55:45 +01:00
Michael Zanetti
baaa719b6a Restructuring json done 2019-11-01 20:55:45 +01:00
Michael Zanetti
bdd9876a88 Allow registering QMetaObjects on JSON api 2019-11-01 20:55:45 +01:00
Michael Zanetti
5e3bc2acbd Drop JsonTypes class by distributing logic to json handlers
This is required in order to be able to be more flexible in registering
new types/methods.
2019-11-01 20:46:55 +01:00
Michael Zanetti
567027e99f remove options tests 2019-11-01 20:14:00 +01:00
Michael Zanetti
03b8be22d6 Drop old REST server 2019-11-01 20:14:00 +01:00
Michael Zanetti
977247e950 Complete setup api 2019-10-31 13:09:26 +01:00
Michael Zanetti
0d00342b3a fix tests 2019-10-30 17:35:43 +01:00
Michael Zanetti
0b5f475991 Fix typo 2019-10-19 14:13:48 +02:00
Michael Zanetti
9b1b6d86e6 Allow more granular notification subscriptions in API 2019-10-19 14:13:48 +02:00
Jenkins nymea
55011abaf9 Merge PR #219: Add support for more media service icons 2019-10-18 14:57:23 +02:00
Jenkins nymea
38d2929318 Merge PR #212: Fix wrong wording of Hertz 2019-10-18 14:57:22 +02:00
Michael Zanetti
679e51b027 Fix failing test 2019-10-17 12:21:16 +02:00
Michael Zanetti
32f7f22a7d Add a timeout to api info objects 2019-10-16 17:56:49 +02:00
Michael Zanetti
e7a0d63570 Bump versions 2019-10-16 17:56:49 +02:00
Michael Zanetti
7f0f2d1d09 Rework devicemanager and plugin api 2019-10-16 17:56:49 +02:00
Michael Zanetti
5f11c5062a Include api changes 2019-10-08 17:28:33 +02:00
Michael Zanetti
1f68389a85 Fix Browser icon definition in introspect 2019-10-08 15:51:10 +02:00
Michael Zanetti
0044d0cd3b Fix wrong wording of Hertz
Fixes #210
2019-09-20 16:05:24 +02:00
Michael Zanetti
98bdda1ef2 Add tests 2019-07-25 15:56:18 +02:00