1010 Commits

Author SHA1 Message Date
Cameron Diver
49dbaaba12
Allow newlines to be part of environment variables
We were not allowing newlines previously by virtue of the regex not
allowing them. The docker daemon and supervisor handling code both
support them, so we allow them in the parsing code too.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-12 11:19:55 +00:00
Cameron Diver
6bf008cc85
Remove environment variable whitespace trimming
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-11 17:13:35 +00:00
Cameron Diver
3d6dc88eb0
Make sure to correctly convert config emit events after validation
We were validating the input configuration values by coercing them to
the correct type, and then using the initial value to be saved (which
currently is always converted to a string).

We now use the coerced value as the actual value we will store, and more
importantly emit. This means that the config.on('change' ...) calls will
always be properly typed, which before this change was not a guarantee
that we could make.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-11 11:22:08 +00:00
Cameron Diver
88f19b4147
Set default delta apply timeout of 0
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-11 10:21:04 +00:00
Cameron Diver
f3264862ca
fix: Normalize ports from compose file on instantiation
Adjacent ports are always grouped together by docker when reporting the
container state (from an inspect), so adjacent ports defined in the
compose file would not match as they would not have been normalized.

We make sure to always normalize the input port configuration, so that
it will match the docker output (if it should).

We also don't sort in the fromComposePorts function anymore as that is
handled by the normalize function.

Closes: #897
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-08 15:14:07 +00:00
Cameron Diver
e9b51bbcd7
fix: Rework delete-then-download handling in state engine
In the original implementation it was possible that the delete did not
wait for the kill step to be finished, so it would not be deleted.

We seperate this process into two steps, to allow for the container to
have stopped before proceeding.

Change-type: patch
Closes: #841
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-06 11:41:05 +00:00
Cameron Diver
828a0fc345
Make the failure backoff time the same as the appUpdatePollTime
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 18:40:18 +00:00
Cameron Diver
146267b402
Backoff on image download error
Change-type: patch
Closes: #873
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 18:40:18 +00:00
Cameron Diver
c0e68bb069
Add the release to the status endpoint
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 17:57:58 +00:00
Cameron Diver
769e2f3c51
Add application status endpoint
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 17:57:57 +00:00
Cameron Diver
d863326783
misc: Improve typings
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 17:57:57 +00:00
Cameron Diver
2e09ed071c
Ensure the balena-fin always has it's overlay assigned
Change-type: patch
Closes: #884
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-05 16:19:42 +00:00
Cameron Diver
d8085a6ef8
fix: Don't attempt a pull if the token requests fails
Change-type: patch
Closes: #879
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-04 17:50:26 +00:00
Cameron Diver
d75c58f09d
Move legacy renaming to formatting function
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-04 11:08:36 +00:00
Cameron Diver
f12f474516
Fix typo in OVERRIDE_LOCK
Closes: #885
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-02-04 11:08:26 +00:00
Cameron Diver
ef7d993db6
Wrap services.getAll in a bluebird promise
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-31 10:09:25 +00:00
Cameron Diver
6a9ca2a60d
fix: Properly bind context to healthchecks
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-29 14:19:45 +00:00
Cameron Diver
707ddb5f45
fix: Only apply supervisor api authentication after healthcheck entry
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-29 14:19:45 +00:00
Cameron Diver
8315413046
Add missing ServiceManager methods
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-29 11:47:41 +00:00
Cameron Diver
ba000a73fc
refactor: Convert ServiceManager to typescript
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-25 13:52:05 +00:00
Cameron Diver
e5893c0ee0
Improve error and logger typings
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-25 13:52:04 +00:00
Cameron Diver
ecffa12e41
misc: Lint fixes
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-25 13:52:04 +00:00
Cameron Diver
02736113a3
refactor: Convert docker-utils module to typescript
Change-type: patch
Closes: #868
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-25 13:52:04 +00:00
Cameron Diver
9a97451e7a
fix: Fix intial config reporting
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-23 17:51:52 +00:00
Cameron Diver
24ce72a2c3
Clear up images.ts module code for simiplicity
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-23 16:40:15 +00:00
Cameron Diver
6f9d9e5de6
Prefer optional type in ConfigChangeMap
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-23 16:31:33 +00:00
Cameron Diver
6a1e787eee
Use dictionary for db key
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-23 16:30:43 +00:00
Cameron Diver
32acde0a99
refactor: Convert volumes module to typescript
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-22 20:25:04 +00:00
Cameron Diver
91b553dd32
refactor: Convert compose/images module to typescript
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-22 20:20:05 +00:00
Cameron Diver
1af13d3373
typings: Improve database typings by allowing unknown dictionary keys
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-22 13:25:39 +00:00
Cameron Diver
fed01c355c
typings: Improve docker-utils typings
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-22 13:25:01 +00:00
Cameron Diver
d1e1297f6d
misc: Add Nullable<T> helper type
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-21 11:18:41 +00:00
Cameron Diver
0505c0f976
config: Properly type the change events from config module
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-21 11:13:14 +00:00
Cameron Diver
06cdaddd71
Send connection message when streaming local mode logs
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-16 13:14:49 +00:00
Cameron Diver
9a98fc4c84
refactor: Small code changes
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-11 10:38:05 +00:00
Cameron Diver
6a3148ff80
refactor: Remove unnecessary validations and casts
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-11 10:37:25 +00:00
Cameron Diver
db74e748a1
refactor: Fully type and validate config module set and get
We define the type for each config value, and validate the data when
retrieving and setting it.

Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-11 10:37:25 +00:00
Cameron Diver
ac4866170e
refactor: Remove scaffolding for unused mutable config functions
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-11 10:37:24 +00:00
Cameron Diver
81b17faab1
fix: Use logind manager to request reboots and shutdowns
Change-type: patch
Closes: #861
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-09 11:23:43 +00:00
Cameron Diver
a970ec5377
Fix context bind errors by switching to async/await
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-08 16:22:47 +00:00
Cameron Diver
de21c2ab2b
Specify TODO in DeviceApplicationState comment
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-08 11:59:56 +00:00
Cameron Diver
01ed7bb103
refactor: Convert ApiBinder module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-08 11:59:56 +00:00
Cameron Diver
d5f4ac690f
refactor: Only promisify read and write locks once
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-08 11:59:54 +00:00
Cameron Diver
9decea1d3b
refactor: Convert supervisor api module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-08 11:59:53 +00:00
Cameron Diver
3a130f4f9c
refactor: Change config modules export type to new-style
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-02 18:12:22 +00:00
Cameron Diver
dc34025545
refactor: Generate and normalise PortMaps from compose ports in-class
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-02 12:19:30 +00:00
Cameron Diver
557c32b80e
compose: Normalise target ports for comparison with docker's output
Docker always returns ports in ascending order, so if they aren't
specified like that in the compose, a restart loop would occur. This
patch changes the port maps to be stored in ascending order, based on
an alphabetical sort of the internalStart port (not taking into account
the protocol). This is the same as how Docker returns them, so they will
match, regardless of input form.

Change-type: patch
Closes: #824
Signed-off-by: Cameron Diver <cameron@balena.io>
2019-01-02 11:24:56 +00:00
Cameron Diver
b32fba43e1
refactor: Convert DeviceConfig module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2018-12-21 17:18:35 +00:00
Cameron Diver
7ba1ab981c
types: Make DeviceApplicationState reflect state endpoint
Also change the return format of ApplicationManager.getStatus(), which
does not conform to the above.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2018-12-21 17:18:33 +00:00
Cameron Diver
de5157c04c
refactor: Change export style of db to named
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2018-12-21 17:18:33 +00:00