Oliver Giles
bbbef11304
update UserManual for 0.6
2018-05-18 12:42:43 +03:00
Oliver Giles
568435cc8e
docker scripts: cache the build environment
2018-05-14 21:15:53 +03:00
Oliver Giles
f5ca5a3d7c
centos: fix rpm building for mid-release versions
2018-05-14 21:15:17 +03:00
Oliver Giles
40ecc2a132
docker scripts: fix OS version numbers
2018-05-14 21:13:51 +03:00
Oliver Giles
806947ca2f
Update manual for queue/start/run commands
...
As implemented in #36
2018-05-14 21:12:25 +03:00
Oliver Giles
bfac7bc397
CMakeLists: Allow passing in the systemd unit dir
...
This is now necessary on centos, where /lib is a symlink to /usr/lib
2018-05-14 21:09:28 +03:00
Oliver Giles
180b5b7117
fix: spell out the constructor for gcc4.8
2018-05-14 20:54:12 +03:00
Oliver Giles
f1e4d10be3
resolves #36 : queue/start/run
2018-05-12 17:56:56 +03:00
Oliver Giles
828b66682d
correct path to new docs page
2018-05-12 17:49:29 +03:00
Oliver Giles
479c519ef3
Split README into UserManual.md
2018-05-12 16:07:43 +03:00
Oliver Giles
649caee297
resolves #30 : job execution timeout
...
Add the ability to configure a timeout in seconds
after which a job run will be automatically aborted
2018-05-12 13:25:19 +03:00
Oliver Giles
ce81be85c7
resolves #48 : custom css ineffectual behind reverse proxy
...
Caddy (and probably other webservers) add a Content-Type header
when one was not supplied by the application backend. Under Chromium,
the css file is not interpreted if the webserver delivers it with
Content-Type: text/plain, althugh it does work if no Content-Type
header is set. To prevent the frontend proxy from adding the wrong
header, set it correctly in the first place
2018-05-04 07:48:48 +03:00
Oliver Giles
083f136186
resolves #41 : strange behaviour of limits
...
On a configuration change, update existing Nodes in Laminar's NodeMap
rather than replacing it with a new map.
2018-04-20 14:18:10 +03:00
Oliver Giles
c937362961
Update comment about loading configuration files
...
Dynamic reloading of config files was implemented in 216ecee7c5
2018-04-20 12:54:39 +03:00
Oliver Giles
216ecee7c5
resolves #34 : watch for configuration changes
...
Reload the configuration if a change is detected
without requiring a server restart
2018-04-06 18:04:50 +03:00
Oliver Giles
a5d8b985f1
laminarc: replace start with run
2018-04-06 13:43:38 +03:00
Oliver Giles
4d2388c271
resolves #33 : laminar start output should reference run number
2018-04-06 13:35:02 +03:00
Oliver Giles
68d08f369b
resolves #32 : build failure
...
Update to latest capnproto version
2018-02-27 08:54:22 +02:00
Oliver Giles
9c256815e4
resolves #29 : graceful shutdown
...
on SIGINT/SIGTERM:
1. stop accepting new connections
2. send SIGTERM to all child tasks
3. wait for processes to end
4. drop all websockets
2018-02-24 18:53:11 +02:00
Oliver Giles
30f2203a3b
resolves #28 : compensate for server/client clock skew
2018-02-03 16:52:46 +02:00
Oliver Giles
46efb07285
test: add LaminarTest stub
2018-02-03 16:47:41 +02:00
Oliver Giles
e7cba68879
tests: extract pointer to kj::AsyncIoStream
...
Fixes a crash that happens on g++ 6.3 under debian but not
g++ 7.2.1 under arch. Instead of trying to move kj::AsyncIoStream
between each promise handler, just extract and use the raw
pointer and let attach() clean up the Own<> at the end
2018-01-27 19:13:53 +02:00
Oliver Giles
3b267967cf
resolves #31 : exception thrown on bad file descriptor
...
Read or writes to bad file descriptors threw exceptions, just log
this instead. Also make sure that LaminarClients are removed from
the list of clients when a connection is aggressively dropped, and
add test
2018-01-27 13:11:40 +02:00
Oliver Giles
ade58a202a
tests: env lives in /usr/bin
2018-01-27 13:06:06 +02:00
Oliver Giles
3bc60ec8f4
add basic server test
2018-01-27 12:59:39 +02:00
Oliver Giles
5ff3bbe2bb
add basic tests for conf, database and run
2018-01-26 13:07:02 +02:00
David Kalnischkies
ae961b97cb
replace gif status indicators with unicode symbols
2018-01-08 08:03:46 +02:00
Oliver Giles
6e4c89bd73
improve web notification format
2018-01-05 10:50:50 +02:00
Oliver Giles
d7351c0c70
fix compile error on 32-bit Linux
...
On 32-bit Linux, time_t is a long. Laminar extensively uses
time_t but provided only int and int64 db access, making the
use of long ambiguous. Since there is no explicit use of int64,
and because on 32-bit Linux long and int are recognized as
different types despite being the same width, replacing the
int64 handlers with long handlers fixes the compile error
2018-01-04 08:40:10 +02:00
Oliver Giles
3b0efcac9d
resolves #23 : In-browser notification
...
This implements web notifications on job completion. Opt-in
by default, the preference is saved in js localStorage and
can be toggled directly on any page
2017-12-29 17:18:43 +02:00
Oliver Giles
93b428529e
webui may be modified with custom style.css
2017-12-29 11:14:20 +02:00
Oliver Giles
6919a74d0a
correct install dir for systemd laminar.service
2017-12-29 09:12:51 +02:00
Oliver Giles
e1a0c7bd0b
resolves #24 : notify and reconnect interrupted connections
...
A notification is shown on the webui when the websocket
connection is lost, and periodic retry is attempted
2017-12-23 17:15:48 +02:00
Oliver Giles
9eb90de5b1
readme: add note about github webhooks
2017-12-22 17:10:46 +02:00
Václav Valíček
1bd4300d1b
Enable colored output for output logs
2017-12-21 08:57:24 +02:00
Oliver Giles
1f23ec5fb2
escape html tags in log output
...
While normally this isn't enough to prevent XSS, this output will only
appear in the body of a <pre>, and anyway the scripts are semi-privileged
2017-12-21 08:46:00 +02:00
Oliver Giles
3129f0e73b
fix pedantic compiler warnings
2017-12-21 08:19:45 +02:00
Oliver Giles
e0a130f33d
add named getters to RunSet
...
this improves readability by removing the index-based
get<> methods in favour of explicitly named methods
2017-12-20 09:02:15 +02:00
Oliver Giles
bb9486e066
use compliant include guards
2017-12-20 08:24:25 +02:00
Oliver Giles
9e1a65ccee
server: minor websocket client handler refactor
...
Now explicitly closed connections on the client side are
closed with a clean error code. This is motivated by upcoming
work to detect broken websockets and automatically reconnect
2017-12-16 18:21:33 +02:00
Oliver Giles
eb5b900849
update README for 0.5
2017-12-11 19:06:32 +02:00
Oliver Giles
3369482182
add missing sqlite dependency in docker build scripts
2017-12-11 18:32:07 +02:00
Oliver Giles
ff42dae7cc
read remaining data in run pipe when reaping
...
This fixes a bug where the last pieces of console output were lost. In that
case, the event loop scheduled the ended child process's SIGCHLD handler
before the handler to read the last of the process's output. We work around
that by doing an additional (non-blocking) read in the SIGCHLD handler
2017-12-09 20:27:08 +02:00
Oliver Giles
76e0e9e62a
resolves #22 : allow keeping N rundirs
...
This replaces LAMINAR_KEEP_RUNDIR (bool) with LAMINAR_KEEP_RUNDIRS (int)
2017-12-09 20:23:24 +02:00
Oliver Giles
74443c292a
Fix copyright years
...
This reverts commit 4e911756bc
.
In addition, copyright years are now expressed in the form of
(year file added)-(year file last changed)
2017-12-09 12:21:34 +02:00
Oliver Giles
e371f8ca5a
server: use regular char array as buffer
...
This approach finally solves the crash under hardened gentoo
discussed in #19
2017-12-07 18:28:12 +02:00
Oliver Giles
4c63cef7ac
remove unnecessary attach()
2017-12-06 21:59:22 +02:00
Oliver Giles
272176a6a5
server: allocate a single buffer per file descriptor
2017-12-06 21:51:50 +02:00
Oliver Giles
b70e501d6d
attempt to solve segfault under hardened gentoo
...
Can't reproduce this locally, but looks like using a std::string
as an arbitrary buffer is causing problems. See #19
2017-12-06 09:24:35 +02:00
Oliver Giles
9c92c5b514
don't leak file descriptors into runs
2017-12-04 20:31:23 +02:00