1
0
mirror of https://github.com/ohwgiles/laminar.git synced 2024-10-27 20:34:20 +00:00
Commit Graph

35 Commits

Author SHA1 Message Date
Oliver Giles
3fde38c6b8 job leader process
Implement a separate process, the "leader", which runs all the
scripts for a job run, instead of directly from the main laminard
process. This makes for a cleaner process tree view, where the
owning job for a given script is clear; also the leader process
acts as a subreaper to clean up any wayward descendent processes.

Resolves #78.
2019-12-23 07:56:37 +02:00
Oliver Giles
304ef797b8 install laminard in usr/sbin not usr/bin
complies with FHS
2019-12-13 11:39:30 +02:00
Oliver Giles
39ca7e86cf replace websockets with sse and refactor
Large refactor that more closely aligns the codebase to the kj async
style, more clearly exposes an interface for functional testing and
removes cruft. There is a slight increase in coupling between the
Laminar and Http/Rpc classes, but this was always an issue, just until
now more obscured by the arbitrary pure virtual LaminarInterface class
(which has been removed in this change) and the previous lumping
together of all the async stuff in the Server class (which is now
more spread around the code according to function).

This change replaces the use of Websockets with Server Side Events
(SSE). They are simpler and more suitable for the publish-style messages
used by Laminar, and typically require less configuration of the
reverse proxy HTTP server.

Use of gmock is also removed, which eases testing in certain envs.

Resolves #90.
2019-10-05 20:06:35 +03:00
Oliver Giles
4a07e24da3 split server into http and rpc parts
this is initial preparation for a larger refactor
2019-09-27 20:50:46 +03:00
Oliver Giles
95482c78a5 resolves #80: reverse-proxy with custom base URL
Fix all hrefs and vue routes to correctly operate against the
<base href> tag. Add a configuration parameter to override the
content of the href attribute, and describe its use.
2019-03-29 22:43:16 +03:00
Oliver Giles
fd03993744 resolves #75: CMAKE_INSTALL_PREFIX not always respected 2018-12-14 14:38:33 +02:00
Oliver Giles
42fc7284cd move conf file and unit file to etc dir 2018-10-16 20:40:10 +03:00
Oliver Giles
fda11a652b Install bash/zsh completions in correct locations 2018-10-16 20:38:48 +03:00
Oliver Giles
08b3f25a22 Replace boost/filesystem with kj/filesystem
Lose the boost dependency since recent versions of capnproto's kj
also provide a nice filesystem library. Take the opportunity to
refactor the Run object to become more than POD and to encapsulate
some of the functionality that was done in the Laminar class

Part of #49 refactor
2018-09-28 12:43:40 +03:00
Oliver Giles
4ffc22c657 use promises to control job runs
This is a refactor that more cleanly uses the kj framework for handling
processes spawned by Runs. This obviates the workaround introduced back in
ff42dae7cc, and incidentally now requires c++14.

Part of #49 refactor
2018-07-20 17:40:56 +03:00
Oliver Giles
e506142fa4 Update Chart.js to latest: 2.7.2
Adapt to new API. This removes a few workarounds and should
contribute nicely to #44, #45 and #57
2018-07-20 14:18:12 +03:00
Oliver Giles
4c2aa2680f Implement websocket communication with kj-http
Now that capnp/kj provides http and websocket functions, replace
the excellent websocketpp library with the kj functions. This
removes a dependency and allows for more consistent idiomatic
code. Thanks websocketpp, it was great to have you along!

This should enable parts of the refactor described in #49
2018-06-30 20:34:56 +03:00
Oliver Giles
b1dc0d62a0 Link binary resources rodata with GNU-stack note
Improve the linking of binary resources so the content is in .rodata
and the object contains a read-only flagged GNU-stack note. This causes
GNU ld to not mark the stack executable in the final binary.

Resolves #55
2018-06-23 14:36:31 +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
46efb07285 test: add LaminarTest stub 2018-02-03 16:47:41 +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
6919a74d0a correct install dir for systemd laminar.service 2017-12-29 09:12:51 +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
ea133382b0 improve run status icon consistency 2017-12-02 18:30:45 +02:00
Oliver Giles
5606f4addc cmake: set CMP0058 to NEW 2017-11-18 11:24:43 +02:00
Oliver Giles
1bcb2c8dfe remove no longer used frontend templates 2017-07-31 08:31:43 +03:00
Oliver Giles
ad9837fd96 frontend: replace angular with vue 2017-07-13 21:59:59 +03:00
Oliver Giles
4e911756bc update copyright year 2016-07-25 15:00:49 +03:00
Oliver Giles
82b39c2961 compress logs in database 2015-12-06 13:47:43 +01:00
Oliver Giles
f9ce571da5 fix linked libraries on ubuntu 2015-11-19 21:44:18 +01:00
Oliver Giles
fadabbf9f6 support cmake 2.8.11 2015-11-19 21:43:57 +01:00
Oliver Giles
2b6cbc18b1 spinner+progress 2015-11-01 11:24:28 +01:00
Oliver Giles
1e0a2ebc36 frontend love 2015-09-26 22:54:27 +02:00
Oliver Giles
0df97e95fd support for job and node tags 2015-09-24 22:02:11 +02:00
Oliver Giles
cf9bee07db add favicon, nav logo 2015-09-20 19:57:05 +02:00
Oliver Giles
1484f7a706 add systemd service file and default conf file 2015-09-19 14:50:22 +02:00
Oliver Giles
f260b7813c remove iniparser, laminar.conf must be sourced 2015-09-19 14:36:03 +02:00
Oliver Giles
a2701dcfd9 Initial commit 2015-09-13 22:25:26 +02:00