@alwaysai/device-agent 1.3.0-1 → 1.3.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/application-control/environment-variables.d.ts +1 -0
- package/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +22 -20
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/environment-variables.test.js +37 -2
- package/lib/application-control/environment-variables.test.js.map +1 -1
- package/lib/application-control/install.js +1 -1
- package/lib/application-control/install.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +4 -3
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +149 -113
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +30 -25
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.test.js +15 -0
- package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
- package/lib/cloud-connection/messages.d.ts +1 -3
- package/lib/cloud-connection/messages.d.ts.map +1 -1
- package/lib/cloud-connection/messages.js +1 -9
- package/lib/cloud-connection/messages.js.map +1 -1
- package/lib/cloud-connection/publisher.d.ts +1 -0
- package/lib/cloud-connection/publisher.d.ts.map +1 -1
- package/lib/cloud-connection/publisher.js +3 -0
- package/lib/cloud-connection/publisher.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.d.ts +12 -0
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +36 -22
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.js +84 -40
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.d.ts +25 -9
- package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
- package/lib/cloud-connection/transaction-manager.js +97 -28
- package/lib/cloud-connection/transaction-manager.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.test.js +169 -22
- package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
- package/lib/secure-tunneling/secure-tunneling.d.ts +105 -0
- package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -0
- package/lib/secure-tunneling/secure-tunneling.js +435 -0
- package/lib/secure-tunneling/secure-tunneling.js.map +1 -0
- package/lib/secure-tunneling/secure-tunneling.test.d.ts +2 -0
- package/lib/secure-tunneling/secure-tunneling.test.d.ts.map +1 -0
- package/lib/secure-tunneling/secure-tunneling.test.js +1070 -0
- package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -0
- package/lib/secure-tunneling/spawner-detached.d.ts +6 -0
- package/lib/secure-tunneling/spawner-detached.d.ts.map +1 -0
- package/lib/secure-tunneling/spawner-detached.js +90 -0
- package/lib/secure-tunneling/spawner-detached.js.map +1 -0
- package/lib/subcommands/app/analytics.d.ts +10 -0
- package/lib/subcommands/app/analytics.d.ts.map +1 -0
- package/lib/subcommands/app/analytics.js +83 -0
- package/lib/subcommands/app/analytics.js.map +1 -0
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +3 -1
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/app/models.d.ts +0 -5
- package/lib/subcommands/app/models.d.ts.map +1 -1
- package/lib/subcommands/app/models.js +11 -47
- package/lib/subcommands/app/models.js.map +1 -1
- package/lib/subcommands/app/status.d.ts +1 -0
- package/lib/subcommands/app/status.d.ts.map +1 -1
- package/lib/subcommands/app/status.js +14 -3
- package/lib/subcommands/app/status.js.map +1 -1
- package/lib/subcommands/app/version.d.ts +2 -1
- package/lib/subcommands/app/version.d.ts.map +1 -1
- package/lib/subcommands/app/version.js +16 -3
- package/lib/subcommands/app/version.js.map +1 -1
- package/lib/util/cloud-mode-ready.d.ts +1 -0
- package/lib/util/cloud-mode-ready.d.ts.map +1 -1
- package/lib/util/cloud-mode-ready.js +36 -1
- package/lib/util/cloud-mode-ready.js.map +1 -1
- package/lib/util/parsing.d.ts +2 -0
- package/lib/util/parsing.d.ts.map +1 -0
- package/lib/util/parsing.js +17 -0
- package/lib/util/parsing.js.map +1 -0
- package/package.json +4 -6
- package/readme.md +146 -92
- package/src/application-control/environment-variables.test.ts +43 -3
- package/src/application-control/environment-variables.ts +29 -19
- package/src/application-control/install.ts +1 -1
- package/src/cloud-connection/device-agent-cloud-connection.ts +216 -172
- package/src/cloud-connection/live-updates-handler.test.ts +20 -0
- package/src/cloud-connection/live-updates-handler.ts +45 -52
- package/src/cloud-connection/messages.ts +1 -14
- package/src/cloud-connection/publisher.ts +4 -0
- package/src/cloud-connection/shadow-handler.test.ts +93 -41
- package/src/cloud-connection/shadow-handler.ts +57 -21
- package/src/cloud-connection/transaction-manager.test.ts +183 -27
- package/src/cloud-connection/transaction-manager.ts +167 -36
- package/src/secure-tunneling/secure-tunneling.test.ts +1239 -0
- package/src/secure-tunneling/secure-tunneling.ts +606 -0
- package/src/secure-tunneling/spawner-detached.ts +107 -0
- package/src/subcommands/app/analytics.ts +99 -0
- package/src/subcommands/app/index.ts +4 -3
- package/src/subcommands/app/models.ts +13 -49
- package/src/subcommands/app/status.ts +20 -3
- package/src/subcommands/app/version.ts +19 -4
- package/src/util/cloud-mode-ready.ts +36 -0
- package/src/util/parsing.ts +11 -0
- package/lib/cloud-connection/cmd-status.d.ts +0 -8
- package/lib/cloud-connection/cmd-status.d.ts.map +0 -1
- package/lib/cloud-connection/cmd-status.js +0 -62
- package/lib/cloud-connection/cmd-status.js.map +0 -1
- package/lib/cloud-connection/message-builder.d.ts +0 -7
- package/lib/cloud-connection/message-builder.d.ts.map +0 -1
- package/lib/cloud-connection/message-builder.js +0 -63
- package/lib/cloud-connection/message-builder.js.map +0 -1
- package/lib/secure-tunneling/index.d.ts +0 -5
- package/lib/secure-tunneling/index.d.ts.map +0 -1
- package/lib/secure-tunneling/index.js +0 -64
- package/lib/secure-tunneling/index.js.map +0 -1
- package/src/cloud-connection/cmd-status.ts +0 -71
- package/src/cloud-connection/message-builder.ts +0 -117
- package/src/secure-tunneling/index.ts +0 -74
|
@@ -3,29 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runDeviceAgentCloudInterface = exports.DeviceAgentCloudConnection = void 0;
|
|
4
4
|
// eslint-disable-next-line
|
|
5
5
|
const awsIot = require('aws-iot-device-sdk');
|
|
6
|
-
const
|
|
6
|
+
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
|
+
const application_control_1 = require("../application-control");
|
|
9
|
+
const backup_1 = require("../application-control/backup");
|
|
10
|
+
const device_control_1 = require("../device-control/device-control");
|
|
11
|
+
const environment_1 = require("../environment");
|
|
12
|
+
const agent_config_1 = require("../infrastructure/agent-config");
|
|
13
|
+
const urls_1 = require("../infrastructure/urls");
|
|
14
|
+
const secure_tunneling_1 = require("../secure-tunneling/secure-tunneling");
|
|
15
|
+
const cloud_mode_ready_1 = require("../util/cloud-mode-ready");
|
|
8
16
|
const directories_1 = require("../util/directories");
|
|
9
|
-
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
10
17
|
const get_device_id_1 = require("../util/get-device-id");
|
|
11
18
|
const logger_1 = require("../util/logger");
|
|
12
|
-
const
|
|
13
|
-
const agent_config_1 = require("../infrastructure/agent-config");
|
|
14
|
-
const application_control_1 = require("../application-control");
|
|
15
|
-
const shadow_handler_1 = require("./shadow-handler");
|
|
16
|
-
const index_1 = require("../secure-tunneling/index");
|
|
17
|
-
const publisher_1 = require("./publisher");
|
|
18
|
-
const live_updates_handler_1 = require("./live-updates-handler");
|
|
19
|
+
const sleep_1 = require("../util/sleep");
|
|
19
20
|
const bootstrap_provision_1 = require("./bootstrap-provision");
|
|
20
|
-
const
|
|
21
|
+
const live_updates_handler_1 = require("./live-updates-handler");
|
|
21
22
|
const passthrough_handler_1 = require("./passthrough-handler");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const sleep_1 = require("../util/sleep");
|
|
25
|
-
const backup_1 = require("../application-control/backup");
|
|
23
|
+
const publisher_1 = require("./publisher");
|
|
24
|
+
const shadow_handler_1 = require("./shadow-handler");
|
|
26
25
|
const transaction_manager_1 = require("./transaction-manager");
|
|
27
|
-
const
|
|
28
|
-
const
|
|
26
|
+
const child_process_1 = require("child_process");
|
|
27
|
+
const util_1 = require("util");
|
|
28
|
+
const exec_promise = (0, util_1.promisify)(child_process_1.exec);
|
|
29
29
|
class DeviceAgentCloudConnection {
|
|
30
30
|
/*=================================================================
|
|
31
31
|
Public interface
|
|
@@ -34,8 +34,10 @@ class DeviceAgentCloudConnection {
|
|
|
34
34
|
this.device = awsIot.device;
|
|
35
35
|
this.clientId = (0, get_device_id_1.getDeviceUuid)();
|
|
36
36
|
this.host = (0, urls_1.getIoTCoreEndpointUrl)();
|
|
37
|
+
this.port = 8883;
|
|
37
38
|
this.toDeviceTopic = (0, device_agent_schemas_1.getToDeviceTopic)(this.clientId);
|
|
38
39
|
this.secureTunnelNotifyTopic = `$aws/things/${this.clientId}/tunnels/notify`;
|
|
40
|
+
this.secureTunnelHandler = secure_tunneling_1.SecureTunnelHandlerSingleton.getInstance();
|
|
39
41
|
// FIXME: Add support for multiple simultaneous project updates
|
|
40
42
|
this.appCfgUpdateQueue = [];
|
|
41
43
|
this.handleAppStateControl = async (payload) => {
|
|
@@ -63,7 +65,7 @@ class DeviceAgentCloudConnection {
|
|
|
63
65
|
appReleaseHash
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
|
-
const message =
|
|
68
|
+
const message = (0, device_agent_schemas_1.buildSignedUrlsRequestMessage)(this.clientId, signedUrlsRequestPayload, txId);
|
|
67
69
|
await this.publishCloudRequest(message);
|
|
68
70
|
return false;
|
|
69
71
|
}
|
|
@@ -121,7 +123,7 @@ class DeviceAgentCloudConnection {
|
|
|
121
123
|
models: updatedModels
|
|
122
124
|
}
|
|
123
125
|
};
|
|
124
|
-
const message =
|
|
126
|
+
const message = (0, device_agent_schemas_1.buildSignedUrlsRequestMessage)(this.clientId, modelsOnlyUrlsRequestPayload, txId);
|
|
125
127
|
this.publisher.publishToCloud(message);
|
|
126
128
|
this.appCfgUpdateQueue.push(update);
|
|
127
129
|
return false;
|
|
@@ -145,14 +147,13 @@ class DeviceAgentCloudConnection {
|
|
|
145
147
|
caPath: directories_1.AWS_ROOT_CERTIFICATE_FILE_PATH,
|
|
146
148
|
clientId: this.clientId,
|
|
147
149
|
host: this.host,
|
|
148
|
-
port:
|
|
150
|
+
port: this.port,
|
|
149
151
|
keepalive: 1 // time before re-connect attempt on dropped connection, default is 400 seconds
|
|
150
152
|
});
|
|
151
153
|
this.publisher = new publisher_1.Publisher(this.device, this.clientId);
|
|
152
154
|
this.shadowHandler = new shadow_handler_1.ShadowHandler(this.clientId, this.publisher);
|
|
153
|
-
this.cmdStatusMgr = new cmd_status_1.CmdStatusManager();
|
|
154
155
|
this.liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(this.publisher, this.clientId);
|
|
155
|
-
this.txnMgr = new transaction_manager_1.TransactionManager();
|
|
156
|
+
this.txnMgr = new transaction_manager_1.TransactionManager(this.publisher, this.liveUpdatesHandler);
|
|
156
157
|
this.subscribe(this.toDeviceTopic);
|
|
157
158
|
this.subscribe(this.secureTunnelNotifyTopic);
|
|
158
159
|
this.subscribe(this.shadowHandler.shadowTopics.projects.getAccepted);
|
|
@@ -160,6 +161,8 @@ class DeviceAgentCloudConnection {
|
|
|
160
161
|
this.subscribe(this.shadowHandler.shadowTopics.projects.updateDelta);
|
|
161
162
|
this.subscribe(this.shadowHandler.shadowTopics.projects.updateAccepted);
|
|
162
163
|
this.subscribe(this.shadowHandler.shadowTopics.projects.updateRejected);
|
|
164
|
+
this.subscribe(this.shadowHandler.shadowTopics.secureTunnel.updateDelta);
|
|
165
|
+
this.subscribe(this.shadowHandler.shadowTopics.secureTunnel.deleteAccepted);
|
|
163
166
|
}
|
|
164
167
|
async handleDeviceAction(payload) {
|
|
165
168
|
const { system_restart } = device_agent_schemas_1.keyMirrors.deviceAction;
|
|
@@ -228,42 +231,6 @@ class DeviceAgentCloudConnection {
|
|
|
228
231
|
throw new Error(`Application update failed, rolled the application back: ${errorAppUpdate}`);
|
|
229
232
|
}
|
|
230
233
|
}
|
|
231
|
-
// eslint-disable-next-line
|
|
232
|
-
async atomicCmd(props) {
|
|
233
|
-
const { func, args, projectId, txId } = props;
|
|
234
|
-
try {
|
|
235
|
-
await this.cmdStatusMgr.start(projectId);
|
|
236
|
-
await this.liveUpdatesHandler.enableTransactionStatus({
|
|
237
|
-
txId
|
|
238
|
-
});
|
|
239
|
-
const completed = await func(...args);
|
|
240
|
-
if (completed) {
|
|
241
|
-
await this.cmdStatusMgr.stop(projectId);
|
|
242
|
-
await this.liveUpdatesHandler.disableTransactionStatus({
|
|
243
|
-
txId
|
|
244
|
-
});
|
|
245
|
-
const successStatusResponsePayload = await (0, messages_1.getStatusResponsePayload)(device_agent_schemas_1.keyMirrors.statusResponse.success, '');
|
|
246
|
-
// Send final status message
|
|
247
|
-
const message = await (0, message_builder_1.buildStatusResponseMessage)(successStatusResponsePayload, txId);
|
|
248
|
-
this.publisher.publishToClient(message);
|
|
249
|
-
}
|
|
250
|
-
return completed;
|
|
251
|
-
}
|
|
252
|
-
catch (e) {
|
|
253
|
-
logger_1.logger.error(`Failed to execute cmd for ${projectId}:\n${e.message}\n${e.stack}`);
|
|
254
|
-
const message = e.message;
|
|
255
|
-
// uninstall the failed app to put system back in good state
|
|
256
|
-
await this.cmdStatusMgr.stop(projectId);
|
|
257
|
-
await this.liveUpdatesHandler.disableTransactionStatus({
|
|
258
|
-
txId
|
|
259
|
-
});
|
|
260
|
-
const failureStatusResponsePayload = await (0, messages_1.getStatusResponsePayload)(device_agent_schemas_1.keyMirrors.statusResponse.failure, message);
|
|
261
|
-
// Send final status message
|
|
262
|
-
const failureStatusResponseMessage = await (0, message_builder_1.buildStatusResponseMessage)(failureStatusResponsePayload, txId);
|
|
263
|
-
this.publisher.publishToClient(failureStatusResponseMessage);
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
234
|
getClientId() {
|
|
268
235
|
return this.clientId;
|
|
269
236
|
}
|
|
@@ -274,7 +241,7 @@ class DeviceAgentCloudConnection {
|
|
|
274
241
|
return this.shadowHandler.shadowTopics;
|
|
275
242
|
}
|
|
276
243
|
isCmdInProgress(projectId) {
|
|
277
|
-
return this.
|
|
244
|
+
return this.txnMgr.isOngoingTransactionForProjectID(projectId);
|
|
278
245
|
}
|
|
279
246
|
async updateProjectShadow(projectId) {
|
|
280
247
|
await this.shadowHandler.updateProjectShadow(projectId);
|
|
@@ -287,76 +254,66 @@ class DeviceAgentCloudConnection {
|
|
|
287
254
|
return;
|
|
288
255
|
}
|
|
289
256
|
const txId = message.txId;
|
|
257
|
+
const { app_state_control, app_version_control, live_state_updates, app_install_response, models_install_response, status_response, device_action } = device_agent_schemas_1.keyMirrors.toDeviceAgentMessageType;
|
|
290
258
|
switch (message.messageType) {
|
|
291
|
-
case
|
|
259
|
+
case app_state_control: {
|
|
292
260
|
// txId sent from cloud, just need to continue it
|
|
293
261
|
const payload = message.payload;
|
|
294
262
|
const projectId = payload.projectId;
|
|
295
263
|
try {
|
|
296
|
-
this.txnMgr.
|
|
297
|
-
|
|
298
|
-
func: this.handleAppStateControl,
|
|
299
|
-
args: [message.payload],
|
|
264
|
+
await this.txnMgr.runTransactionStep({
|
|
265
|
+
func: () => this.handleAppStateControl(message.payload),
|
|
300
266
|
projectId,
|
|
301
|
-
txId
|
|
267
|
+
txId,
|
|
268
|
+
start: true,
|
|
269
|
+
stepName: payload.baseCommand
|
|
302
270
|
});
|
|
303
|
-
if (completed) {
|
|
304
|
-
this.txnMgr.completeTransaction(txId);
|
|
305
|
-
}
|
|
306
271
|
}
|
|
307
272
|
catch (e) {
|
|
308
273
|
logger_1.logger.error(`Error processing application state control request: ${e}!`);
|
|
309
274
|
}
|
|
310
275
|
break;
|
|
311
276
|
}
|
|
312
|
-
case
|
|
277
|
+
case app_version_control: {
|
|
313
278
|
// txId sent from cloud, just need to continue it
|
|
314
279
|
const payload = message.payload;
|
|
315
280
|
const projectId = payload.projectId;
|
|
316
|
-
const appReleaseHash = payload.baseCommand === device_agent_schemas_1.keyMirrors.appVersionControl.install
|
|
317
|
-
? payload.appReleaseHash
|
|
318
|
-
: undefined;
|
|
319
281
|
try {
|
|
320
|
-
this.txnMgr.
|
|
321
|
-
|
|
322
|
-
func: this.handleAppVersionControl,
|
|
323
|
-
args: [payload, txId],
|
|
282
|
+
await this.txnMgr.runTransactionStep({
|
|
283
|
+
func: () => this.handleAppVersionControl(payload, txId),
|
|
324
284
|
projectId,
|
|
325
|
-
txId
|
|
285
|
+
txId,
|
|
286
|
+
start: true,
|
|
287
|
+
stepName: payload.baseCommand
|
|
326
288
|
});
|
|
327
|
-
if (completed) {
|
|
328
|
-
this.txnMgr.completeTransaction(txId);
|
|
329
|
-
}
|
|
330
289
|
}
|
|
331
290
|
catch (e) {
|
|
332
291
|
logger_1.logger.error(`Error processing application install request: ${e}!`);
|
|
333
292
|
}
|
|
334
293
|
break;
|
|
335
294
|
}
|
|
336
|
-
case
|
|
295
|
+
case live_state_updates: {
|
|
337
296
|
const payload = message.payload;
|
|
338
297
|
// TODO: Send response?
|
|
339
|
-
|
|
298
|
+
void this.liveUpdatesHandler.handleToggles(payload, txId);
|
|
340
299
|
break;
|
|
341
300
|
}
|
|
342
|
-
case
|
|
301
|
+
case app_install_response: {
|
|
343
302
|
const payload = message.payload;
|
|
344
|
-
const { projectId
|
|
303
|
+
const { projectId } = payload.appInstallResponse;
|
|
345
304
|
if (txId !== this.txnMgr.getTransactionFromProject(projectId)) {
|
|
346
305
|
throw new Error(`App install response received a message for a transaction ID ${txId} that is not currently underway (${this.txnMgr.getTransactionFromProject(projectId)})!`);
|
|
347
306
|
}
|
|
348
|
-
|
|
349
|
-
func: this.handleAppInstallCloudResponsePayload,
|
|
350
|
-
args: [payload],
|
|
307
|
+
await this.txnMgr.runTransactionStep({
|
|
308
|
+
func: () => this.handleAppInstallCloudResponsePayload(payload),
|
|
351
309
|
projectId,
|
|
352
|
-
txId
|
|
310
|
+
txId,
|
|
311
|
+
start: false,
|
|
312
|
+
stepName: message.messageType
|
|
353
313
|
});
|
|
354
|
-
if (completed) {
|
|
355
|
-
this.txnMgr.completeTransaction(txId);
|
|
356
|
-
}
|
|
357
314
|
break;
|
|
358
315
|
}
|
|
359
|
-
case
|
|
316
|
+
case models_install_response: {
|
|
360
317
|
// This message doesn't have appReleaseHash in it's payload, but
|
|
361
318
|
// atomicCmd should be able to read it from the installed app
|
|
362
319
|
const payload = message.payload;
|
|
@@ -364,28 +321,50 @@ class DeviceAgentCloudConnection {
|
|
|
364
321
|
if (txId !== this.txnMgr.getTransactionFromProject(projectId)) {
|
|
365
322
|
throw new Error(`Model install response received a message for a transaction ID ${txId} that is not currently underway (${this.txnMgr.getTransactionFromProject(projectId)})!`);
|
|
366
323
|
}
|
|
367
|
-
|
|
368
|
-
func: this.handleModelsInstallCloudResponsePayload,
|
|
369
|
-
args: [payload],
|
|
324
|
+
await this.txnMgr.runTransactionStep({
|
|
325
|
+
func: () => this.handleModelsInstallCloudResponsePayload(payload),
|
|
370
326
|
projectId,
|
|
371
|
-
txId
|
|
327
|
+
txId,
|
|
328
|
+
start: false,
|
|
329
|
+
stepName: message.messageType
|
|
372
330
|
});
|
|
373
|
-
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
case status_response: {
|
|
334
|
+
const { failure } = device_agent_schemas_1.keyMirrors.statusResponse;
|
|
335
|
+
if (message.payload.status === failure) {
|
|
374
336
|
this.txnMgr.completeTransaction(txId);
|
|
337
|
+
const failureStatusResponsePayload = {
|
|
338
|
+
status: device_agent_schemas_1.keyMirrors.statusResponse.failure,
|
|
339
|
+
message: message.payload.message
|
|
340
|
+
};
|
|
341
|
+
// Send final status message
|
|
342
|
+
const failureStatusResponseMessage = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.clientId, failureStatusResponsePayload, txId);
|
|
343
|
+
this.publisher.publishToClient(failureStatusResponseMessage);
|
|
375
344
|
}
|
|
376
345
|
break;
|
|
377
346
|
}
|
|
378
|
-
case
|
|
347
|
+
case device_action: {
|
|
379
348
|
try {
|
|
380
|
-
const
|
|
381
|
-
|
|
382
|
-
|
|
349
|
+
const statusResponsePayload = {
|
|
350
|
+
status: device_agent_schemas_1.keyMirrors.statusResponse.in_progress
|
|
351
|
+
};
|
|
352
|
+
const statusResponseMessage = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.clientId, statusResponsePayload, txId);
|
|
353
|
+
this.publisher.publishToClient(statusResponseMessage);
|
|
383
354
|
await this.handleDeviceAction(message.payload);
|
|
355
|
+
const successStatusResponsePayload = {
|
|
356
|
+
status: device_agent_schemas_1.keyMirrors.statusResponse.success
|
|
357
|
+
};
|
|
358
|
+
const successStatusResponseMessage = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.clientId, successStatusResponsePayload, txId);
|
|
359
|
+
this.publisher.publishToClient(successStatusResponseMessage);
|
|
384
360
|
}
|
|
385
361
|
catch (e) {
|
|
386
362
|
logger_1.logger.error(`There was a problem performing device action '${message.payload.action}': ${e.message}`);
|
|
387
|
-
const failureStatusResponsePayload =
|
|
388
|
-
|
|
363
|
+
const failureStatusResponsePayload = {
|
|
364
|
+
status: device_agent_schemas_1.keyMirrors.statusResponse.failure,
|
|
365
|
+
message: e.message
|
|
366
|
+
};
|
|
367
|
+
const failureStatusResponseMessage = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.clientId, failureStatusResponsePayload, txId);
|
|
389
368
|
this.publisher.publishToClient(failureStatusResponseMessage);
|
|
390
369
|
}
|
|
391
370
|
break;
|
|
@@ -398,7 +377,7 @@ class DeviceAgentCloudConnection {
|
|
|
398
377
|
logger_1.logger.debug(`Received message: ${JSON.stringify({ topic, message }, null, 2)}`);
|
|
399
378
|
switch (topic) {
|
|
400
379
|
case this.shadowHandler.shadowTopics.projects.getAccepted:
|
|
401
|
-
case this.shadowHandler.shadowTopics.projects.
|
|
380
|
+
case this.shadowHandler.shadowTopics.projects.updateAccepted: {
|
|
402
381
|
const shadowUpdates = await this.shadowHandler.handleShadowTopic({
|
|
403
382
|
topic,
|
|
404
383
|
payload: message.state,
|
|
@@ -409,16 +388,13 @@ class DeviceAgentCloudConnection {
|
|
|
409
388
|
const projectId = shadowUpdate.projectId;
|
|
410
389
|
const txId = shadowUpdate.txId;
|
|
411
390
|
try {
|
|
412
|
-
this.txnMgr.
|
|
413
|
-
|
|
414
|
-
func: this.handleAppConfigUpdate,
|
|
415
|
-
args: [shadowUpdate, txId],
|
|
391
|
+
await this.txnMgr.runTransactionStep({
|
|
392
|
+
func: () => this.handleAppConfigUpdate(shadowUpdate, txId),
|
|
416
393
|
projectId,
|
|
417
|
-
txId
|
|
394
|
+
txId,
|
|
395
|
+
start: true,
|
|
396
|
+
stepName: topic
|
|
418
397
|
});
|
|
419
|
-
if (completed) {
|
|
420
|
-
this.txnMgr.completeTransaction(txId);
|
|
421
|
-
}
|
|
422
398
|
}
|
|
423
399
|
catch (e) {
|
|
424
400
|
logger_1.logger.error(`Error handling shadow message: ${e.message}`);
|
|
@@ -428,7 +404,7 @@ class DeviceAgentCloudConnection {
|
|
|
428
404
|
break;
|
|
429
405
|
}
|
|
430
406
|
case this.shadowHandler.shadowTopics.projects.getRejected:
|
|
431
|
-
case this.shadowHandler.shadowTopics.projects.
|
|
407
|
+
case this.shadowHandler.shadowTopics.projects.updateDelta:
|
|
432
408
|
case this.shadowHandler.shadowTopics.projects.updateRejected:
|
|
433
409
|
// Not handling these for now
|
|
434
410
|
break;
|
|
@@ -439,8 +415,19 @@ class DeviceAgentCloudConnection {
|
|
|
439
415
|
});
|
|
440
416
|
break;
|
|
441
417
|
case this.secureTunnelNotifyTopic:
|
|
442
|
-
await
|
|
418
|
+
await this.secureTunnelHandler.secureTunnelNotifyHandler(message);
|
|
419
|
+
break;
|
|
420
|
+
case this.shadowHandler.shadowTopics.secureTunnel.updateDelta: {
|
|
421
|
+
logger_1.logger.info(`Received secure tunnel update: ${message}`);
|
|
422
|
+
const reported = await this.secureTunnelHandler.syncShadowToDeviceState(message);
|
|
423
|
+
this.publisher.publish(this.shadowHandler.shadowTopics.secureTunnel.update, JSON.stringify({ state: { reported } }));
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
case this.shadowHandler.shadowTopics.secureTunnel.deleteAccepted: {
|
|
427
|
+
logger_1.logger.info(`Received secure tunnel deleteAccepted: ${message}`);
|
|
428
|
+
await this.secureTunnelHandler.destroy();
|
|
443
429
|
break;
|
|
430
|
+
}
|
|
444
431
|
default:
|
|
445
432
|
logger_1.logger.error(`Unexpected topic, ignoring! ${topic}`);
|
|
446
433
|
}
|
|
@@ -474,8 +461,57 @@ class DeviceAgentCloudConnection {
|
|
|
474
461
|
});
|
|
475
462
|
this.device.on('offline', () => {
|
|
476
463
|
logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
|
|
464
|
+
void this.logConnectionInfo();
|
|
477
465
|
});
|
|
478
466
|
}
|
|
467
|
+
async logConnectionInfo() {
|
|
468
|
+
try {
|
|
469
|
+
/**
|
|
470
|
+
* We're using the 'netcat' or 'nc' command to test the connection to the IoT Core endpoint.
|
|
471
|
+
* This command doesn't always exit (see below), so
|
|
472
|
+
* we use timeout to break out of the prompt
|
|
473
|
+
* and catch the resulting error/parse the resulting stderr
|
|
474
|
+
*
|
|
475
|
+
* Sample command for current host and port:
|
|
476
|
+
* nc -zv -w 1 a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com 8883
|
|
477
|
+
*
|
|
478
|
+
* Sample output when port is not blocked and host is reachable:
|
|
479
|
+
* $ nc -zv -w 1 a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com 443
|
|
480
|
+
* Connection to a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com 443 port [tcp/https] succeeded!
|
|
481
|
+
*
|
|
482
|
+
*
|
|
483
|
+
* Sample output when port is blocked (will repeatedly try until ctrl-C out):
|
|
484
|
+
* $ nc -zv -w 1 a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com 8883
|
|
485
|
+
* nc: connect to a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com port 8883 (tcp) timed out: Operation now in progress
|
|
486
|
+
* nc: connect to a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com port 8883 (tcp) timed out: Operation now in progress
|
|
487
|
+
* nc: connect to a3tzi5g7sq5zsj-ats.iot.us-west-2.amazonaws.com port 8883 (tcp) timed out: Operation now in progress
|
|
488
|
+
* ^C
|
|
489
|
+
*
|
|
490
|
+
*
|
|
491
|
+
* Sample command/output when the port isn't enable on that host:
|
|
492
|
+
* $ nc -zv -w 1 localhost 8883
|
|
493
|
+
* nc: connect to localhost port 8883 (tcp) failed: Connection refused
|
|
494
|
+
*/
|
|
495
|
+
await exec_promise(`nc -zv -w 1 ${this.host} ${this.port}`, {
|
|
496
|
+
timeout: 2000
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
catch (err) {
|
|
500
|
+
const output = JSON.stringify(err['stderr']);
|
|
501
|
+
if (output.indexOf('not known') !== -1) {
|
|
502
|
+
logger_1.logger.warn('Iot Core endpoint appears to be unreachable, internet connection may be unstable or the host may be down.');
|
|
503
|
+
}
|
|
504
|
+
else if (output.indexOf('timed out') !== -1) {
|
|
505
|
+
logger_1.logger.warn(`Internet connection appears fine, however the endpoint was not reachable on the current connection port: ${this.port}\nPlease check if a firewall is in place.`);
|
|
506
|
+
}
|
|
507
|
+
else if (output.indexOf('refused') !== -1) {
|
|
508
|
+
logger_1.logger.warn(`The connection was refused, likely ${this.host} is not running a service on ${this.port}.`);
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
logger_1.logger.warn(`Output from checking connection to ${this.host} on ${this.port}: ${output}`);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
479
515
|
async stop() {
|
|
480
516
|
// FIXME: This method is currently only used by the CLI, and shadow messages
|
|
481
517
|
// can be lost since we aren't waiting for responses so sleep for a short
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,6BAA6B,EAO9B,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IAEF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAqB;YAElC,iBAAiB;IAoC/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;YAWnB,0BAA0B;gBAyB5B,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAQ3C,yBAAyB;IAIzB,sBAAsB;IAItB,qBAAqB;IAIf,uBAAuB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAuB/C,wBAAwB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAShD,aAAa,CACxB,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE,MAAM;CA+Cf"}
|
|
@@ -7,7 +7,6 @@ const logger_1 = require("../util/logger");
|
|
|
7
7
|
const sleep_1 = require("../util/sleep");
|
|
8
8
|
const messages_1 = require("./messages");
|
|
9
9
|
const environment_1 = require("../environment");
|
|
10
|
-
const message_builder_1 = require("./message-builder");
|
|
11
10
|
const LIVE_UPDATES_TIMEOUT = environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS
|
|
12
11
|
? parseInt(environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS)
|
|
13
12
|
: 60000;
|
|
@@ -34,7 +33,7 @@ class LiveUpdatesHandler {
|
|
|
34
33
|
this.clientId = clientId;
|
|
35
34
|
logger_1.logger.debug(`Toggle live updates timeout set to ${LIVE_UPDATES_TIMEOUT} ms`);
|
|
36
35
|
}
|
|
37
|
-
async startAppLogStream(projectId) {
|
|
36
|
+
async startAppLogStream(projectId, txId) {
|
|
38
37
|
logger_1.logger.info(`Starting log stream for ${projectId}`);
|
|
39
38
|
this.appLogStreams.add(projectId);
|
|
40
39
|
const readable = await (0, application_control_1.getAppLogs)({
|
|
@@ -54,7 +53,7 @@ class LiveUpdatesHandler {
|
|
|
54
53
|
projectId,
|
|
55
54
|
logChunk: logStr
|
|
56
55
|
};
|
|
57
|
-
const message =
|
|
56
|
+
const message = (0, device_agent_schemas_1.buildAppLogsMessage)(this.clientId, payload, txId);
|
|
58
57
|
this.publisher.publishToClient(message, logger_1.logger.silly);
|
|
59
58
|
});
|
|
60
59
|
readable.on('error', (error) => {
|
|
@@ -93,7 +92,7 @@ class LiveUpdatesHandler {
|
|
|
93
92
|
this.liveUpdatesAlive.device_stats = toggles.deviceStats;
|
|
94
93
|
}
|
|
95
94
|
if (toggles.appState !== undefined) {
|
|
96
|
-
this.liveUpdatesAlive.
|
|
95
|
+
this.liveUpdatesAlive.app_state = toggles.appState;
|
|
97
96
|
}
|
|
98
97
|
}
|
|
99
98
|
restartLiveUpdatesTimeout() {
|
|
@@ -106,24 +105,19 @@ class LiveUpdatesHandler {
|
|
|
106
105
|
this.appLogStreams.clear();
|
|
107
106
|
}, LIVE_UPDATES_TIMEOUT);
|
|
108
107
|
}
|
|
109
|
-
async startPublishingLiveUpdates(messageType,
|
|
108
|
+
async startPublishingLiveUpdates(messageType, getMessage, txId) {
|
|
110
109
|
logger_1.logger.info(`Turned on live updates for ${messageType}`);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (!this.continuePublishing(messageType, txId)) {
|
|
115
|
-
logger_1.logger.info(`Turned off live updates for ${messageType}`);
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
const payload = await payloadBuilderFunction(...args);
|
|
119
|
-
const message = await messageBuilderFunction(payload, txId);
|
|
110
|
+
try {
|
|
111
|
+
while (this.continuePublishing(messageType, txId)) {
|
|
112
|
+
const message = await getMessage();
|
|
120
113
|
this.publisher.publishToClient(message, logger_1.logger.silly);
|
|
114
|
+
await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
|
|
121
115
|
}
|
|
122
|
-
catch (e) {
|
|
123
|
-
logger_1.logger.error(`Error publishing live updates for ${messageType}: ${e.message}`);
|
|
124
|
-
}
|
|
125
|
-
await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
|
|
126
116
|
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
logger_1.logger.error(`Error publishing live updates for ${messageType}: ${e.message}`);
|
|
119
|
+
}
|
|
120
|
+
logger_1.logger.info(`Turned off live updates for ${messageType}`);
|
|
127
121
|
}
|
|
128
122
|
getDeviceStatsLiveUpdates() {
|
|
129
123
|
return this.liveUpdatesAlive.device_stats;
|
|
@@ -140,7 +134,12 @@ class LiveUpdatesHandler {
|
|
|
140
134
|
if (!this.transactionStatuses.has(txId)) {
|
|
141
135
|
this.transactionStatuses.add(txId);
|
|
142
136
|
// Don't wait for this call to finish since it loops until disabled
|
|
143
|
-
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.status_response,
|
|
137
|
+
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.status_response, async () => {
|
|
138
|
+
const payload = {
|
|
139
|
+
status: device_agent_schemas_1.keyMirrors.statusResponse.in_progress
|
|
140
|
+
};
|
|
141
|
+
return (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.clientId, payload, txId);
|
|
142
|
+
}, txId);
|
|
144
143
|
}
|
|
145
144
|
}
|
|
146
145
|
async disableTransactionStatus(props) {
|
|
@@ -153,27 +152,33 @@ class LiveUpdatesHandler {
|
|
|
153
152
|
async handleToggles(toggles, txId) {
|
|
154
153
|
const { deviceStats, appState, appLogs } = toggles;
|
|
155
154
|
this.restartLiveUpdatesTimeout();
|
|
156
|
-
const currentDeviceStats = this.getDeviceStatsLiveUpdates();
|
|
157
155
|
if (deviceStats !== undefined) {
|
|
156
|
+
const currentDeviceStats = this.getDeviceStatsLiveUpdates();
|
|
158
157
|
this.liveUpdatesAlive.device_stats = deviceStats;
|
|
159
158
|
if (deviceStats && currentDeviceStats !== true) {
|
|
160
159
|
// Don't wait for this call to finish since it loops until disabled
|
|
161
|
-
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats,
|
|
160
|
+
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats, async () => {
|
|
161
|
+
const payload = await (0, messages_1.getDeviceStatsPayload)();
|
|
162
|
+
return (0, device_agent_schemas_1.buildDeviceStatsMessage)(this.clientId, payload, txId);
|
|
163
|
+
}, txId);
|
|
162
164
|
}
|
|
163
165
|
}
|
|
164
|
-
const currentAppState = this.getAppStateLiveUpdates();
|
|
165
166
|
if (appState !== undefined) {
|
|
167
|
+
const currentAppState = this.getAppStateLiveUpdates();
|
|
166
168
|
this.liveUpdatesAlive.app_state = appState;
|
|
167
169
|
if (appState && currentAppState !== true) {
|
|
168
170
|
// Don't wait for this call to finish since it loops until disabled
|
|
169
|
-
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.app_state,
|
|
171
|
+
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.app_state, async () => {
|
|
172
|
+
const payload = await (0, messages_1.getAppStatePayload)();
|
|
173
|
+
return (0, device_agent_schemas_1.buildAppStateMessage)(this.clientId, payload, txId);
|
|
174
|
+
}, txId);
|
|
170
175
|
}
|
|
171
176
|
}
|
|
172
|
-
const currentAppLogs = this.getAppLogsLiveUpdates();
|
|
173
177
|
if (appLogs !== undefined) {
|
|
178
|
+
const currentAppLogs = this.getAppLogsLiveUpdates();
|
|
174
179
|
if (appLogs.toggle && currentAppLogs !== true) {
|
|
175
180
|
// Don't wait for this call to finish since it loops until disabled
|
|
176
|
-
void this.startAppLogStream(appLogs.projectId);
|
|
181
|
+
void this.startAppLogStream(appLogs.projectId, txId);
|
|
177
182
|
}
|
|
178
183
|
else {
|
|
179
184
|
this.appLogStreams.delete(appLogs.projectId);
|