@dbos-inc/dbos-cloud 0.8.50-preview.gb70145e277 → 0.8.51-preview
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/applications/delete-app.ts +7 -7
- package/applications/deploy-app-code.ts +24 -8
- package/applications/get-app-logs.ts +7 -7
- package/applications/list-apps.ts +22 -15
- package/applications/register-app.ts +8 -9
- package/applications/types.ts +0 -1
- package/applications/update-app.ts +2 -4
- package/cli.ts +10 -10
- package/cloudutils.ts +19 -2
- package/dist/packages/dbos-cloud/applications/delete-app.js +4 -4
- package/dist/packages/dbos-cloud/applications/delete-app.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js +19 -5
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/get-app-logs.js +4 -4
- package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js +20 -12
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/register-app.d.ts +1 -1
- package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/register-app.js +5 -6
- package/dist/packages/dbos-cloud/applications/register-app.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts +0 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/update-app.d.ts +1 -1
- package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/update-app.js +2 -4
- package/dist/packages/dbos-cloud/applications/update-app.js.map +1 -1
- package/dist/packages/dbos-cloud/cli.js +9 -9
- package/dist/packages/dbos-cloud/cli.js.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.d.ts +3 -0
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.js +10 -2
- package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
- package/dist/packages/dbos-cloud/register.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/register.js +3 -2
- package/dist/packages/dbos-cloud/register.js.map +1 -1
- package/dist/packages/dbos-cloud/userdb.d.ts +3 -3
- package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/userdb.js +24 -9
- package/dist/packages/dbos-cloud/userdb.js.map +1 -1
- package/package.json +1 -1
- package/register.ts +6 -5
- package/userdb.ts +28 -14
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "../cloudutils";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "../cloudutils";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
export async function deleteApp(host: string): Promise<number> {
|
|
@@ -24,12 +24,12 @@ export async function deleteApp(host: string): Promise<number> {
|
|
|
24
24
|
logger.info(`Successfully deleted application: ${appName}`);
|
|
25
25
|
return 0;
|
|
26
26
|
} catch (e) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const errorLabel = `Failed to delete application ${appName}`;
|
|
28
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
29
|
+
handleAPIErrors(errorLabel, e);
|
|
30
30
|
} else {
|
|
31
|
-
logger.error(
|
|
32
|
-
return 1;
|
|
31
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
33
32
|
}
|
|
33
|
+
return 1;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import axios from "axios";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
3
|
import { writeFileSync, existsSync } from 'fs';
|
|
4
|
-
import { createDirectory, getCloudCredentials, getLogger, readFileSync, runCommand, sleep } from "../cloudutils";
|
|
4
|
+
import { handleAPIErrors, createDirectory, dbosConfigFilePath, getCloudCredentials, getLogger, readFileSync, runCommand, sleep } from "../cloudutils";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { Application } from "./types";
|
|
7
7
|
|
|
@@ -42,6 +42,10 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
42
42
|
execSync(`zip -ry ${deployDirectoryName}/${appName}.zip ./* -x ${deployDirectoryName}/* > /dev/null`);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
const interpolatedConfig = readInterpolatedConfig(dbosConfigFilePath)
|
|
46
|
+
writeFileSync(`${deployDirectoryName}/${dbosConfigFilePath}`, interpolatedConfig)
|
|
47
|
+
execSync(`zip -j ${deployDirectoryName}/${appName}.zip ${deployDirectoryName}/${dbosConfigFilePath} > /dev/null`);
|
|
48
|
+
|
|
45
49
|
try {
|
|
46
50
|
const zipData = readFileSync(`${deployDirectoryName}/${appName}.zip`, "base64");
|
|
47
51
|
|
|
@@ -70,9 +74,13 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
70
74
|
if (count % 5 === 0) {
|
|
71
75
|
logger.info(`Waiting for ${appName} with version ${deployOutput.ApplicationVersion} to be available`);
|
|
72
76
|
if (count > 20) {
|
|
73
|
-
logger.info(`If ${appName} takes too long to become available, check its logs
|
|
77
|
+
logger.info(`If ${appName} takes too long to become available, check its logs with 'npx dbos-cloud applications logs'`);
|
|
74
78
|
}
|
|
75
79
|
}
|
|
80
|
+
if (count > 180) {
|
|
81
|
+
logger.error("Application taking too long to become available")
|
|
82
|
+
return 1;
|
|
83
|
+
}
|
|
76
84
|
|
|
77
85
|
// Retrieve the application status, check if it is "AVAILABLE"
|
|
78
86
|
const list = await axios.get(
|
|
@@ -95,16 +103,24 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
95
103
|
logger.info(`Access your application at https://${host}/${userCredentials.userName}/application/${appName}`)
|
|
96
104
|
return 0;
|
|
97
105
|
} catch (e) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
106
|
+
const errorLabel = `Failed to deploy application ${appName}`;
|
|
107
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
108
|
+
handleAPIErrors(errorLabel, e);
|
|
101
109
|
} else {
|
|
102
|
-
logger.error(
|
|
103
|
-
return 1;
|
|
110
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
104
111
|
}
|
|
112
|
+
return 1;
|
|
105
113
|
}
|
|
106
114
|
}
|
|
107
115
|
|
|
116
|
+
function readInterpolatedConfig(configFilePath: string): string {
|
|
117
|
+
const configFileContent = readFileSync(configFilePath) as string;
|
|
118
|
+
const regex = /\${([^}]+)}/g; // Regex to match ${VAR_NAME} style placeholders
|
|
119
|
+
return configFileContent.replace(regex, (_, g1: string) => {
|
|
120
|
+
return process.env[g1] || ""; // If the env variable is not set, return an empty string.
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
108
124
|
async function buildAppInDocker(appName: string): Promise<boolean> {
|
|
109
125
|
const logger = getLogger();
|
|
110
126
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "../cloudutils";
|
|
1
|
+
import axios , { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "../cloudutils";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
export async function getAppLogs(host: string): Promise<number> {
|
|
@@ -24,12 +24,12 @@ export async function getAppLogs(host: string): Promise<number> {
|
|
|
24
24
|
logger.info(res.data)
|
|
25
25
|
return 0;
|
|
26
26
|
} catch (e) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const errorLabel = `Failed to retrieve logs of application ${appName}`;
|
|
28
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
29
|
+
handleAPIErrors(errorLabel, e);
|
|
30
30
|
} else {
|
|
31
|
-
logger.error(
|
|
32
|
-
return 1;
|
|
31
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
33
32
|
}
|
|
33
|
+
return 1;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "../cloudutils";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "../cloudutils";
|
|
3
3
|
import { Application } from "./types";
|
|
4
4
|
|
|
5
|
-
export async function listApps(host: string): Promise<number> {
|
|
5
|
+
export async function listApps(host: string, json: boolean): Promise<number> {
|
|
6
6
|
const logger = getLogger();
|
|
7
7
|
const userCredentials = getCloudCredentials();
|
|
8
8
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -16,25 +16,32 @@ export async function listApps(host: string): Promise<number> {
|
|
|
16
16
|
},
|
|
17
17
|
}
|
|
18
18
|
);
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
19
|
+
const applications: Application[] = list.data as Application[];
|
|
20
|
+
if (applications.length === 0) {
|
|
21
21
|
logger.info("No applications found");
|
|
22
22
|
return 1;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if (json) {
|
|
25
|
+
console.log(JSON.stringify(applications));
|
|
26
|
+
} else {
|
|
27
|
+
logger.info(`Listing applications for ${userCredentials.userName}`)
|
|
28
|
+
applications.forEach(app => {
|
|
29
|
+
console.log(`Application Name: ${app.Name}`);
|
|
30
|
+
console.log(`ID: ${app.ID}`);
|
|
31
|
+
console.log(`Database Name: ${app.DatabaseName}`);
|
|
32
|
+
console.log(`Status: ${app.Status}`);
|
|
33
|
+
console.log(`Version: ${app.Version}`);
|
|
34
|
+
console.log('-------------------------');
|
|
35
|
+
});
|
|
27
36
|
}
|
|
28
|
-
logger.info(`Listing applications for ${userCredentials.userName}`)
|
|
29
|
-
console.log(JSON.stringify(formattedData));
|
|
30
37
|
return 0;
|
|
31
38
|
} catch (e) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
const errorLabel = 'Failed to list applications';
|
|
40
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
41
|
+
handleAPIErrors(errorLabel, e);
|
|
35
42
|
} else {
|
|
36
|
-
logger.error(
|
|
37
|
-
return 1;
|
|
43
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
38
44
|
}
|
|
45
|
+
return 1;
|
|
39
46
|
}
|
|
40
47
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "../cloudutils";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "../cloudutils";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
|
-
export async function registerApp(dbname: string, host: string
|
|
5
|
+
export async function registerApp(dbname: string, host: string): Promise<number> {
|
|
6
6
|
const logger = getLogger();
|
|
7
7
|
const userCredentials = getCloudCredentials();
|
|
8
8
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -19,7 +19,6 @@ export async function registerApp(dbname: string, host: string, machines: number
|
|
|
19
19
|
{
|
|
20
20
|
name: appName,
|
|
21
21
|
database: dbname,
|
|
22
|
-
max_vms: machines,
|
|
23
22
|
},
|
|
24
23
|
{
|
|
25
24
|
headers: {
|
|
@@ -33,12 +32,12 @@ export async function registerApp(dbname: string, host: string, machines: number
|
|
|
33
32
|
logger.info(`${appName} ID: ${uuid}`);
|
|
34
33
|
return 0;
|
|
35
34
|
} catch (e) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const errorLabel = `Failed to register application ${appName}`;
|
|
36
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
37
|
+
handleAPIErrors(errorLabel, e);
|
|
39
38
|
} else {
|
|
40
|
-
logger.error(
|
|
41
|
-
return 1;
|
|
39
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
42
40
|
}
|
|
41
|
+
return 1;
|
|
43
42
|
}
|
|
44
43
|
}
|
package/applications/types.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { getCloudCredentials, getLogger } from "../cloudutils";
|
|
|
3
3
|
import { Application } from "./types";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
|
-
export async function updateApp(host: string
|
|
6
|
+
export async function updateApp(host: string): Promise<number> {
|
|
7
7
|
const logger = getLogger();
|
|
8
8
|
const userCredentials = getCloudCredentials();
|
|
9
9
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -15,12 +15,11 @@ export async function updateApp(host: string, machines: number): Promise<number>
|
|
|
15
15
|
logger.info(`Updating application: ${appName}`)
|
|
16
16
|
|
|
17
17
|
try {
|
|
18
|
-
logger.info(`Updating application ${appName}
|
|
18
|
+
logger.info(`Updating application ${appName}`);
|
|
19
19
|
const update = await axios.patch(
|
|
20
20
|
`https://${host}/${userCredentials.userName}/application/${appName}`,
|
|
21
21
|
{
|
|
22
22
|
name: appName,
|
|
23
|
-
max_vms: machines
|
|
24
23
|
},
|
|
25
24
|
{
|
|
26
25
|
headers: {
|
|
@@ -31,7 +30,6 @@ export async function updateApp(host: string, machines: number): Promise<number>
|
|
|
31
30
|
);
|
|
32
31
|
const application: Application = update.data as Application;
|
|
33
32
|
logger.info(`Successfully updated: ${application.Name}`);
|
|
34
|
-
console.log(JSON.stringify({ "Name": application.Name, "ID": application.ID, "Version": application.Version, "MaxVMs": application.MaxVMs }));
|
|
35
33
|
return 0;
|
|
36
34
|
} catch (e) {
|
|
37
35
|
if (axios.isAxiosError(e) && e.response) {
|
package/cli.ts
CHANGED
|
@@ -65,20 +65,18 @@ applicationCommands
|
|
|
65
65
|
.command('register')
|
|
66
66
|
.description('Register a new application')
|
|
67
67
|
.requiredOption('-d, --database <string>', 'Specify the app database name')
|
|
68
|
-
.
|
|
69
|
-
.action(async (options: { database: string, machines: string }) => {
|
|
68
|
+
.action(async (options: { database: string }) => {
|
|
70
69
|
const { host }: { host: string } = applicationCommands.opts()
|
|
71
|
-
const exitCode = await registerApp(options.database, host
|
|
70
|
+
const exitCode = await registerApp(options.database, host);
|
|
72
71
|
process.exit(exitCode);
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
applicationCommands
|
|
76
75
|
.command('update')
|
|
77
76
|
.description('Update an application')
|
|
78
|
-
.
|
|
79
|
-
.action(async (options: { machines: string }) => {
|
|
77
|
+
.action(async () => {
|
|
80
78
|
const { host }: { host: string } = applicationCommands.opts()
|
|
81
|
-
const exitCode = await updateApp(host
|
|
79
|
+
const exitCode = await updateApp(host);
|
|
82
80
|
process.exit(exitCode);
|
|
83
81
|
});
|
|
84
82
|
|
|
@@ -104,9 +102,10 @@ applicationCommands
|
|
|
104
102
|
applicationCommands
|
|
105
103
|
.command('list')
|
|
106
104
|
.description('List all deployed applications')
|
|
107
|
-
.
|
|
105
|
+
.option('--json', 'Emit JSON output')
|
|
106
|
+
.action(async (options: { json: boolean }) => {
|
|
108
107
|
const { host }: { host: string } = applicationCommands.opts()
|
|
109
|
-
const exitCode = await listApps(host);
|
|
108
|
+
const exitCode = await listApps(host, options.json);
|
|
110
109
|
process.exit(exitCode);
|
|
111
110
|
});
|
|
112
111
|
|
|
@@ -142,9 +141,10 @@ userdbCommands
|
|
|
142
141
|
userdbCommands
|
|
143
142
|
.command('status')
|
|
144
143
|
.argument('<string>', 'database name')
|
|
145
|
-
.
|
|
144
|
+
.option('--json', 'Emit JSON output')
|
|
145
|
+
.action((async (dbname: string, options: { json: boolean}) => {
|
|
146
146
|
const { host }: { host: string } = userdbCommands.opts()
|
|
147
|
-
await getUserDb(host, dbname)
|
|
147
|
+
await getUserDb(host, dbname, options.json)
|
|
148
148
|
}))
|
|
149
149
|
|
|
150
150
|
userdbCommands
|
package/cloudutils.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { DBOSCloudCredentials, dbosEnvPath } from "./login";
|
|
2
2
|
import TransportStream = require("winston-transport");
|
|
3
|
-
import fs from "fs";
|
|
4
3
|
import { spawn, StdioOptions } from 'child_process';
|
|
5
4
|
import { transports, createLogger, format, Logger } from "winston";
|
|
5
|
+
import fs from "fs";
|
|
6
|
+
import { AxiosError } from "axios";
|
|
7
|
+
|
|
8
|
+
export const dbosConfigFilePath = "dbos-config.yaml";
|
|
6
9
|
|
|
10
|
+
// FIXME: we should have a global instance of the logger created in cli.ts
|
|
7
11
|
export function getLogger(): Logger {
|
|
8
12
|
const winstonTransports: TransportStream[] = [];
|
|
9
13
|
winstonTransports.push(
|
|
@@ -94,4 +98,17 @@ export type ValuesOf<T> = T[keyof T];
|
|
|
94
98
|
|
|
95
99
|
export function createDirectory(path: string): string | undefined {
|
|
96
100
|
return fs.mkdirSync(path, { recursive: true });
|
|
97
|
-
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
interface CloudAPIErrorResponse {
|
|
104
|
+
message: string,
|
|
105
|
+
statusCode: number,
|
|
106
|
+
requestID: string,
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export function handleAPIErrors(label: string, e: AxiosError) {
|
|
110
|
+
const logger = getLogger();
|
|
111
|
+
const resp: CloudAPIErrorResponse = e.response?.data as CloudAPIErrorResponse;
|
|
112
|
+
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
113
|
+
}
|
|
114
|
+
|
|
@@ -27,14 +27,14 @@ async function deleteApp(host) {
|
|
|
27
27
|
return 0;
|
|
28
28
|
}
|
|
29
29
|
catch (e) {
|
|
30
|
+
const errorLabel = `Failed to delete application ${appName}`;
|
|
30
31
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
31
|
-
|
|
32
|
-
return 1;
|
|
32
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
logger.error(
|
|
36
|
-
return 1;
|
|
35
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
37
36
|
}
|
|
37
|
+
return 1;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
exports.deleteApp = deleteApp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAgF;AAChF,0DAA6B;AAEtB,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,gBAAgB,OAAO,EAAE,EAAE;YACvF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,CAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAA,4BAAe,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA9BD,8BA8BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmGlF"}
|
|
@@ -36,6 +36,9 @@ async function deployAppCode(host, docker) {
|
|
|
36
36
|
// Zip the current directory and deploy from there. Requires app to have already been built. Only for testing.
|
|
37
37
|
(0, child_process_1.execSync)(`zip -ry ${deployDirectoryName}/${appName}.zip ./* -x ${deployDirectoryName}/* > /dev/null`);
|
|
38
38
|
}
|
|
39
|
+
const interpolatedConfig = readInterpolatedConfig(cloudutils_1.dbosConfigFilePath);
|
|
40
|
+
(0, fs_1.writeFileSync)(`${deployDirectoryName}/${cloudutils_1.dbosConfigFilePath}`, interpolatedConfig);
|
|
41
|
+
(0, child_process_1.execSync)(`zip -j ${deployDirectoryName}/${appName}.zip ${deployDirectoryName}/${cloudutils_1.dbosConfigFilePath} > /dev/null`);
|
|
39
42
|
try {
|
|
40
43
|
const zipData = (0, cloudutils_1.readFileSync)(`${deployDirectoryName}/${appName}.zip`, "base64");
|
|
41
44
|
// Submit the deploy request
|
|
@@ -58,9 +61,13 @@ async function deployAppCode(host, docker) {
|
|
|
58
61
|
if (count % 5 === 0) {
|
|
59
62
|
logger.info(`Waiting for ${appName} with version ${deployOutput.ApplicationVersion} to be available`);
|
|
60
63
|
if (count > 20) {
|
|
61
|
-
logger.info(`If ${appName} takes too long to become available, check its logs
|
|
64
|
+
logger.info(`If ${appName} takes too long to become available, check its logs with 'npx dbos-cloud applications logs'`);
|
|
62
65
|
}
|
|
63
66
|
}
|
|
67
|
+
if (count > 180) {
|
|
68
|
+
logger.error("Application taking too long to become available");
|
|
69
|
+
return 1;
|
|
70
|
+
}
|
|
64
71
|
// Retrieve the application status, check if it is "AVAILABLE"
|
|
65
72
|
const list = await axios_1.default.get(`https://${host}/${userCredentials.userName}/application`, {
|
|
66
73
|
headers: {
|
|
@@ -80,17 +87,24 @@ async function deployAppCode(host, docker) {
|
|
|
80
87
|
return 0;
|
|
81
88
|
}
|
|
82
89
|
catch (e) {
|
|
90
|
+
const errorLabel = `Failed to deploy application ${appName}`;
|
|
83
91
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
84
|
-
|
|
85
|
-
return 1;
|
|
92
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
86
93
|
}
|
|
87
94
|
else {
|
|
88
|
-
logger.error(
|
|
89
|
-
return 1;
|
|
95
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
90
96
|
}
|
|
97
|
+
return 1;
|
|
91
98
|
}
|
|
92
99
|
}
|
|
93
100
|
exports.deployAppCode = deployAppCode;
|
|
101
|
+
function readInterpolatedConfig(configFilePath) {
|
|
102
|
+
const configFileContent = (0, cloudutils_1.readFileSync)(configFilePath);
|
|
103
|
+
const regex = /\${([^}]+)}/g; // Regex to match ${VAR_NAME} style placeholders
|
|
104
|
+
return configFileContent.replace(regex, (_, g1) => {
|
|
105
|
+
return process.env[g1] || ""; // If the env variable is not set, return an empty string.
|
|
106
|
+
});
|
|
107
|
+
}
|
|
94
108
|
async function buildAppInDocker(appName) {
|
|
95
109
|
const logger = (0, cloudutils_1.getLogger)();
|
|
96
110
|
// Verify Docker is running
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,14 +27,14 @@ async function getAppLogs(host) {
|
|
|
27
27
|
return 0;
|
|
28
28
|
}
|
|
29
29
|
catch (e) {
|
|
30
|
+
const errorLabel = `Failed to retrieve logs of application ${appName}`;
|
|
30
31
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
31
|
-
|
|
32
|
-
return 1;
|
|
32
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
logger.error(
|
|
36
|
-
return 1;
|
|
35
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
37
36
|
}
|
|
37
|
+
return 1;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
exports.getAppLogs = getAppLogs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-logs.js","sourceRoot":"","sources":["../../../../applications/get-app-logs.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"get-app-logs.js","sourceRoot":"","sources":["../../../../applications/get-app-logs.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,8CAAgF;AAChF,0DAA6B;AAEtB,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAE1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,qBAAqB,OAAO,EAAE,EAAE;YACrG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,0CAA0C,OAAO,EAAE,CAAC;QACvE,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,CAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAA,4BAAe,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA9BD,gCA8BC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function listApps(host: string): Promise<number>;
|
|
1
|
+
export declare function listApps(host: string, json: boolean): Promise<number>;
|
|
2
2
|
//# sourceMappingURL=list-apps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C3E"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.listApps = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const cloudutils_1 = require("../cloudutils");
|
|
9
|
-
async function listApps(host) {
|
|
9
|
+
async function listApps(host, json) {
|
|
10
10
|
const logger = (0, cloudutils_1.getLogger)();
|
|
11
11
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
12
12
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -16,28 +16,36 @@ async function listApps(host) {
|
|
|
16
16
|
Authorization: bearerToken,
|
|
17
17
|
},
|
|
18
18
|
});
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
19
|
+
const applications = list.data;
|
|
20
|
+
if (applications.length === 0) {
|
|
21
21
|
logger.info("No applications found");
|
|
22
22
|
return 1;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if (json) {
|
|
25
|
+
console.log(JSON.stringify(applications));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
logger.info(`Listing applications for ${userCredentials.userName}`);
|
|
29
|
+
applications.forEach(app => {
|
|
30
|
+
console.log(`Application Name: ${app.Name}`);
|
|
31
|
+
console.log(`ID: ${app.ID}`);
|
|
32
|
+
console.log(`Database Name: ${app.DatabaseName}`);
|
|
33
|
+
console.log(`Status: ${app.Status}`);
|
|
34
|
+
console.log(`Version: ${app.Version}`);
|
|
35
|
+
console.log('-------------------------');
|
|
36
|
+
});
|
|
27
37
|
}
|
|
28
|
-
logger.info(`Listing applications for ${userCredentials.userName}`);
|
|
29
|
-
console.log(JSON.stringify(formattedData));
|
|
30
38
|
return 0;
|
|
31
39
|
}
|
|
32
40
|
catch (e) {
|
|
41
|
+
const errorLabel = 'Failed to list applications';
|
|
33
42
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
34
|
-
|
|
35
|
-
return 1;
|
|
43
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
36
44
|
}
|
|
37
45
|
else {
|
|
38
|
-
logger.error(
|
|
39
|
-
return 1;
|
|
46
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
40
47
|
}
|
|
48
|
+
return 1;
|
|
41
49
|
}
|
|
42
50
|
}
|
|
43
51
|
exports.listApps = listApps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAgF;AAGzE,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,GAAG,CAC1B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,cAAc,EACzD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;QAC/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,6BAA6B,CAAC;QACjD,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,CAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAA,4BAAe,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA1CD,4BA0CC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function registerApp(dbname: string, host: string
|
|
1
|
+
export declare function registerApp(dbname: string, host: string): Promise<number>;
|
|
2
2
|
//# sourceMappingURL=register-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-app.d.ts","sourceRoot":"","sources":["../../../../applications/register-app.ts"],"names":[],"mappings":"AAIA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"register-app.d.ts","sourceRoot":"","sources":["../../../../applications/register-app.ts"],"names":[],"mappings":"AAIA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC/E"}
|
|
@@ -7,7 +7,7 @@ exports.registerApp = void 0;
|
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const cloudutils_1 = require("../cloudutils");
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
async function registerApp(dbname, host
|
|
10
|
+
async function registerApp(dbname, host) {
|
|
11
11
|
const logger = (0, cloudutils_1.getLogger)();
|
|
12
12
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
13
13
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -20,7 +20,6 @@ async function registerApp(dbname, host, machines) {
|
|
|
20
20
|
const register = await axios_1.default.put(`https://${host}/${userCredentials.userName}/application`, {
|
|
21
21
|
name: appName,
|
|
22
22
|
database: dbname,
|
|
23
|
-
max_vms: machines,
|
|
24
23
|
}, {
|
|
25
24
|
headers: {
|
|
26
25
|
"Content-Type": "application/json",
|
|
@@ -33,14 +32,14 @@ async function registerApp(dbname, host, machines) {
|
|
|
33
32
|
return 0;
|
|
34
33
|
}
|
|
35
34
|
catch (e) {
|
|
35
|
+
const errorLabel = `Failed to register application ${appName}`;
|
|
36
36
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
37
|
-
|
|
38
|
-
return 1;
|
|
37
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
39
38
|
}
|
|
40
39
|
else {
|
|
41
|
-
logger.error(
|
|
42
|
-
return 1;
|
|
40
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
43
41
|
}
|
|
42
|
+
return 1;
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
exports.registerApp = registerApp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../../../applications/register-app.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../../../applications/register-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAgF;AAChF,0DAA6B;AAEtB,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,IAAY;IAC5D,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,cAAc,EACzD;YACE,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,MAAM;SACjB,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAc,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,kCAAkC,OAAO,EAAE,CAAC;QAC/D,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,CAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAA,4BAAe,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAtCD,kCAsCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function updateApp(host: string
|
|
1
|
+
export declare function updateApp(host: string): Promise<number>;
|
|
2
2
|
//# sourceMappingURL=update-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-app.d.ts","sourceRoot":"","sources":["../../../../applications/update-app.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"update-app.d.ts","sourceRoot":"","sources":["../../../../applications/update-app.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC7D"}
|
|
@@ -7,7 +7,7 @@ exports.updateApp = void 0;
|
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const cloudutils_1 = require("../cloudutils");
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
async function updateApp(host
|
|
10
|
+
async function updateApp(host) {
|
|
11
11
|
const logger = (0, cloudutils_1.getLogger)();
|
|
12
12
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
13
13
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -17,10 +17,9 @@ async function updateApp(host, machines) {
|
|
|
17
17
|
logger.info(`Loaded application name from package.json: ${appName}`);
|
|
18
18
|
logger.info(`Updating application: ${appName}`);
|
|
19
19
|
try {
|
|
20
|
-
logger.info(`Updating application ${appName}
|
|
20
|
+
logger.info(`Updating application ${appName}`);
|
|
21
21
|
const update = await axios_1.default.patch(`https://${host}/${userCredentials.userName}/application/${appName}`, {
|
|
22
22
|
name: appName,
|
|
23
|
-
max_vms: machines
|
|
24
23
|
}, {
|
|
25
24
|
headers: {
|
|
26
25
|
"Content-Type": "application/json",
|
|
@@ -29,7 +28,6 @@ async function updateApp(host, machines) {
|
|
|
29
28
|
});
|
|
30
29
|
const application = update.data;
|
|
31
30
|
logger.info(`Successfully updated: ${application.Name}`);
|
|
32
|
-
console.log(JSON.stringify({ "Name": application.Name, "ID": application.ID, "Version": application.Version, "MaxVMs": application.MaxVMs }));
|
|
33
31
|
return 0;
|
|
34
32
|
}
|
|
35
33
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-app.js","sourceRoot":"","sources":["../../../../applications/update-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8CAA+D;AAE/D,0DAA6B;AAEtB,KAAK,UAAU,SAAS,CAAC,IAAY
|
|
1
|
+
{"version":3,"file":"update-app.js","sourceRoot":"","sources":["../../../../applications/update-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8CAA+D;AAE/D,0DAA6B;AAEtB,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAI,IAAA,sBAAS,GAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,KAAK,CAC9B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,gBAAgB,OAAO,EAAE,EACpE;YACE,IAAI,EAAE,OAAO;SACd,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,WAAW,GAAgB,MAAM,CAAC,IAAmB,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,yBAAyB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACL,CAAW,CAAC,OAAO,GAAG,gCAAgC,OAAO,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC;YAC1F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAtCD,8BAsCC"}
|
|
@@ -50,19 +50,17 @@ applicationCommands
|
|
|
50
50
|
.command('register')
|
|
51
51
|
.description('Register a new application')
|
|
52
52
|
.requiredOption('-d, --database <string>', 'Specify the app database name')
|
|
53
|
-
.option('-m, --machines <string>', 'Number of VMs to deploy', '1')
|
|
54
53
|
.action(async (options) => {
|
|
55
54
|
const { host } = applicationCommands.opts();
|
|
56
|
-
const exitCode = await (0, applications_1.registerApp)(options.database, host
|
|
55
|
+
const exitCode = await (0, applications_1.registerApp)(options.database, host);
|
|
57
56
|
process.exit(exitCode);
|
|
58
57
|
});
|
|
59
58
|
applicationCommands
|
|
60
59
|
.command('update')
|
|
61
60
|
.description('Update an application')
|
|
62
|
-
.
|
|
63
|
-
.action(async (options) => {
|
|
61
|
+
.action(async () => {
|
|
64
62
|
const { host } = applicationCommands.opts();
|
|
65
|
-
const exitCode = await (0, applications_1.updateApp)(host
|
|
63
|
+
const exitCode = await (0, applications_1.updateApp)(host);
|
|
66
64
|
process.exit(exitCode);
|
|
67
65
|
});
|
|
68
66
|
applicationCommands
|
|
@@ -85,9 +83,10 @@ applicationCommands
|
|
|
85
83
|
applicationCommands
|
|
86
84
|
.command('list')
|
|
87
85
|
.description('List all deployed applications')
|
|
88
|
-
.
|
|
86
|
+
.option('--json', 'Emit JSON output')
|
|
87
|
+
.action(async (options) => {
|
|
89
88
|
const { host } = applicationCommands.opts();
|
|
90
|
-
const exitCode = await (0, applications_1.listApps)(host);
|
|
89
|
+
const exitCode = await (0, applications_1.listApps)(host, options.json);
|
|
91
90
|
process.exit(exitCode);
|
|
92
91
|
});
|
|
93
92
|
applicationCommands
|
|
@@ -118,9 +117,10 @@ userdbCommands
|
|
|
118
117
|
userdbCommands
|
|
119
118
|
.command('status')
|
|
120
119
|
.argument('<string>', 'database name')
|
|
121
|
-
.
|
|
120
|
+
.option('--json', 'Emit JSON output')
|
|
121
|
+
.action((async (dbname, options) => {
|
|
122
122
|
const { host } = userdbCommands.opts();
|
|
123
|
-
await (0, userdb_1.getUserDb)(host, dbname);
|
|
123
|
+
await (0, userdb_1.getUserDb)(host, dbname, options.json);
|
|
124
124
|
}));
|
|
125
125
|
userdbCommands
|
|
126
126
|
.command('delete')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":";;;AAEA,iDAOwB;AACxB,yCAAoC;AACpC,mCAAgC;AAChC,yCAA0C;AAC1C,qCAAiE;AACjE,6CAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,2EAA2E;AAEzH,8DAA8D;AAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAwB,CAAC;AAC5E,OAAO;IACL,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE/B,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AAErB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,cAAc,CAAC,yBAAyB,EAAE,UAAU,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0CAA0C,CAAC;KACvD,cAAc,CAAC,yBAAyB,EAAE,UAAU,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;IAC3D,IAAI,CAAC,IAAA,6BAAgB,GAAE,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAM,mBAAmB,GAAG,OAAO;KAChC,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAA;AAElE,mBAAmB;KAChB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4BAA4B,CAAC;KACzC,cAAc,CAAC,yBAAyB,EAAE,+BAA+B,CAAC;KAC1E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DBOSCloudCredentials } from "./login";
|
|
3
3
|
import { Logger } from "winston";
|
|
4
|
+
import { AxiosError } from "axios";
|
|
5
|
+
export declare const dbosConfigFilePath = "dbos-config.yaml";
|
|
4
6
|
export declare function getLogger(): Logger;
|
|
5
7
|
export declare function getCloudCredentials(): DBOSCloudCredentials;
|
|
6
8
|
export declare function credentialsExist(): boolean;
|
|
@@ -9,4 +11,5 @@ export declare function readFileSync(path: string, encoding?: BufferEncoding): s
|
|
|
9
11
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
10
12
|
export type ValuesOf<T> = T[keyof T];
|
|
11
13
|
export declare function createDirectory(path: string): string | undefined;
|
|
14
|
+
export declare function handleAPIErrors(label: string, e: AxiosError): void;
|
|
12
15
|
//# sourceMappingURL=cloudutils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;AAG5D,OAAO,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAGrD,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAqBD,wBAAgB,mBAAmB,IAAI,oBAAoB,CAW1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,GAAG,MAAM,CAa7F;AAED,eAAO,MAAM,KAAK,OAAQ,MAAM,qBAA0C,CAAC;AAE3E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAQD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,QAI3D"}
|
|
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createDirectory = exports.sleep = exports.readFileSync = exports.runCommand = exports.credentialsExist = exports.getCloudCredentials = exports.getLogger = void 0;
|
|
6
|
+
exports.handleAPIErrors = exports.createDirectory = exports.sleep = exports.readFileSync = exports.runCommand = exports.credentialsExist = exports.getCloudCredentials = exports.getLogger = exports.dbosConfigFilePath = void 0;
|
|
7
7
|
const login_1 = require("./login");
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
8
|
const child_process_1 = require("child_process");
|
|
10
9
|
const winston_1 = require("winston");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
exports.dbosConfigFilePath = "dbos-config.yaml";
|
|
12
|
+
// FIXME: we should have a global instance of the logger created in cli.ts
|
|
11
13
|
function getLogger() {
|
|
12
14
|
const winstonTransports = [];
|
|
13
15
|
winstonTransports.push(new winston_1.transports.Console({
|
|
@@ -85,4 +87,10 @@ function createDirectory(path) {
|
|
|
85
87
|
return fs_1.default.mkdirSync(path, { recursive: true });
|
|
86
88
|
}
|
|
87
89
|
exports.createDirectory = createDirectory;
|
|
90
|
+
function handleAPIErrors(label, e) {
|
|
91
|
+
const logger = getLogger();
|
|
92
|
+
const resp = e.response?.data;
|
|
93
|
+
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
94
|
+
}
|
|
95
|
+
exports.handleAPIErrors = handleAPIErrors;
|
|
88
96
|
//# sourceMappingURL=cloudutils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA4D;AAE5D,
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA4D;AAE5D,iDAAoD;AACpD,qCAAmE;AACnE,4CAAoB;AAGP,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AAErD,0EAA0E;AAC1E,SAAgB,SAAS;IACvB,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,iBAAiB,CAAC,IAAI,CACpB,IAAI,oBAAU,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAG,MAAM;KACf,CAAC,CACH,CAAC;IACF,OAAO,IAAA,sBAAY,EAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACzD,CAAC;AATD,8BASC;AAED,MAAM,aAAa,GAAG,gBAAM,CAAC,OAAO,CAClC,gBAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9B,gBAAM,CAAC,SAAS,EAAE,EAClB,gBAAM,CAAC,QAAQ,EAAE,EACjB,gBAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACrB,mEAAmE;IACnE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAClD,kJAAkJ;IAClJ,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,kJAAkJ;IAClJ,MAAM,cAAc,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAW,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE9F,iEAAiE;IACjE,OAAO,GAAG,EAAE,KAAK,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpF,CAAC,CAAC,CACH,CAAC;AAEF,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyB,CAAC;IAC9H,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,2BAA2B;KAChF,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,YAAE,CAAC,UAAU,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED,gDAAgD;AAChD,SAAgB,UAAU,CAAC,OAAe,EAAE,OAAiB,EAAE;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAiB,SAAS,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,OAAO,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,gCAkBC;AAED,SAAgB,YAAY,CAAC,IAAY,EAAE,WAA2B,MAAM;IAC1E,wBAAwB;IACxB,YAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAmC,EAAE,KAAe,EAAE,EAAE;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,WAAW,GAAW,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAE,CAAC;IACjE,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,oCAaC;AAEM,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAA9D,QAAA,KAAK,SAAyD;AAK3E,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAFD,0CAEC;AAQD,SAAgB,eAAe,CAAC,KAAa,EAAE,CAAa;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAA0B,CAAC,CAAC,QAAQ,EAAE,IAA6B,CAAC;IAC9E,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACjE,CAAC;AAJD,0CAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BlF"}
|
|
@@ -25,11 +25,12 @@ async function registerUser(username, host) {
|
|
|
25
25
|
logger.info(`Registered user ${userName}, UUID: ${userUUID}`);
|
|
26
26
|
}
|
|
27
27
|
catch (e) {
|
|
28
|
+
const errorLabel = `Failed to register user ${username}`;
|
|
28
29
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
29
|
-
|
|
30
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
|
-
logger.error(
|
|
33
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
33
34
|
}
|
|
34
35
|
return 1;
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,6CAA+E;AAExE,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC/D,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,WAAW,IAAI,OAAO,EACtB;YACE,IAAI,EAAE,QAAQ;SACf,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAc,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,WAAW,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,2BAA2B,QAAQ,EAAE,CAAC;QACzD,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,CAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAA,4BAAe,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AA/BD,oCA+BC"}
|
|
@@ -4,8 +4,8 @@ export interface UserDBInstance {
|
|
|
4
4
|
readonly HostName: string;
|
|
5
5
|
readonly Port: number;
|
|
6
6
|
}
|
|
7
|
-
export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<
|
|
8
|
-
export declare function deleteUserDb(host: string, dbName: string): Promise<
|
|
9
|
-
export declare function getUserDb(host: string, dbName: string): Promise<
|
|
7
|
+
export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<1 | undefined>;
|
|
8
|
+
export declare function deleteUserDb(host: string, dbName: string): Promise<1 | undefined>;
|
|
9
|
+
export declare function getUserDb(host: string, dbName: string, json: boolean): Promise<1 | undefined>;
|
|
10
10
|
export declare function getUserDBInfo(host: string, dbName: string): Promise<UserDBInstance>;
|
|
11
11
|
//# sourceMappingURL=userdb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,0BAqCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAsB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,0BAuB1E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzF"}
|
|
@@ -21,7 +21,7 @@ async function createUserDb(host, dbName, adminName, adminPassword, sync) {
|
|
|
21
21
|
logger.info(`Successfully started creating database: ${dbName}`);
|
|
22
22
|
if (sync) {
|
|
23
23
|
let status = "";
|
|
24
|
-
while (status != "available") {
|
|
24
|
+
while (status != "available" && status != "backing-up") {
|
|
25
25
|
await (0, utils_1.sleep)(30000);
|
|
26
26
|
const userDBInfo = await getUserDBInfo(host, dbName);
|
|
27
27
|
logger.info(userDBInfo);
|
|
@@ -30,12 +30,14 @@ async function createUserDb(host, dbName, adminName, adminPassword, sync) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
catch (e) {
|
|
33
|
+
const errorLabel = `Failed to create database ${dbName}`;
|
|
33
34
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
34
|
-
|
|
35
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
37
|
-
logger.error(
|
|
38
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
38
39
|
}
|
|
40
|
+
return 1;
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
exports.createUserDb = createUserDb;
|
|
@@ -53,28 +55,41 @@ async function deleteUserDb(host, dbName) {
|
|
|
53
55
|
logger.info(`Database deleted: ${dbName}`);
|
|
54
56
|
}
|
|
55
57
|
catch (e) {
|
|
58
|
+
const errorLabel = `Failed to delete database ${dbName}`;
|
|
56
59
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
57
|
-
|
|
60
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
58
61
|
}
|
|
59
62
|
else {
|
|
60
|
-
logger.error(
|
|
63
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
61
64
|
}
|
|
65
|
+
return 1;
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
exports.deleteUserDb = deleteUserDb;
|
|
65
|
-
async function getUserDb(host, dbName) {
|
|
69
|
+
async function getUserDb(host, dbName, json) {
|
|
66
70
|
const logger = (0, cloudutils_1.getLogger)();
|
|
67
71
|
try {
|
|
68
72
|
const userDBInfo = await getUserDBInfo(host, dbName);
|
|
69
|
-
|
|
73
|
+
if (json) {
|
|
74
|
+
console.log(JSON.stringify(userDBInfo));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
logger.info(`Retrieving status of: ${dbName}`);
|
|
78
|
+
console.log(`DB Name: ${userDBInfo.DBName}`);
|
|
79
|
+
console.log(`Status: ${userDBInfo.Status}`);
|
|
80
|
+
console.log(`Host Name: ${userDBInfo.HostName}`);
|
|
81
|
+
console.log(`Port: ${userDBInfo.Port}`);
|
|
82
|
+
}
|
|
70
83
|
}
|
|
71
84
|
catch (e) {
|
|
85
|
+
const errorLabel = `Failed to retreive database record ${dbName}`;
|
|
72
86
|
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
73
|
-
|
|
87
|
+
(0, cloudutils_1.handleAPIErrors)(errorLabel, e);
|
|
74
88
|
}
|
|
75
89
|
else {
|
|
76
|
-
logger.error(
|
|
90
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
77
91
|
}
|
|
92
|
+
return 1;
|
|
78
93
|
}
|
|
79
94
|
}
|
|
80
95
|
exports.getUserDb = getUserDb;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/register.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "./cloudutils";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "./cloudutils";
|
|
3
3
|
|
|
4
4
|
export async function registerUser(username: string, host: string): Promise<number> {
|
|
5
5
|
const userCredentials = getCloudCredentials();
|
|
@@ -23,10 +23,11 @@ export async function registerUser(username: string, host: string): Promise<numb
|
|
|
23
23
|
const userUUID = register.data as string;
|
|
24
24
|
logger.info(`Registered user ${userName}, UUID: ${userUUID}`);
|
|
25
25
|
} catch (e) {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const errorLabel = `Failed to register user ${username}`;
|
|
27
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
28
|
+
handleAPIErrors(errorLabel, e);
|
|
28
29
|
} else {
|
|
29
|
-
logger.error(
|
|
30
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
30
31
|
}
|
|
31
32
|
return 1;
|
|
32
33
|
}
|
package/userdb.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger } from "./cloudutils";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import { handleAPIErrors, getCloudCredentials, getLogger } from "./cloudutils";
|
|
3
3
|
import { sleep } from "../../src/utils";
|
|
4
4
|
|
|
5
5
|
export interface UserDBInstance {
|
|
@@ -30,7 +30,7 @@ export async function createUserDb(host: string, dbName: string, adminName: stri
|
|
|
30
30
|
|
|
31
31
|
if (sync) {
|
|
32
32
|
let status = "";
|
|
33
|
-
while (status != "available") {
|
|
33
|
+
while (status != "available" && status != "backing-up") {
|
|
34
34
|
await sleep(30000);
|
|
35
35
|
const userDBInfo = await getUserDBInfo(host, dbName);
|
|
36
36
|
logger.info(userDBInfo);
|
|
@@ -38,11 +38,13 @@ export async function createUserDb(host: string, dbName: string, adminName: stri
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
} catch (e) {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
const errorLabel = `Failed to create database ${dbName}`;
|
|
42
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
43
|
+
handleAPIErrors(errorLabel, e);
|
|
43
44
|
} else {
|
|
44
|
-
logger.error(
|
|
45
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
45
46
|
}
|
|
47
|
+
return 1;
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -60,26 +62,38 @@ export async function deleteUserDb(host: string, dbName: string) {
|
|
|
60
62
|
});
|
|
61
63
|
logger.info(`Database deleted: ${dbName}`);
|
|
62
64
|
} catch (e) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
const errorLabel = `Failed to delete database ${dbName}`;
|
|
66
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
67
|
+
handleAPIErrors(errorLabel, e);
|
|
65
68
|
} else {
|
|
66
|
-
logger.error(
|
|
69
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
67
70
|
}
|
|
71
|
+
return 1;
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
|
|
71
|
-
export async function getUserDb(host: string, dbName: string) {
|
|
75
|
+
export async function getUserDb(host: string, dbName: string, json: boolean) {
|
|
72
76
|
const logger = getLogger();
|
|
73
77
|
|
|
74
78
|
try {
|
|
75
79
|
const userDBInfo = await getUserDBInfo(host, dbName);
|
|
76
|
-
|
|
80
|
+
if (json) {
|
|
81
|
+
console.log(JSON.stringify(userDBInfo));
|
|
82
|
+
} else {
|
|
83
|
+
logger.info(`Retrieving status of: ${dbName}`);
|
|
84
|
+
console.log(`DB Name: ${userDBInfo.DBName}`);
|
|
85
|
+
console.log(`Status: ${userDBInfo.Status}`);
|
|
86
|
+
console.log(`Host Name: ${userDBInfo.HostName}`);
|
|
87
|
+
console.log(`Port: ${userDBInfo.Port}`);
|
|
88
|
+
}
|
|
77
89
|
} catch (e) {
|
|
78
|
-
|
|
79
|
-
|
|
90
|
+
const errorLabel = `Failed to retreive database record ${dbName}`;
|
|
91
|
+
if (axios.isAxiosError(e) && (e as AxiosError).response) {
|
|
92
|
+
handleAPIErrors(errorLabel, e);
|
|
80
93
|
} else {
|
|
81
|
-
logger.error(
|
|
94
|
+
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
82
95
|
}
|
|
96
|
+
return 1;
|
|
83
97
|
}
|
|
84
98
|
}
|
|
85
99
|
|