@webda/async 4.0.0-beta.2 → 4.0.0-beta.3

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.
Files changed (62) hide show
  1. package/README.md +89 -4
  2. package/lib/{models.d.ts → asyncaction.model.d.ts} +75 -37
  3. package/lib/asyncaction.model.d.ts.map +1 -0
  4. package/lib/asyncaction.model.js +269 -0
  5. package/lib/asyncaction.model.js.map +1 -0
  6. package/lib/index.d.ts +6 -4
  7. package/lib/index.d.ts.map +1 -1
  8. package/lib/index.js +6 -4
  9. package/lib/index.js.map +1 -1
  10. package/lib/services/asyncevents.service.d.ts +154 -0
  11. package/lib/services/asyncevents.service.d.ts.map +1 -0
  12. package/lib/services/asyncevents.service.js +219 -0
  13. package/lib/services/asyncevents.service.js.map +1 -0
  14. package/lib/services/{asyncjobservice.d.ts → asyncjobservice.service.d.ts} +78 -61
  15. package/lib/services/asyncjobservice.service.d.ts.map +1 -0
  16. package/lib/services/asyncjobservice.service.js +584 -0
  17. package/lib/services/asyncjobservice.service.js.map +1 -0
  18. package/lib/services/{localrunner.d.ts → localrunner.service.d.ts} +24 -10
  19. package/lib/services/localrunner.service.d.ts.map +1 -0
  20. package/lib/services/localrunner.service.js +87 -0
  21. package/lib/services/localrunner.service.js.map +1 -0
  22. package/lib/services/{runner.d.ts → runner.service.d.ts} +17 -12
  23. package/lib/services/runner.service.d.ts.map +1 -0
  24. package/lib/services/{runner.js → runner.service.js} +16 -13
  25. package/lib/services/runner.service.js.map +1 -0
  26. package/lib/services/servicerunner.service.d.ts +105 -0
  27. package/lib/services/servicerunner.service.d.ts.map +1 -0
  28. package/lib/services/servicerunner.service.js +131 -0
  29. package/lib/services/servicerunner.service.js.map +1 -0
  30. package/package.json +32 -42
  31. package/webda.module.json +1925 -890
  32. package/lib/models.d.ts.map +0 -1
  33. package/lib/models.js +0 -179
  34. package/lib/models.js.map +0 -1
  35. package/lib/models.spec.d.ts +0 -7
  36. package/lib/models.spec.d.ts.map +0 -1
  37. package/lib/models.spec.js +0 -64
  38. package/lib/models.spec.js.map +0 -1
  39. package/lib/services/asyncjobservice.d.ts.map +0 -1
  40. package/lib/services/asyncjobservice.js +0 -469
  41. package/lib/services/asyncjobservice.js.map +0 -1
  42. package/lib/services/asyncjobservice.spec.d.ts +0 -2
  43. package/lib/services/asyncjobservice.spec.d.ts.map +0 -1
  44. package/lib/services/asyncjobservice.spec.js +0 -561
  45. package/lib/services/asyncjobservice.spec.js.map +0 -1
  46. package/lib/services/localrunner.d.ts.map +0 -1
  47. package/lib/services/localrunner.js +0 -70
  48. package/lib/services/localrunner.js.map +0 -1
  49. package/lib/services/localrunner.spec.d.ts +0 -2
  50. package/lib/services/localrunner.spec.d.ts.map +0 -1
  51. package/lib/services/localrunner.spec.js +0 -113
  52. package/lib/services/localrunner.spec.js.map +0 -1
  53. package/lib/services/runner.d.ts.map +0 -1
  54. package/lib/services/runner.js.map +0 -1
  55. package/lib/services/servicerunner.d.ts +0 -68
  56. package/lib/services/servicerunner.d.ts.map +0 -1
  57. package/lib/services/servicerunner.js +0 -97
  58. package/lib/services/servicerunner.js.map +0 -1
  59. package/lib/services/servicerunner.spec.d.ts +0 -2
  60. package/lib/services/servicerunner.spec.d.ts.map +0 -1
  61. package/lib/services/servicerunner.spec.js +0 -111
  62. package/lib/services/servicerunner.spec.js.map +0 -1
@@ -1,70 +0,0 @@
1
- import { spawn } from "child_process";
2
- import { Runner, RunnerParameters } from "./runner.js";
3
- export class LocalRunnerParameters extends RunnerParameters {
4
- constructor(params) {
5
- var _a;
6
- super(params);
7
- this.options ?? (this.options = {});
8
- (_a = this.options).env ?? (_a.env = {});
9
- }
10
- }
11
- /**
12
- * Run a Job locally on the server by spawning a child process
13
- *
14
- * @WebdaModda
15
- */
16
- export default class LocalRunner extends Runner {
17
- /**
18
- * @inheritdoc
19
- */
20
- loadParameters(params) {
21
- return new LocalRunnerParameters(params);
22
- }
23
- spawn(command, args, options) {
24
- /* c8 ignore next 2 */
25
- return spawn(command, args, options);
26
- }
27
- /**
28
- * @inheritdoc
29
- */
30
- async launchAction(action, info) {
31
- const envs = {
32
- ...this.parameters.options?.env,
33
- ...info
34
- };
35
- this.log("INFO", "Job", action.getUuid(), "started with", Object.keys(envs)
36
- .map(k => `${k}=${envs[k]}`)
37
- .join(" "), this.parameters.command, this.parameters.args ? this.parameters.args.map(a => `'${a}'`).join(" ") : "");
38
- const child = this.spawn(this.parameters.command, this.parameters.args || [], {
39
- ...this.parameters.options,
40
- env: envs,
41
- detached: true
42
- });
43
- // AutoStatus based on process info
44
- if (this.parameters.autoStatus && child) {
45
- child.stdout?.on("data", data => {
46
- action.getStore().upsertItemToCollection(action.getUuid(), "logs", data);
47
- });
48
- child.stderr?.on("data", data => {
49
- action.getStore().upsertItemToCollection(action.getUuid(), "logs", data);
50
- });
51
- // As this is local just and mostly used for batch auto status it
52
- await action.getStore().patch({ uuid: action.getUuid(), status: "RUNNING" });
53
- child.on("exit", async (code) => {
54
- if (code !== 0) {
55
- this.log("INFO", "Job", action.getUuid(), "errored with", code);
56
- await action.getStore().patch({ uuid: action.getUuid(), status: "ERROR" });
57
- }
58
- else {
59
- this.log("INFO", "Job", action.getUuid(), "successful");
60
- await action.getStore().patch({ uuid: action.getUuid(), status: "SUCCESS" });
61
- }
62
- });
63
- }
64
- return {
65
- agent: Runner.getAgentInfo(),
66
- pid: child?.pid || -1
67
- };
68
- }
69
- }
70
- //# sourceMappingURL=localrunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localrunner.js","sourceRoot":"","sources":["../../src/services/localrunner.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=localrunner.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localrunner.spec.d.ts","sourceRoot":"","sources":["../../src/services/localrunner.spec.ts"],"names":[],"mappings":""}
@@ -1,113 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { suite, test } from "@testdeck/mocha";
8
- import { WebdaTest } from "@webda/core/lib/test.js";
9
- import * as assert from "assert";
10
- import { EventEmitter } from "events";
11
- import { nextTick } from "process";
12
- import { stub } from "sinon";
13
- import LocalRunner from "./localrunner.js";
14
- import { Runner } from "./runner.js";
15
- class FakeRunner extends Runner {
16
- launchAction(action) {
17
- throw new Error("Method not implemented.");
18
- }
19
- }
20
- class FakeChildProcess extends EventEmitter {
21
- constructor() {
22
- super(...arguments);
23
- this.pid = 666;
24
- this.stdout = new EventEmitter();
25
- this.stderr = new EventEmitter();
26
- }
27
- send(type, ...args) {
28
- this.emit(type, ...args);
29
- }
30
- }
31
- let LocalRunnerTest = class LocalRunnerTest extends WebdaTest {
32
- cov() {
33
- new LocalRunner(this.webda, "runner", {});
34
- const runner = new LocalRunner(this.webda, "runner", { actions: ["plop"], options: { env: { OK: "test" } } });
35
- assert.strictEqual(runner.handleType("plop"), true);
36
- assert.strictEqual(runner.handleType("plop2"), false);
37
- new LocalRunner(this.webda, "runner", { options: { env: { OK: "test" } } });
38
- // Just for loadParameters
39
- new FakeRunner(this.webda, "fake", {});
40
- }
41
- getJobInfo(action) {
42
- return {
43
- JOB_HOOK: "",
44
- JOB_ID: action.getUuid(),
45
- JOB_ORCHESTRATOR: "test",
46
- JOB_SECRET_KEY: action.__secretKey
47
- };
48
- }
49
- async launchAction() {
50
- const runner = new LocalRunner(this.webda, "runner", {});
51
- // @ts-expect-error
52
- const spawn = stub(runner, "spawn").returns({ pid: "fake" });
53
- try {
54
- const action = await this.getService("AsyncJobs").save({ status: "STARTING", logs: [] });
55
- const job = await runner.launchAction(action, this.getJobInfo(action));
56
- assert.strictEqual(spawn.calledOnce, true);
57
- assert.strictEqual(job.pid, "fake");
58
- await action.refresh();
59
- assert.strictEqual(action.status, "STARTING");
60
- runner.getParameters().args = ["test"];
61
- await runner.launchAction(action, this.getJobInfo(action));
62
- }
63
- finally {
64
- spawn.restore();
65
- }
66
- }
67
- async launchActionAutoStatus() {
68
- const child = new FakeChildProcess();
69
- const runner = new LocalRunner(this.webda, "runner", { autoStatus: true });
70
- // @ts-expect-error
71
- const spawn = stub(runner, "spawn").returns(child);
72
- try {
73
- const action = await this.getService("AsyncJobs").save({ status: "STARTING", logs: [] });
74
- const job = await runner.launchAction(action, this.getJobInfo(action));
75
- assert.strictEqual(spawn.calledOnce, true);
76
- assert.strictEqual(job.pid, 666);
77
- await action.refresh();
78
- assert.strictEqual(action.status, "RUNNING");
79
- assert.deepStrictEqual(action.logs, []);
80
- child.stdout.emit("data", "stdout output");
81
- child.stderr.emit("data", "stderr output");
82
- await new Promise(resolve => nextTick(resolve));
83
- await this.sleep(1000);
84
- await action.refresh();
85
- assert.strictEqual(action.status, "RUNNING");
86
- assert.deepStrictEqual(action.logs, ["stdout output", "stderr output"]);
87
- child.emit("exit", 1);
88
- await new Promise(resolve => nextTick(resolve));
89
- await action.refresh();
90
- assert.strictEqual(action.status, "ERROR");
91
- child.emit("exit", 0);
92
- await new Promise(resolve => nextTick(resolve));
93
- await action.refresh();
94
- assert.strictEqual(action.status, "SUCCESS");
95
- }
96
- finally {
97
- spawn.restore();
98
- }
99
- }
100
- };
101
- __decorate([
102
- test
103
- ], LocalRunnerTest.prototype, "cov", null);
104
- __decorate([
105
- test
106
- ], LocalRunnerTest.prototype, "launchAction", null);
107
- __decorate([
108
- test
109
- ], LocalRunnerTest.prototype, "launchActionAutoStatus", null);
110
- LocalRunnerTest = __decorate([
111
- suite
112
- ], LocalRunnerTest);
113
- //# sourceMappingURL=localrunner.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localrunner.spec.js","sourceRoot":"","sources":["../../src/services/localrunner.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,GAAG;CAIxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,MAAM,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAC5F;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB;IAG9C;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,SAAS;IAShC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CACxE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB,MAAM,OAAO,gBAAiB,SAAQ,iBAAiB;IAOrD,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;IACtB,CAAC;CACF;AAoBD;;GAEG;AACH,MAAM,OAAgB,MAAsD,SAAQ,OAAU;IAC5F;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO;YACL,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;YACrB,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;YACrB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;SAChB,CAAC;IACJ,CAAC;CAMF"}
@@ -1,68 +0,0 @@
1
- import { MemoryLogger, WorkerLogLevel, WorkerMessage, WorkerOutput } from "@webda/workout";
2
- import { AsyncAction } from "../models.js";
3
- import { JobInfo } from "./asyncjobservice.js";
4
- import { AgentInfo, Runner, RunnerParameters } from "./runner.js";
5
- /**
6
- * Type of action returned by LocalRunner
7
- */
8
- export interface ServiceAction {
9
- /**
10
- * Info on the server running it
11
- */
12
- agent: AgentInfo;
13
- /**
14
- * Promise of the implementation
15
- *
16
- * Useful for unit test
17
- */
18
- promise: Promise<void>;
19
- }
20
- /**
21
- * Keep log in memory and save it to the action object every 5s
22
- */
23
- export declare class ActionMemoryLogger extends MemoryLogger {
24
- protected action: AsyncAction;
25
- logSaveDelay: number;
26
- format?: string;
27
- protected timeout: NodeJS.Timeout;
28
- constructor(output: WorkerOutput, level: WorkerLogLevel, limit: number, action: AsyncAction, logSaveDelay: number, format?: string);
29
- onMessage(msg: WorkerMessage): void;
30
- save(): Promise<void>;
31
- saveAndClose(): Promise<void>;
32
- }
33
- /**
34
- * Add the log format to capture
35
- */
36
- export declare class ServiceRunnerParameters extends RunnerParameters {
37
- /**
38
- * Define the log format
39
- *
40
- * @default ConsoleLoggerDefaultFormat
41
- */
42
- logFormat?: string;
43
- /**
44
- * How long before saving logs (in ms)
45
- *
46
- * @default 5000
47
- */
48
- logSaveDelay?: number;
49
- constructor(params: any);
50
- }
51
- /**
52
- * Run a Job locally on the server by spawning a child process
53
- *
54
- * @WebdaModda
55
- */
56
- export default class ServiceRunner<T extends ServiceRunnerParameters = ServiceRunnerParameters> extends Runner<T> {
57
- /**
58
- * Load parameters
59
- * @param params
60
- * @returns
61
- */
62
- loadParameters(params: any): ServiceRunnerParameters;
63
- /**
64
- * @inheritdoc
65
- */
66
- launchAction(action: AsyncAction, info: JobInfo): Promise<ServiceAction>;
67
- }
68
- //# sourceMappingURL=servicerunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"servicerunner.d.ts","sourceRoot":"","sources":["../../src/services/servicerunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,WAAW,EAA0C,MAAM,WAAW,CAAC;AAChF,OAAwB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAOhD,SAAS,CAAC,MAAM,EAAE,WAAW;IACtB,YAAY,EAAE,MAAM;IACpB,MAAM,CAAC,EAAE,MAAM;IARxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBAGhC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACH,MAAM,EAAE,WAAW,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM;IAKxB,SAAS,CAAC,GAAG,EAAE,aAAa;IAO5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQf,YAAY;CAInB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,MAAM,EAAE,GAAG;CAIxB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC/G;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG;IAG1B;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CAiD/E"}
@@ -1,97 +0,0 @@
1
- import { ConsoleLogger, MemoryLogger } from "@webda/workout";
2
- import { AsyncOperationAction, AsyncWebdaAction } from "../models.js";
3
- import { Runner, RunnerParameters } from "./runner.js";
4
- /**
5
- * Keep log in memory and save it to the action object every 5s
6
- */
7
- export class ActionMemoryLogger extends MemoryLogger {
8
- constructor(output, level, limit, action, logSaveDelay, format) {
9
- super(output, level, limit);
10
- this.action = action;
11
- this.logSaveDelay = logSaveDelay;
12
- this.format = format;
13
- }
14
- onMessage(msg) {
15
- super.onMessage(msg);
16
- if (!this.timeout) {
17
- this.timeout = setTimeout(() => this.save(), this.logSaveDelay);
18
- }
19
- }
20
- save() {
21
- if (this.timeout) {
22
- clearTimeout(this.timeout);
23
- this.timeout = undefined;
24
- }
25
- return this.action.patch({ logs: this.getLogs().map(msg => ConsoleLogger.format(msg, this.format)) }, null);
26
- }
27
- async saveAndClose() {
28
- this.close();
29
- return this.save();
30
- }
31
- }
32
- /**
33
- * Add the log format to capture
34
- */
35
- export class ServiceRunnerParameters extends RunnerParameters {
36
- constructor(params) {
37
- super(params);
38
- this.logSaveDelay ?? (this.logSaveDelay = 5000);
39
- }
40
- }
41
- /**
42
- * Run a Job locally on the server by spawning a child process
43
- *
44
- * @WebdaModda
45
- */
46
- export default class ServiceRunner extends Runner {
47
- /**
48
- * Load parameters
49
- * @param params
50
- * @returns
51
- */
52
- loadParameters(params) {
53
- return new ServiceRunnerParameters(params);
54
- }
55
- /**
56
- * @inheritdoc
57
- */
58
- async launchAction(action, info) {
59
- if (!(action instanceof AsyncWebdaAction || action instanceof AsyncOperationAction)) {
60
- this.log("ERROR", "Can only handle AsyncWebdaAction or AsyncOperationAction got", action.constructor.name);
61
- throw new Error("Can only handle AsyncWebdaAction or AsyncOperationAction got " + action.constructor.name);
62
- }
63
- // Launch within current process
64
- const promise = (async (action) => {
65
- let logger;
66
- try {
67
- await action.patch({ status: "RUNNING" });
68
- this.log("INFO", "Job", action.getUuid(), "started");
69
- // Inject a MemoryLogger to capture and report any logs
70
- logger = new ActionMemoryLogger(this.getWebda().getWorkerOutput(), action.logLevel, this.getService(info.JOB_ORCHESTRATOR)?.getParameters().logsLimit || 5000, action, this.parameters.logSaveDelay, this.parameters.logFormat);
71
- if (action instanceof AsyncWebdaAction) {
72
- await this.getService(action.serviceName)[action.method](...(action.arguments || []));
73
- }
74
- else {
75
- await this.getWebda().callOperation(action.context, action.operationId);
76
- }
77
- await logger.saveAndClose();
78
- await action.patch({ status: "SUCCESS" }, null);
79
- this.log("INFO", "Job", action.getUuid(), "finished");
80
- }
81
- catch (err) {
82
- await logger?.saveAndClose();
83
- await action.patch({
84
- status: "ERROR",
85
- errorMessage: err.message,
86
- errorName: err.name
87
- }, null);
88
- this.log("ERROR", "Job", action.getUuid(), "errored", err);
89
- }
90
- })(action);
91
- return {
92
- agent: Runner.getAgentInfo(),
93
- promise
94
- };
95
- }
96
- }
97
- //# sourceMappingURL=servicerunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"servicerunner.js","sourceRoot":"","sources":["../../src/services/servicerunner.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=servicerunner.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"servicerunner.spec.d.ts","sourceRoot":"","sources":["../../src/services/servicerunner.spec.ts"],"names":[],"mappings":""}
@@ -1,111 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { suite, test } from "@testdeck/mocha";
8
- import { CoreModel, Operation, OperationContext, SimpleOperationContext } from "@webda/core";
9
- import { WebdaTest } from "@webda/core/lib/test.js";
10
- import assert from "assert";
11
- import { AsyncOperationAction, AsyncWebdaAction } from "../models.js";
12
- import { Runner } from "./runner.js";
13
- import ServiceRunner from "./servicerunner.js";
14
- class FakeRunner extends Runner {
15
- launchAction(action) {
16
- throw new Error("Method not implemented.");
17
- }
18
- test(arg) {
19
- this.log("INFO", "FakeRunner test", arg);
20
- if (arg === 666) {
21
- throw new Error("Error");
22
- }
23
- }
24
- operation(ctx) {
25
- this.log("INFO", "Logging test");
26
- }
27
- }
28
- __decorate([
29
- Operation()
30
- ], FakeRunner.prototype, "operation", null);
31
- let ServiceRunnerTest = class ServiceRunnerTest extends WebdaTest {
32
- async operationAction() {
33
- this.registerService(new FakeRunner(this.webda, "calledRunner"));
34
- this.webda.initStatics();
35
- const runner = new ServiceRunner(this.webda, "runner", { actions: ["plop"] });
36
- const ctx = new OperationContext(this.webda);
37
- const action = new AsyncOperationAction("calledRunner.testOp", ctx);
38
- await this.getService("AsyncJobs").save(action);
39
- await runner.launchAction(action, {
40
- JOB_HOOK: "",
41
- JOB_ID: action.getUuid(),
42
- JOB_ORCHESTRATOR: "test",
43
- JOB_SECRET_KEY: ""
44
- });
45
- }
46
- async cov() {
47
- this.registerService(new FakeRunner(this.webda, "calledRunner"));
48
- const runner = new ServiceRunner(this.webda, "runner", { actions: ["plop"] });
49
- const action = new AsyncWebdaAction();
50
- action.serviceName = "calledRunner";
51
- action.method = "test";
52
- await this.getService("AsyncJobs").save(action);
53
- let serviceAction = await runner.launchAction(action, {
54
- JOB_HOOK: "",
55
- JOB_ID: action.getUuid(),
56
- JOB_ORCHESTRATOR: "test",
57
- JOB_SECRET_KEY: ""
58
- });
59
- await serviceAction.promise;
60
- await action.refresh();
61
- assert.strictEqual(action.logs?.length, 1);
62
- assert.ok(action.logs[0].endsWith(" [ INFO] [calledRunner] FakeRunner test undefined"));
63
- const action2 = new AsyncWebdaAction();
64
- action2.serviceName = "calledRunner";
65
- action2.method = "test";
66
- action2.arguments = [666];
67
- await this.getService("AsyncJobs").save(action2);
68
- serviceAction = await runner.launchAction(action2, {
69
- JOB_HOOK: "",
70
- JOB_ID: action2.getUuid(),
71
- JOB_ORCHESTRATOR: "test",
72
- JOB_SECRET_KEY: ""
73
- });
74
- await serviceAction.promise;
75
- await action2.refresh();
76
- assert.strictEqual(action2.status, "ERROR");
77
- assert.strictEqual(action2.logs?.length, 1);
78
- assert.ok(action2.logs[0].endsWith(" [ INFO] [calledRunner] FakeRunner test 666"));
79
- action.type = "plop";
80
- await assert.rejects(() => runner.launchAction(new CoreModel(), {
81
- JOB_HOOK: "",
82
- JOB_ID: action2.getUuid(),
83
- JOB_ORCHESTRATOR: "test",
84
- JOB_SECRET_KEY: ""
85
- }), /Can only handle AsyncWebdaAction or AsyncOperationAction got CoreModel/);
86
- const opAction = new AsyncOperationAction("CalledRunner.Operation", new SimpleOperationContext(this.webda).setInput(Buffer.from("{}")));
87
- this.webda.initStatics();
88
- await this.getService("AsyncJobs").save(opAction);
89
- serviceAction = await runner.launchAction(opAction, {
90
- JOB_HOOK: "",
91
- JOB_ID: opAction.getUuid(),
92
- JOB_ORCHESTRATOR: "test",
93
- JOB_SECRET_KEY: ""
94
- });
95
- await serviceAction.promise;
96
- await opAction.refresh();
97
- assert.strictEqual(opAction.status, "SUCCESS");
98
- assert.strictEqual(opAction.logs?.length, 1);
99
- assert.ok(opAction.logs[0].endsWith(" [ INFO] [calledRunner] Logging test"));
100
- }
101
- };
102
- __decorate([
103
- test
104
- ], ServiceRunnerTest.prototype, "operationAction", null);
105
- __decorate([
106
- test
107
- ], ServiceRunnerTest.prototype, "cov", null);
108
- ServiceRunnerTest = __decorate([
109
- suite
110
- ], ServiceRunnerTest);
111
- //# sourceMappingURL=servicerunner.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"servicerunner.spec.js","sourceRoot":"","sources":["../../src/services/servicerunner.spec.ts"],"names":[],"mappings":"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"}