@alwaysai/device-agent 0.0.20 → 0.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/config.d.ts +0 -1
- package/lib/application-control/config.d.ts.map +1 -1
- package/lib/application-control/config.js +15 -29
- package/lib/application-control/config.js.map +1 -1
- package/lib/application-control/environment-variables.d.ts +7 -3
- package/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +71 -35
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/environment-variables.test.d.ts +2 -0
- package/lib/application-control/environment-variables.test.d.ts.map +1 -0
- package/lib/application-control/environment-variables.test.js +163 -0
- package/lib/application-control/environment-variables.test.js.map +1 -0
- package/lib/application-control/index.d.ts +3 -3
- package/lib/application-control/index.d.ts.map +1 -1
- package/lib/application-control/index.js +1 -3
- package/lib/application-control/index.js.map +1 -1
- package/lib/application-control/models.d.ts +0 -1
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +12 -26
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +3 -0
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +19 -1
- package/lib/application-control/status.js.map +1 -1
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +2 -2
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +6 -3
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +201 -151
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +3 -0
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +23 -7
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.test.d.ts +2 -0
- package/lib/cloud-connection/live-updates-handler.test.d.ts.map +1 -0
- package/lib/cloud-connection/live-updates-handler.test.js +57 -0
- package/lib/cloud-connection/live-updates-handler.test.js.map +1 -0
- package/lib/cloud-connection/shadow-handler.d.ts +11 -3
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +22 -7
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.js +313 -228
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
- package/lib/cloud-connection/shadow.js +1 -1
- package/lib/cloud-connection/shadow.js.map +1 -1
- package/lib/environment.d.ts +1 -0
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +2 -1
- package/lib/environment.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +3 -1
- package/lib/infrastructure/agent-config.d.ts.map +1 -1
- package/lib/subcommands/app/env-vars.d.ts +1 -1
- package/lib/subcommands/app/env-vars.d.ts.map +1 -1
- package/lib/subcommands/app/env-vars.js +32 -5
- package/lib/subcommands/app/env-vars.js.map +1 -1
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +4 -1
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/app/models.d.ts.map +1 -1
- package/lib/subcommands/app/models.js +6 -1
- package/lib/subcommands/app/models.js.map +1 -1
- package/lib/subcommands/app/shadow.d.ts +7 -0
- package/lib/subcommands/app/shadow.d.ts.map +1 -0
- package/lib/subcommands/app/shadow.js +48 -0
- package/lib/subcommands/app/shadow.js.map +1 -0
- package/lib/subcommands/app/version.js +2 -2
- package/lib/subcommands/app/version.js.map +1 -1
- package/lib/util/cloud-mode-ready.d.ts +2 -0
- package/lib/util/cloud-mode-ready.d.ts.map +1 -0
- package/lib/util/cloud-mode-ready.js +22 -0
- package/lib/util/cloud-mode-ready.js.map +1 -0
- package/package.json +1 -1
- package/readme.md +140 -22
- package/src/application-control/config.ts +30 -31
- package/src/application-control/environment-variables.test.ts +171 -0
- package/src/application-control/environment-variables.ts +102 -43
- package/src/application-control/index.ts +3 -9
- package/src/application-control/models.ts +14 -29
- package/src/application-control/status.ts +20 -0
- package/src/application-control/utils.ts +4 -2
- package/src/cloud-connection/device-agent-cloud-connection.ts +220 -155
- package/src/cloud-connection/live-updates-handler.test.ts +68 -0
- package/src/cloud-connection/live-updates-handler.ts +30 -7
- package/src/cloud-connection/shadow-handler.test.ts +329 -239
- package/src/cloud-connection/shadow-handler.ts +38 -12
- package/src/cloud-connection/shadow.ts +1 -1
- package/src/environment.ts +2 -0
- package/src/infrastructure/agent-config.ts +1 -1
- package/src/subcommands/app/env-vars.ts +38 -8
- package/src/subcommands/app/index.ts +4 -1
- package/src/subcommands/app/models.ts +10 -1
- package/src/subcommands/app/shadow.ts +48 -0
- package/src/subcommands/app/version.ts +2 -2
- package/src/util/cloud-mode-ready.ts +23 -0
|
@@ -9,6 +9,7 @@ const directories_1 = require("../util/directories");
|
|
|
9
9
|
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
10
10
|
const get_device_id_1 = require("../util/get-device-id");
|
|
11
11
|
const logger_1 = require("../util/logger");
|
|
12
|
+
const cloud_mode_ready_1 = require("../util/cloud-mode-ready");
|
|
12
13
|
const agent_config_1 = require("../infrastructure/agent-config");
|
|
13
14
|
const application_control_1 = require("../application-control");
|
|
14
15
|
const shadow_handler_1 = require("./shadow-handler");
|
|
@@ -19,6 +20,7 @@ const cmd_status_1 = require("./cmd-status");
|
|
|
19
20
|
const passthrough_handler_1 = require("./passthrough-handler");
|
|
20
21
|
const environment_1 = require("../environment");
|
|
21
22
|
const messages_1 = require("./messages");
|
|
23
|
+
const sleep_1 = require("../util/sleep");
|
|
22
24
|
class DeviceAgentCloudConnection {
|
|
23
25
|
/*=================================================================
|
|
24
26
|
Public interface
|
|
@@ -29,9 +31,114 @@ class DeviceAgentCloudConnection {
|
|
|
29
31
|
this.host = (0, urls_1.getIoTCoreEndpointUrl)();
|
|
30
32
|
this.toDeviceTopic = (0, device_agent_schemas_1.getDeviceTopic)(this.clientId);
|
|
31
33
|
// FIXME: Add support for multiple simultaneous project updates
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
|
|
34
|
+
this.appCfgUpdateQueue = [];
|
|
35
|
+
this.handleAppStateControl = async (payload) => {
|
|
36
|
+
const { baseCommand, projectId } = payload;
|
|
37
|
+
switch (baseCommand) {
|
|
38
|
+
case device_agent_schemas_1.keyMirrors.appStateControl.start:
|
|
39
|
+
await (0, application_control_1.startApp)({ projectId });
|
|
40
|
+
break;
|
|
41
|
+
case device_agent_schemas_1.keyMirrors.appStateControl.stop:
|
|
42
|
+
await (0, application_control_1.stopApp)({ projectId });
|
|
43
|
+
break;
|
|
44
|
+
case device_agent_schemas_1.keyMirrors.appStateControl.restart:
|
|
45
|
+
await (0, application_control_1.restartApp)({ projectId });
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
};
|
|
50
|
+
this.handleAppVersionControl = async (payload) => {
|
|
51
|
+
switch (payload.baseCommand) {
|
|
52
|
+
case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
|
|
53
|
+
const { projectId, appReleaseHash } = payload;
|
|
54
|
+
const signedUrlsRequest = { projectId, appReleaseHash };
|
|
55
|
+
await this.publishCloudRequest({
|
|
56
|
+
messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
|
|
57
|
+
signedUrlsRequest
|
|
58
|
+
});
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
case device_agent_schemas_1.keyMirrors.appVersionControl.uninstall: {
|
|
62
|
+
const { projectId } = payload;
|
|
63
|
+
await this.atomicApplicationUninstall(projectId);
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
this.handleAgentCommand = async (message) => {
|
|
72
|
+
switch (message.messageType) {
|
|
73
|
+
case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates:
|
|
74
|
+
await this.liveUpdatesHandler.handleToggles(message.liveUpdatesToggles);
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
logger_1.logger.error(`Invalid agent action message type from message '${message}'`);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
this.handleAppInstallCloudResponse = async (payload) => {
|
|
81
|
+
const { projectId, appReleaseHash, appInstallPayload, modelsInstallPayload } = payload.appInstallCloudResponse;
|
|
82
|
+
const signedUrlsPayload = {
|
|
83
|
+
appInstallPayload,
|
|
84
|
+
modelsInstallPayload
|
|
85
|
+
};
|
|
86
|
+
await this.atomicApplicationUpdate(application_control_1.installApp, [{ projectId, appReleaseHash, signedUrlsPayload }], projectId);
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
this.handleModelsInstallCloudResponse = async (payload) => {
|
|
90
|
+
const update = this.appCfgUpdateQueue.shift();
|
|
91
|
+
if (update === undefined) {
|
|
92
|
+
throw new Error('Unknown error while updating models via application config! No config present for model update.');
|
|
93
|
+
}
|
|
94
|
+
const { appCfgUpdate, envVarUpdate } = update;
|
|
95
|
+
const projectId = payload.modelsInstallCloudResponse.projectId;
|
|
96
|
+
if (appCfgUpdate) {
|
|
97
|
+
await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
|
|
98
|
+
{
|
|
99
|
+
projectId,
|
|
100
|
+
modelInstallPayloads: payload.modelsInstallCloudResponse.newModels,
|
|
101
|
+
newAppCfg: appCfgUpdate.newAppCfg
|
|
102
|
+
}
|
|
103
|
+
], projectId);
|
|
104
|
+
}
|
|
105
|
+
if (envVarUpdate) {
|
|
106
|
+
await this.atomicApplicationUpdate(application_control_1.setEnv, [{ projectId, envVars: envVarUpdate.envVars }], projectId);
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
};
|
|
110
|
+
this.handleAppConfigUpdates = async (updates) => {
|
|
111
|
+
for (const update of updates) {
|
|
112
|
+
const { projectId, appCfgUpdate, envVarUpdate } = update;
|
|
113
|
+
if (appCfgUpdate &&
|
|
114
|
+
appCfgUpdate.updatedModels &&
|
|
115
|
+
Object.keys(appCfgUpdate.updatedModels).length) {
|
|
116
|
+
// When there are model updates request signed URLs and wait to apply config changes
|
|
117
|
+
const { updatedModels } = appCfgUpdate;
|
|
118
|
+
logger_1.logger.debug(`Requesting presigned urls from cloud for model versions: ${JSON.stringify(updatedModels)}`);
|
|
119
|
+
this.publisher.publishToCloud({
|
|
120
|
+
messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
|
|
121
|
+
modelsOnlyUrlsRequest: {
|
|
122
|
+
projectId,
|
|
123
|
+
models: updatedModels
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
this.appCfgUpdateQueue.push(update);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
if (appCfgUpdate) {
|
|
130
|
+
await this.atomicApplicationUpdate(application_control_1.updateAppCfg, [
|
|
131
|
+
{
|
|
132
|
+
projectId,
|
|
133
|
+
newAppCfg: appCfgUpdate.newAppCfg
|
|
134
|
+
}
|
|
135
|
+
], projectId);
|
|
136
|
+
}
|
|
137
|
+
if (envVarUpdate) {
|
|
138
|
+
await this.atomicApplicationUpdate(application_control_1.setEnv, [{ projectId, envVars: envVarUpdate.envVars }], projectId);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
35
142
|
};
|
|
36
143
|
this.device = awsIot.device({
|
|
37
144
|
keyPath: directories_1.DEVICE_PRIVATE_KEY_FILE_PATH,
|
|
@@ -53,54 +160,6 @@ class DeviceAgentCloudConnection {
|
|
|
53
160
|
this.subscribe(this.shadowHandler.shadowTopics.projects.updateAccepted);
|
|
54
161
|
this.subscribe(this.shadowHandler.shadowTopics.projects.updateRejected);
|
|
55
162
|
}
|
|
56
|
-
async handleAppStateControl(payload) {
|
|
57
|
-
const { baseCommand, projectId } = payload;
|
|
58
|
-
switch (baseCommand) {
|
|
59
|
-
case device_agent_schemas_1.keyMirrors.appStateControl.start:
|
|
60
|
-
await (0, application_control_1.startApp)({ projectId });
|
|
61
|
-
break;
|
|
62
|
-
case device_agent_schemas_1.keyMirrors.appStateControl.stop:
|
|
63
|
-
await (0, application_control_1.stopApp)({ projectId });
|
|
64
|
-
break;
|
|
65
|
-
case device_agent_schemas_1.keyMirrors.appStateControl.restart:
|
|
66
|
-
await (0, application_control_1.restartApp)({ projectId });
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
async handleAppVersionControl(payload) {
|
|
71
|
-
switch (payload.baseCommand) {
|
|
72
|
-
case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
|
|
73
|
-
const { projectId, appReleaseHash } = payload;
|
|
74
|
-
await this.cmdStatusMgr.start(projectId);
|
|
75
|
-
await this.liveUpdatesHandler.enableAppInstallStatus({
|
|
76
|
-
projectId,
|
|
77
|
-
appReleaseHash
|
|
78
|
-
});
|
|
79
|
-
const signedUrlsRequest = { projectId, appReleaseHash };
|
|
80
|
-
await this.publishCloudRequest({
|
|
81
|
-
messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
|
|
82
|
-
signedUrlsRequest
|
|
83
|
-
});
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
case device_agent_schemas_1.keyMirrors.appVersionControl.uninstall: {
|
|
87
|
-
const { projectId } = payload;
|
|
88
|
-
await this.atomicApplicationUninstall(projectId);
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
default:
|
|
92
|
-
logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async handleAgentCommand(message) {
|
|
96
|
-
switch (message.messageType) {
|
|
97
|
-
case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates:
|
|
98
|
-
await this.liveUpdatesHandler.handleToggles(message.liveUpdatesToggles);
|
|
99
|
-
break;
|
|
100
|
-
default:
|
|
101
|
-
logger_1.logger.error(`Invalid agent action message type from message '${message}'`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
163
|
async publishCloudRequest(payload) {
|
|
105
164
|
this.publisher.publishToCloud(payload);
|
|
106
165
|
}
|
|
@@ -109,58 +168,24 @@ class DeviceAgentCloudConnection {
|
|
|
109
168
|
this.device.subscribe(topic);
|
|
110
169
|
}
|
|
111
170
|
async atomicApplicationUninstall(projectId) {
|
|
112
|
-
const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
|
|
113
|
-
projectId
|
|
114
|
-
});
|
|
115
|
-
await this.cmdStatusMgr.start(projectId);
|
|
116
|
-
await this.liveUpdatesHandler.enableAppInstallStatus({
|
|
117
|
-
projectId,
|
|
118
|
-
appReleaseHash
|
|
119
|
-
});
|
|
120
171
|
try {
|
|
121
172
|
await (0, application_control_1.uninstallApp)({ projectId });
|
|
122
173
|
this.shadowHandler.clearAppConfig(projectId);
|
|
123
|
-
await this.cmdStatusMgr.stop(projectId);
|
|
124
|
-
await this.liveUpdatesHandler.disableAppInstallStatus({
|
|
125
|
-
projectId
|
|
126
|
-
});
|
|
127
|
-
// Send final status message
|
|
128
|
-
this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
|
|
129
174
|
}
|
|
130
175
|
catch (e) {
|
|
131
176
|
logger_1.logger.error(`Failed to uninstall ${projectId}: ${e.message}`);
|
|
132
|
-
|
|
133
|
-
await this.cmdStatusMgr.stop(projectId);
|
|
134
|
-
await this.liveUpdatesHandler.disableAppInstallStatus({
|
|
135
|
-
projectId
|
|
136
|
-
});
|
|
137
|
-
// Send final status message
|
|
138
|
-
this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
|
|
177
|
+
throw e;
|
|
139
178
|
}
|
|
140
179
|
}
|
|
141
180
|
// eslint-disable-next-line
|
|
142
|
-
async atomicApplicationUpdate(func, args, projectId
|
|
143
|
-
await this.cmdStatusMgr.start(projectId);
|
|
144
|
-
await this.liveUpdatesHandler.enableAppInstallStatus({
|
|
145
|
-
projectId,
|
|
146
|
-
appReleaseHash
|
|
147
|
-
});
|
|
148
|
-
// Install the app and models
|
|
181
|
+
async atomicApplicationUpdate(func, args, projectId) {
|
|
149
182
|
try {
|
|
150
183
|
const out = await func(...args);
|
|
151
|
-
await this.
|
|
152
|
-
await this.liveUpdatesHandler.disableAppInstallStatus({
|
|
153
|
-
projectId
|
|
154
|
-
});
|
|
155
|
-
// Send final status message
|
|
156
|
-
this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
|
|
157
|
-
// update app config shadow for project
|
|
158
|
-
await this.shadowHandler.publishAppConfig(projectId);
|
|
184
|
+
await this.shadowHandler.updateProjectShadow(projectId);
|
|
159
185
|
return out;
|
|
160
186
|
}
|
|
161
187
|
catch (e) {
|
|
162
|
-
logger_1.logger.error(`Failed to
|
|
163
|
-
const message = e.message;
|
|
188
|
+
logger_1.logger.error(`Failed to update ${projectId}:\n${e.message}\n${e.stack}`);
|
|
164
189
|
// uninstall the failed app to put system back in good state
|
|
165
190
|
// TODO: Replace this with rollback
|
|
166
191
|
try {
|
|
@@ -168,52 +193,51 @@ class DeviceAgentCloudConnection {
|
|
|
168
193
|
}
|
|
169
194
|
finally {
|
|
170
195
|
this.shadowHandler.clearAppConfig(projectId);
|
|
171
|
-
|
|
172
|
-
|
|
196
|
+
}
|
|
197
|
+
throw e;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// eslint-disable-next-line
|
|
201
|
+
async atomicCmd(props) {
|
|
202
|
+
const { func, args, projectId } = props;
|
|
203
|
+
let appReleaseHash = props.appReleaseHash;
|
|
204
|
+
if (appReleaseHash === undefined) {
|
|
205
|
+
try {
|
|
206
|
+
appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
|
|
173
207
|
projectId
|
|
174
208
|
});
|
|
175
|
-
|
|
176
|
-
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
appReleaseHash = '';
|
|
177
212
|
}
|
|
178
213
|
}
|
|
179
|
-
|
|
180
|
-
async handleAppConfigUpdates(appCfgUpdates) {
|
|
181
|
-
for (const appConfigUpdate of appCfgUpdates) {
|
|
182
|
-
const { projectId, newAppCfg, updatedModels } = appConfigUpdate;
|
|
183
|
-
const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
|
|
184
|
-
projectId
|
|
185
|
-
});
|
|
214
|
+
try {
|
|
186
215
|
await this.cmdStatusMgr.start(projectId);
|
|
187
216
|
await this.liveUpdatesHandler.enableAppInstallStatus({
|
|
188
217
|
projectId,
|
|
189
218
|
appReleaseHash
|
|
190
219
|
});
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this.
|
|
194
|
-
|
|
195
|
-
this.publisher.publishToCloud({
|
|
196
|
-
messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
|
|
197
|
-
modelsOnlyUrlsRequest: {
|
|
198
|
-
projectId,
|
|
199
|
-
models: updatedModels
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
// FIXME: do we need to send this up to the cloud?
|
|
205
|
-
// should it be something other than appReleaseHash?
|
|
206
|
-
const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
|
|
220
|
+
const completed = await func(...args);
|
|
221
|
+
if (completed) {
|
|
222
|
+
await this.cmdStatusMgr.stop(projectId);
|
|
223
|
+
await this.liveUpdatesHandler.disableAppInstallStatus({
|
|
207
224
|
projectId
|
|
208
225
|
});
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
projectId,
|
|
212
|
-
appReleaseHash,
|
|
213
|
-
newAppCfg
|
|
214
|
-
}
|
|
215
|
-
], projectId, appReleaseHash);
|
|
226
|
+
// Send final status message
|
|
227
|
+
this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
|
|
216
228
|
}
|
|
229
|
+
return completed;
|
|
230
|
+
}
|
|
231
|
+
catch (e) {
|
|
232
|
+
logger_1.logger.error(`Failed to execute cmd for ${projectId}:\n${e.message}\n${e.stack}`);
|
|
233
|
+
const message = e.message;
|
|
234
|
+
// uninstall the failed app to put system back in good state
|
|
235
|
+
await this.cmdStatusMgr.stop(projectId);
|
|
236
|
+
await this.liveUpdatesHandler.disableAppInstallStatus({
|
|
237
|
+
projectId
|
|
238
|
+
});
|
|
239
|
+
// Send final status message
|
|
240
|
+
this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
|
|
217
241
|
}
|
|
218
242
|
}
|
|
219
243
|
getClientId() {
|
|
@@ -228,53 +252,62 @@ class DeviceAgentCloudConnection {
|
|
|
228
252
|
isCmdInProgress(projectId) {
|
|
229
253
|
return this.cmdStatusMgr.isCmdInProgress(projectId);
|
|
230
254
|
}
|
|
255
|
+
async updateProjectShadow(projectId) {
|
|
256
|
+
await this.shadowHandler.updateProjectShadow(projectId);
|
|
257
|
+
}
|
|
231
258
|
async handleClientMessage({ topic, message }) {
|
|
232
259
|
const valid = (0, device_agent_schemas_1.validateClientMessage)(message);
|
|
233
260
|
if (!valid) {
|
|
234
261
|
logger_1.logger.error(`Error validating message: ${JSON.stringify({ topic, message, errors: device_agent_schemas_1.validateClientMessage.errors }, null, 2)}`);
|
|
262
|
+
// TODO: Send generic error response
|
|
235
263
|
return;
|
|
236
264
|
}
|
|
237
265
|
const payload = message.payload;
|
|
238
266
|
switch (payload.messageType) {
|
|
239
267
|
case device_agent_schemas_1.keyMirrors.clientMessageType.app_state_control: {
|
|
240
|
-
|
|
268
|
+
const projectId = payload.appStateControl.projectId;
|
|
269
|
+
await this.atomicCmd({
|
|
270
|
+
func: this.handleAppStateControl,
|
|
271
|
+
args: [payload.appStateControl],
|
|
272
|
+
projectId
|
|
273
|
+
});
|
|
241
274
|
break;
|
|
242
275
|
}
|
|
243
276
|
case device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control: {
|
|
244
|
-
|
|
277
|
+
const projectId = payload.appVersionControl.projectId;
|
|
278
|
+
const appReleaseHash = payload.appVersionControl.baseCommand ===
|
|
279
|
+
device_agent_schemas_1.keyMirrors.appVersionControl.install
|
|
280
|
+
? payload.appVersionControl.appReleaseHash
|
|
281
|
+
: undefined;
|
|
282
|
+
await this.atomicCmd({
|
|
283
|
+
func: this.handleAppVersionControl,
|
|
284
|
+
args: [payload.appVersionControl],
|
|
285
|
+
projectId,
|
|
286
|
+
appReleaseHash
|
|
287
|
+
});
|
|
245
288
|
break;
|
|
246
289
|
}
|
|
247
290
|
case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates: {
|
|
291
|
+
// TODO: Send response?
|
|
248
292
|
await this.handleAgentCommand(payload);
|
|
249
293
|
break;
|
|
250
294
|
}
|
|
251
295
|
case device_agent_schemas_1.keyMirrors.clientMessageType.app_install_cloud_response: {
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
296
|
+
const projectId = payload.appInstallCloudResponse.projectId;
|
|
297
|
+
await this.atomicCmd({
|
|
298
|
+
func: this.handleAppInstallCloudResponse,
|
|
299
|
+
args: [payload],
|
|
300
|
+
projectId
|
|
301
|
+
});
|
|
258
302
|
break;
|
|
259
303
|
}
|
|
260
304
|
case device_agent_schemas_1.keyMirrors.clientMessageType.models_install_cloud_response: {
|
|
261
|
-
const { projectId
|
|
262
|
-
|
|
305
|
+
const { projectId } = payload.modelsInstallCloudResponse;
|
|
306
|
+
await this.atomicCmd({
|
|
307
|
+
func: this.handleModelsInstallCloudResponse,
|
|
308
|
+
args: [payload],
|
|
263
309
|
projectId
|
|
264
310
|
});
|
|
265
|
-
const newAppCfg = this.newAppCfgQueue.shift();
|
|
266
|
-
if (newAppCfg === undefined) {
|
|
267
|
-
logger_1.logger.error('Unknown error while updating models via application config! No config present for model update.');
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
|
|
271
|
-
{
|
|
272
|
-
projectId,
|
|
273
|
-
modelInstallPayloads: newModels,
|
|
274
|
-
newAppCfg,
|
|
275
|
-
appReleaseHash
|
|
276
|
-
}
|
|
277
|
-
], projectId, appReleaseHash);
|
|
278
311
|
break;
|
|
279
312
|
}
|
|
280
313
|
default:
|
|
@@ -286,12 +319,26 @@ class DeviceAgentCloudConnection {
|
|
|
286
319
|
switch (topic) {
|
|
287
320
|
case this.shadowHandler.shadowTopics.projects.getAccepted:
|
|
288
321
|
case this.shadowHandler.shadowTopics.projects.updateDelta: {
|
|
289
|
-
const
|
|
322
|
+
const shadowUpdates = await this.shadowHandler.handleShadowTopic({
|
|
290
323
|
topic,
|
|
291
324
|
payload: message.state,
|
|
292
325
|
clientToken: message.clientToken
|
|
293
326
|
});
|
|
294
|
-
|
|
327
|
+
if (shadowUpdates.length) {
|
|
328
|
+
// FIXME: Take project ID of first shadow update. Most likely there will only be one update
|
|
329
|
+
// so this should be sufficient for now.
|
|
330
|
+
const projectId = shadowUpdates[0].projectId;
|
|
331
|
+
try {
|
|
332
|
+
await this.atomicCmd({
|
|
333
|
+
func: this.handleAppConfigUpdates,
|
|
334
|
+
args: [shadowUpdates],
|
|
335
|
+
projectId
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
catch (e) {
|
|
339
|
+
logger_1.logger.error(`Error handling shadow message: ${e.message}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
295
342
|
break;
|
|
296
343
|
}
|
|
297
344
|
case this.shadowHandler.shadowTopics.projects.getRejected:
|
|
@@ -337,14 +384,17 @@ class DeviceAgentCloudConnection {
|
|
|
337
384
|
logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
|
|
338
385
|
});
|
|
339
386
|
}
|
|
340
|
-
stop() {
|
|
387
|
+
async stop() {
|
|
388
|
+
// FIXME: This method is currently only used by the CLI, and shadow messages
|
|
389
|
+
// can be lost since we aren't waiting for responses so sleep for a short
|
|
390
|
+
// time to receive them
|
|
391
|
+
await (0, sleep_1.default)(1000);
|
|
341
392
|
this.device.end();
|
|
342
393
|
}
|
|
343
394
|
}
|
|
344
395
|
exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
|
|
345
396
|
async function runDeviceAgentCloudInterface() {
|
|
346
|
-
|
|
347
|
-
if ((0, fs_1.existsSync)(directories_1.DEVICE_CERTIFICATE_FILE_PATH)) {
|
|
397
|
+
if ((0, cloud_mode_ready_1.cloudModeReady)()) {
|
|
348
398
|
const deviceAgent = new DeviceAgentCloudConnection();
|
|
349
399
|
await deviceAgent.setupHandlers();
|
|
350
400
|
if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH === true) {
|
|
@@ -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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"}
|
|
@@ -14,6 +14,9 @@ export declare class LiveUpdatesHandler {
|
|
|
14
14
|
private restartLiveUpdatesTimeout;
|
|
15
15
|
private startPublishingLiveUpdates;
|
|
16
16
|
constructor(publisher: Publisher);
|
|
17
|
+
getDeviceStatsLiveUpdates(): boolean;
|
|
18
|
+
getAppStateLiveUpdates(): boolean;
|
|
19
|
+
getAppLogsLiveUpdates(): boolean;
|
|
17
20
|
enableAppInstallStatus(props: {
|
|
18
21
|
projectId: string;
|
|
19
22
|
appReleaseHash: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAaxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;YAEjC,iBAAiB;IAqC/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;YAWnB,0BAA0B;gBA6B5B,SAAS,EAAE,SAAS;IAOzB,yBAAyB;IAIzB,sBAAsB;IAItB,qBAAqB;IAIf,sBAAsB,CAAC,KAAK,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAeY,uBAAuB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IASpD,aAAa,CAAC,OAAO,EAAE,kBAAkB;CAwCvD"}
|
|
@@ -6,6 +6,10 @@ const application_control_1 = require("../application-control");
|
|
|
6
6
|
const logger_1 = require("../util/logger");
|
|
7
7
|
const sleep_1 = require("../util/sleep");
|
|
8
8
|
const messages_1 = require("./messages");
|
|
9
|
+
const environment_1 = require("../environment");
|
|
10
|
+
const LIVE_UPDATES_TIMEOUT = environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS
|
|
11
|
+
? parseInt(environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS)
|
|
12
|
+
: 60000;
|
|
9
13
|
class LiveUpdatesHandler {
|
|
10
14
|
/*=================================================================
|
|
11
15
|
Public interface
|
|
@@ -26,6 +30,7 @@ class LiveUpdatesHandler {
|
|
|
26
30
|
this.appLogStreams = new Set();
|
|
27
31
|
this.appInstallStatuses = new Set();
|
|
28
32
|
this.publisher = publisher;
|
|
33
|
+
logger_1.logger.debug(`Toggle live updates timeout set to ${LIVE_UPDATES_TIMEOUT} ms`);
|
|
29
34
|
}
|
|
30
35
|
async startAppLogStream(projectId) {
|
|
31
36
|
logger_1.logger.info(`Starting log stream for ${projectId}`);
|
|
@@ -84,10 +89,10 @@ class LiveUpdatesHandler {
|
|
|
84
89
|
return -1;
|
|
85
90
|
}
|
|
86
91
|
setLiveUpdates(toggles) {
|
|
87
|
-
if (toggles.deviceStats) {
|
|
92
|
+
if (toggles.deviceStats !== undefined) {
|
|
88
93
|
this.liveUpdatesAlive.device_stats = toggles.deviceStats;
|
|
89
94
|
}
|
|
90
|
-
if (toggles.appState) {
|
|
95
|
+
if (toggles.appState !== undefined) {
|
|
91
96
|
this.liveUpdatesAlive.app_state = toggles.appState;
|
|
92
97
|
}
|
|
93
98
|
}
|
|
@@ -99,8 +104,7 @@ class LiveUpdatesHandler {
|
|
|
99
104
|
appState: false
|
|
100
105
|
});
|
|
101
106
|
this.appLogStreams.clear();
|
|
102
|
-
|
|
103
|
-
}, 600000); // 10 min
|
|
107
|
+
}, LIVE_UPDATES_TIMEOUT);
|
|
104
108
|
}
|
|
105
109
|
async startPublishingLiveUpdates(messageType, getMessageData, args, projectId) {
|
|
106
110
|
logger_1.logger.info(`Turned on live updates for ${messageType}`);
|
|
@@ -120,6 +124,15 @@ class LiveUpdatesHandler {
|
|
|
120
124
|
await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
|
|
121
125
|
}
|
|
122
126
|
}
|
|
127
|
+
getDeviceStatsLiveUpdates() {
|
|
128
|
+
return this.liveUpdatesAlive.device_stats;
|
|
129
|
+
}
|
|
130
|
+
getAppStateLiveUpdates() {
|
|
131
|
+
return this.liveUpdatesAlive.app_state;
|
|
132
|
+
}
|
|
133
|
+
getAppLogsLiveUpdates() {
|
|
134
|
+
return this.liveUpdatesAlive.app_logs;
|
|
135
|
+
}
|
|
123
136
|
async enableAppInstallStatus(props) {
|
|
124
137
|
const { projectId, appReleaseHash } = props;
|
|
125
138
|
this.liveUpdatesAlive.app_install_status = true;
|
|
@@ -139,22 +152,25 @@ class LiveUpdatesHandler {
|
|
|
139
152
|
async handleToggles(toggles) {
|
|
140
153
|
const { deviceStats, appState, appLogs } = toggles;
|
|
141
154
|
this.restartLiveUpdatesTimeout();
|
|
155
|
+
const currentDeviceStats = this.getDeviceStatsLiveUpdates();
|
|
142
156
|
if (deviceStats !== undefined) {
|
|
143
157
|
this.liveUpdatesAlive.device_stats = deviceStats;
|
|
144
|
-
if (deviceStats) {
|
|
158
|
+
if (deviceStats && currentDeviceStats !== true) {
|
|
145
159
|
// Don't wait for this call to finish since it loops until disabled
|
|
146
160
|
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.device_stats, messages_1.getDeviceStatsMessage, []);
|
|
147
161
|
}
|
|
148
162
|
}
|
|
163
|
+
const currentAppState = this.getAppStateLiveUpdates();
|
|
149
164
|
if (appState !== undefined) {
|
|
150
165
|
this.liveUpdatesAlive.app_state = appState;
|
|
151
|
-
if (appState) {
|
|
166
|
+
if (appState && currentAppState !== true) {
|
|
152
167
|
// Don't wait for this call to finish since it loops until disabled
|
|
153
168
|
void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_state, messages_1.getAppStateMessage, []);
|
|
154
169
|
}
|
|
155
170
|
}
|
|
171
|
+
const currentAppLogs = this.getAppLogsLiveUpdates();
|
|
156
172
|
if (appLogs !== undefined) {
|
|
157
|
-
if (appLogs.toggle) {
|
|
173
|
+
if (appLogs.toggle && currentAppLogs !== true) {
|
|
158
174
|
// Don't wait for this call to finish since it loops until disabled
|
|
159
175
|
void this.startAppLogStream(appLogs.projectId);
|
|
160
176
|
}
|