@alwaysai/device-agent 0.0.4 → 0.0.5
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/backup.d.ts.map +1 -1
- package/lib/application-control/backup.js +10 -6
- package/lib/application-control/backup.js.map +1 -1
- package/lib/application-control/environment-variables.d.ts +9 -0
- package/lib/application-control/environment-variables.d.ts.map +1 -0
- package/lib/application-control/environment-variables.js +82 -0
- package/lib/application-control/environment-variables.js.map +1 -0
- package/lib/application-control/index.d.ts +9 -0
- package/lib/application-control/index.d.ts.map +1 -0
- package/lib/application-control/index.js +27 -0
- package/lib/application-control/index.js.map +1 -0
- package/lib/application-control/install.d.ts +8 -2
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +72 -42
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +7 -17
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +3 -3
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +19 -20
- package/lib/application-control/status.js.map +1 -1
- package/lib/application-control/types.d.ts +0 -13
- package/lib/application-control/types.d.ts.map +1 -1
- package/lib/application-control/utils.d.ts +2 -9
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +13 -28
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +15 -2
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +200 -27
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/docker/docker-cmd.js +2 -2
- package/lib/docker/docker-cmd.js.map +1 -1
- package/lib/docker/docker-compose-cmd.js +2 -2
- package/lib/docker/docker-compose-cmd.js.map +1 -1
- package/lib/environment.d.ts +2 -0
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +3 -1
- package/lib/environment.js.map +1 -1
- package/lib/index.js +10 -8
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +73 -0
- package/lib/infrastructure/agent-config.d.ts.map +1 -0
- package/lib/infrastructure/agent-config.js +186 -0
- package/lib/infrastructure/agent-config.js.map +1 -0
- package/lib/infrastructure/agent-config.test.d.ts +2 -0
- package/lib/infrastructure/agent-config.test.d.ts.map +1 -0
- package/lib/infrastructure/agent-config.test.js +135 -0
- package/lib/infrastructure/agent-config.test.js.map +1 -0
- package/lib/infrastructure/certificates-and-tokens.d.ts +6 -0
- package/lib/infrastructure/certificates-and-tokens.d.ts.map +1 -0
- package/lib/infrastructure/certificates-and-tokens.js +69 -0
- package/lib/infrastructure/certificates-and-tokens.js.map +1 -0
- package/lib/{util → infrastructure}/urls.d.ts +0 -0
- package/lib/infrastructure/urls.d.ts.map +1 -0
- package/lib/{util → infrastructure}/urls.js +3 -3
- package/lib/infrastructure/urls.js.map +1 -0
- package/lib/root.js +3 -3
- package/lib/root.js.map +1 -1
- package/lib/subcommands/app/app.d.ts +8 -1
- package/lib/subcommands/app/app.d.ts.map +1 -1
- package/lib/subcommands/app/app.js +58 -24
- package/lib/subcommands/app/app.js.map +1 -1
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +2 -0
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/device/device.d.ts +6 -0
- package/lib/subcommands/device/device.d.ts.map +1 -0
- package/lib/subcommands/device/device.js +62 -0
- package/lib/subcommands/device/device.js.map +1 -0
- package/lib/subcommands/device/index.d.ts +2 -0
- package/lib/subcommands/device/index.d.ts.map +1 -0
- package/lib/subcommands/device/index.js +11 -0
- package/lib/subcommands/device/index.js.map +1 -0
- package/lib/subcommands/get-model-package.d.ts +5 -0
- package/lib/subcommands/get-model-package.d.ts.map +1 -0
- package/lib/subcommands/get-model-package.js +51 -0
- package/lib/subcommands/get-model-package.js.map +1 -0
- package/lib/subcommands/index.d.ts +8 -1
- package/lib/subcommands/index.d.ts.map +1 -1
- package/lib/subcommands/index.js +9 -3
- package/lib/subcommands/index.js.map +1 -1
- package/lib/subcommands/login.d.ts +3 -2
- package/lib/subcommands/login.d.ts.map +1 -1
- package/lib/subcommands/login.js +11 -4
- package/lib/subcommands/login.js.map +1 -1
- package/lib/util/copy-dir.js +3 -3
- package/lib/util/copy-dir.js.map +1 -1
- package/lib/util/directories.js +5 -5
- package/lib/util/directories.js.map +1 -1
- package/package.json +19 -14
- package/readme.md +176 -79
- package/src/application-control/backup.ts +10 -6
- package/src/application-control/environment-variables.ts +81 -0
- package/src/application-control/index.ts +40 -0
- package/src/application-control/install.ts +79 -55
- package/src/application-control/models.ts +12 -17
- package/src/application-control/status.ts +26 -24
- package/src/application-control/types.ts +0 -4
- package/src/application-control/utils.ts +10 -25
- package/src/cloud-connection/device-agent-cloud-connection.ts +243 -40
- package/src/docker/docker-cmd.ts +1 -1
- package/src/docker/docker-compose-cmd.ts +1 -1
- package/src/environment.ts +2 -0
- package/src/index.ts +10 -7
- package/src/infrastructure/agent-config.test.ts +143 -0
- package/src/infrastructure/agent-config.ts +217 -0
- package/src/infrastructure/certificates-and-tokens.ts +71 -0
- package/src/{util → infrastructure}/urls.ts +1 -1
- package/src/root.ts +3 -3
- package/src/subcommands/app/app.ts +57 -19
- package/src/subcommands/app/index.ts +4 -0
- package/src/subcommands/device/device.ts +63 -0
- package/src/subcommands/device/index.ts +8 -0
- package/src/subcommands/get-model-package.ts +60 -0
- package/src/subcommands/index.ts +9 -3
- package/src/subcommands/login.ts +11 -4
- package/src/util/copy-dir.ts +1 -1
- package/src/util/directories.ts +8 -8
- package/lib/constants.d.ts +0 -13
- package/lib/constants.d.ts.map +0 -1
- package/lib/constants.js +0 -18
- package/lib/constants.js.map +0 -1
- package/lib/subcommands/device-control.d.ts +0 -2
- package/lib/subcommands/device-control.d.ts.map +0 -1
- package/lib/subcommands/device-control.js +0 -19
- package/lib/subcommands/device-control.js.map +0 -1
- package/lib/util/spawner/gnu-spawner.d.ts +0 -9
- package/lib/util/spawner/gnu-spawner.d.ts.map +0 -1
- package/lib/util/spawner/gnu-spawner.js +0 -102
- package/lib/util/spawner/gnu-spawner.js.map +0 -1
- package/lib/util/spawner/js-spawner.d.ts +0 -5
- package/lib/util/spawner/js-spawner.d.ts.map +0 -1
- package/lib/util/spawner/js-spawner.js +0 -89
- package/lib/util/spawner/js-spawner.js.map +0 -1
- package/lib/util/spawner/types.d.ts +0 -28
- package/lib/util/spawner/types.d.ts.map +0 -1
- package/lib/util/spawner/types.js +0 -3
- package/lib/util/spawner/types.js.map +0 -1
- package/lib/util/spawner-base/index.d.ts +0 -17
- package/lib/util/spawner-base/index.d.ts.map +0 -1
- package/lib/util/spawner-base/index.js +0 -30
- package/lib/util/spawner-base/index.js.map +0 -1
- package/lib/util/spawner-base/run-foreground-sync.d.ts +0 -3
- package/lib/util/spawner-base/run-foreground-sync.d.ts.map +0 -1
- package/lib/util/spawner-base/run-foreground-sync.js +0 -18
- package/lib/util/spawner-base/run-foreground-sync.js.map +0 -1
- package/lib/util/spawner-base/run-foreground.d.ts +0 -3
- package/lib/util/spawner-base/run-foreground.d.ts.map +0 -1
- package/lib/util/spawner-base/run-foreground.js +0 -49
- package/lib/util/spawner-base/run-foreground.js.map +0 -1
- package/lib/util/spawner-base/run-streaming.d.ts +0 -4
- package/lib/util/spawner-base/run-streaming.d.ts.map +0 -1
- package/lib/util/spawner-base/run-streaming.js +0 -35
- package/lib/util/spawner-base/run-streaming.js.map +0 -1
- package/lib/util/spawner-base/run.d.ts +0 -4
- package/lib/util/spawner-base/run.d.ts.map +0 -1
- package/lib/util/spawner-base/run.js +0 -56
- package/lib/util/spawner-base/run.js.map +0 -1
- package/lib/util/urls.d.ts.map +0 -1
- package/lib/util/urls.js.map +0 -1
- package/lib/web/index.html +0 -229
- package/lib/web/static/Karla.css +0 -18
- package/lib/web/static/bootstrap-4.3.1.min.css +0 -7
- package/lib/web/static/bootstrap-4.3.1.min.js +0 -7
- package/lib/web/static/favicon.ico +0 -0
- package/lib/web/static/jquery-3.3.1.slim.min.js +0 -2
- package/lib/web/static/popper-1.14.7.min.js +0 -5
- package/lib/web/web-interface.d.ts +0 -2
- package/lib/web/web-interface.d.ts.map +0 -1
- package/lib/web/web-interface.js +0 -75
- package/lib/web/web-interface.js.map +0 -1
- package/src/constants.ts +0 -22
- package/src/subcommands/device-control.ts +0 -16
- package/src/util/spawner/gnu-spawner.ts +0 -114
- package/src/util/spawner/js-spawner.ts +0 -110
- package/src/util/spawner/types.ts +0 -28
- package/src/util/spawner-base/index.ts +0 -28
- package/src/util/spawner-base/run-foreground-sync.ts +0 -16
- package/src/util/spawner-base/run-foreground.ts +0 -49
- package/src/util/spawner-base/run-streaming.ts +0 -40
- package/src/util/spawner-base/run.ts +0 -60
- package/src/web/index.html +0 -229
- package/src/web/static/Karla.css +0 -18
- package/src/web/static/bootstrap-4.3.1.min.css +0 -7
- package/src/web/static/bootstrap-4.3.1.min.js +0 -7
- package/src/web/static/favicon.ico +0 -0
- package/src/web/static/jquery-3.3.1.slim.min.js +0 -2
- package/src/web/static/popper-1.14.7.min.js +0 -5
- package/src/web/web-interface.ts +0 -85
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.restartApp = exports.stopApp = exports.startApp = exports.getAppLogs = exports.getAppStatus = exports.listAppLatestRelease = exports.listAppReleases = void 0;
|
|
4
4
|
const docker_compose_1 = require("docker-compose");
|
|
5
|
-
const
|
|
5
|
+
const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
6
|
+
const util_1 = require("alwaysai/lib/util");
|
|
6
7
|
const docker_cmd_1 = require("../docker/docker-cmd");
|
|
7
|
-
const js_spawner_1 = require("../util/spawner/js-spawner");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
+
const agent_config_1 = require("../infrastructure/agent-config");
|
|
9
10
|
async function listAppReleases(props) {
|
|
10
11
|
const { projectId } = props;
|
|
11
|
-
const releaseHistory = await (0,
|
|
12
|
+
const releaseHistory = await (0, infrastructure_1.fetchAppReleaseHistory)(projectId);
|
|
12
13
|
return releaseHistory;
|
|
13
14
|
}
|
|
14
15
|
exports.listAppReleases = listAppReleases;
|
|
15
16
|
async function listAppLatestRelease(props) {
|
|
16
17
|
const { projectId } = props;
|
|
17
|
-
const releaseHistory = await (0,
|
|
18
|
+
const releaseHistory = await (0, infrastructure_1.fetchAppReleaseHistory)(projectId);
|
|
18
19
|
if (releaseHistory.length >= 1) {
|
|
19
20
|
return releaseHistory[0]['releaseHash'];
|
|
20
21
|
}
|
|
@@ -23,16 +24,23 @@ async function listAppLatestRelease(props) {
|
|
|
23
24
|
exports.listAppLatestRelease = listAppLatestRelease;
|
|
24
25
|
async function getAppStatus(props) {
|
|
25
26
|
const { projectId } = props;
|
|
26
|
-
|
|
27
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
27
|
+
if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
|
|
28
28
|
throw new Error('Application is not installed');
|
|
29
29
|
}
|
|
30
|
+
const appDetails = {
|
|
31
|
+
projectId,
|
|
32
|
+
version: await (0, agent_config_1.AgentConfigFile)().getAppVersion({ projectId }),
|
|
33
|
+
};
|
|
34
|
+
if (!(await (0, agent_config_1.AgentConfigFile)().isAppReady({ projectId }))) {
|
|
35
|
+
// App is being installed or updated
|
|
36
|
+
return { appDetails, services: [] };
|
|
37
|
+
}
|
|
38
|
+
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
30
39
|
// Check if app is running
|
|
31
40
|
const output = await docker_compose_1.default.ps({ cwd: appDir });
|
|
32
41
|
if (output.exitCode !== 0) {
|
|
33
42
|
throw new Error(`Failed to get application status! stdout=${output.out} stderr=${output.err}`);
|
|
34
43
|
}
|
|
35
|
-
const appDetails = { projectId, version: await (0, utils_1.getAppVersion)({ appDir }) };
|
|
36
44
|
const services = [];
|
|
37
45
|
if (output.data.services.length === 0) {
|
|
38
46
|
// If the app has never been started (or has an empty docker-compose.yaml)
|
|
@@ -69,10 +77,8 @@ async function getAppStatus(props) {
|
|
|
69
77
|
exports.getAppStatus = getAppStatus;
|
|
70
78
|
async function getAppLogs(props) {
|
|
71
79
|
const { projectId, services } = props;
|
|
80
|
+
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
72
81
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
73
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
74
|
-
throw new Error('Application is not installed');
|
|
75
|
-
}
|
|
76
82
|
const serviceList = services
|
|
77
83
|
? services
|
|
78
84
|
: await (async function () {
|
|
@@ -84,7 +90,7 @@ async function getAppLogs(props) {
|
|
|
84
90
|
return services;
|
|
85
91
|
})();
|
|
86
92
|
// Use direct command with spawner in order to get a readable stream
|
|
87
|
-
return await (0,
|
|
93
|
+
return await (0, util_1.JsSpawner)().runStreaming({
|
|
88
94
|
exe: 'docker-compose',
|
|
89
95
|
args: ['logs', '-f', ...serviceList],
|
|
90
96
|
cwd: appDir,
|
|
@@ -93,11 +99,8 @@ async function getAppLogs(props) {
|
|
|
93
99
|
exports.getAppLogs = getAppLogs;
|
|
94
100
|
async function startApp(props) {
|
|
95
101
|
const { projectId, dockerLoginToken } = props;
|
|
102
|
+
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
96
103
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
97
|
-
// Check if app is installed
|
|
98
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
99
|
-
throw new Error('Application is not installed');
|
|
100
|
-
}
|
|
101
104
|
if (dockerLoginToken !== undefined) {
|
|
102
105
|
const result = await (0, docker_cmd_1.runDockerLogin)({ token: dockerLoginToken });
|
|
103
106
|
console.log(result);
|
|
@@ -114,12 +117,8 @@ async function startApp(props) {
|
|
|
114
117
|
exports.startApp = startApp;
|
|
115
118
|
async function stopApp(props) {
|
|
116
119
|
const { projectId } = props;
|
|
120
|
+
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
117
121
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
118
|
-
// Check if app is installed
|
|
119
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
120
|
-
console.log('Application is not installed');
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
122
|
// TODO: Check if app is running
|
|
124
123
|
// Stop app
|
|
125
124
|
const output = await docker_compose_1.default.down({ cwd: appDir });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
export declare type AppDetails = {
|
|
2
|
-
projectId: string;
|
|
3
|
-
version: string;
|
|
4
|
-
};
|
|
5
|
-
export declare type ServiceState = 'Stopped' | 'Up' | 'Restarting';
|
|
6
|
-
export declare type ServiceStatus = {
|
|
7
|
-
name: string;
|
|
8
|
-
state: ServiceState;
|
|
9
|
-
};
|
|
10
|
-
export declare type AppStatus = {
|
|
11
|
-
appDetails: AppDetails;
|
|
12
|
-
services: ServiceStatus[];
|
|
13
|
-
};
|
|
14
1
|
export declare type ModelDetails = {
|
|
15
2
|
modelId: string;
|
|
16
3
|
version: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/application-control/types.ts"],"names":[],"mappings":"AAAA,oBAAY,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/application-control/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
export declare const APP_ROOT: string;
|
|
2
2
|
export declare function getAppDir(projectId: string): string;
|
|
3
|
-
export declare function
|
|
4
|
-
|
|
5
|
-
}): Promise<boolean>;
|
|
6
|
-
export declare function setAppVersion(props: {
|
|
7
|
-
appDir: string;
|
|
8
|
-
version: string;
|
|
3
|
+
export declare function requireAppInstalled(props: {
|
|
4
|
+
projectId: string;
|
|
9
5
|
}): Promise<void>;
|
|
10
|
-
export declare function getAppVersion(props: {
|
|
11
|
-
appDir: string;
|
|
12
|
-
}): Promise<any>;
|
|
13
6
|
export declare function buildApp(props: {
|
|
14
7
|
appDir: string;
|
|
15
8
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAG3D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBASrE;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAsBvD"}
|
|
@@ -1,43 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildApp = exports.
|
|
3
|
+
exports.buildApp = exports.requireAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
|
|
4
4
|
const docker_compose_1 = require("docker-compose");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const fs = require("fs");
|
|
7
|
-
const
|
|
8
|
-
const alwaysai_1 = require("alwaysai");
|
|
7
|
+
const constants_1 = require("alwaysai/lib/constants");
|
|
9
8
|
const run_cli_cmd_1 = require("../util/run-cli-cmd");
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const agent_config_1 = require("../infrastructure/agent-config");
|
|
10
|
+
exports.APP_ROOT = path.join(constants_1.AAI_DIR, 'applications');
|
|
12
11
|
const DOCKER_COMPOSE_FILENAME = 'docker-compose.yaml';
|
|
13
12
|
function getAppDir(projectId) {
|
|
14
13
|
return path.join(exports.APP_ROOT, projectId);
|
|
15
14
|
}
|
|
16
15
|
exports.getAppDir = getAppDir;
|
|
17
|
-
async function
|
|
18
|
-
const {
|
|
19
|
-
//
|
|
20
|
-
if (
|
|
21
|
-
|
|
16
|
+
async function requireAppInstalled(props) {
|
|
17
|
+
const { projectId } = props;
|
|
18
|
+
// Ensure an app that is being installed or updated is not modified
|
|
19
|
+
if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
|
|
20
|
+
throw new Error('Application is not installed');
|
|
21
|
+
}
|
|
22
|
+
if (!(await (0, agent_config_1.AgentConfigFile)().isAppReady({ projectId }))) {
|
|
23
|
+
throw new Error('Application is not done installing or updating');
|
|
22
24
|
}
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
exports.isAppInstalled = isAppInstalled;
|
|
26
|
-
async function setAppVersion(props) {
|
|
27
|
-
const { appDir, version } = props;
|
|
28
|
-
// TODO: Switch to node-config
|
|
29
|
-
const versionPath = path.join(appDir, RELEASE_FILENAME);
|
|
30
|
-
const versionData = { version };
|
|
31
|
-
await (0, js_spawner_1.JsSpawner)().writeFile(versionPath, JSON.stringify(versionData, null, 2));
|
|
32
|
-
}
|
|
33
|
-
exports.setAppVersion = setAppVersion;
|
|
34
|
-
async function getAppVersion(props) {
|
|
35
|
-
const { appDir } = props;
|
|
36
|
-
const versionPath = path.join(appDir, RELEASE_FILENAME);
|
|
37
|
-
const releaseData = JSON.parse(await (0, js_spawner_1.JsSpawner)().readFile(versionPath));
|
|
38
|
-
return releaseData.version;
|
|
39
25
|
}
|
|
40
|
-
exports.
|
|
26
|
+
exports.requireAppInstalled = requireAppInstalled;
|
|
41
27
|
async function buildApp(props) {
|
|
42
28
|
const { appDir } = props;
|
|
43
29
|
await (0, run_cli_cmd_1.runCliCmd)({
|
|
@@ -53,7 +39,6 @@ async function buildApp(props) {
|
|
|
53
39
|
});
|
|
54
40
|
}
|
|
55
41
|
const buildOut = await docker_compose_1.default.buildAll({ cwd: appDir });
|
|
56
|
-
console.log(buildOut);
|
|
57
42
|
if (buildOut.exitCode !== 0) {
|
|
58
43
|
throw new Error(`Failed to build application! stdout=${buildOut.out} stderr=${buildOut.err}`);
|
|
59
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;AACzB,sDAAiD;AAEjD,qDAAgD;AAChD,iEAAiE;AAEpD,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,cAAc,CAAC,CAAC;AAC3D,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,mBAAmB,CAAC,KAA4B;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,mEAAmE;IACnE,IAAI,CAAC,CAAC,MAAM,IAAA,8BAAe,GAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,IAAI,CAAC,CAAC,MAAM,IAAA,8BAAe,GAAE,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;AACH,CAAC;AATD,kDASC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAyB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC;QAChF,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,uBAAS,EAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAA,uBAAS,EAAC;YACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,CAAC;YAC1D,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;KACJ;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,GAAG,WAAW,QAAQ,CAAC,GAAG,EAAE,CAC7E,CAAC;KACH;AACH,CAAC;AAtBD,4BAsBC"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
+
import { InstallationStatus } from '@alwaysai/device-agent-schemas';
|
|
1
2
|
export declare class DeviceAgentCloudConnection {
|
|
2
|
-
device: any;
|
|
3
3
|
private clientId;
|
|
4
4
|
private host;
|
|
5
|
-
private
|
|
5
|
+
private publishable;
|
|
6
|
+
private readonly publishInterval;
|
|
7
|
+
private readonly installationStatusInterval;
|
|
8
|
+
private installationStatus;
|
|
9
|
+
private publishableTimeout;
|
|
10
|
+
device: any;
|
|
11
|
+
agentTopicPrefix: string;
|
|
12
|
+
cloudTopicPrefix: string;
|
|
6
13
|
constructor();
|
|
14
|
+
setInstallationStatus(installationStatus: InstallationStatus): void;
|
|
15
|
+
getInstallationStatus(): InstallationStatus;
|
|
16
|
+
getPublishable(): boolean;
|
|
17
|
+
setPublishable(enabled: boolean): void;
|
|
18
|
+
restartPublishableTimeout(): void;
|
|
7
19
|
getPublishInterval(): number;
|
|
20
|
+
getInstallationStatusInterval(): number;
|
|
8
21
|
getClientId(): string;
|
|
9
22
|
publishMessage(topic: string, message: string): void;
|
|
10
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAgBA,OAAO,EASL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAC;AAIxC,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAQ;IACnD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAgC;IAEnD,MAAM,MAAiB;IACvB,gBAAgB,SAAsD;IACtE,gBAAgB,SAAsD;;IAetE,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB;IAI5D,qBAAqB,IAAI,kBAAkB;IAI3C,cAAc,IAAI,OAAO;IAIzB,cAAc,CAAC,OAAO,EAAE,OAAO;IAI/B,yBAAyB;IAOzB,kBAAkB;IAIlB,6BAA6B;IAI7B,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED,wBAAgB,4BAA4B,SA8N3C"}
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
3
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
4
|
+
var m = o[Symbol.asyncIterator], i;
|
|
5
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
6
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
7
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
8
|
+
};
|
|
2
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
10
|
exports.runDeviceAgentCloudInterface = exports.DeviceAgentCloudConnection = void 0;
|
|
4
11
|
const awsIot = require('aws-iot-device-sdk');
|
|
5
|
-
const urls_1 = require("../
|
|
12
|
+
const urls_1 = require("../infrastructure/urls");
|
|
6
13
|
const directories_1 = require("../util/directories");
|
|
7
14
|
const status_1 = require("../application-control/status");
|
|
8
15
|
const install_1 = require("../application-control/install");
|
|
9
16
|
const device_control_1 = require("../device-control/device-control");
|
|
17
|
+
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
10
18
|
const get_device_id_1 = require("../util/get-device-id");
|
|
19
|
+
const agent_config_1 = require("../infrastructure/agent-config");
|
|
11
20
|
class DeviceAgentCloudConnection {
|
|
12
21
|
constructor() {
|
|
13
|
-
this.device = awsIot.device;
|
|
14
22
|
this.clientId = (0, get_device_id_1.getDeviceId)();
|
|
15
23
|
this.host = (0, urls_1.getIoTCoreEndpointUrl)();
|
|
24
|
+
this.publishable = false;
|
|
16
25
|
this.publishInterval = 1000;
|
|
26
|
+
this.installationStatusInterval = 3000;
|
|
27
|
+
this.device = awsIot.device;
|
|
28
|
+
this.agentTopicPrefix = `destination/agent/device/${this.clientId}/topic/`;
|
|
29
|
+
this.cloudTopicPrefix = `destination/cloud/device/${this.clientId}/topic/`;
|
|
17
30
|
this.device = awsIot.device({
|
|
18
31
|
keyPath: (0, directories_1.getPrivateKeyFilePath)(),
|
|
19
32
|
certPath: (0, directories_1.getCertificateFilePath)(),
|
|
@@ -21,29 +34,96 @@ class DeviceAgentCloudConnection {
|
|
|
21
34
|
clientId: this.clientId,
|
|
22
35
|
host: this.host,
|
|
23
36
|
});
|
|
24
|
-
|
|
25
|
-
this.device.subscribe(
|
|
26
|
-
|
|
37
|
+
this.device.subscribe(`${this.agentTopicPrefix}command`);
|
|
38
|
+
this.device.subscribe(`${this.agentTopicPrefix}response`);
|
|
39
|
+
}
|
|
40
|
+
setInstallationStatus(installationStatus) {
|
|
41
|
+
this.installationStatus = installationStatus;
|
|
42
|
+
}
|
|
43
|
+
getInstallationStatus() {
|
|
44
|
+
return this.installationStatus;
|
|
45
|
+
}
|
|
46
|
+
getPublishable() {
|
|
47
|
+
return this.publishable;
|
|
48
|
+
}
|
|
49
|
+
setPublishable(enabled) {
|
|
50
|
+
this.publishable = enabled;
|
|
51
|
+
}
|
|
52
|
+
restartPublishableTimeout() {
|
|
53
|
+
clearTimeout(this.publishableTimeout);
|
|
54
|
+
this.publishableTimeout = setTimeout(() => {
|
|
55
|
+
this.setPublishable(false);
|
|
56
|
+
}, 600000); // 10 min
|
|
27
57
|
}
|
|
28
58
|
getPublishInterval() {
|
|
29
59
|
return this.publishInterval;
|
|
30
60
|
}
|
|
61
|
+
getInstallationStatusInterval() {
|
|
62
|
+
return this.installationStatusInterval;
|
|
63
|
+
}
|
|
31
64
|
getClientId() {
|
|
32
65
|
return this.clientId;
|
|
33
66
|
}
|
|
34
67
|
publishMessage(topic, message) {
|
|
35
|
-
console.log('publishing message ', message);
|
|
36
68
|
this.device.publish(topic, message);
|
|
37
69
|
}
|
|
38
70
|
}
|
|
39
71
|
exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
|
|
40
72
|
function runDeviceAgentCloudInterface() {
|
|
41
73
|
const deviceAgent = new DeviceAgentCloudConnection();
|
|
74
|
+
async function buildMessagePacket(topic, payload) {
|
|
75
|
+
const packet = {
|
|
76
|
+
timestamp: new Date().toUTCString(),
|
|
77
|
+
deviceId: deviceAgent.getClientId(),
|
|
78
|
+
topic,
|
|
79
|
+
payload,
|
|
80
|
+
};
|
|
81
|
+
return packet;
|
|
82
|
+
}
|
|
83
|
+
async function getAppLogsMessage() {
|
|
84
|
+
var e_1, _a;
|
|
85
|
+
const appLogsList = [];
|
|
86
|
+
const apps = await (0, agent_config_1.AgentConfigFile)().getReadyApps();
|
|
87
|
+
for (const app of apps) {
|
|
88
|
+
const projectId = app.projectId;
|
|
89
|
+
const readable = await (0, status_1.getAppLogs)({ projectId });
|
|
90
|
+
const logs = [];
|
|
91
|
+
readable.setEncoding('utf8');
|
|
92
|
+
try {
|
|
93
|
+
for (var readable_1 = (e_1 = void 0, __asyncValues(readable)), readable_1_1; readable_1_1 = await readable_1.next(), !readable_1_1.done;) {
|
|
94
|
+
const chunk = readable_1_1.value;
|
|
95
|
+
logs.push(chunk);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
99
|
+
finally {
|
|
100
|
+
try {
|
|
101
|
+
if (readable_1_1 && !readable_1_1.done && (_a = readable_1.return)) await _a.call(readable_1);
|
|
102
|
+
}
|
|
103
|
+
finally { if (e_1) throw e_1.error; }
|
|
104
|
+
}
|
|
105
|
+
const appLogs = {
|
|
106
|
+
projectId,
|
|
107
|
+
logs,
|
|
108
|
+
};
|
|
109
|
+
appLogsList.push(appLogs);
|
|
110
|
+
}
|
|
111
|
+
const applicationStatePackage = {
|
|
112
|
+
applicationLogs: appLogsList,
|
|
113
|
+
};
|
|
114
|
+
return applicationStatePackage;
|
|
115
|
+
}
|
|
116
|
+
const publishAppLogs = setInterval(async function () {
|
|
117
|
+
const appLogsMessage = await getAppLogsMessage();
|
|
118
|
+
const topic = `device/${deviceAgent.getClientId()}/topic/application-management`;
|
|
119
|
+
const appLogsPacket = await buildMessagePacket(topic, appLogsMessage);
|
|
120
|
+
deviceAgent.publishMessage(topic, JSON.stringify({ appLogsPacket }));
|
|
121
|
+
}, deviceAgent.getPublishInterval());
|
|
42
122
|
async function getAppStateMessage() {
|
|
43
123
|
const appStateMessage = [];
|
|
44
|
-
const
|
|
45
|
-
for (const app of
|
|
46
|
-
const projectId = app
|
|
124
|
+
const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
|
|
125
|
+
for (const app of apps) {
|
|
126
|
+
const projectId = app.projectId;
|
|
47
127
|
const status = await (0, status_1.getAppStatus)({ projectId });
|
|
48
128
|
appStateMessage.push(status);
|
|
49
129
|
}
|
|
@@ -53,15 +133,12 @@ function runDeviceAgentCloudInterface() {
|
|
|
53
133
|
return applicationStatePackage;
|
|
54
134
|
}
|
|
55
135
|
const publishAppState = setInterval(async function () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
payload: appStateMessage,
|
|
63
|
-
};
|
|
64
|
-
deviceAgent.publishMessage(topic, JSON.stringify({ appStatePackage }));
|
|
136
|
+
if (deviceAgent.getPublishable()) {
|
|
137
|
+
const topic = `${deviceAgent.cloudTopicPrefix}application-management`;
|
|
138
|
+
const appStateMessage = await getAppStateMessage();
|
|
139
|
+
const appStatePacket = await buildMessagePacket(topic, appStateMessage);
|
|
140
|
+
deviceAgent.publishMessage(topic, JSON.stringify({ appStatePacket }));
|
|
141
|
+
}
|
|
65
142
|
}, deviceAgent.getPublishInterval());
|
|
66
143
|
async function getDeviceStatsMessage() {
|
|
67
144
|
const cpuUsage = await (0, device_control_1.getCpuUtil)();
|
|
@@ -71,22 +148,113 @@ function runDeviceAgentCloudInterface() {
|
|
|
71
148
|
deviceStats: {
|
|
72
149
|
cpuUsage,
|
|
73
150
|
diskUtil,
|
|
74
|
-
|
|
151
|
+
usedMemoryPercentage: memUtil,
|
|
75
152
|
},
|
|
76
153
|
};
|
|
77
154
|
return deviceStatsMessage;
|
|
78
155
|
}
|
|
79
156
|
const publishDeviceStats = setInterval(async function () {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
157
|
+
if (deviceAgent.getPublishable()) {
|
|
158
|
+
const topic = `${deviceAgent.cloudTopicPrefix}device-management`;
|
|
159
|
+
const deviceStatsMessage = await getDeviceStatsMessage();
|
|
160
|
+
const deviceStatsPacket = await buildMessagePacket(topic, deviceStatsMessage);
|
|
161
|
+
deviceAgent.publishMessage(topic, JSON.stringify({ deviceStatsPacket }));
|
|
162
|
+
}
|
|
163
|
+
}, deviceAgent.getPublishInterval());
|
|
164
|
+
const publishDeviceRequest = async ({ projectId }) => {
|
|
165
|
+
const topic = `${deviceAgent.cloudTopicPrefix}request`;
|
|
166
|
+
const deviceRequestPackage = {
|
|
83
167
|
timestamp: new Date().toUTCString(),
|
|
84
168
|
deviceId: deviceAgent.getClientId(),
|
|
169
|
+
projectId,
|
|
170
|
+
releaseHash: '',
|
|
85
171
|
topic,
|
|
86
|
-
payload: deviceStatsMessage,
|
|
87
172
|
};
|
|
88
|
-
deviceAgent.publishMessage(topic, JSON.stringify({
|
|
89
|
-
}
|
|
173
|
+
deviceAgent.publishMessage(topic, JSON.stringify({ device_request: deviceRequestPackage }));
|
|
174
|
+
};
|
|
175
|
+
const publishInstallationStatus = async (interval) => {
|
|
176
|
+
const topic = `${deviceAgent.cloudTopicPrefix}installation-status`;
|
|
177
|
+
const installationStatus = deviceAgent.getInstallationStatus();
|
|
178
|
+
const installationStatusPacket = await buildMessagePacket(topic, {
|
|
179
|
+
installationStatus,
|
|
180
|
+
});
|
|
181
|
+
deviceAgent.device.publish(topic, JSON.stringify({ installationStatusPacket }));
|
|
182
|
+
if (installationStatus.status !== device_agent_schemas_1.InstallationStatusEnum.IN_PROGRESS) {
|
|
183
|
+
clearInterval(interval);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
const handleMessageTopic = async ({ topic, payload }) => {
|
|
187
|
+
const action = payload['action'];
|
|
188
|
+
const actionPayload = payload[action];
|
|
189
|
+
const type = topic.split('/').slice(-1)[0];
|
|
190
|
+
if (!type) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
switch (action) {
|
|
194
|
+
/**
|
|
195
|
+
* Install app package based on the given project ID
|
|
196
|
+
*/
|
|
197
|
+
case 'install':
|
|
198
|
+
/**
|
|
199
|
+
{
|
|
200
|
+
"action": "install",
|
|
201
|
+
"install": {
|
|
202
|
+
"releaseHash": "7fb2a812f9e7aa193208dac353521965da50d755085162066c125592f1ed760b",
|
|
203
|
+
"projectId": "786e4686-a681-4cff-9e17-1e7d385c0fdb"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
*/
|
|
207
|
+
if (type === 'response') {
|
|
208
|
+
deviceAgent.setInstallationStatus({
|
|
209
|
+
status: device_agent_schemas_1.InstallationStatusEnum.IN_PROGRESS,
|
|
210
|
+
});
|
|
211
|
+
const installationStatusPing = setInterval(() => publishInstallationStatus(installationStatusPing), deviceAgent.getInstallationStatusInterval());
|
|
212
|
+
// Install the app with the given url
|
|
213
|
+
await (async () => {
|
|
214
|
+
try {
|
|
215
|
+
await (0, install_1.installApp)(actionPayload);
|
|
216
|
+
deviceAgent.setInstallationStatus({
|
|
217
|
+
status: device_agent_schemas_1.InstallationStatusEnum.SUCCESS,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
catch (e) {
|
|
221
|
+
const reason = e.message;
|
|
222
|
+
deviceAgent.setInstallationStatus({
|
|
223
|
+
status: device_agent_schemas_1.InstallationStatusEnum.FAILURE,
|
|
224
|
+
reason,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
})();
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
publishDeviceRequest(actionPayload);
|
|
231
|
+
break;
|
|
232
|
+
case 'start':
|
|
233
|
+
(0, status_1.startApp)({ projectId: actionPayload.projectId });
|
|
234
|
+
break;
|
|
235
|
+
case 'stop':
|
|
236
|
+
(0, status_1.stopApp)({ projectId: actionPayload.projectId });
|
|
237
|
+
break;
|
|
238
|
+
case 'restart':
|
|
239
|
+
(0, status_1.restartApp)({ projectId: actionPayload.projectId });
|
|
240
|
+
break;
|
|
241
|
+
/**
|
|
242
|
+
* Allow/disallow publishing on this device. By default, (publishable = false)
|
|
243
|
+
*/
|
|
244
|
+
case 'publishable':
|
|
245
|
+
/**
|
|
246
|
+
{
|
|
247
|
+
"action": "publishable",
|
|
248
|
+
"publishable": true | false
|
|
249
|
+
}
|
|
250
|
+
*/
|
|
251
|
+
deviceAgent.setPublishable(actionPayload);
|
|
252
|
+
deviceAgent.restartPublishableTimeout();
|
|
253
|
+
break;
|
|
254
|
+
default:
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
};
|
|
90
258
|
deviceAgent.device.on('connect', function () {
|
|
91
259
|
deviceAgent.publishMessage('connection', deviceAgent.getClientId());
|
|
92
260
|
console.log('Device Agent has connected to the cloud');
|
|
@@ -95,8 +263,13 @@ function runDeviceAgentCloudInterface() {
|
|
|
95
263
|
console.log('Device Agent has been disconnected from the cloud');
|
|
96
264
|
});
|
|
97
265
|
deviceAgent.device.on('message', function (topic, payload) {
|
|
98
|
-
//
|
|
99
|
-
|
|
266
|
+
// ToDo: insert valdiation here for incoming messages. Maybe we will use a JSON schema for the message structure.
|
|
267
|
+
try {
|
|
268
|
+
handleMessageTopic({ topic, payload: JSON.parse(payload) });
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
console.error(error);
|
|
272
|
+
}
|
|
100
273
|
});
|
|
101
274
|
}
|
|
102
275
|
exports.runDeviceAgentCloudInterface = runDeviceAgentCloudInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"
|
|
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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"}
|
package/lib/docker/docker-cmd.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runDockerLogin = void 0;
|
|
4
|
-
const
|
|
4
|
+
const util_1 = require("alwaysai/lib/util");
|
|
5
5
|
async function runDockerLogin(props) {
|
|
6
6
|
const { token } = props;
|
|
7
|
-
const spawner = (0,
|
|
7
|
+
const spawner = (0, util_1.JsSpawner)();
|
|
8
8
|
const server = '994534263224.dkr.ecr.us-west-2.amazonaws.com';
|
|
9
9
|
const output = await spawner.run({
|
|
10
10
|
exe: 'docker',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"docker-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,KAAwB;IAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,8CAA8C,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,wCASC"}
|