@alwaysai/device-agent 0.0.14 → 0.0.16
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/install.d.ts.map +1 -1
- package/lib/application-control/install.js +1 -0
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +8 -13
- package/lib/application-control/status.js.map +1 -1
- package/lib/cloud-connection/bootstrap-provision.d.ts +1 -1
- package/lib/cloud-connection/bootstrap-provision.d.ts.map +1 -1
- package/lib/cloud-connection/bootstrap-provision.js +9 -9
- package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
- package/lib/cloud-connection/cmd-status.d.ts +3 -11
- package/lib/cloud-connection/cmd-status.d.ts.map +1 -1
- package/lib/cloud-connection/cmd-status.js +24 -11
- package/lib/cloud-connection/cmd-status.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +2 -3
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +93 -43
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/device-agent.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent.js +4 -3
- package/lib/cloud-connection/device-agent.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +10 -18
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +50 -50
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/messages.d.ts +3 -1
- package/lib/cloud-connection/messages.d.ts.map +1 -1
- package/lib/cloud-connection/messages.js +13 -1
- package/lib/cloud-connection/messages.js.map +1 -1
- package/lib/cloud-connection/passthrough-handler.js +1 -1
- package/lib/cloud-connection/passthrough-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +11 -4
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.js +3 -3
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +1 -1
- package/lib/environment.js.map +1 -1
- package/lib/index.js +5 -3
- package/lib/index.js.map +1 -1
- package/lib/subcommands/app/app.d.ts +2 -2
- package/lib/subcommands/app/app.d.ts.map +1 -1
- package/lib/subcommands/app/app.js +28 -10
- package/lib/subcommands/app/app.js.map +1 -1
- package/lib/subcommands/app/index.js +2 -2
- package/lib/subcommands/device/device.d.ts.map +1 -1
- package/lib/subcommands/device/device.js +2 -1
- package/lib/subcommands/device/device.js.map +1 -1
- package/lib/util/directories.d.ts +11 -12
- package/lib/util/directories.d.ts.map +1 -1
- package/lib/util/directories.js +24 -29
- package/lib/util/directories.js.map +1 -1
- package/lib/util/logger.js +1 -0
- package/lib/util/logger.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +3 -3
- package/src/application-control/install.ts +3 -1
- package/src/application-control/status.ts +10 -16
- package/src/cloud-connection/bootstrap-provision.ts +13 -10
- package/src/cloud-connection/cmd-status.ts +30 -11
- package/src/cloud-connection/device-agent-cloud-connection.ts +128 -66
- package/src/cloud-connection/device-agent.ts +7 -4
- package/src/cloud-connection/live-updates-handler.ts +79 -86
- package/src/cloud-connection/messages.ts +22 -1
- package/src/cloud-connection/passthrough-handler.ts +1 -1
- package/src/cloud-connection/shadow-handler.test.ts +3 -3
- package/src/cloud-connection/shadow-handler.ts +15 -11
- package/src/environment.ts +1 -1
- package/src/index.ts +6 -3
- package/src/subcommands/app/app.ts +27 -10
- package/src/subcommands/app/index.ts +4 -4
- package/src/subcommands/device/device.ts +5 -2
- package/src/util/directories.ts +31 -29
- package/src/util/logger.ts +2 -0
- package/lib/cloud-connection/app-install-status.d.ts +0 -16
- package/lib/cloud-connection/app-install-status.d.ts.map +0 -1
- package/lib/cloud-connection/app-install-status.js +0 -53
- package/lib/cloud-connection/app-install-status.js.map +0 -1
- package/lib/util/timer.d.ts +0 -2
- package/lib/util/timer.d.ts.map +0 -1
- package/lib/util/timer.js +0 -6
- package/lib/util/timer.js.map +0 -1
- package/src/cloud-connection/app-install-status.ts +0 -62
- package/src/util/timer.ts +0 -1
|
@@ -7,14 +7,14 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
7
7
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.setEnvCliLeaf = exports.getAllEnvsCliLeaf = exports.updateModelsCliLeaf = exports.replaceModelsCliLeaf = exports.removeModelCliLeaf = exports.addModelCliLeaf = exports.showAppModelsCliLeaf = exports.rollbackAppCliLeaf = exports.uninstallAppCliLeaf = exports.restartAppCliLeaf = exports.stopAppCliLeaf = exports.getAppLogsCliLeaf = exports.startAppCliLeaf = exports.getAppStatusCliLeaf = exports.installAppCliLeaf = exports.listAppLatestReleaseCliLeaf = exports.listAppReleasesCliLeaf = exports.listAppsCliLeaf = void 0;
|
|
11
11
|
const alwayscli_1 = require("@alwaysai/alwayscli");
|
|
12
12
|
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
13
13
|
const application_control_1 = require("../../application-control");
|
|
14
14
|
const device_agent_cloud_connection_1 = require("../../cloud-connection/device-agent-cloud-connection");
|
|
15
15
|
const agent_config_1 = require("../../infrastructure/agent-config");
|
|
16
16
|
const logger_1 = require("../../util/logger");
|
|
17
|
-
const
|
|
17
|
+
const sleep_1 = require("../../util/sleep");
|
|
18
18
|
exports.listAppsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
19
19
|
name: 'list',
|
|
20
20
|
description: 'List all installed apps',
|
|
@@ -82,9 +82,9 @@ exports.installAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
|
-
await deviceAgent.
|
|
86
|
-
while (deviceAgent.
|
|
87
|
-
await (0,
|
|
85
|
+
await deviceAgent.handleMessage(topic, message);
|
|
86
|
+
while (deviceAgent.isCmdInProgress(project)) {
|
|
87
|
+
await (0, sleep_1.default)(1000);
|
|
88
88
|
}
|
|
89
89
|
deviceAgent.stop();
|
|
90
90
|
}
|
|
@@ -189,7 +189,25 @@ exports.uninstallAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
189
189
|
},
|
|
190
190
|
async action(_, opts) {
|
|
191
191
|
const { project } = opts;
|
|
192
|
-
|
|
192
|
+
const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
|
|
193
|
+
await deviceAgent.setupHandlers();
|
|
194
|
+
const topic = deviceAgent.getToDeviceTopic();
|
|
195
|
+
const message = {
|
|
196
|
+
timestamp: '',
|
|
197
|
+
topic,
|
|
198
|
+
payload: {
|
|
199
|
+
messageType: device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control,
|
|
200
|
+
appVersionControl: {
|
|
201
|
+
baseCommand: device_agent_schemas_1.keyMirrors.appVersionControl.uninstall,
|
|
202
|
+
projectId: project
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
await deviceAgent.handleMessage(topic, message);
|
|
207
|
+
while (deviceAgent.isCmdInProgress(project)) {
|
|
208
|
+
await (0, sleep_1.default)(1000);
|
|
209
|
+
}
|
|
210
|
+
deviceAgent.stop();
|
|
193
211
|
}
|
|
194
212
|
});
|
|
195
213
|
exports.rollbackAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
@@ -257,8 +275,8 @@ exports.addModelCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
257
275
|
clientToken: 'not-self'
|
|
258
276
|
};
|
|
259
277
|
await deviceAgent.handleMessage(topic, message);
|
|
260
|
-
while (deviceAgent.
|
|
261
|
-
await (0,
|
|
278
|
+
while (deviceAgent.isCmdInProgress(project)) {
|
|
279
|
+
await (0, sleep_1.default)(1000);
|
|
262
280
|
}
|
|
263
281
|
deviceAgent.stop();
|
|
264
282
|
}
|
|
@@ -313,7 +331,7 @@ exports.updateModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
313
331
|
await (0, application_control_1.updateModels)({ projectId: project });
|
|
314
332
|
}
|
|
315
333
|
});
|
|
316
|
-
exports.
|
|
334
|
+
exports.getAllEnvsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
317
335
|
name: 'get-all-envs',
|
|
318
336
|
description: 'Get environment variables for an application',
|
|
319
337
|
namedInputs: {
|
|
@@ -327,7 +345,7 @@ exports.getAllEnvsCLiLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
327
345
|
logger_1.logger.info(await (0, application_control_1.getAllEnvs)({ projectId: project }));
|
|
328
346
|
}
|
|
329
347
|
});
|
|
330
|
-
exports.
|
|
348
|
+
exports.setEnvCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
331
349
|
name: 'set-env',
|
|
332
350
|
description: 'Set environment variables for a service',
|
|
333
351
|
positionalInput: (0, alwayscli_1.CliStringArrayInput)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/subcommands/app/app.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,mDAK6B;AAC7B,yEAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/subcommands/app/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,8 @@ exports.appCliBranch = (0, alwayscli_1.CliBranch)({
|
|
|
23
23
|
app_1.removeModelCliLeaf,
|
|
24
24
|
app_1.replaceModelsCliLeaf,
|
|
25
25
|
app_1.updateModelsCliLeaf,
|
|
26
|
-
app_1.
|
|
27
|
-
app_1.
|
|
26
|
+
app_1.getAllEnvsCliLeaf,
|
|
27
|
+
app_1.setEnvCliLeaf
|
|
28
28
|
]
|
|
29
29
|
});
|
|
30
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,WAAW;;;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,WAAW;;;4DA6EtB,CAAC;AAEH,eAAO,MAAM,cAAc,yKAYzB,CAAC"}
|
|
@@ -31,7 +31,8 @@ exports.initCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
31
31
|
async action(_, opts) {
|
|
32
32
|
let { name } = opts;
|
|
33
33
|
name = name || (0, uuid_1.v4)();
|
|
34
|
-
if ((0, device_1.DeviceConfigFile)().exists() ||
|
|
34
|
+
if ((0, device_1.DeviceConfigFile)().exists() ||
|
|
35
|
+
(0, fs_1.existsSync)(directories_1.DEVICE_PRIVATE_KEY_FILE_PATH)) {
|
|
35
36
|
throw new Error("Device has been previously provisioned. Run 'aai-agent device clean' to re-provision");
|
|
36
37
|
}
|
|
37
38
|
logger_1.logger.info(`Initializing device ${name}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,+CAA8D;AAC9D,+BAAoC;AACpC,gEAAsE;AACtE,2BAAgC;AAChC,wDAA4E;AAC5E,wDAIgC;AAEhC,sDAAgE;AAChE,4CAA8C;AAC9C,wEAI6C;AAC7C,sFAAoF;AACpF,8CAA2C;AAC3C,qDAA4D;AAC5D,gGAAwF;AAE3E,QAAA,WAAW,GAAG,IAAA,mBAAO,EAAC;IACjC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE;QACX,IAAI,EAAE,IAAA,0BAAc,EAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,IAAA,0BAAc,EAAC;YAC1B,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACpB,IAAI,GAAG,IAAI,IAAI,IAAA,SAAM,GAAE,CAAC;QAExB,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,17 @@ export declare const AWS_ROOT_CERTIFICATE_FILE_NAME = "AmazonRootCA1.pem";
|
|
|
4
4
|
export declare const AWS_ROOT_CERTIFICATE_FILE_PATH: string;
|
|
5
5
|
export declare const shortenSystemId: () => "qa" | "dev" | "prod" | undefined;
|
|
6
6
|
export declare const BOOTSTRAP_DIR_NAME = "bootstrap-certificates";
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
7
|
+
export declare const BOOTSTRAP_PRIVATE_KEY_FILE_NAME: () => string;
|
|
8
|
+
export declare const BOOTSTRAP_CERTIFICATE_FILE_NAME: () => string;
|
|
9
|
+
export declare const BOOTSTRAP_ID_FILE_NAME: () => string;
|
|
10
10
|
export declare const CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = "certificate-ownership-token.txt";
|
|
11
|
-
export declare const DEVICE_PRIVATE_KEY_FILE_NAME: () => string;
|
|
12
|
-
export declare const DEVICE_CERTIFICATE_FILE_NAME: () => string;
|
|
13
|
-
export declare const DEVICE_CLAIM_ID_FILE_NAME: () => string;
|
|
14
|
-
export declare function getPrivateKeyFilePath(): string;
|
|
15
|
-
export declare function getCertificateFilePath(): string;
|
|
16
11
|
export declare const BOOTSTRAP_CERTIFICATES_DIR_PATH: () => string;
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
12
|
+
export declare const BOOTSTRAP_PRIVATE_KEY_FILE_PATH: () => string;
|
|
13
|
+
export declare const BOOTSTRAP_CERTIFICATE_FILE_PATH: () => string;
|
|
14
|
+
export declare const BOOTSTRAP_ID_FILE_PATH: () => string;
|
|
15
|
+
export declare const DEVICE_PRIVATE_KEY_FILE_NAME = "aai-device-private-key.pem.key";
|
|
16
|
+
export declare const DEVICE_CERTIFICATE_FILE_NAME = "aai-device-cert.pem.crt";
|
|
17
|
+
export declare const DEVICE_ID_FILE_NAME = "aai-device-cert-id.txt";
|
|
18
|
+
export declare const DEVICE_PRIVATE_KEY_FILE_PATH: string;
|
|
19
|
+
export declare const DEVICE_CERTIFICATE_FILE_PATH: string;
|
|
21
20
|
//# sourceMappingURL=directories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directories.d.ts","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAE3D,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAClE,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAEF,eAAO,MAAM,eAAe,yCAU3B,CAAC;
|
|
1
|
+
{"version":3,"file":"directories.d.ts","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAE3D,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAClE,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAEF,eAAO,MAAM,eAAe,yCAU3B,CAAC;AAMF,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,+BAA+B,cACU,CAAC;AACvD,eAAO,MAAM,+BAA+B,cACG,CAAC;AAChD,eAAO,MAAM,sBAAsB,cACW,CAAC;AAC/C,eAAO,MAAM,qCAAqC,oCACf,CAAC;AAEpC,eAAO,MAAM,+BAA+B,cACM,CAAC;AAEnD,eAAO,MAAM,+BAA+B,cAKzC,CAAC;AAEJ,eAAO,MAAM,+BAA+B,cAKzC,CAAC;AAEJ,eAAO,MAAM,sBAAsB,cACyC,CAAC;AAM7E,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAC7E,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,eAAO,MAAM,4BAA4B,QAGxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAGxC,CAAC"}
|
package/lib/util/directories.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DEVICE_CERTIFICATE_FILE_PATH = exports.DEVICE_PRIVATE_KEY_FILE_PATH = exports.DEVICE_ID_FILE_NAME = exports.DEVICE_CERTIFICATE_FILE_NAME = exports.DEVICE_PRIVATE_KEY_FILE_NAME = exports.BOOTSTRAP_ID_FILE_PATH = exports.BOOTSTRAP_CERTIFICATE_FILE_PATH = exports.BOOTSTRAP_PRIVATE_KEY_FILE_PATH = exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = exports.BOOTSTRAP_ID_FILE_NAME = exports.BOOTSTRAP_CERTIFICATE_FILE_NAME = exports.BOOTSTRAP_PRIVATE_KEY_FILE_NAME = exports.BOOTSTRAP_DIR_NAME = exports.shortenSystemId = exports.AWS_ROOT_CERTIFICATE_FILE_PATH = exports.AWS_ROOT_CERTIFICATE_FILE_NAME = exports.CREDENTIALS_FILE_PATH = exports.APP_ROOT = void 0;
|
|
4
4
|
const constants_1 = require("alwaysai/lib/constants");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const system_id_1 = require("../infrastructure/system-id");
|
|
@@ -21,36 +21,31 @@ const shortenSystemId = () => {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports.shortenSystemId = shortenSystemId;
|
|
24
|
+
/*===================================================================
|
|
25
|
+
Bootstrap Certificates
|
|
26
|
+
===================================================================*/
|
|
24
27
|
exports.BOOTSTRAP_DIR_NAME = 'bootstrap-certificates';
|
|
25
|
-
const
|
|
26
|
-
exports.
|
|
27
|
-
const
|
|
28
|
-
exports.
|
|
29
|
-
const
|
|
30
|
-
exports.
|
|
28
|
+
const BOOTSTRAP_PRIVATE_KEY_FILE_NAME = () => `aai-claim-private-key_${(0, exports.shortenSystemId)()}.pem.key`;
|
|
29
|
+
exports.BOOTSTRAP_PRIVATE_KEY_FILE_NAME = BOOTSTRAP_PRIVATE_KEY_FILE_NAME;
|
|
30
|
+
const BOOTSTRAP_CERTIFICATE_FILE_NAME = () => `aai-claim-cert_${(0, exports.shortenSystemId)()}.pem.crt`;
|
|
31
|
+
exports.BOOTSTRAP_CERTIFICATE_FILE_NAME = BOOTSTRAP_CERTIFICATE_FILE_NAME;
|
|
32
|
+
const BOOTSTRAP_ID_FILE_NAME = () => `aai-claim-cert-id_${(0, exports.shortenSystemId)()}.txt`;
|
|
33
|
+
exports.BOOTSTRAP_ID_FILE_NAME = BOOTSTRAP_ID_FILE_NAME;
|
|
31
34
|
exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = 'certificate-ownership-token.txt';
|
|
32
|
-
const DEVICE_PRIVATE_KEY_FILE_NAME = () => `aai-claim-private-key_${(0, exports.shortenSystemId)()}.pem.key`;
|
|
33
|
-
exports.DEVICE_PRIVATE_KEY_FILE_NAME = DEVICE_PRIVATE_KEY_FILE_NAME;
|
|
34
|
-
const DEVICE_CERTIFICATE_FILE_NAME = () => `aai-claim-cert_${(0, exports.shortenSystemId)()}.pem.crt`;
|
|
35
|
-
exports.DEVICE_CERTIFICATE_FILE_NAME = DEVICE_CERTIFICATE_FILE_NAME;
|
|
36
|
-
const DEVICE_CLAIM_ID_FILE_NAME = () => `aai-claim-cert-id_${(0, exports.shortenSystemId)()}.txt`;
|
|
37
|
-
exports.DEVICE_CLAIM_ID_FILE_NAME = DEVICE_CLAIM_ID_FILE_NAME;
|
|
38
|
-
function getPrivateKeyFilePath() {
|
|
39
|
-
return (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, (0, exports.DEVICE_PRIVATE_KEY_FILE_NAME)());
|
|
40
|
-
}
|
|
41
|
-
exports.getPrivateKeyFilePath = getPrivateKeyFilePath;
|
|
42
|
-
function getCertificateFilePath() {
|
|
43
|
-
return (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, (0, exports.DEVICE_CERTIFICATE_FILE_NAME)());
|
|
44
|
-
}
|
|
45
|
-
exports.getCertificateFilePath = getCertificateFilePath;
|
|
46
35
|
const BOOTSTRAP_CERTIFICATES_DIR_PATH = () => (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME);
|
|
47
36
|
exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = BOOTSTRAP_CERTIFICATES_DIR_PATH;
|
|
48
|
-
const
|
|
49
|
-
exports.
|
|
50
|
-
const
|
|
51
|
-
exports.
|
|
52
|
-
const
|
|
53
|
-
exports.
|
|
54
|
-
|
|
55
|
-
|
|
37
|
+
const BOOTSTRAP_PRIVATE_KEY_FILE_PATH = () => (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_PRIVATE_KEY_FILE_NAME)());
|
|
38
|
+
exports.BOOTSTRAP_PRIVATE_KEY_FILE_PATH = BOOTSTRAP_PRIVATE_KEY_FILE_PATH;
|
|
39
|
+
const BOOTSTRAP_CERTIFICATE_FILE_PATH = () => (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_CERTIFICATE_FILE_NAME)());
|
|
40
|
+
exports.BOOTSTRAP_CERTIFICATE_FILE_PATH = BOOTSTRAP_CERTIFICATE_FILE_PATH;
|
|
41
|
+
const BOOTSTRAP_ID_FILE_PATH = () => (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_ID_FILE_NAME)());
|
|
42
|
+
exports.BOOTSTRAP_ID_FILE_PATH = BOOTSTRAP_ID_FILE_PATH;
|
|
43
|
+
/*===================================================================
|
|
44
|
+
Device Certificates
|
|
45
|
+
===================================================================*/
|
|
46
|
+
exports.DEVICE_PRIVATE_KEY_FILE_NAME = 'aai-device-private-key.pem.key';
|
|
47
|
+
exports.DEVICE_CERTIFICATE_FILE_NAME = 'aai-device-cert.pem.crt';
|
|
48
|
+
exports.DEVICE_ID_FILE_NAME = 'aai-device-cert-id.txt';
|
|
49
|
+
exports.DEVICE_PRIVATE_KEY_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_PRIVATE_KEY_FILE_NAME);
|
|
50
|
+
exports.DEVICE_CERTIFICATE_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_CERTIFICATE_FILE_NAME);
|
|
56
51
|
//# sourceMappingURL=directories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directories.js","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":";;;AAAA,sDAKgC;AAChC,+BAA4B;AAC5B,2DAA0D;AAC1D,6BAA6B;AAEhB,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,cAAc,CAAC,CAAC;AAE9C,QAAA,qBAAqB,GAAG,IAAA,WAAI,EACvC,6BAAiB,EACjB,kCAAsB,CACvB,CAAC;AAEW,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,8BAA8B,GAAG,IAAA,WAAI,EAChD,kCAAsB,EACtB,sCAA8B,CAC/B,CAAC;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,GAAG,IAAA,uBAAW,GAAE,CAAC;IACzB,QAAQ,EAAE,EAAE;QACV,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;KACjB;AACH,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;
|
|
1
|
+
{"version":3,"file":"directories.js","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":";;;AAAA,sDAKgC;AAChC,+BAA4B;AAC5B,2DAA0D;AAC1D,6BAA6B;AAEhB,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,cAAc,CAAC,CAAC;AAE9C,QAAA,qBAAqB,GAAG,IAAA,WAAI,EACvC,6BAAiB,EACjB,kCAAsB,CACvB,CAAC;AAEW,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,8BAA8B,GAAG,IAAA,WAAI,EAChD,kCAAsB,EACtB,sCAA8B,CAC/B,CAAC;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,GAAG,IAAA,uBAAW,GAAE,CAAC;IACzB,QAAQ,EAAE,EAAE;QACV,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;KACjB;AACH,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEF;;qEAEqE;AAExD,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,yBAAyB,IAAA,uBAAe,GAAE,UAAU,CAAC;AAD1C,QAAA,+BAA+B,mCACW;AAChD,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,kBAAkB,IAAA,uBAAe,GAAE,UAAU,CAAC;AADnC,QAAA,+BAA+B,mCACI;AACzC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,qBAAqB,IAAA,uBAAe,GAAE,MAAM,CAAC;AADlC,QAAA,sBAAsB,0BACY;AAClC,QAAA,qCAAqC,GAChD,iCAAiC,CAAC;AAE7B,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EAAC,kCAAsB,EAAE,0BAAkB,CAAC,CAAC;AADtC,QAAA,+BAA+B,mCACO;AAE5C,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EACF,kCAAsB,EACtB,0BAAkB,EAClB,IAAA,uCAA+B,GAAE,CAClC,CAAC;AALS,QAAA,+BAA+B,mCAKxC;AAEG,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EACF,kCAAsB,EACtB,0BAAkB,EAClB,IAAA,uCAA+B,GAAE,CAClC,CAAC;AALS,QAAA,+BAA+B,mCAKxC;AAEG,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,IAAA,WAAI,EAAC,kCAAsB,EAAE,0BAAkB,EAAE,IAAA,8BAAsB,GAAE,CAAC,CAAC;AADhE,QAAA,sBAAsB,0BAC0C;AAE7E;;qEAEqE;AAExD,QAAA,4BAA4B,GAAG,gCAAgC,CAAC;AAChE,QAAA,4BAA4B,GAAG,yBAAyB,CAAC;AACzD,QAAA,mBAAmB,GAAG,wBAAwB,CAAC;AAE/C,QAAA,4BAA4B,GAAG,IAAA,WAAI,EAC9C,kCAAsB,EACtB,oCAA4B,CAC7B,CAAC;AAEW,QAAA,4BAA4B,GAAG,IAAA,WAAI,EAC9C,kCAAsB,EACtB,oCAA4B,CAC7B,CAAC"}
|
package/lib/util/logger.js
CHANGED
|
@@ -21,4 +21,5 @@ exports.logger = winston.createLogger({
|
|
|
21
21
|
format: winston.format.combine(winston.format.colorize(), winston.format.errors({ stack: true }), winston.format.splat(), winston.format.simple()),
|
|
22
22
|
transports
|
|
23
23
|
});
|
|
24
|
+
exports.logger.info(`Initialized logger with log level: ${LOG_LEVEL}`);
|
|
24
25
|
//# sourceMappingURL=logger.js.map
|
package/lib/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAmC;AACnC,6BAA6B;AAC7B,sDAAiD;AACjD,gDAA6E;AAE7E,MAAM,SAAS,GAAG,gCAAkB,IAAI,MAAM,CAAC;AAE/C,MAAM,UAAU,GAAG,qCAAuB;IACxC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;QACE,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC5D,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;AAEO,QAAA,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;IACD,UAAU;CACX,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAmC;AACnC,6BAA6B;AAC7B,sDAAiD;AACjD,gDAA6E;AAE7E,MAAM,SAAS,GAAG,gCAAkB,IAAI,MAAM,CAAC;AAE/C,MAAM,UAAU,GAAG,qCAAuB;IACxC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;QACE,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC5D,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;AAEO,QAAA,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;IACD,UAAU;CACX,CAAC,CAAC;AAEH,cAAM,CAAC,IAAI,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -45,7 +45,7 @@ Provisioning the device performs the following:
|
|
|
45
45
|
Run the following command on the target device to provision it:
|
|
46
46
|
|
|
47
47
|
```
|
|
48
|
-
$ curl -fsSL https://artifacts.alwaysai.co/device-agent/provision
|
|
48
|
+
$ curl -fsSL https://artifacts.alwaysai.co/device-agent/provision.sh | bash -s -- --email <email> --password <password> [--device-name <device_name>]
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Where:
|
|
@@ -56,10 +56,10 @@ Where:
|
|
|
56
56
|
will be generated for you and logged to the console for reference.
|
|
57
57
|
|
|
58
58
|
If you'd like to only provision the device, but not start the Device Agent in
|
|
59
|
-
the background (skip step 3), run
|
|
59
|
+
the background (skip step 3), run with the `--provision-only` flag:
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
$ curl -fsSL https://artifacts.alwaysai.co/device-agent/provision-agent.sh | bash -s -- <email> <password> [<device_name>]
|
|
62
|
+
$ curl -fsSL https://artifacts.alwaysai.co/device-agent/provision-agent.sh | bash -s -- --email <email> --password <password> [--device-name <device_name>] --provision-only
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
When the script completes, the device will be provisioned but the Device Agent will not be running in the background.
|
|
@@ -6,7 +6,7 @@ import { JsSpawner, Spawner } from 'alwaysai/lib/util';
|
|
|
6
6
|
import { getAppDir, downloadPackageUsingPresignedUrl, buildApp } from './utils';
|
|
7
7
|
import { AppDetailsPacket } from '@alwaysai/device-agent-schemas';
|
|
8
8
|
import { BACKUP_EXT } from './backup';
|
|
9
|
-
import { stopApp } from './status';
|
|
9
|
+
import { startApp, stopApp } from './status';
|
|
10
10
|
import { AgentConfigFile } from '../infrastructure/agent-config';
|
|
11
11
|
import { ProjectJsonFile } from 'alwaysai/lib/core/project';
|
|
12
12
|
import {
|
|
@@ -107,6 +107,8 @@ export async function installApp(props: {
|
|
|
107
107
|
version: appReleaseHash
|
|
108
108
|
});
|
|
109
109
|
|
|
110
|
+
await startApp({ projectId });
|
|
111
|
+
|
|
110
112
|
logger.info(`Completed installing ${projectId}:${appReleaseHash}`);
|
|
111
113
|
}
|
|
112
114
|
|
|
@@ -135,8 +135,7 @@ export async function startApp(props: {
|
|
|
135
135
|
logger.debug(`docker login: ${result}`);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
//
|
|
139
|
-
// Start app
|
|
138
|
+
// Always call `docker-compose up` regardless of application state
|
|
140
139
|
const upOut = await compose.upAll({ cwd: appDir });
|
|
141
140
|
logger.debug(`docker-compose up: ${JSON.stringify(upOut, null, 2)}`);
|
|
142
141
|
if (upOut.exitCode !== 0) {
|
|
@@ -152,21 +151,16 @@ export async function stopApp(props: { projectId: string }): Promise<void> {
|
|
|
152
151
|
await requireAppInstalled({ projectId });
|
|
153
152
|
|
|
154
153
|
const appDir = getAppDir(projectId);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (output.exitCode !== 0) {
|
|
164
|
-
throw new Error(
|
|
165
|
-
`Failed to stop application! stdout=${output.out} stderr=${output.err}`
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
logger.info(`Stopped ${projectId}`);
|
|
154
|
+
// Always call `docker-compose down` regardless of application state to ensure
|
|
155
|
+
// containers are cleaned up
|
|
156
|
+
const output = await compose.down({ cwd: appDir });
|
|
157
|
+
logger.debug(`docker-compose down: ${JSON.stringify(output, null, 2)}`);
|
|
158
|
+
if (output.exitCode !== 0) {
|
|
159
|
+
throw new Error(
|
|
160
|
+
`Failed to stop application! stdout=${output.out} stderr=${output.err}`
|
|
161
|
+
);
|
|
169
162
|
}
|
|
163
|
+
logger.info(`Stopped ${projectId}`);
|
|
170
164
|
}
|
|
171
165
|
|
|
172
166
|
export async function restartApp(props: { projectId: string }): Promise<void> {
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { logger } from 'alwaysai/lib/util';
|
|
2
1
|
import { getIoTCoreEndpointUrl } from '../infrastructure/urls';
|
|
3
2
|
import { rmBootstrapCertsAndClose } from '../util/clean-certs';
|
|
4
3
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
BOOTSTRAP_PRIVATE_KEY_FILE_PATH,
|
|
5
|
+
BOOTSTRAP_CERTIFICATE_FILE_PATH,
|
|
7
6
|
AWS_ROOT_CERTIFICATE_FILE_PATH
|
|
8
7
|
} from '../util/directories';
|
|
9
8
|
import { getDeviceUuid } from '../util/get-device-id';
|
|
9
|
+
import { logger } from '../util/logger';
|
|
10
10
|
import { BootstrapAgent } from './device-agent';
|
|
11
11
|
|
|
12
|
-
export function bootstrapProvision() {
|
|
12
|
+
export async function bootstrapProvision() {
|
|
13
13
|
setTimeout(rmBootstrapCertsAndClose, 60000);
|
|
14
14
|
|
|
15
15
|
const clientId = getDeviceUuid();
|
|
16
16
|
const bootstrapConfig = {
|
|
17
|
-
keyPath:
|
|
18
|
-
certPath:
|
|
17
|
+
keyPath: BOOTSTRAP_PRIVATE_KEY_FILE_PATH(),
|
|
18
|
+
certPath: BOOTSTRAP_CERTIFICATE_FILE_PATH(),
|
|
19
19
|
caPath: AWS_ROOT_CERTIFICATE_FILE_PATH,
|
|
20
20
|
clientId,
|
|
21
21
|
host: getIoTCoreEndpointUrl()
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
const bootstrapAgent = new BootstrapAgent(bootstrapConfig);
|
|
25
|
-
bootstrapAgent.subscribeToAllTopics();
|
|
25
|
+
await bootstrapAgent.subscribeToAllTopics();
|
|
26
26
|
|
|
27
27
|
bootstrapAgent.publishMessage('$aws/certificates/create/json', '');
|
|
28
28
|
|
|
@@ -30,9 +30,12 @@ export function bootstrapProvision() {
|
|
|
30
30
|
logger.info('Your device is being provisioned');
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
bootstrapAgent.device.on(
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
bootstrapAgent.device.on(
|
|
34
|
+
'message',
|
|
35
|
+
async (topic: string, payload: string) => {
|
|
36
|
+
await bootstrapAgent.handleAwsCertificateTopics(topic, payload);
|
|
37
|
+
}
|
|
38
|
+
);
|
|
36
39
|
|
|
37
40
|
bootstrapAgent.device.on('packetsend', (packet: any) => {
|
|
38
41
|
logger.debug(`Sending packet: ${JSON.stringify({ packet }, null, 2)}`);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { logger } from '../util/logger';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
type CmdStatusType = 'idle' | 'in_progress';
|
|
4
|
+
|
|
5
|
+
class CmdStatus {
|
|
4
6
|
private projectId: string;
|
|
5
7
|
private status: CmdStatusType;
|
|
6
8
|
|
|
@@ -25,20 +27,37 @@ export class CmdStatus {
|
|
|
25
27
|
export class CmdStatusManager {
|
|
26
28
|
private apps: { [projectId: string]: CmdStatus } = {};
|
|
27
29
|
|
|
28
|
-
public
|
|
29
|
-
if (projectId in this.apps) {
|
|
30
|
-
|
|
31
|
-
} else {
|
|
32
|
-
const cmdStatus = new CmdStatus(projectId, status);
|
|
30
|
+
public async start(projectId: string) {
|
|
31
|
+
if (!(projectId in this.apps)) {
|
|
32
|
+
const cmdStatus = new CmdStatus(projectId, 'in_progress');
|
|
33
33
|
this.apps[projectId] = cmdStatus;
|
|
34
|
+
} else if (this.apps[projectId].getStatus() !== 'in_progress') {
|
|
35
|
+
this.apps[projectId].update('in_progress');
|
|
36
|
+
} else {
|
|
37
|
+
logger.debug(
|
|
38
|
+
`Ignoring start for ${projectId} since it already has a command in progress`
|
|
39
|
+
);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
logger.debug(`Started command for ${projectId}`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public async stop(projectId: string) {
|
|
46
|
+
if (
|
|
47
|
+
!(projectId in this.apps) ||
|
|
48
|
+
this.apps[projectId].getStatus() === 'idle'
|
|
49
|
+
) {
|
|
50
|
+
throw new Error(`No ongoing command to stop for ${projectId}`);
|
|
34
51
|
}
|
|
52
|
+
this.apps[projectId].update('idle');
|
|
53
|
+
logger.debug(`Stopped command for ${projectId}`);
|
|
35
54
|
}
|
|
36
55
|
|
|
37
|
-
public
|
|
38
|
-
if (projectId in this.apps) {
|
|
39
|
-
return
|
|
56
|
+
public isCmdInProgress(projectId: string): boolean {
|
|
57
|
+
if (!(projectId in this.apps)) {
|
|
58
|
+
return false;
|
|
40
59
|
}
|
|
41
|
-
|
|
60
|
+
return this.apps[projectId].getStatus() === 'in_progress';
|
|
42
61
|
}
|
|
43
62
|
|
|
44
63
|
public anyCmdInProgress() {
|