Commit Graph

1198 Commits

Author SHA1 Message Date
Pagan Gazzard
c15f77434b Update pinejs-client-request to 7.x
Update pinejs-client-request from 5.2.0 to 7.0.0

Change-type: patch
2020-06-18 12:24:52 +00:00
Cameron Diver
0e8d92e08a Make service-manager module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-17 14:56:57 +00:00
Cameron Diver
adaad786af Make volume-manager module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-17 14:56:57 +00:00
Cameron Diver
8fc97b9de8 Make network-manager module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-17 14:56:57 +00:00
Akis Kesoglou
1dccbaecd8 Use API v6
See: https://github.com/balena-io/open-balena/issues/80
Change-type: minor
2020-06-15 13:57:32 +03:00
Cameron Diver
695d91d494 Db-format module code fixups
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-15 10:53:21 +01:00
Robert Günzler
ae646a07ec Add label to expose gpu to container
In the absence of an upstream implementation of the DeviceRequest API introduced
as part of Docker API v1.40 we roll our own using a feature label.

As per my comment in the code, we fall back to the default behavior of
docker cli's `--gpu` and request single device with the `gpu` capabilty.
The only implementation at the moment is the NVIDIA driver; here:
https://github.com/balena-os/balena-engine/blob/master/daemon/nvidia_linux.go

Background on the composefile implementation:
https://github.com/compose-spec/compose-spec/issues/74
https://github.com/docker/compose/issues/6691

Change-type: patch
Connects-to: https://github.com/balena-os/balena-jetson/pull/75
Signed-off-by: Robert Günzler <robertg@balena.io>
2020-06-11 14:06:16 +02:00
Cameron Diver
b31d5007fb Move database app processing out to its own module
This is part of the work to make the application-manager module much
less monolithic, in preperation for system apps and more generally
multi-app.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-11 11:55:11 +01:00
Cameron Diver
c0e170c61f Make target-state-cache a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-11 11:55:11 +01:00
Cameron Diver
b5918f0d84 Respect an initialDeviceName field in the config.json
Closes: #909
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-10 13:27:03 +01:00
Cameron Diver
2b3dc2fbce Make images module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-10 11:29:28 +01:00
Rich Bayliss
b89425c607
fix: API auth missing on state GET/PATCH
When performing a state GET/PATCH the authentication header was being
missed off.

Change-type: patch
Signed-off-by: Rich Bayliss
2020-06-09 15:03:16 +01:00
Cameron Diver
651e48b1bd Make logger module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-08 17:19:20 +01:00
Pagan Gazzard
e37b52dd68 Fix exponential backoff for state polling
Change-type: patch
2020-06-08 15:41:11 +01:00
Cameron Diver
389e14ec6b Make the event-tracker module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-08 10:13:33 +01:00
Pagan Gazzard
17a5d8dd49 Isolate target state fetching to its own module which emits on update
Change-type: minor
2020-06-03 17:37:38 -04:00
Cameron Diver
aad20e2c2f Make docker module a singleton
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-02 17:57:18 +01:00
Cameron Diver
ff4a31a0e6 Make the config module a singleton
Change-type: patch
Co-authored-by: Pagan Gazzard <page@balena.io>
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-06-02 14:29:05 +01:00
Miguel Casqueira
5550a3a330 Refactor device-state healthchecks to log reason for failure
Closes: #1292
Change-type: minor
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-29 16:24:01 -04:00
Miguel Casqueira
ef83acdaeb Refactor api-binder healthchecks to log reason for failure
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-29 16:14:58 -04:00
Pagan Gazzard
1decd87c21 Update dependencies
Change-type: patch
2020-05-29 14:22:23 -04:00
Cameron Diver
1d7381327e Make the db module a singleton
We were treating the database class as a singleton, but still having to pass
around the db instance. Now we can simply require the db module and have
access to the database handle.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-29 15:02:38 +01:00
Cameron Diver
972b896c95 Check for ApiError before using it as such
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-26 14:43:59 +01:00
Cameron Diver
eaaa9c257e check for 409 status code, rather than string matching uuid conflicts
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-21 14:57:26 -04:00
Cameron Diver
87278c0d8c Use safeStateClone to avoid call-stack exceeding errors
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-21 16:47:09 +01:00
Miguel Casqueira
db7c27037c Improved handling of invalid appId in V2 state endpoint
Closes: #1294
Change-type: patch
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-19 10:53:19 -04:00
Pagan Gazzard
fb90042c39 Switch to balenaApi for the state patch as patching cannot be cached
Change-type: patch
2020-05-18 18:17:48 +00:00
Cameron Diver
6972dcd92d Fix leftover spurious return from typescript conversion
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-18 15:21:33 +01:00
Pagan Gazzard
dc187f0036 Catch errors in the target state poll so polling will always continue
Change-type: patch
2020-05-18 14:14:52 +01:00
Pagan Gazzard
afae5d15d4 Avoid querying instantUpdates on every state poll
Change-type: patch
2020-05-18 13:23:44 +01:00
Pagan Gazzard
b05d597ade Fix default request options
Change-type: patch
2020-05-16 14:05:47 +01:00
Miguel Casqueira
466c7999db Remove CoffeeScript tests and all CoffeeScript tools
Closes: #1318
Change-Type: patch
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-15 13:01:51 -04:00
Pagan Gazzard
758f3caa48 Update to @balena/lint 5.x
Change-type: patch
2020-05-15 12:08:42 +01:00
Cameron Diver
58c6a69e5a Add a random offset to the poll interval with each poll
Change-type: patch
Closes: #1242
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-15 10:34:06 +01:00
Cameron Diver
0bceffffb6 Cache service names in local log backend
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-14 09:41:40 +01:00
Miguel Casqueira
838c1ebba4 Correctly check if value is a valid Integer
Closes: #1180
Change-type: patch
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-12 12:42:14 -04:00
Miguel Casqueira
8295858b32 Added endpoint to check if VPN is connected
Change-type: minor
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-11 21:21:44 -04:00
Miguel Casqueira
402a85cf2b Decoupled checking VPN status from notify callback
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-11 20:43:03 -04:00
Pagan Gazzard
913418bb37 Remove unnecessary config.json keys
Change-type: patch
2020-05-08 12:56:42 +01:00
Miguel Casqueira
60c07fc2fc Move SupervisorAPI state change logs to appropriate functions
Closes: #1277
Change-type: patch
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-07 13:48:12 -04:00
Cameron Diver
8f09022d1f Don't use the openvpn alias to check VPN status
Closes: #1293
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-06 17:15:44 +01:00
Cameron Diver
31957566e5 Remove legacy fallback to DROP rule in iptables
This has not been necessary for a long time, and wwe can now remove it.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-05 12:15:19 +01:00
Cameron Diver
7b1f03ced5 Add an ESTABLISHED flag to API iptables rules
This allows a response to an input with dport=`supevisor api port` and
is required when the host OS is doing stateful firewalling.

This should not affect things when stateful firewalling is not in
effect, as the standard OUTPUT chain policy is ACCEPT, so we're just
being explicit about it.

Change-type: patch
Backport-to: next, current, sunset
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-05 12:15:12 +01:00
Miguel Casqueira
2007a98940 Added Bearer Authorization spec
Closes: #1249
Change-type: minor
Signed-off-by: Miguel Casqueira <miguel@balena.io>
2020-05-04 13:22:58 -04:00
Cameron Diver
f599799950 Remove double printing of API status error
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-21 09:51:56 +01:00
Cameron Diver
f791424829 ⤴️ Upgrade migrations to work with knex
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-15 13:37:50 +01:00
Cameron Diver
a43d71d1ac 📄 Upgrade knex to avoid CVE-2019-10757
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-15 13:37:50 +01:00
Cameron Diver
826eec2e4f 🚀 Update supervisor to node12
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-13 14:36:59 +01:00
Cameron Diver
68936a10a8 Rename systemd.ts to dbus.ts
This is because it's more general, and just provides methods which act
over dbus.

Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-13 10:32:51 +01:00
Cameron Diver
37feb7e325 Move from dbus-native to dbus
Closes: #1049
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-04-13 10:07:14 +01:00