Commit Graph

340 Commits

Author SHA1 Message Date
Juan Cruz Viotti
aead4c7531 Make use of resin-register-device 2015-10-13 13:42:25 -03:00
Pagan Gazzard
4003bd4828 Write the registered_at time to config.json as well, in case there is a failure between writing to config.json and writing to knex [Page] 2015-10-13 13:39:39 -03:00
Pagan Gazzard
1ee3072c75 Force a newer bluebird so that we can rely on error properties also being available on the root error. 2015-10-13 13:39:39 -03:00
Pagan Gazzard
52d4cfb9d9 Fix an error where mixpanel events would have the wrong uuid set on first provision. 2015-10-13 13:39:39 -03:00
Pagan Gazzard
ab26c6a401 Don't cache config.json 2015-10-13 13:39:38 -03:00
Praneeth Bodduluri
cb24f338af Add /etc/resolv.conf bind mounts 2015-10-13 13:39:38 -03:00
Pagan Gazzard
e56d9b678e Stop displaying an error message when trying to start a container that is already started. 2015-10-13 13:39:38 -03:00
Pagan Gazzard
a959660f90 Improve error messages reported to the user in the case of finding an empty string. 2015-10-13 13:39:38 -03:00
Pagan Gazzard
e38796e92a Fix trying to delete supervisor container when it reports an alternate tag instead of the primary tag. 2015-10-13 13:39:38 -03:00
Pagan Gazzard
099c13446a Switch to using the dockerode pull progress mechanism. 2015-10-13 13:39:38 -03:00
Pagan Gazzard
b6a1388c56 mixpanelTrack expects the error property to be called error 2015-10-13 13:39:38 -03:00
Pagan Gazzard
4d3a179fcb Nicer error when image tag isn't found 2015-10-13 13:39:38 -03:00
Pagan Gazzard
0063eaf7e7 Reset download progress to null when starting up the supervisor. 2015-10-13 13:39:38 -03:00
Pagan Gazzard
b4306e85db Fix reporting errors without a "cause" 2015-10-13 13:39:37 -03:00
Pagan Gazzard
1b0cdfe094 Remove some logging from supervisor that wasn't that useful (and caused a lot of noise when looking for issues). 2015-10-13 13:39:37 -03:00
Eugene Mirotin
0cb3316ad9 use pinejs request for env vars retrieval 2015-10-13 13:39:37 -03:00
Eugene Mirotin
9b14babc78 use API endpoint to get merged env vars 2015-10-13 13:39:37 -03:00
Pagan Gazzard
98ae03cf67 Add success/failure messages for better user info when there are issues. 2015-10-13 13:39:09 -03:00
Pagan Gazzard
368a23b823 Centralise the logging logic. 2015-10-13 13:39:09 -03:00
Pagan Gazzard
7a3d5b06c2 Report failures to start the container (eg bad CMD in a Dockerfile) 2015-10-13 13:39:09 -03:00
Pagan Gazzard
84b5746111 Share request settings between request and pinejs-client, and make sure a 30s timeout is used. 2015-10-13 13:39:09 -03:00
Pagan Gazzard
c29e0720c6 Switch to monitoring if the host is reachable via tcp, rather than a using a full http request. 2015-10-13 13:39:09 -03:00
Pagan Gazzard
a97cd40b44 Close the tty.js server as well as the ngrok listener. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
5f5b6f5be1 Fix stopping a tty session via the api using the wrong app id. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
cd6dbedfa2 Be very careful about marking an update attempt finished 2015-10-13 13:39:08 -03:00
Pagan Gazzard
c8df0b2f9e Make use of the new cache feature of the request backend for pinejs-client 1.2.0 to make use of an ETags based cache for requests to the api. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
82873d2ef2 Add a comment about updateDeviceState 2015-10-13 13:39:08 -03:00
Pagan Gazzard
48c21e9275 Keep track of target and actual device state, and make sure we keep updating the api with any differences until the two match. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
7765bc6a59 Just consume the stream for publish, avoiding any chance of it returning a value and getting stored up in the stream. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
2c94ea57a2 Only load ngrok/tty on demand. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
d578bbfba3 Use the new status/send/sendStatus style. 2015-10-13 13:39:08 -03:00
Pagan Gazzard
6144ea3aeb Update to express ^4.0.0 2015-10-13 13:39:08 -03:00
Pagan Gazzard
933cbdedad Be more frugal with the bandwidth used for device updates. 2015-10-13 13:37:56 -03:00
Pagan Gazzard
5b82667b3b Remove unused require. 2015-10-13 13:37:56 -03:00
Pagan Gazzard
73c7f29c65 Update pinejs-client to ^1.0.0 2015-10-13 13:37:53 -03:00
Pagan Gazzard
8ca8f96f46 Switch to npm deps for blinking and network-checker 2015-10-13 13:37:08 -03:00
Eugene Mirotin
433d0bc0f0 shorter defaults setting, also allows manual timestamps should someone need them 2015-10-13 13:36:13 -03:00
Eugene Mirotin
d47fdf8a3c log compound messages with timestamp and proper system flag 2015-10-13 13:36:13 -03:00
Pagan Gazzard
3d83c03868 The SUPERVISOR_IMAGE is now the fully qualified image (since it can be on another registry) - update to work with this and stop attempting to delete the actual supervisor image. 2015-10-13 13:36:13 -03:00
Pagan Gazzard
16dea4efcc Download the new version of an application before stopping/deleting the old. 2015-10-13 13:36:13 -03:00
Aleksis Brezas
af89179886 reset provisioning progress to null when supervisor starts 2015-10-13 13:36:12 -03:00
Pagan Gazzard
2d5dca2171 Make sure the supervisor version update is also retried until succeeding. 2015-10-13 13:36:12 -03:00
Pagan Gazzard
1784c75c57 Add secret/apikey based authentication to the supervisor. 2015-10-13 13:36:12 -03:00
Pagan Gazzard
fafef6cc6f Post the supervisor api port to the resin api. 2015-10-13 13:36:12 -03:00
Pagan Gazzard
c8023e0780 Add a config var to determine what port for the api to listen on. 2015-10-13 13:36:12 -03:00
Pagan Gazzard
644ad14295 Use the api to do the filtering, avoiding fetching unnecessary data. 2015-10-13 13:36:12 -03:00
Eugene Mirotin
3c9be7e2ed update Open terminal button styles 2015-10-13 13:36:12 -03:00
Aleksis Brezas
7161c04123 update config.json on device registration 2015-10-13 13:36:12 -03:00
Pagan Gazzard
3f94b353f5 Remove VPN from the supervisor 2015-10-13 13:36:12 -03:00
Aleksis Brezas
c667b55025 move uncaught exception to the top of app.coffee 2015-10-13 13:36:12 -03:00
Aleksis Brezas
0665054a79 no updates 2015-10-13 13:34:23 -03:00
Pagan Gazzard
f216a691a1 Add missing import to logger module. 2015-10-13 13:29:42 -03:00
Pagan Gazzard
ab44c79f62 Switch to using a separate module for network checking. 2015-10-13 13:29:42 -03:00
Pagan Gazzard
f0682b162a Switch to using a separate module for blinking. 2015-10-13 13:29:42 -03:00
Pagan Gazzard
b1d16da9fa Separate out the pubnub logging functionality. 2015-10-13 13:29:40 -03:00
Pagan Gazzard
56f54331a5 Fix TypeError: Cannot read property 'Running' of undefined 2015-10-13 13:28:00 -03:00
Pagan Gazzard
848aa66494 Fix reference error. 2015-10-13 13:28:00 -03:00
Praneeth Bodduluri
d300ec6baf User Supervisord for logging 2015-10-13 13:28:00 -03:00
Praneeth Bodduluri
497ecc90a8 Log Supervisor to file and mount the /var/log from host to the supervisor 2015-10-13 13:28:00 -03:00
Aleksis Brezas
b584c6b705 improve code flow 2015-10-13 13:28:00 -03:00
Aleksis Brezas
528bf39a66 use docker inspect output 2015-10-13 13:28:00 -03:00
Aleksis Brezas
85626a4157 Exited containers do not have empty status 2015-10-13 13:28:00 -03:00
Pagan Gazzard
df536f672f Update to pinejs-client-js v0.3.1 2015-10-13 13:28:00 -03:00
Pagan Gazzard
fe05824429 Extract out a duplicate function. 2015-10-13 13:28:00 -03:00
Pagan Gazzard
9673ae40d9 Remove some unneeded dependencies. 2015-10-13 13:28:00 -03:00
Pagan Gazzard
c5506d4566 Separate vpn connecting. 2015-10-13 13:28:00 -03:00
Pagan Gazzard
a7f5689873 Separate vpn bootstrapping. 2015-10-13 13:28:00 -03:00
Pagan Gazzard
6aa6ff5773 Specify the tty app to stop. 2015-10-13 13:28:00 -03:00
Pagan Gazzard
e25563f85c Add a dummy user.js 2015-10-13 13:28:00 -03:00
Pagan Gazzard
f0afcb706a Separate out tty.js 2015-10-13 13:28:00 -03:00
Pagan Gazzard
0b93c1ce2c Use typed-error for the disconnected error. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
e054b36d58 Use sensible defaults for the blink patterns, and make use of it for the API blink. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
b63e7fd595 Accept the pattern as an argument for the blink module. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
cd2603f228 Change the blink pattern to use a pattern specified by an object. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
c218adb09e Separate the blinking out, ready to move to a separate module. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
1c46e1e2a4 Separate the network polling out, ready to move to a separate module. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
e67de4b279 Simplify the state checking logic. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
49d6e3142c Use a 10s timeout for the connectivity check to make the internet connectivity check more responsive. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
bf0b38354f Use a repeating blink pattern that starts on the first failed internet check, and is consistent until we get internet again.
Previously it would pause whilst waiting for the next check (potentially a very very long time, as request doesn't have a timeout by default)
2015-10-13 13:27:59 -03:00
Pagan Gazzard
5e380fb66a Turn the connectivity check into a singleton, so we only have one running. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
2557ebcfc2 Move the connectivity check into utils. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
63f1d66402 Fix trying to delete supervisor images. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
58b9040a36 Use read -p to wait for enter. 2015-10-13 13:27:59 -03:00
Aleksis Brezas
32e1712df7 register device fallback fix 2015-10-13 13:27:59 -03:00
Pagan Gazzard
53196208b0 Start the connectivity check straight away, rather than waiting for bootstrapping to succeed. 2015-10-13 13:27:59 -03:00
Aleksis Brezas
460768d366 do not override dockerfile cmd 2015-10-13 13:27:59 -03:00
Pagan Gazzard
fcc6d1375d Fix the default device type. 2015-10-13 13:27:59 -03:00
Pagan Gazzard
b9675de9e0 Change IP address update interval from 5m to 30s 2015-10-13 13:27:58 -03:00
Petros Angelatos
7ffb65d3fa Expose host dbus to containers. This enables control of host connman 2015-10-13 13:27:58 -03:00
Aleksis Brezas
433f0920c8 remove exited supervisors 2015-10-13 13:27:58 -03:00
Aleksis Brezas
86c2e1280e delete exited containers 2015-10-13 13:27:58 -03:00
Pagan Gazzard
f5f6ee3a61 Enable compression for all of our custom requests. 2015-10-13 13:27:58 -03:00
Pagan Gazzard
26c8b140ce Only get the device id once, rather than for every request to updateDeviceInfo 2015-10-13 13:27:58 -03:00
Pagan Gazzard
6a50889086 Only select the fields we need to compare/update apps. 2015-10-13 13:27:58 -03:00
Pagan Gazzard
de6de9d397 Select just the id as it's all we need, and reduces network traffic. 2015-10-13 13:27:58 -03:00
Aleksis Brezas
e6e42d6631 improved getregistryandname 2015-10-13 13:27:58 -03:00
Aleksis Brezas
4185fb56c8 comment docker utility functions 2015-10-13 13:27:58 -03:00
Aleksis Brezas
a5ee91ceaf calculate progress in a transform stream and expose a callback for progress events 2015-10-13 13:27:58 -03:00
Aleksis Brezas
6b496693ad download progress bars 2015-10-13 13:27:58 -03:00
Aleksis Brezas
cdca01eed1 Use require to parse package.json for supervisor version 2015-10-13 13:27:58 -03:00