@docker-digital/dockernet-agent 0.1.3 → 0.1.6
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/dist/{agent → apps/agent/src/agent}/agent.module.js +21 -4
- package/dist/apps/agent/src/agent/agent.module.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/commands/agent.command.d.ts +3 -3
- package/dist/{agent → apps/agent/src/agent}/commands/agent.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/agent.command.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/commands/apikey.command.d.ts +3 -3
- package/dist/{agent → apps/agent/src/agent}/commands/apikey.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/apikey.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/config.command.d.ts +7 -0
- package/dist/{agent → apps/agent/src/agent}/commands/config.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/config.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/log.command.d.ts +7 -0
- package/dist/{agent → apps/agent/src/agent}/commands/log.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/log.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/profiles.command.d.ts +7 -0
- package/dist/{agent → apps/agent/src/agent}/commands/profiles.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/profiles.command.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/commands/restart.command.d.ts +1 -1
- package/dist/{agent → apps/agent/src/agent}/commands/restart.command.js +1 -2
- package/dist/apps/agent/src/agent/commands/restart.command.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/commands/run.command.d.ts +14 -7
- package/dist/apps/agent/src/agent/commands/run.command.js +534 -0
- package/dist/apps/agent/src/agent/commands/run.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/service.command.d.ts +14 -0
- package/dist/apps/agent/src/agent/commands/service.command.js +132 -0
- package/dist/apps/agent/src/agent/commands/service.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/stop.command.d.ts +7 -0
- package/dist/{agent → apps/agent/src/agent}/commands/stop.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/stop.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/upgrade.command.d.ts +7 -0
- package/dist/{agent → apps/agent/src/agent}/commands/upgrade.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/upgrade.command.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/commands/version.command.d.ts +1 -1
- package/dist/{agent → apps/agent/src/agent}/commands/version.command.js +1 -1
- package/dist/apps/agent/src/agent/commands/version.command.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/api.service.d.ts +4 -2
- package/dist/{agent → apps/agent/src/agent}/services/api.service.js +124 -24
- package/dist/apps/agent/src/agent/services/api.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/config.service.d.ts +4 -3
- package/dist/{agent → apps/agent/src/agent}/services/config.service.js +11 -8
- package/dist/apps/agent/src/agent/services/config.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/docker-event.service.js +17 -2
- package/dist/apps/agent/src/agent/services/docker-event.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/docker.service.d.ts +6 -2
- package/dist/{agent → apps/agent/src/agent}/services/docker.service.js +122 -7
- package/dist/apps/agent/src/agent/services/docker.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/event-websocket-client.service.d.ts +14 -2
- package/dist/apps/agent/src/agent/services/event-websocket-client.service.js +680 -0
- package/dist/apps/agent/src/agent/services/event-websocket-client.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/event.service.d.ts +3 -2
- package/dist/apps/agent/src/agent/services/event.service.js +500 -0
- package/dist/apps/agent/src/agent/services/event.service.js.map +1 -0
- package/dist/apps/agent/src/agent/services/index.d.ts +14 -0
- package/dist/apps/agent/src/agent/services/index.js +31 -0
- package/dist/apps/agent/src/agent/services/index.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/log.service.d.ts +11 -4
- package/dist/{agent → apps/agent/src/agent}/services/log.service.js +41 -11
- package/dist/apps/agent/src/agent/services/log.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/machine.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/machine.service.js +356 -0
- package/dist/apps/agent/src/agent/services/machine.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/nebula.service.d.ts +2 -2
- package/dist/{agent → apps/agent/src/agent}/services/nebula.service.js +144 -21
- package/dist/apps/agent/src/agent/services/nebula.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/profile.service.d.ts +11 -2
- package/dist/apps/agent/src/agent/services/profile.service.js +1300 -0
- package/dist/apps/agent/src/agent/services/profile.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/terminal.service.d.ts +2 -2
- package/dist/{agent → apps/agent/src/agent}/services/terminal.service.js +107 -12
- package/dist/apps/agent/src/agent/services/terminal.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/volume-backup.service.d.ts +2 -2
- package/dist/{agent → apps/agent/src/agent}/services/volume-backup.service.js +27 -4
- package/dist/apps/agent/src/agent/services/volume-backup.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/volume-sync.service.d.ts +2 -2
- package/dist/{agent → apps/agent/src/agent}/services/volume-sync.service.js +19 -1
- package/dist/apps/agent/src/agent/services/volume-sync.service.js.map +1 -0
- package/dist/{agent → apps/agent/src/agent}/services/websocket-client.service.d.ts +11 -3
- package/dist/{agent → apps/agent/src/agent}/services/websocket-client.service.js +33 -12
- package/dist/apps/agent/src/agent/services/websocket-client.service.js.map +1 -0
- package/dist/apps/agent/src/api/agent-control.controller.d.ts +43 -0
- package/dist/apps/agent/src/api/agent-control.controller.js +123 -0
- package/dist/apps/agent/src/api/agent-control.controller.js.map +1 -0
- package/dist/apps/agent/src/api/api.module.d.ts +2 -0
- package/dist/apps/agent/src/api/api.module.js +62 -0
- package/dist/apps/agent/src/api/api.module.js.map +1 -0
- package/dist/apps/agent/src/api/health.controller.d.ts +9 -0
- package/dist/apps/agent/src/api/health.controller.js +36 -0
- package/dist/apps/agent/src/api/health.controller.js.map +1 -0
- package/dist/apps/agent/src/api/logs.controller.d.ts +11 -0
- package/dist/apps/agent/src/api/logs.controller.js +50 -0
- package/dist/apps/agent/src/api/logs.controller.js.map +1 -0
- package/dist/apps/agent/src/api/machine.controller.d.ts +21 -0
- package/dist/apps/agent/src/api/machine.controller.js +48 -0
- package/dist/apps/agent/src/api/machine.controller.js.map +1 -0
- package/dist/apps/agent/src/api/metrics.controller.d.ts +17 -0
- package/dist/apps/agent/src/api/metrics.controller.js +48 -0
- package/dist/apps/agent/src/api/metrics.controller.js.map +1 -0
- package/dist/apps/agent/src/api/network.controller.d.ts +15 -0
- package/dist/apps/agent/src/api/network.controller.js +50 -0
- package/dist/apps/agent/src/api/network.controller.js.map +1 -0
- package/dist/apps/agent/src/api/profiles.controller.d.ts +16 -0
- package/dist/apps/agent/src/api/profiles.controller.js +71 -0
- package/dist/apps/agent/src/api/profiles.controller.js.map +1 -0
- package/dist/apps/agent/src/api/services.controller.d.ts +10 -0
- package/dist/apps/agent/src/api/services.controller.js +77 -0
- package/dist/apps/agent/src/api/services.controller.js.map +1 -0
- package/dist/apps/agent/src/api/status.controller.d.ts +53 -0
- package/dist/apps/agent/src/api/status.controller.js +157 -0
- package/dist/apps/agent/src/api/status.controller.js.map +1 -0
- package/dist/{app.module.js → apps/agent/src/app.module.js} +4 -0
- package/dist/apps/agent/src/app.module.js.map +1 -0
- package/dist/apps/agent/src/common/logging/correlation-id.middleware.d.ts +15 -0
- package/dist/apps/agent/src/common/logging/correlation-id.middleware.js +36 -0
- package/dist/apps/agent/src/common/logging/correlation-id.middleware.js.map +1 -0
- package/dist/apps/agent/src/common/logging/correlation-id.storage.d.ts +9 -0
- package/dist/apps/agent/src/common/logging/correlation-id.storage.js +35 -0
- package/dist/apps/agent/src/common/logging/correlation-id.storage.js.map +1 -0
- package/dist/apps/agent/src/common/logging/index.d.ts +4 -0
- package/dist/apps/agent/src/common/logging/index.js +12 -0
- package/dist/apps/agent/src/common/logging/index.js.map +1 -0
- package/dist/apps/agent/src/common/logging/logging.module.d.ts +4 -0
- package/dist/apps/agent/src/common/logging/logging.module.js +27 -0
- package/dist/apps/agent/src/common/logging/logging.module.js.map +1 -0
- package/dist/apps/agent/src/common/logging/structured-logger.service.d.ts +28 -0
- package/dist/apps/agent/src/common/logging/structured-logger.service.js +96 -0
- package/dist/apps/agent/src/common/logging/structured-logger.service.js.map +1 -0
- package/dist/apps/agent/src/index.js.map +1 -0
- package/dist/apps/agent/src/main.js +14 -0
- package/dist/apps/agent/src/main.js.map +1 -0
- package/dist/shared/common/utils/cli-logger.util.d.ts +59 -0
- package/dist/shared/common/utils/cli-logger.util.js +233 -0
- package/dist/shared/common/utils/cli-logger.util.js.map +1 -0
- package/dist/shared/common/utils/constant.d.ts +22 -0
- package/dist/shared/common/utils/constant.js +26 -0
- package/dist/shared/common/utils/constant.js.map +1 -0
- package/dist/shared/common/utils/index.d.ts +3 -0
- package/dist/shared/common/utils/index.js +20 -0
- package/dist/shared/common/utils/index.js.map +1 -0
- package/dist/shared/common/utils/request.util.d.ts +2 -0
- package/dist/shared/common/utils/request.util.js +36 -0
- package/dist/shared/common/utils/request.util.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -6
- package/dist/agent/agent.module.js.map +0 -1
- package/dist/agent/commands/agent.command.js.map +0 -1
- package/dist/agent/commands/apikey.command.js.map +0 -1
- package/dist/agent/commands/config.command.d.ts +0 -7
- package/dist/agent/commands/config.command.js.map +0 -1
- package/dist/agent/commands/log.command.d.ts +0 -7
- package/dist/agent/commands/log.command.js.map +0 -1
- package/dist/agent/commands/profiles.command.d.ts +0 -7
- package/dist/agent/commands/profiles.command.js.map +0 -1
- package/dist/agent/commands/restart.command.js.map +0 -1
- package/dist/agent/commands/run.command.js +0 -252
- package/dist/agent/commands/run.command.js.map +0 -1
- package/dist/agent/commands/stop.command.d.ts +0 -7
- package/dist/agent/commands/stop.command.js.map +0 -1
- package/dist/agent/commands/upgrade.command.d.ts +0 -7
- package/dist/agent/commands/upgrade.command.js.map +0 -1
- package/dist/agent/commands/version.command.js.map +0 -1
- package/dist/agent/services/api.service.js.map +0 -1
- package/dist/agent/services/config.service.js.map +0 -1
- package/dist/agent/services/docker-event.service.js.map +0 -1
- package/dist/agent/services/docker.service.js.map +0 -1
- package/dist/agent/services/event-websocket-client.service.js +0 -248
- package/dist/agent/services/event-websocket-client.service.js.map +0 -1
- package/dist/agent/services/event.service.js +0 -255
- package/dist/agent/services/event.service.js.map +0 -1
- package/dist/agent/services/log.service.js.map +0 -1
- package/dist/agent/services/machine.service.js +0 -195
- package/dist/agent/services/machine.service.js.map +0 -1
- package/dist/agent/services/nebula.service.js.map +0 -1
- package/dist/agent/services/profile.service.js +0 -541
- package/dist/agent/services/profile.service.js.map +0 -1
- package/dist/agent/services/terminal.service.js.map +0 -1
- package/dist/agent/services/volume-backup.service.js.map +0 -1
- package/dist/agent/services/volume-sync.service.js.map +0 -1
- package/dist/agent/services/websocket-client.service.js.map +0 -1
- package/dist/app.module.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/main.js +0 -51
- package/dist/main.js.map +0 -1
- /package/dist/{agent → apps/agent/src/agent}/agent.module.d.ts +0 -0
- /package/dist/{agent → apps/agent/src/agent}/services/docker-event.service.d.ts +0 -0
- /package/dist/{app.module.d.ts → apps/agent/src/app.module.d.ts} +0 -0
- /package/dist/{index.d.ts → apps/agent/src/index.d.ts} +0 -0
- /package/dist/{index.js → apps/agent/src/index.js} +0 -0
- /package/dist/{main.d.ts → apps/agent/src/main.d.ts} +0 -0
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var EventWebSocketClientService_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.EventWebSocketClientService = void 0;
|
|
14
|
-
const common_1 = require("@nestjs/common");
|
|
15
|
-
const socket_io_client_1 = require("socket.io-client");
|
|
16
|
-
const config_service_1 = require("./config.service");
|
|
17
|
-
let EventWebSocketClientService = EventWebSocketClientService_1 = class EventWebSocketClientService {
|
|
18
|
-
constructor(configService) {
|
|
19
|
-
this.configService = configService;
|
|
20
|
-
this.logger = new common_1.Logger(EventWebSocketClientService_1.name);
|
|
21
|
-
this.socket = null;
|
|
22
|
-
this.isConnected = false;
|
|
23
|
-
this.reconnectAttempts = 0;
|
|
24
|
-
this.maxReconnectAttempts = 10;
|
|
25
|
-
this.baseReconnectDelay = 1000;
|
|
26
|
-
this.maxReconnectDelay = 30000;
|
|
27
|
-
this.eventHandlers = [];
|
|
28
|
-
this.connectionPromise = null;
|
|
29
|
-
this.pendingConnectionPromise = null;
|
|
30
|
-
this.currentMachineId = null;
|
|
31
|
-
this.isSubscribed = false;
|
|
32
|
-
}
|
|
33
|
-
async onModuleInit() {
|
|
34
|
-
}
|
|
35
|
-
async connect(machineId) {
|
|
36
|
-
this.currentMachineId = machineId;
|
|
37
|
-
if (this.isConnected && this.socket?.connected) {
|
|
38
|
-
this.logger.debug('Event WebSocket already connected');
|
|
39
|
-
this.subscribeToEvents(machineId);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
if (this.pendingConnectionPromise) {
|
|
43
|
-
this.logger.debug('Connection attempt already in progress, waiting...');
|
|
44
|
-
return this.pendingConnectionPromise;
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
const wsUrl = await this.getWebSocketUrl();
|
|
48
|
-
const apiKey = await this.configService.getApiKey();
|
|
49
|
-
this.logger.log(`Connecting to Event WebSocket server: ${wsUrl}`);
|
|
50
|
-
this.pendingConnectionPromise = new Promise((resolve, reject) => {
|
|
51
|
-
const connectionTimeout = setTimeout(() => {
|
|
52
|
-
if (!this.isConnected && this.connectionPromise) {
|
|
53
|
-
this.logger.warn('Event WebSocket connection timeout');
|
|
54
|
-
this.connectionPromise = null;
|
|
55
|
-
this.pendingConnectionPromise = null;
|
|
56
|
-
reject(new Error('Connection timeout'));
|
|
57
|
-
}
|
|
58
|
-
}, 10000);
|
|
59
|
-
this.connectionPromise = {
|
|
60
|
-
resolve,
|
|
61
|
-
reject,
|
|
62
|
-
timeout: connectionTimeout,
|
|
63
|
-
};
|
|
64
|
-
if (this.socket) {
|
|
65
|
-
if (this.socket.connected) {
|
|
66
|
-
this.logger.debug('Socket already connected, reusing existing connection');
|
|
67
|
-
this.setupSocketHandlers(machineId);
|
|
68
|
-
clearTimeout(connectionTimeout);
|
|
69
|
-
this.connectionPromise.resolve();
|
|
70
|
-
this.connectionPromise = null;
|
|
71
|
-
this.pendingConnectionPromise = null;
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.logger.debug('Cleaning up disconnected socket before reconnecting...');
|
|
76
|
-
this.socket.removeAllListeners();
|
|
77
|
-
this.socket.disconnect();
|
|
78
|
-
}
|
|
79
|
-
this.socket = null;
|
|
80
|
-
}
|
|
81
|
-
this.socket = (0, socket_io_client_1.io)(`${wsUrl}/v1/api/agent/ws/agent-events`, {
|
|
82
|
-
auth: {
|
|
83
|
-
api_key: apiKey,
|
|
84
|
-
},
|
|
85
|
-
reconnection: true,
|
|
86
|
-
reconnectionDelay: this.baseReconnectDelay,
|
|
87
|
-
reconnectionDelayMax: this.maxReconnectDelay,
|
|
88
|
-
reconnectionAttempts: this.maxReconnectAttempts,
|
|
89
|
-
timeout: 10000,
|
|
90
|
-
transports: ['websocket', 'polling'],
|
|
91
|
-
path: '/socket.io/',
|
|
92
|
-
});
|
|
93
|
-
this.setupSocketHandlers(machineId);
|
|
94
|
-
});
|
|
95
|
-
return this.pendingConnectionPromise;
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
this.connectionPromise = null;
|
|
99
|
-
this.pendingConnectionPromise = null;
|
|
100
|
-
this.logger.error(`Failed to connect to Event WebSocket server: ${error.message}`);
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
setupSocketHandlers(machineId) {
|
|
105
|
-
if (!this.socket) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
this.socket.on('connect', () => {
|
|
109
|
-
this.isConnected = true;
|
|
110
|
-
this.reconnectAttempts = 0;
|
|
111
|
-
this.logger.log(`Event WebSocket connected (socket ID: ${this.socket?.id})`);
|
|
112
|
-
if (this.connectionPromise) {
|
|
113
|
-
clearTimeout(this.connectionPromise.timeout);
|
|
114
|
-
this.connectionPromise.resolve();
|
|
115
|
-
this.connectionPromise = null;
|
|
116
|
-
this.pendingConnectionPromise = null;
|
|
117
|
-
}
|
|
118
|
-
this.subscribeToEvents(machineId);
|
|
119
|
-
});
|
|
120
|
-
this.socket.on('connect_error', (error) => {
|
|
121
|
-
this.logger.error(`Event WebSocket connection error: ${error.message}`);
|
|
122
|
-
this.isConnected = false;
|
|
123
|
-
if (this.connectionPromise) {
|
|
124
|
-
clearTimeout(this.connectionPromise.timeout);
|
|
125
|
-
this.connectionPromise.reject(new Error(error.message || 'Connection failed'));
|
|
126
|
-
this.connectionPromise = null;
|
|
127
|
-
this.pendingConnectionPromise = null;
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
this.socket.on('disconnect', (reason) => {
|
|
131
|
-
if (reason === 'io client disconnect') {
|
|
132
|
-
this.logger.debug(`Event WebSocket disconnected: ${reason}`);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.logger.warn(`Event WebSocket disconnected: ${reason}`);
|
|
136
|
-
}
|
|
137
|
-
this.isConnected = false;
|
|
138
|
-
this.isSubscribed = false;
|
|
139
|
-
});
|
|
140
|
-
this.socket.on('error', (error) => {
|
|
141
|
-
this.logger.error(`Event WebSocket error: ${error.message}`);
|
|
142
|
-
});
|
|
143
|
-
this.socket.on('reconnect_attempt', (attemptNumber) => {
|
|
144
|
-
this.reconnectAttempts = attemptNumber;
|
|
145
|
-
this.logger.debug(`Event WebSocket reconnection attempt ${attemptNumber}`);
|
|
146
|
-
});
|
|
147
|
-
this.socket.on('reconnect', (attemptNumber) => {
|
|
148
|
-
this.logger.log(`Event WebSocket reconnected after ${attemptNumber} attempts`);
|
|
149
|
-
if (this.currentMachineId) {
|
|
150
|
-
this.subscribeToEvents(this.currentMachineId);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
this.socket.on('reconnect_failed', () => {
|
|
154
|
-
this.logger.error('Event WebSocket reconnection failed');
|
|
155
|
-
this.isConnected = false;
|
|
156
|
-
});
|
|
157
|
-
this.socket.on('event_update', (data) => {
|
|
158
|
-
this.logger.log(`Received event update: ${data.event?.type || 'unknown'} for machine ${data.machine_id || 'unknown'}`);
|
|
159
|
-
this.logger.debug(`Event details: ${JSON.stringify(data)}`);
|
|
160
|
-
if (data.event) {
|
|
161
|
-
if (data.machine_id && data.machine_id !== machineId) {
|
|
162
|
-
this.logger.warn(`Event machine_id (${data.machine_id}) does not match subscribed machine_id (${machineId})`);
|
|
163
|
-
}
|
|
164
|
-
this.eventHandlers.forEach((handler) => {
|
|
165
|
-
try {
|
|
166
|
-
handler(data.event);
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
this.logger.error(`Error in event handler: ${error.message}`);
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
this.socket.on('subscribed', (data) => {
|
|
175
|
-
this.isSubscribed = true;
|
|
176
|
-
this.logger.log(`Successfully subscribed to events for machine: ${data.machine_id || 'unknown'}`);
|
|
177
|
-
this.logger.debug(`Subscription confirmation: ${JSON.stringify(data)}`);
|
|
178
|
-
});
|
|
179
|
-
this.socket.on('connected', (data) => {
|
|
180
|
-
this.logger.debug(`Event WebSocket connected: ${JSON.stringify(data)}`);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
subscribeToEvents(machineId) {
|
|
184
|
-
if (!this.socket || !this.socket.connected) {
|
|
185
|
-
this.logger.warn('Cannot subscribe to events: socket not connected');
|
|
186
|
-
this.isSubscribed = false;
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
this.logger.log(`Subscribing to events for machine: ${machineId}`);
|
|
190
|
-
this.isSubscribed = false;
|
|
191
|
-
this.socket.emit('subscribe_events', {
|
|
192
|
-
type: 'subscribe_events',
|
|
193
|
-
machine_id: machineId,
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
onEvent(handler) {
|
|
197
|
-
this.eventHandlers.push(handler);
|
|
198
|
-
this.logger.debug(`Registered event handler (total: ${this.eventHandlers.length})`);
|
|
199
|
-
}
|
|
200
|
-
removeEventHandler(handler) {
|
|
201
|
-
const index = this.eventHandlers.indexOf(handler);
|
|
202
|
-
if (index > -1) {
|
|
203
|
-
this.eventHandlers.splice(index, 1);
|
|
204
|
-
this.logger.debug(`Removed event handler (total: ${this.eventHandlers.length})`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
clearEventHandlers() {
|
|
208
|
-
this.eventHandlers = [];
|
|
209
|
-
this.logger.debug('Cleared all event handlers');
|
|
210
|
-
}
|
|
211
|
-
async getWebSocketUrl() {
|
|
212
|
-
const serverUrl = this.configService.serverUrl;
|
|
213
|
-
let wsUrl = serverUrl.replace(/^http/, 'ws');
|
|
214
|
-
wsUrl = wsUrl.replace(/\/$/, '');
|
|
215
|
-
return wsUrl;
|
|
216
|
-
}
|
|
217
|
-
disconnect() {
|
|
218
|
-
if (this.socket && (this.socket.connected || this.isConnected)) {
|
|
219
|
-
this.logger.log('Disconnecting Event WebSocket...');
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
this.logger.debug('Disconnect called but no active connection');
|
|
223
|
-
}
|
|
224
|
-
this.isConnected = false;
|
|
225
|
-
if (this.socket) {
|
|
226
|
-
this.socket.disconnect();
|
|
227
|
-
this.socket = null;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
onModuleDestroy() {
|
|
231
|
-
this.logger.debug('onModuleDestroy called - keeping Event WebSocket connection alive for daemon mode');
|
|
232
|
-
}
|
|
233
|
-
isWebSocketConnected() {
|
|
234
|
-
return this.isConnected && this.socket?.connected === true;
|
|
235
|
-
}
|
|
236
|
-
isSubscribedToEvents() {
|
|
237
|
-
return (this.isSubscribed && this.isConnected && this.socket?.connected === true);
|
|
238
|
-
}
|
|
239
|
-
getCurrentMachineId() {
|
|
240
|
-
return this.currentMachineId;
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
exports.EventWebSocketClientService = EventWebSocketClientService;
|
|
244
|
-
exports.EventWebSocketClientService = EventWebSocketClientService = EventWebSocketClientService_1 = __decorate([
|
|
245
|
-
(0, common_1.Injectable)(),
|
|
246
|
-
__metadata("design:paramtypes", [config_service_1.ConfigService])
|
|
247
|
-
], EventWebSocketClientService);
|
|
248
|
-
//# sourceMappingURL=event-websocket-client.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-websocket-client.service.js","sourceRoot":"","sources":["../../../src/agent/services/event-websocket-client.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var EventService_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.EventService = void 0;
|
|
14
|
-
const common_1 = require("@nestjs/common");
|
|
15
|
-
const schedule_1 = require("@nestjs/schedule");
|
|
16
|
-
const api_service_1 = require("./api.service");
|
|
17
|
-
const config_service_1 = require("./config.service");
|
|
18
|
-
const profile_service_1 = require("./profile.service");
|
|
19
|
-
const websocket_client_service_1 = require("./websocket-client.service");
|
|
20
|
-
const event_websocket_client_service_1 = require("./event-websocket-client.service");
|
|
21
|
-
let EventService = EventService_1 = class EventService {
|
|
22
|
-
constructor(apiService, configService, profileService, websocketClientService, eventWebSocketClientService) {
|
|
23
|
-
this.apiService = apiService;
|
|
24
|
-
this.configService = configService;
|
|
25
|
-
this.profileService = profileService;
|
|
26
|
-
this.websocketClientService = websocketClientService;
|
|
27
|
-
this.eventWebSocketClientService = eventWebSocketClientService;
|
|
28
|
-
this.logger = new common_1.Logger(EventService_1.name);
|
|
29
|
-
this.isPolling = false;
|
|
30
|
-
this.useEventDrivenUpdates = false;
|
|
31
|
-
this.isWebSocketListening = false;
|
|
32
|
-
this.statusUpdateCounter = 0;
|
|
33
|
-
this.useEventDrivenUpdates =
|
|
34
|
-
this.websocketClientService.isWebSocketConnected();
|
|
35
|
-
}
|
|
36
|
-
async onModuleInit() {
|
|
37
|
-
this.logger.log('EventService initialized - cron jobs should be active');
|
|
38
|
-
this.logger.log(`updateSavedProfiles cron job registered: @Cron(${schedule_1.CronExpression.EVERY_5_SECONDS})`);
|
|
39
|
-
this.logger.debug(`EventService status: isPolling=${this.isPolling}, useEventDrivenUpdates=${this.useEventDrivenUpdates}`);
|
|
40
|
-
}
|
|
41
|
-
async startPolling() {
|
|
42
|
-
if (this.isPolling) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
this.isPolling = true;
|
|
46
|
-
this.logger.log('Starting event listening...');
|
|
47
|
-
try {
|
|
48
|
-
const machineKey = await this.configService.getMachineKey();
|
|
49
|
-
if (machineKey) {
|
|
50
|
-
await this.startWebSocketListening(machineKey);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.logger.warn('Machine key not found, falling back to polling');
|
|
54
|
-
await this.startPollingFallback();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
this.logger.error(`Error starting WebSocket listening: ${error.message}, falling back to polling`);
|
|
59
|
-
await this.startPollingFallback();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
async startWebSocketListening(machineKey) {
|
|
63
|
-
if (this.isWebSocketListening) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
this.logger.log(`Connecting to event WebSocket for machine: ${machineKey}`);
|
|
67
|
-
try {
|
|
68
|
-
await this.eventWebSocketClientService.connect(machineKey);
|
|
69
|
-
this.eventWebSocketClientService.onEvent((event) => {
|
|
70
|
-
this.handleWebSocketEvent(event);
|
|
71
|
-
});
|
|
72
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
73
|
-
if (this.eventWebSocketClientService.isSubscribedToEvents()) {
|
|
74
|
-
const machineId = this.eventWebSocketClientService.getCurrentMachineId();
|
|
75
|
-
this.logger.log(`Successfully connected and subscribed to event WebSocket for machine: ${machineId}`);
|
|
76
|
-
this.isWebSocketListening = true;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.logger.warn('Connected to event WebSocket but subscription not confirmed yet');
|
|
80
|
-
this.isWebSocketListening = true;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
this.logger.error(`Failed to connect to event WebSocket: ${error.message}`);
|
|
85
|
-
throw error;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async startPollingFallback() {
|
|
89
|
-
this.logger.log('Starting event polling as fallback...');
|
|
90
|
-
while (this.isPolling) {
|
|
91
|
-
try {
|
|
92
|
-
await this.pollEvents();
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
this.logger.error(`Error polling events: ${error.message}`);
|
|
96
|
-
try {
|
|
97
|
-
await this.profileService.updateAllProfilesStatus();
|
|
98
|
-
}
|
|
99
|
-
catch (updateError) {
|
|
100
|
-
this.logger.error(`Error updating profiles after polling error: ${updateError.message}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
const interval = this.configService.pollIntervalSeconds * 1000;
|
|
104
|
-
await this.sleep(interval);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
handleWebSocketEvent(event) {
|
|
108
|
-
this.logger.log(`Received event via WebSocket: ${event.key} (type: ${event.type}, profile: ${event.profile_id})`);
|
|
109
|
-
try {
|
|
110
|
-
if (!event.key || !event.type || !event.profile_id) {
|
|
111
|
-
this.logger.warn('Invalid event (missing key, type, or profile_id)');
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (event.status !== 'scheduled') {
|
|
115
|
-
this.logger.warn(`Skipping event ${event.key} with status=${event.status} (only processing scheduled)`);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
let workspaceId = event.workspace_id;
|
|
119
|
-
if (workspaceId === 'null' ||
|
|
120
|
-
workspaceId === 'undefined' ||
|
|
121
|
-
!workspaceId) {
|
|
122
|
-
workspaceId = '';
|
|
123
|
-
}
|
|
124
|
-
this.handleEvent(event.key, event.type, event.profile_id, workspaceId);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
this.logger.error(`Error handling WebSocket event ${event.key}: ${error.message}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
stopPolling() {
|
|
131
|
-
this.isPolling = false;
|
|
132
|
-
this.logger.log('Stopped event listening');
|
|
133
|
-
if (this.isWebSocketListening) {
|
|
134
|
-
this.eventWebSocketClientService.disconnect();
|
|
135
|
-
this.isWebSocketListening = false;
|
|
136
|
-
this.logger.log('Disconnected from event WebSocket');
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
checkSubscriptionStatus() {
|
|
140
|
-
const isConnected = this.eventWebSocketClientService.isWebSocketConnected();
|
|
141
|
-
const isSubscribed = this.eventWebSocketClientService.isSubscribedToEvents();
|
|
142
|
-
const machineId = this.eventWebSocketClientService.getCurrentMachineId();
|
|
143
|
-
this.logger.log(`Event subscription status: connected=${isConnected}, subscribed=${isSubscribed}, machineId=${machineId || 'none'}`);
|
|
144
|
-
}
|
|
145
|
-
async pollEvents() {
|
|
146
|
-
const response = await this.apiService.callApi('GET', '/events?status=scheduled', undefined, -1, 5000);
|
|
147
|
-
if (!response) {
|
|
148
|
-
this.logger.log('No response from server, checking saved profiles status...');
|
|
149
|
-
try {
|
|
150
|
-
await this.profileService.updateAllProfilesStatus();
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
this.logger.error(`Error updating saved profiles: ${error.message}`);
|
|
154
|
-
}
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
const rows = response.data?.rows || response.rows || [];
|
|
158
|
-
const eventsCount = rows?.length || 0;
|
|
159
|
-
if (eventsCount === 0) {
|
|
160
|
-
this.logger.log('No new events, checking saved profiles status...');
|
|
161
|
-
try {
|
|
162
|
-
await this.profileService.updateAllProfilesStatus();
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
this.logger.error(`Error updating saved profiles: ${error.message}`);
|
|
166
|
-
}
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
this.logger.log(`Received ${eventsCount} event(s) with status=scheduled`);
|
|
170
|
-
for (const event of rows) {
|
|
171
|
-
const eventKey = event.key;
|
|
172
|
-
const eventType = event.type;
|
|
173
|
-
const profileId = event.profile_id;
|
|
174
|
-
let workspaceId = event.workspace_id;
|
|
175
|
-
if (!eventKey || !eventType || !profileId) {
|
|
176
|
-
this.logger.warn('Invalid event (missing key, type, or profile_id)');
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
if (event.status !== 'scheduled') {
|
|
180
|
-
this.logger.warn(`Skipping event ${eventKey} with status=${event.status} (only processing scheduled)`);
|
|
181
|
-
continue;
|
|
182
|
-
}
|
|
183
|
-
if (workspaceId === 'null' ||
|
|
184
|
-
workspaceId === 'undefined' ||
|
|
185
|
-
!workspaceId) {
|
|
186
|
-
workspaceId = '';
|
|
187
|
-
}
|
|
188
|
-
this.logger.log(`Processing event: ${eventKey} (type: ${eventType}, profile_id: ${profileId})`);
|
|
189
|
-
try {
|
|
190
|
-
await this.handleEvent(eventKey, eventType, profileId, workspaceId);
|
|
191
|
-
}
|
|
192
|
-
catch (error) {
|
|
193
|
-
this.logger.error(`Error handling event ${eventKey}: ${error.message}`);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
async handleEvent(eventKey, eventType, profileId, workspaceId) {
|
|
198
|
-
if (eventType === 'start_profile') {
|
|
199
|
-
await this.profileService.startProfile(eventKey, profileId, workspaceId);
|
|
200
|
-
}
|
|
201
|
-
else if (eventType === 'stop_profile') {
|
|
202
|
-
await this.profileService.stopProfile(eventKey, profileId, workspaceId);
|
|
203
|
-
}
|
|
204
|
-
else if (eventType.startsWith('restart_service:')) {
|
|
205
|
-
const serviceName = eventType.replace('restart_service:', '');
|
|
206
|
-
await this.profileService.restartService(eventKey, profileId, workspaceId, serviceName);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
this.logger.error(`Unsupported event type: ${eventType}`);
|
|
210
|
-
await this.apiService.callApi('PUT', `/events/${eventKey}`, {
|
|
211
|
-
status: 'failed',
|
|
212
|
-
is_executed: true,
|
|
213
|
-
error: `Unsupported event type: ${eventType}`,
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
async updateSavedProfiles() {
|
|
218
|
-
const isWebSocketConnected = this.websocketClientService.isWebSocketConnected();
|
|
219
|
-
this.useEventDrivenUpdates = isWebSocketConnected;
|
|
220
|
-
this.statusUpdateCounter++;
|
|
221
|
-
if (isWebSocketConnected) {
|
|
222
|
-
if (this.statusUpdateCounter % 5 !== 0) {
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
}
|
|
228
|
-
try {
|
|
229
|
-
await this.profileService.updateAllProfilesStatus();
|
|
230
|
-
this.logger.debug('Successfully updated all profiles status');
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
this.logger.error(`Error updating saved profiles: ${error.message}`);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
sleep(ms) {
|
|
237
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
exports.EventService = EventService;
|
|
241
|
-
__decorate([
|
|
242
|
-
(0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_5_SECONDS),
|
|
243
|
-
__metadata("design:type", Function),
|
|
244
|
-
__metadata("design:paramtypes", []),
|
|
245
|
-
__metadata("design:returntype", Promise)
|
|
246
|
-
], EventService.prototype, "updateSavedProfiles", null);
|
|
247
|
-
exports.EventService = EventService = EventService_1 = __decorate([
|
|
248
|
-
(0, common_1.Injectable)(),
|
|
249
|
-
__metadata("design:paramtypes", [api_service_1.ApiService,
|
|
250
|
-
config_service_1.ConfigService,
|
|
251
|
-
profile_service_1.ProfileService,
|
|
252
|
-
websocket_client_service_1.WebSocketClientService,
|
|
253
|
-
event_websocket_client_service_1.EventWebSocketClientService])
|
|
254
|
-
], EventService);
|
|
255
|
-
//# sourceMappingURL=event.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.service.js","sourceRoot":"","sources":["../../../src/agent/services/event.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../../src/agent/services/log.service.ts"],"names":[],"mappings":"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"}
|