@steedos/service-metadata 2.1.49 → 2.1.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/actionsHandler.d.ts +6 -0
- package/lib/actionsHandler.js +228 -148
- package/lib/actionsHandler.js.map +1 -1
- package/lib/metadata.service.js +18 -0
- package/lib/metadata.service.js.map +1 -1
- package/package.json +2 -2
- package/src/actionsHandler.ts +261 -169
- package/src/metadata.service.ts +14 -0
package/lib/actionsHandler.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
declare function clearPackageServices(ctx: any, packageServices: any): Promise<void>;
|
|
2
|
+
declare function clearPackageServicesMetadatas(ctx: any, offlinePackageServices: any): Promise<void>;
|
|
1
3
|
export declare function started(broker: any): Promise<void>;
|
|
2
4
|
export declare function stopped(broker: any): Promise<void>;
|
|
3
5
|
export declare const ActionHandlers: {
|
|
6
|
+
clearPackageServices: typeof clearPackageServices;
|
|
7
|
+
clearPackageServicesMetadatas: typeof clearPackageServicesMetadatas;
|
|
4
8
|
get(ctx: any): Promise<any>;
|
|
5
9
|
filter(ctx: any): Promise<Array<any>>;
|
|
6
10
|
add(ctx: any): Promise<any>;
|
|
7
11
|
addServiceMetadata(ctx: any): Promise<void>;
|
|
12
|
+
fuzzyDelete(ctx: any): Promise<void>;
|
|
8
13
|
delete(ctx: any): Promise<boolean>;
|
|
9
14
|
getServiceMetadatas(ctx: any): Promise<any[]>;
|
|
10
15
|
getServiceMetadata(ctx: any): Promise<any>;
|
|
11
16
|
refreshServiceMetadatas(ctx: any): Promise<void>;
|
|
12
17
|
};
|
|
18
|
+
export {};
|
package/lib/actionsHandler.js
CHANGED
|
@@ -7,76 +7,81 @@ const PACKAGE_SERVICES_KEY = '$PACKAGE-SERVICES';
|
|
|
7
7
|
const PACKAGE_SERVICE_PREFIX = '~packages-';
|
|
8
8
|
const METADATA_SERVICES_PERFIX = '$METADATA-SERVICES';
|
|
9
9
|
const _ = require("underscore");
|
|
10
|
+
let savePackageServicesTimeoutID = null;
|
|
10
11
|
//////////////// mock for redis cacher ////////////////
|
|
11
|
-
let mockCacherData = [];
|
|
12
|
-
let mock_prefix = "";
|
|
13
|
-
function mockCacherGet(ctx, key) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
12
|
+
// let mockCacherData: string[] = [];
|
|
13
|
+
// let mock_prefix = "";
|
|
14
|
+
// async function mockCacherGet(ctx: any, key: string): Promise<any> { // cacher.get
|
|
15
|
+
// return await ctx.broker.cacher.get(key);
|
|
16
|
+
// }
|
|
17
|
+
// // 支持 * 通配符
|
|
18
|
+
// async function mockCacherKeys(ctx: any, key: string): Promise<string[]> { // cacher.client.keys
|
|
19
|
+
// // // 原来是:
|
|
20
|
+
// // const broker_res = await ctx.broker.cacher.client.keys(key);
|
|
21
|
+
// const regex_key = "^"+ key.split(".").join("\\.").split("*").join(".+").split("$").join("\\$") + "$";
|
|
22
|
+
// const reg = new RegExp(regex_key);
|
|
23
|
+
// const keys = mockCacherData.filter(item => reg.test(item));
|
|
24
|
+
// // const diff_d = _.difference(broker_res, keys); // 差错 diff 代码
|
|
25
|
+
// // if (diff_d.length > 0) {
|
|
26
|
+
// // console.log("diff is",key, diff_d);
|
|
27
|
+
// // console.log("* is", key,await ctx.broker.cacher.client.keys("*"));
|
|
28
|
+
// // console.log("my is",key, mockCacherData);
|
|
29
|
+
// // process.exit();
|
|
30
|
+
// // }
|
|
31
|
+
// return keys;
|
|
32
|
+
// }
|
|
33
|
+
// async function mockCacherSet(ctx: any, key: string, data: any): Promise<any> {
|
|
34
|
+
// // cacher.set
|
|
35
|
+
// const finalKey = mock_prefix + key;
|
|
36
|
+
// // const item = mockCacherData.find(item => item === finalKey);
|
|
37
|
+
// // if (!item) {
|
|
38
|
+
// // mockCacherData.push(finalKey);
|
|
39
|
+
// // }
|
|
40
|
+
// await ctx.broker.cacher.set(key, data);
|
|
41
|
+
// }
|
|
42
|
+
// // 支持 * 通配符
|
|
43
|
+
// async function mockCacherClean(ctx: any, key: string): Promise<any> {
|
|
44
|
+
// // cacher.clean
|
|
45
|
+
// if (key == "**") {
|
|
46
|
+
// mockCacherData = [];
|
|
47
|
+
// } else {
|
|
48
|
+
// const regex_key =
|
|
49
|
+
// "^" +
|
|
50
|
+
// key
|
|
51
|
+
// .split(".")
|
|
52
|
+
// .join("\\.")
|
|
53
|
+
// .split("*")
|
|
54
|
+
// .join(".+")
|
|
55
|
+
// .split("$")
|
|
56
|
+
// .join("\\$") +
|
|
57
|
+
// "$";
|
|
58
|
+
// const reg = new RegExp(regex_key);
|
|
59
|
+
// mockCacherData = mockCacherData.filter((item) => !reg.test(item));
|
|
60
|
+
// }
|
|
61
|
+
// await ctx.broker.cacher.clean(key);
|
|
62
|
+
// }
|
|
63
|
+
// async function mockCacherDel(ctx: any, key: string): Promise<any> {
|
|
64
|
+
// // cacher.del
|
|
65
|
+
// const finalKey = mock_prefix + key;
|
|
66
|
+
// mockCacherData = mockCacherData.filter((item) => item !== finalKey);
|
|
67
|
+
// await ctx.broker.cacher.del(key);
|
|
68
|
+
// }
|
|
67
69
|
////////////////////////////////////////////////
|
|
68
70
|
function transformMetadata(ctx) {
|
|
69
71
|
return Object.assign(Object.assign({}, ctx.meta.caller), { metadata: ctx.params.data });
|
|
70
72
|
}
|
|
71
73
|
function getKey(key, keyPrefix) {
|
|
72
|
-
return key.replace(keyPrefix,
|
|
74
|
+
return key.replace(keyPrefix, "");
|
|
73
75
|
}
|
|
74
|
-
function getServiceMetadataCacherKey(serviceName, metadataType, metadataApiName) {
|
|
75
|
-
return
|
|
76
|
+
function getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName) {
|
|
77
|
+
return `$${nodeID}.${SERVICE_METADATA_PREFIX}.${serviceName}.${metadataType}.${metadataApiName}`;
|
|
76
78
|
}
|
|
77
79
|
function addServiceMetadata(ctx) {
|
|
78
80
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
79
81
|
const { nodeID } = ctx.meta.caller || { nodeID: undefined };
|
|
82
|
+
if (!nodeID) {
|
|
83
|
+
console.log(`addServiceMetadata ctx.meta`, ctx.meta);
|
|
84
|
+
}
|
|
80
85
|
const { metadataType, metadataApiName, metadataServiceName } = ctx.meta || { metadataType: undefined, metadataApiName: undefined, metadataServiceName: undefined };
|
|
81
86
|
// if(metadataType){
|
|
82
87
|
// console.log('saveServiceMetadataMap', metadataType, metadataApiName, metadataServiceName )
|
|
@@ -84,28 +89,31 @@ function addServiceMetadata(ctx) {
|
|
|
84
89
|
if (!metadataServiceName) {
|
|
85
90
|
return;
|
|
86
91
|
}
|
|
87
|
-
const key = getServiceMetadataCacherKey(metadataServiceName, metadataType, metadataApiName);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (data) {
|
|
91
|
-
if (data.nodeIds) {
|
|
92
|
-
nodeIds = data.nodeIds;
|
|
93
|
-
}
|
|
92
|
+
const key = getServiceMetadataCacherKey(nodeID, metadataServiceName, metadataType, metadataApiName);
|
|
93
|
+
if (false && metadataType === 'objects') {
|
|
94
|
+
console.log(`addServiceMetadata`, key);
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
+
// let data = await ctx.broker.cacher.get(key);// REPLACE: await mockCacherGet(ctx, key);
|
|
97
|
+
// let nodeIds = [];
|
|
98
|
+
// if (data) {
|
|
99
|
+
// if (data.nodeIds) {
|
|
100
|
+
// nodeIds = data.nodeIds;
|
|
101
|
+
// }
|
|
102
|
+
// }
|
|
103
|
+
// nodeIds.push(nodeID);
|
|
104
|
+
yield ctx.broker.cacher.set(key, {
|
|
105
|
+
nodeIds: [nodeID],
|
|
106
|
+
metadataType,
|
|
107
|
+
metadataApiName,
|
|
108
|
+
metadata: ctx.params.data,
|
|
109
|
+
});
|
|
96
110
|
// REPLACE:
|
|
97
|
-
// await ctx
|
|
111
|
+
// await mockCacherSet(ctx, key, {
|
|
98
112
|
// nodeIds: nodeIds,
|
|
99
113
|
// metadataType,
|
|
100
114
|
// metadataApiName,
|
|
101
|
-
// metadata: ctx.params.data
|
|
115
|
+
// metadata: ctx.params.data,
|
|
102
116
|
// });
|
|
103
|
-
yield mockCacherSet(ctx, key, {
|
|
104
|
-
nodeIds: nodeIds,
|
|
105
|
-
metadataType,
|
|
106
|
-
metadataApiName,
|
|
107
|
-
metadata: ctx.params.data
|
|
108
|
-
});
|
|
109
117
|
});
|
|
110
118
|
}
|
|
111
119
|
// 这里需要更改
|
|
@@ -113,54 +121,64 @@ function query(ctx, queryKey) {
|
|
|
113
121
|
var _a;
|
|
114
122
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
115
123
|
const keyPrefix = ((_a = ctx.broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
116
|
-
|
|
117
|
-
const keys =
|
|
124
|
+
const keys = yield ctx.broker.cacher.client.keys(`${keyPrefix}${queryKey}`); //TODO 此功能仅支持redis cache
|
|
125
|
+
// REPLACE: const keys = await mockCacherKeys(ctx, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
118
126
|
const values = [];
|
|
119
127
|
for (const key of keys) {
|
|
120
|
-
|
|
121
|
-
values.push(
|
|
128
|
+
values.push(yield ctx.broker.cacher.get(getKey(key, keyPrefix)));
|
|
129
|
+
// REPLACE: values.push(await mockCacherGet(ctx, getKey(key, keyPrefix)));
|
|
122
130
|
}
|
|
123
131
|
return values;
|
|
124
132
|
});
|
|
125
133
|
}
|
|
126
|
-
function getPackageServiceCacherKey(serviceName) {
|
|
127
|
-
return
|
|
134
|
+
function getPackageServiceCacherKey(nodeID, serviceName) {
|
|
135
|
+
return `$${nodeID}.${PACKAGE_SERVICES_KEY}.${serviceName}`;
|
|
128
136
|
}
|
|
129
|
-
function setPackageServices(ctx,
|
|
130
|
-
var
|
|
137
|
+
function setPackageServices(ctx, packageServices) {
|
|
138
|
+
var packageServices_1, packageServices_1_1;
|
|
131
139
|
var e_1, _a;
|
|
132
140
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
133
141
|
try {
|
|
134
|
-
for (
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
yield mockCacherSet(ctx, getPackageServiceCacherKey(packageServiceName), { service: packageServiceName });
|
|
142
|
+
for (packageServices_1 = tslib_1.__asyncValues(packageServices); packageServices_1_1 = yield packageServices_1.next(), !packageServices_1_1.done;) {
|
|
143
|
+
const packageService = packageServices_1_1.value;
|
|
144
|
+
ctx.broker.cacher.set(getPackageServiceCacherKey(packageService.nodeID, packageService.name), { service: packageService });
|
|
138
145
|
}
|
|
139
146
|
}
|
|
140
147
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
141
148
|
finally {
|
|
142
149
|
try {
|
|
143
|
-
if (
|
|
150
|
+
if (packageServices_1_1 && !packageServices_1_1.done && (_a = packageServices_1.return)) yield _a.call(packageServices_1);
|
|
144
151
|
}
|
|
145
152
|
finally { if (e_1) throw e_1.error; }
|
|
146
153
|
}
|
|
147
154
|
});
|
|
148
155
|
}
|
|
149
|
-
function clearPackageServices(ctx,
|
|
150
|
-
var
|
|
156
|
+
function clearPackageServices(ctx, packageServices) {
|
|
157
|
+
var packageServices_2, packageServices_2_1;
|
|
151
158
|
var e_2, _a;
|
|
152
159
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
153
160
|
try {
|
|
154
|
-
for (
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
for (packageServices_2 = tslib_1.__asyncValues(packageServices); packageServices_2_1 = yield packageServices_2.next(), !packageServices_2_1.done;) {
|
|
162
|
+
const packageService = packageServices_2_1.value;
|
|
163
|
+
let nodeID = null;
|
|
164
|
+
let name = null;
|
|
165
|
+
if (_.isString(packageService)) {
|
|
166
|
+
let foo = packageService.split('.');
|
|
167
|
+
nodeID = foo[0];
|
|
168
|
+
name = foo[1];
|
|
169
|
+
}
|
|
170
|
+
else if (_.isObject(packageService)) {
|
|
171
|
+
nodeID = packageService.nodeID;
|
|
172
|
+
name = packageService.nodeID;
|
|
173
|
+
}
|
|
174
|
+
// console.log(`clearPackageServices del ===== `, getPackageServiceCacherKey(nodeID, name))
|
|
175
|
+
yield ctx.broker.cacher.del(getPackageServiceCacherKey(nodeID, name));
|
|
158
176
|
}
|
|
159
177
|
}
|
|
160
178
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
161
179
|
finally {
|
|
162
180
|
try {
|
|
163
|
-
if (
|
|
181
|
+
if (packageServices_2_1 && !packageServices_2_1.done && (_a = packageServices_2.return)) yield _a.call(packageServices_2);
|
|
164
182
|
}
|
|
165
183
|
finally { if (e_2) throw e_2.error; }
|
|
166
184
|
}
|
|
@@ -168,32 +186,42 @@ function clearPackageServices(ctx, packageServicesName) {
|
|
|
168
186
|
}
|
|
169
187
|
function getLastPackageServices(ctx) {
|
|
170
188
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
171
|
-
const packageServices = yield query(ctx, getPackageServiceCacherKey("*"));
|
|
172
|
-
const
|
|
173
|
-
packageServices.forEach(element => {
|
|
189
|
+
const packageServices = yield query(ctx, getPackageServiceCacherKey("*", "*"));
|
|
190
|
+
const services = [];
|
|
191
|
+
packageServices.forEach((element) => {
|
|
174
192
|
if (element) {
|
|
175
|
-
|
|
193
|
+
services.push(element.service);
|
|
176
194
|
}
|
|
177
195
|
});
|
|
178
|
-
return
|
|
196
|
+
return services;
|
|
179
197
|
});
|
|
180
198
|
}
|
|
181
199
|
function getPackageServices(ctx) {
|
|
182
200
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
201
|
+
const packageServices = [];
|
|
202
|
+
const services = ctx.broker.registry.getServiceList({ withActions: true });
|
|
203
|
+
_.each(services, (serviceItem) => {
|
|
204
|
+
const { name, nodeID } = serviceItem; //, version, fullName, settings, local, available, nodeID
|
|
205
|
+
if (name.startsWith(PACKAGE_SERVICE_PREFIX)) {
|
|
206
|
+
// console.log(`serviceItem`, serviceItem)
|
|
207
|
+
packageServices.push(Object.assign({}, serviceItem, { apiName: `${nodeID}.${name}` }));
|
|
208
|
+
}
|
|
186
209
|
});
|
|
187
|
-
|
|
188
|
-
|
|
210
|
+
return packageServices;
|
|
211
|
+
// const servicesName = _.pluck(services, "name");
|
|
212
|
+
// let packageServicesName = _.filter(servicesName, (serviceName) => {
|
|
213
|
+
// return serviceName.startsWith(PACKAGE_SERVICE_PREFIX);
|
|
214
|
+
// });
|
|
215
|
+
// packageServicesName = _.uniq(packageServicesName);
|
|
216
|
+
// return packageServicesName;
|
|
189
217
|
});
|
|
190
218
|
}
|
|
191
|
-
function clearPackageServiceMetadatas(ctx, packageServiceName) {
|
|
219
|
+
function clearPackageServiceMetadatas(ctx, nodeID, packageServiceName) {
|
|
192
220
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
193
|
-
const key = getServiceMetadataCacherKey(packageServiceName, "*", "*");
|
|
221
|
+
const key = getServiceMetadataCacherKey(nodeID, packageServiceName, "*", "*");
|
|
194
222
|
const clearMetadatas = yield query(ctx, key);
|
|
195
|
-
|
|
196
|
-
|
|
223
|
+
yield ctx.broker.cacher.clean(key);
|
|
224
|
+
// REPLACE: await mockCacherClean(ctx, key);
|
|
197
225
|
return clearMetadatas;
|
|
198
226
|
});
|
|
199
227
|
}
|
|
@@ -204,8 +232,19 @@ function clearPackageServicesMetadatas(ctx, offlinePackageServices) {
|
|
|
204
232
|
let clearMetadatas = [];
|
|
205
233
|
try {
|
|
206
234
|
for (offlinePackageServices_1 = tslib_1.__asyncValues(offlinePackageServices); offlinePackageServices_1_1 = yield offlinePackageServices_1.next(), !offlinePackageServices_1_1.done;) {
|
|
207
|
-
const
|
|
208
|
-
|
|
235
|
+
const packageService = offlinePackageServices_1_1.value;
|
|
236
|
+
let nodeID = null;
|
|
237
|
+
let name = null;
|
|
238
|
+
if (_.isString(packageService)) {
|
|
239
|
+
let foo = packageService.split('.');
|
|
240
|
+
nodeID = foo[0];
|
|
241
|
+
name = foo[1];
|
|
242
|
+
}
|
|
243
|
+
else if (_.isObject(packageService)) {
|
|
244
|
+
nodeID = packageService.nodeID;
|
|
245
|
+
name = packageService.nodeID;
|
|
246
|
+
}
|
|
247
|
+
const clearPackageMetadatas = yield clearPackageServiceMetadatas(ctx, nodeID, name);
|
|
209
248
|
clearMetadatas = clearMetadatas.concat(clearPackageMetadatas);
|
|
210
249
|
}
|
|
211
250
|
}
|
|
@@ -216,8 +255,8 @@ function clearPackageServicesMetadatas(ctx, offlinePackageServices) {
|
|
|
216
255
|
}
|
|
217
256
|
finally { if (e_3) throw e_3.error; }
|
|
218
257
|
}
|
|
219
|
-
_.each(_.groupBy(clearMetadatas,
|
|
220
|
-
ctx.broker.emit(`${SERVICE_METADATA_PREFIX}.${metadataType}.clear`, { metadataType, metadataApiNames: _.pluck(data,
|
|
258
|
+
_.each(_.groupBy(clearMetadatas, "metadataType"), function (data, metadataType) {
|
|
259
|
+
ctx.broker.emit(`${SERVICE_METADATA_PREFIX}.${metadataType}.clear`, { metadataType, metadataApiNames: _.pluck(data, "metadataApiName"), isClear: true });
|
|
221
260
|
});
|
|
222
261
|
});
|
|
223
262
|
}
|
|
@@ -226,42 +265,47 @@ function getMetadataServices(broker) {
|
|
|
226
265
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
227
266
|
const queryKey = `${METADATA_SERVICES_PERFIX}.*`;
|
|
228
267
|
const keyPrefix = ((_a = broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
229
|
-
|
|
230
|
-
const keys =
|
|
268
|
+
const keys = yield broker.cacher.client.keys(`${keyPrefix}${queryKey}`); //TODO 此功能仅支持redis cache
|
|
269
|
+
// REPLACE: const keys = await mockCacherKeys({broker,}, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
231
270
|
const values = [];
|
|
232
271
|
for (const key of keys) {
|
|
233
|
-
|
|
234
|
-
values.push(
|
|
272
|
+
values.push(yield broker.cacher.get(getKey(key, keyPrefix)));
|
|
273
|
+
// REPLACE: values.push(await mockCacherGet({ broker }, getKey(key, keyPrefix)));
|
|
235
274
|
}
|
|
236
275
|
return values;
|
|
237
276
|
});
|
|
238
277
|
}
|
|
239
278
|
function started(broker) {
|
|
240
|
-
var _a;
|
|
241
279
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
242
|
-
mock_prefix =
|
|
243
|
-
|
|
244
|
-
|
|
280
|
+
// mock_prefix = broker.cacher?.prefix || "";
|
|
281
|
+
yield broker.cacher.set(`${METADATA_SERVICES_PERFIX}.${broker.nodeID}`, {});
|
|
282
|
+
// REPLACE: await mockCacherSet({broker, }, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`, {});
|
|
245
283
|
});
|
|
246
284
|
}
|
|
247
285
|
exports.started = started;
|
|
248
286
|
function stopped(broker) {
|
|
249
287
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
250
|
-
|
|
251
|
-
|
|
288
|
+
yield broker.cacher.del(`${METADATA_SERVICES_PERFIX}.${broker.nodeID}`);
|
|
289
|
+
// REPLACE: await mockCacherDel({broker}, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`);
|
|
252
290
|
const services = yield getMetadataServices(broker);
|
|
253
291
|
if (!services || services.length === 0) {
|
|
254
|
-
|
|
255
|
-
|
|
292
|
+
yield broker.cacher.clean(`**`);
|
|
293
|
+
//REPLACE: await mockCacherClean({broker}, `**`);
|
|
256
294
|
}
|
|
257
295
|
});
|
|
258
296
|
}
|
|
259
297
|
exports.stopped = stopped;
|
|
260
298
|
exports.ActionHandlers = {
|
|
299
|
+
clearPackageServices,
|
|
300
|
+
clearPackageServicesMetadatas,
|
|
261
301
|
get(ctx) {
|
|
262
302
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
263
|
-
|
|
264
|
-
|
|
303
|
+
try {
|
|
304
|
+
return yield ctx.broker.cacher.get(ctx.params.key);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
}
|
|
308
|
+
// REPLACE: return await mockCacherGet(ctx, ctx.params.key)
|
|
265
309
|
});
|
|
266
310
|
},
|
|
267
311
|
filter(ctx) {
|
|
@@ -278,8 +322,8 @@ exports.ActionHandlers = {
|
|
|
278
322
|
},
|
|
279
323
|
add(ctx) {
|
|
280
324
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
281
|
-
|
|
282
|
-
return
|
|
325
|
+
return yield ctx.broker.cacher.set(ctx.params.key, transformMetadata(ctx));
|
|
326
|
+
// REPLACE: return await mockCacherSet(ctx, ctx.params.key, transformMetadata(ctx));
|
|
283
327
|
});
|
|
284
328
|
},
|
|
285
329
|
addServiceMetadata(ctx) {
|
|
@@ -287,11 +331,22 @@ exports.ActionHandlers = {
|
|
|
287
331
|
return yield addServiceMetadata(ctx);
|
|
288
332
|
});
|
|
289
333
|
},
|
|
334
|
+
fuzzyDelete(ctx) {
|
|
335
|
+
var _a;
|
|
336
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
337
|
+
const { key } = ctx.params;
|
|
338
|
+
const keyPrefix = ((_a = ctx.broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
339
|
+
const keys = yield ctx.broker.cacher.client.keys(`${keyPrefix}${key}`);
|
|
340
|
+
for (const _key of keys) {
|
|
341
|
+
yield ctx.broker.cacher.del(getKey(_key, keyPrefix));
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
},
|
|
290
345
|
delete(ctx) {
|
|
291
346
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
292
347
|
try {
|
|
293
|
-
|
|
294
|
-
|
|
348
|
+
yield ctx.broker.cacher.del(ctx.params.key);
|
|
349
|
+
// REPLACE: await mockCacherDel(ctx, ctx.params.key);
|
|
295
350
|
}
|
|
296
351
|
catch (error) {
|
|
297
352
|
ctx.broker.logger.info(error.message);
|
|
@@ -301,47 +356,72 @@ exports.ActionHandlers = {
|
|
|
301
356
|
},
|
|
302
357
|
getServiceMetadatas(ctx) {
|
|
303
358
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
304
|
-
let { serviceName, metadataType, metadataApiName } = ctx.params;
|
|
359
|
+
let { nodeID, serviceName, metadataType, metadataApiName } = ctx.params;
|
|
360
|
+
if (!nodeID) {
|
|
361
|
+
nodeID = "*";
|
|
362
|
+
}
|
|
305
363
|
if (!serviceName) {
|
|
306
|
-
serviceName =
|
|
364
|
+
serviceName = "*";
|
|
307
365
|
}
|
|
308
366
|
if (!metadataType) {
|
|
309
|
-
metadataType =
|
|
367
|
+
metadataType = "*";
|
|
310
368
|
}
|
|
311
369
|
if (!metadataApiName) {
|
|
312
|
-
metadataApiName =
|
|
370
|
+
metadataApiName = "*";
|
|
313
371
|
}
|
|
314
|
-
const key = getServiceMetadataCacherKey(serviceName, metadataType, metadataApiName);
|
|
372
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
315
373
|
return yield query(ctx, key);
|
|
316
374
|
});
|
|
317
375
|
},
|
|
318
376
|
getServiceMetadata(ctx) {
|
|
319
377
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
320
378
|
let { serviceName, metadataType, metadataApiName } = ctx.params;
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
379
|
+
const { nodeID } = ctx.meta.caller || { nodeID: undefined };
|
|
380
|
+
if (!nodeID) {
|
|
381
|
+
console.log(`getServiceMetadata ctx.meta`, ctx.meta);
|
|
382
|
+
}
|
|
383
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
384
|
+
return yield ctx.broker.cacher.get(key);
|
|
385
|
+
// REPLACE: return await mockCacherGet(ctx, key);
|
|
324
386
|
});
|
|
325
387
|
},
|
|
326
388
|
refreshServiceMetadatas(ctx) {
|
|
327
389
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
328
390
|
const { offlinePackageServices: _offlinePackageServices } = ctx.params || { offlinePackageServices: undefined };
|
|
329
391
|
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
330
|
-
|
|
392
|
+
// await clearPackageServices(ctx, _offlinePackageServices);
|
|
393
|
+
ctx.broker.broadcast(`$metadata.clearPackageServices`, { offlinePackageServicesName: _offlinePackageServices });
|
|
331
394
|
}
|
|
332
395
|
let packageServices = yield getPackageServices(ctx);
|
|
396
|
+
const packageServicesName = _.pluck(packageServices, "apiName");
|
|
333
397
|
const lastPackageServices = yield getLastPackageServices(ctx);
|
|
334
|
-
|
|
398
|
+
const lastPackageServicesNames = _.pluck(lastPackageServices, "apiName");
|
|
399
|
+
let offlinePackageServicesName = _.difference(lastPackageServicesNames, packageServicesName);
|
|
335
400
|
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
336
|
-
|
|
337
|
-
|
|
401
|
+
offlinePackageServicesName = offlinePackageServicesName.concat(_offlinePackageServices);
|
|
402
|
+
const onlinePackageServicesName = _.difference(lastPackageServices, _offlinePackageServices);
|
|
403
|
+
packageServices = _.filter(packageServices, (ps) => {
|
|
404
|
+
return ps && _.include(onlinePackageServicesName, ps.apiName);
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
if (offlinePackageServicesName.length > 0) {
|
|
408
|
+
// console.log(`lastPackageServicesNames`, lastPackageServicesNames)
|
|
409
|
+
// console.log(`packageServicesName`, packageServicesName)
|
|
410
|
+
// console.log(`offlinePackageServicesName`, offlinePackageServicesName);
|
|
411
|
+
ctx.broker.broadcast(`$metadata.clearPackageServices`, { offlinePackageServicesName });
|
|
338
412
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
413
|
+
//使用延时方式存储软件包记录, 防止多服务之间服务发现延时导致数据清理异常。延时来自moleculer内部的服务发现机制(broker.registry.getServiceList)
|
|
414
|
+
//清理数据无需做到实时,延时30秒
|
|
415
|
+
if (savePackageServicesTimeoutID) {
|
|
416
|
+
clearTimeout(savePackageServicesTimeoutID);
|
|
417
|
+
savePackageServicesTimeoutID = null;
|
|
418
|
+
}
|
|
419
|
+
if (!savePackageServicesTimeoutID) {
|
|
420
|
+
savePackageServicesTimeoutID = setTimeout(() => {
|
|
421
|
+
setPackageServices(ctx, packageServices);
|
|
422
|
+
}, 30 * 1000);
|
|
342
423
|
}
|
|
343
|
-
yield setPackageServices(ctx, packageServices);
|
|
344
424
|
});
|
|
345
|
-
}
|
|
425
|
+
},
|
|
346
426
|
};
|
|
347
427
|
//# sourceMappingURL=actionsHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionsHandler.js","sourceRoot":"","sources":["../src/actionsHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionsHandler.js","sourceRoot":"","sources":["../src/actionsHandler.ts"],"names":[],"mappings":"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"}
|
package/lib/metadata.service.js
CHANGED
|
@@ -24,11 +24,22 @@ module.exports = {
|
|
|
24
24
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
return yield actionsHandler_1.ActionHandlers.refreshServiceMetadatas(ctx);
|
|
26
26
|
});
|
|
27
|
+
},
|
|
28
|
+
clearPackageServices: function (ctx) {
|
|
29
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const { offlinePackageServicesName } = ctx.params;
|
|
31
|
+
// console.log(`$metadata.clearPackageServices`, offlinePackageServicesName)
|
|
32
|
+
yield actionsHandler_1.ActionHandlers.clearPackageServices(ctx, offlinePackageServicesName);
|
|
33
|
+
yield actionsHandler_1.ActionHandlers.clearPackageServicesMetadatas(ctx, offlinePackageServicesName);
|
|
34
|
+
});
|
|
27
35
|
}
|
|
28
36
|
},
|
|
29
37
|
events: {
|
|
30
38
|
"$services.changed"(ctx) {
|
|
31
39
|
this.refreshServiceMetadatas(ctx);
|
|
40
|
+
},
|
|
41
|
+
"$metadata.clearPackageServices"(ctx) {
|
|
42
|
+
this.clearPackageServices(ctx);
|
|
32
43
|
}
|
|
33
44
|
},
|
|
34
45
|
/**
|
|
@@ -70,6 +81,13 @@ module.exports = {
|
|
|
70
81
|
});
|
|
71
82
|
}
|
|
72
83
|
},
|
|
84
|
+
fuzzyDelete: {
|
|
85
|
+
handler(ctx) {
|
|
86
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
return yield actionsHandler_1.ActionHandlers.fuzzyDelete(ctx);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
},
|
|
73
91
|
refreshServiceMetadatas: {
|
|
74
92
|
params: {
|
|
75
93
|
offlinePackageServices: { type: "array", items: "string" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.service.js","sourceRoot":"","sources":["../src/metadata.service.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,YAAY,CAAC;;;AACb,qDAAoE;AAEpE,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,CAAC,OAAO,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,SAAS;IACpB;;OAEG;IACH,QAAQ,EAAE,EAET;IACK,OAAO;;YACZ,MAAM,wBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;KAAA;IACD;;SAEK;IACL,OAAO,EAAE;QACR,uBAAuB,EAAC,UAAgB,GAAG;;gBAC1C,OAAO,MAAM,+BAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;YACzD,CAAC;SAAA;KACD;IAED,MAAM,EAAE;QACP,mBAAmB,CAAC,GAAG;YACtB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;KACD;IACD;;SAEK;IACL,OAAO,EAAE;QACR,GAAG,EAAE;YACE,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,CAAC;aAAA;SACD;QACD,MAAM,EAAE;YACD,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC;aAAA;SACD;QACD,GAAG,EAAE;YACE,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,CAAC;aAAA;SACD;QACD,kBAAkB,EAAE;YACb,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;aAAA;SACD;QACD,MAAM,EAAE;YACD,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC;aAAA;SACD;QACD,uBAAuB,EAAE;YACxB,MAAM,EAAE;gBACK,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC7D;YACJ,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBAC1D,CAAC;aAAA;SACD;QACD,mBAAmB,EAAE;YACd,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACtD,CAAC;aAAA;SACD;QACD,kBAAkB,EAAE;YACnB,MAAM,EAAE;gBACP,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAC;gBAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAC;gBAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAC;aAClC;YACK,OAAO,CAAC,GAAG;;oBAChB,OAAO,MAAM,+BAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;aAAA;SACD;KACD;IACD;;OAEG;IACG,OAAO;;YACZ,MAAM,wBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;KAAA;CACD,CAAA"}
|
|
1
|
+
{"version":3,"file":"metadata.service.js","sourceRoot":"","sources":["../src/metadata.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-metadata",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.53",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/metadata.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "5001ce7ac23abc5d0722c3ba97b0c3c8a963d368"
|
|
44
44
|
}
|
package/src/actionsHandler.ts
CHANGED
|
@@ -4,218 +4,275 @@ const PACKAGE_SERVICE_PREFIX = '~packages-';
|
|
|
4
4
|
const METADATA_SERVICES_PERFIX = '$METADATA-SERVICES';
|
|
5
5
|
import * as _ from 'underscore';
|
|
6
6
|
|
|
7
|
+
let savePackageServicesTimeoutID = null;
|
|
8
|
+
|
|
7
9
|
//////////////// mock for redis cacher ////////////////
|
|
8
|
-
let mockCacherData: string[] = [];
|
|
9
|
-
let mock_prefix = "";
|
|
10
|
+
// let mockCacherData: string[] = [];
|
|
11
|
+
// let mock_prefix = "";
|
|
10
12
|
|
|
11
|
-
async function mockCacherGet(ctx: any, key: string): Promise<any> { // cacher.get
|
|
12
|
-
|
|
13
|
-
}
|
|
13
|
+
// async function mockCacherGet(ctx: any, key: string): Promise<any> { // cacher.get
|
|
14
|
+
// return await ctx.broker.cacher.get(key);
|
|
15
|
+
// }
|
|
14
16
|
|
|
15
|
-
// 支持 * 通配符
|
|
16
|
-
async function mockCacherKeys(ctx: any, key: string): Promise<string[]> { // cacher.client.keys
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
// // 支持 * 通配符
|
|
18
|
+
// async function mockCacherKeys(ctx: any, key: string): Promise<string[]> { // cacher.client.keys
|
|
19
|
+
// // // 原来是:
|
|
20
|
+
// // const broker_res = await ctx.broker.cacher.client.keys(key);
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
// const regex_key = "^"+ key.split(".").join("\\.").split("*").join(".+").split("$").join("\\$") + "$";
|
|
23
|
+
// const reg = new RegExp(regex_key);
|
|
24
|
+
// const keys = mockCacherData.filter(item => reg.test(item));
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
// // const diff_d = _.difference(broker_res, keys); // 差错 diff 代码
|
|
27
|
+
// // if (diff_d.length > 0) {
|
|
28
|
+
// // console.log("diff is",key, diff_d);
|
|
29
|
+
// // console.log("* is", key,await ctx.broker.cacher.client.keys("*"));
|
|
30
|
+
// // console.log("my is",key, mockCacherData);
|
|
31
|
+
// // process.exit();
|
|
32
|
+
// // }
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
+
// return keys;
|
|
35
|
+
// }
|
|
34
36
|
|
|
35
|
-
async function mockCacherSet(ctx: any, key: string, data: any): Promise<any> {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
// async function mockCacherSet(ctx: any, key: string, data: any): Promise<any> {
|
|
38
|
+
// // cacher.set
|
|
39
|
+
// const finalKey = mock_prefix + key;
|
|
40
|
+
// // const item = mockCacherData.find(item => item === finalKey);
|
|
41
|
+
// // if (!item) {
|
|
42
|
+
// // mockCacherData.push(finalKey);
|
|
43
|
+
// // }
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
// await ctx.broker.cacher.set(key, data);
|
|
46
|
+
// }
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
// // 支持 * 通配符
|
|
49
|
+
// async function mockCacherClean(ctx: any, key: string): Promise<any> {
|
|
50
|
+
// // cacher.clean
|
|
51
|
+
// if (key == "**") {
|
|
52
|
+
// mockCacherData = [];
|
|
53
|
+
// } else {
|
|
54
|
+
// const regex_key =
|
|
55
|
+
// "^" +
|
|
56
|
+
// key
|
|
57
|
+
// .split(".")
|
|
58
|
+
// .join("\\.")
|
|
59
|
+
// .split("*")
|
|
60
|
+
// .join(".+")
|
|
61
|
+
// .split("$")
|
|
62
|
+
// .join("\\$") +
|
|
63
|
+
// "$";
|
|
64
|
+
// const reg = new RegExp(regex_key);
|
|
65
|
+
// mockCacherData = mockCacherData.filter((item) => !reg.test(item));
|
|
66
|
+
// }
|
|
45
67
|
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const reg = new RegExp(regex_key);
|
|
53
|
-
mockCacherData = mockCacherData.filter(item => !reg.test(item));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
await ctx.broker.cacher.clean(key);
|
|
57
|
-
}
|
|
58
|
-
async function mockCacherDel(ctx: any, key: string): Promise<any> { // cacher.del
|
|
59
|
-
const finalKey = mock_prefix + key;
|
|
60
|
-
mockCacherData = mockCacherData.filter(item => item !== finalKey);
|
|
61
|
-
|
|
62
|
-
await ctx.broker.cacher.del(key);
|
|
63
|
-
}
|
|
68
|
+
// await ctx.broker.cacher.clean(key);
|
|
69
|
+
// }
|
|
70
|
+
// async function mockCacherDel(ctx: any, key: string): Promise<any> {
|
|
71
|
+
// // cacher.del
|
|
72
|
+
// const finalKey = mock_prefix + key;
|
|
73
|
+
// mockCacherData = mockCacherData.filter((item) => item !== finalKey);
|
|
64
74
|
|
|
75
|
+
// await ctx.broker.cacher.del(key);
|
|
76
|
+
// }
|
|
65
77
|
|
|
66
78
|
////////////////////////////////////////////////
|
|
67
79
|
|
|
68
|
-
function transformMetadata(ctx){
|
|
69
|
-
|
|
80
|
+
function transformMetadata(ctx) {
|
|
81
|
+
return {
|
|
70
82
|
...ctx.meta.caller,
|
|
71
|
-
metadata: ctx.params.data
|
|
72
|
-
|
|
83
|
+
metadata: ctx.params.data,
|
|
84
|
+
};
|
|
73
85
|
}
|
|
74
86
|
|
|
75
|
-
function getKey(key
|
|
76
|
-
return key.replace(keyPrefix,
|
|
87
|
+
function getKey(key, keyPrefix) {
|
|
88
|
+
return key.replace(keyPrefix, "");
|
|
77
89
|
}
|
|
78
90
|
|
|
79
|
-
function getServiceMetadataCacherKey(serviceName: string, metadataType: string, metadataApiName: string){
|
|
80
|
-
return
|
|
91
|
+
function getServiceMetadataCacherKey(nodeID: string, serviceName: string, metadataType: string, metadataApiName: string) {
|
|
92
|
+
return `$${nodeID}.${SERVICE_METADATA_PREFIX}.${serviceName}.${metadataType}.${metadataApiName}`;
|
|
81
93
|
}
|
|
82
94
|
|
|
83
|
-
async function addServiceMetadata(ctx){
|
|
84
|
-
const { nodeID } = ctx.meta.caller || {nodeID: undefined}
|
|
85
|
-
|
|
95
|
+
async function addServiceMetadata(ctx) {
|
|
96
|
+
const { nodeID } = ctx.meta.caller || { nodeID: undefined };
|
|
97
|
+
if(!nodeID){
|
|
98
|
+
console.log(`addServiceMetadata ctx.meta`, ctx.meta);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const { metadataType, metadataApiName, metadataServiceName } = ctx.meta || { metadataType: undefined, metadataApiName: undefined, metadataServiceName: undefined };
|
|
86
102
|
// if(metadataType){
|
|
87
103
|
// console.log('saveServiceMetadataMap', metadataType, metadataApiName, metadataServiceName )
|
|
88
104
|
// }
|
|
89
|
-
if(!metadataServiceName){
|
|
105
|
+
if (!metadataServiceName) {
|
|
90
106
|
return;
|
|
91
107
|
}
|
|
92
|
-
const key = getServiceMetadataCacherKey(metadataServiceName, metadataType, metadataApiName)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if(data){
|
|
96
|
-
if(data.nodeIds){
|
|
97
|
-
nodeIds = data.nodeIds
|
|
98
|
-
}
|
|
108
|
+
const key = getServiceMetadataCacherKey(nodeID, metadataServiceName, metadataType, metadataApiName);
|
|
109
|
+
if (false && metadataType === 'objects') {
|
|
110
|
+
console.log(`addServiceMetadata`, key);
|
|
99
111
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
//
|
|
112
|
+
// let data = await ctx.broker.cacher.get(key);// REPLACE: await mockCacherGet(ctx, key);
|
|
113
|
+
// let nodeIds = [];
|
|
114
|
+
// if (data) {
|
|
115
|
+
// if (data.nodeIds) {
|
|
116
|
+
// nodeIds = data.nodeIds;
|
|
117
|
+
// }
|
|
118
|
+
// }
|
|
119
|
+
// nodeIds.push(nodeID);
|
|
120
|
+
|
|
121
|
+
await ctx.broker.cacher.set(key, {
|
|
122
|
+
nodeIds: [nodeID],
|
|
123
|
+
metadataType,
|
|
124
|
+
metadataApiName,
|
|
125
|
+
metadata: ctx.params.data,
|
|
126
|
+
});
|
|
127
|
+
// REPLACE:
|
|
128
|
+
// await mockCacherSet(ctx, key, {
|
|
103
129
|
// nodeIds: nodeIds,
|
|
104
130
|
// metadataType,
|
|
105
131
|
// metadataApiName,
|
|
106
|
-
// metadata: ctx.params.data
|
|
132
|
+
// metadata: ctx.params.data,
|
|
107
133
|
// });
|
|
108
|
-
await mockCacherSet(ctx, key, {
|
|
109
|
-
nodeIds: nodeIds,
|
|
110
|
-
metadataType,
|
|
111
|
-
metadataApiName,
|
|
112
|
-
metadata: ctx.params.data
|
|
113
|
-
});
|
|
114
134
|
}
|
|
115
135
|
|
|
116
136
|
// 这里需要更改
|
|
117
|
-
async function query(ctx, queryKey){
|
|
137
|
+
async function query(ctx, queryKey) {
|
|
118
138
|
const keyPrefix = ctx.broker.cacher?.prefix || "";
|
|
119
|
-
|
|
120
|
-
const keys = await mockCacherKeys(ctx, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
139
|
+
const keys = await ctx.broker.cacher.client.keys(`${keyPrefix}${queryKey}`); //TODO 此功能仅支持redis cache
|
|
140
|
+
// REPLACE: const keys = await mockCacherKeys(ctx, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
121
141
|
const values = [];
|
|
122
142
|
for (const key of keys) {
|
|
123
|
-
|
|
124
|
-
values.push(await mockCacherGet(ctx, getKey(key, keyPrefix)));
|
|
143
|
+
values.push(await ctx.broker.cacher.get(getKey(key, keyPrefix)));
|
|
144
|
+
// REPLACE: values.push(await mockCacherGet(ctx, getKey(key, keyPrefix)));
|
|
125
145
|
}
|
|
126
146
|
return values;
|
|
127
147
|
}
|
|
128
148
|
|
|
129
|
-
function getPackageServiceCacherKey(serviceName){
|
|
130
|
-
return
|
|
149
|
+
function getPackageServiceCacherKey(nodeID, serviceName) {
|
|
150
|
+
return `$${nodeID}.${PACKAGE_SERVICES_KEY}.${serviceName}`;
|
|
131
151
|
}
|
|
132
152
|
|
|
133
|
-
async function setPackageServices(ctx,
|
|
134
|
-
for await (const
|
|
135
|
-
|
|
136
|
-
await mockCacherSet(ctx, getPackageServiceCacherKey(packageServiceName), {service: packageServiceName});
|
|
153
|
+
async function setPackageServices(ctx, packageServices) {
|
|
154
|
+
for await (const packageService of packageServices) {
|
|
155
|
+
ctx.broker.cacher.set(getPackageServiceCacherKey(packageService.nodeID, packageService.name), { service: packageService });
|
|
156
|
+
// REPLACE: await await mockCacherSet(ctx, getPackageServiceCacherKey(packageServiceName), { service: packageServiceName });
|
|
137
157
|
}
|
|
138
158
|
}
|
|
139
159
|
|
|
140
|
-
async function clearPackageServices(ctx,
|
|
141
|
-
for await (const
|
|
142
|
-
|
|
143
|
-
|
|
160
|
+
async function clearPackageServices(ctx, packageServices) {
|
|
161
|
+
for await (const packageService of packageServices) {
|
|
162
|
+
let nodeID = null;
|
|
163
|
+
let name = null;
|
|
164
|
+
if(_.isString(packageService)){
|
|
165
|
+
let foo = packageService.split('.');
|
|
166
|
+
nodeID = foo[0];
|
|
167
|
+
name = foo[1];
|
|
168
|
+
}else if(_.isObject(packageService)){
|
|
169
|
+
nodeID = packageService.nodeID;
|
|
170
|
+
name = packageService.nodeID;
|
|
171
|
+
}
|
|
172
|
+
// console.log(`clearPackageServices del ===== `, getPackageServiceCacherKey(nodeID, name))
|
|
173
|
+
await ctx.broker.cacher.del(getPackageServiceCacherKey(nodeID, name));
|
|
174
|
+
// REPLACE: await mockCacherDel(ctx, getPackageServiceCacherKey(packageServiceName));
|
|
144
175
|
}
|
|
145
176
|
}
|
|
146
177
|
|
|
147
|
-
async function getLastPackageServices(ctx){
|
|
148
|
-
const packageServices = await query(ctx, getPackageServiceCacherKey("*"));
|
|
149
|
-
const
|
|
150
|
-
packageServices.forEach(element => {
|
|
151
|
-
if(element){
|
|
152
|
-
|
|
178
|
+
async function getLastPackageServices(ctx) {
|
|
179
|
+
const packageServices = await query(ctx, getPackageServiceCacherKey("*", "*"));
|
|
180
|
+
const services = [];
|
|
181
|
+
packageServices.forEach((element) => {
|
|
182
|
+
if (element) {
|
|
183
|
+
services.push(element.service);
|
|
153
184
|
}
|
|
154
185
|
});
|
|
155
|
-
return
|
|
186
|
+
return services;
|
|
156
187
|
}
|
|
157
188
|
|
|
158
|
-
async function getPackageServices(ctx){
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
189
|
+
async function getPackageServices(ctx) {
|
|
190
|
+
const packageServices = [];
|
|
191
|
+
const services = ctx.broker.registry.getServiceList({ withActions: true });
|
|
192
|
+
_.each(services, (serviceItem)=>{
|
|
193
|
+
const { name, nodeID } = serviceItem; //, version, fullName, settings, local, available, nodeID
|
|
194
|
+
if(name.startsWith(PACKAGE_SERVICE_PREFIX)){
|
|
195
|
+
// console.log(`serviceItem`, serviceItem)
|
|
196
|
+
packageServices.push(Object.assign({}, serviceItem, {apiName: `${nodeID}.${name}`}))
|
|
197
|
+
}
|
|
162
198
|
})
|
|
163
|
-
|
|
164
|
-
|
|
199
|
+
return packageServices;
|
|
200
|
+
// const servicesName = _.pluck(services, "name");
|
|
201
|
+
// let packageServicesName = _.filter(servicesName, (serviceName) => {
|
|
202
|
+
// return serviceName.startsWith(PACKAGE_SERVICE_PREFIX);
|
|
203
|
+
// });
|
|
204
|
+
// packageServicesName = _.uniq(packageServicesName);
|
|
205
|
+
// return packageServicesName;
|
|
165
206
|
}
|
|
166
207
|
|
|
167
|
-
async function clearPackageServiceMetadatas(ctx, packageServiceName){
|
|
168
|
-
const key = getServiceMetadataCacherKey(packageServiceName, "*", "*");
|
|
208
|
+
async function clearPackageServiceMetadatas(ctx, nodeID, packageServiceName) {
|
|
209
|
+
const key = getServiceMetadataCacherKey(nodeID, packageServiceName, "*", "*");
|
|
169
210
|
const clearMetadatas = await query(ctx, key);
|
|
170
|
-
|
|
171
|
-
await mockCacherClean(ctx, key);
|
|
211
|
+
await ctx.broker.cacher.clean(key);
|
|
212
|
+
// REPLACE: await mockCacherClean(ctx, key);
|
|
172
213
|
return clearMetadatas;
|
|
173
214
|
}
|
|
174
215
|
|
|
175
|
-
async function clearPackageServicesMetadatas(ctx, offlinePackageServices){
|
|
216
|
+
async function clearPackageServicesMetadatas(ctx, offlinePackageServices) {
|
|
176
217
|
let clearMetadatas = [];
|
|
177
|
-
for await (const
|
|
178
|
-
|
|
218
|
+
for await (const packageService of offlinePackageServices) {
|
|
219
|
+
let nodeID = null;
|
|
220
|
+
let name = null;
|
|
221
|
+
if(_.isString(packageService)){
|
|
222
|
+
let foo = packageService.split('.');
|
|
223
|
+
nodeID = foo[0];
|
|
224
|
+
name = foo[1];
|
|
225
|
+
}else if(_.isObject(packageService)){
|
|
226
|
+
nodeID = packageService.nodeID;
|
|
227
|
+
name = packageService.nodeID;
|
|
228
|
+
}
|
|
229
|
+
const clearPackageMetadatas = await clearPackageServiceMetadatas(ctx, nodeID, name);
|
|
179
230
|
clearMetadatas = clearMetadatas.concat(clearPackageMetadatas);
|
|
180
231
|
}
|
|
181
|
-
_.each(_.groupBy(clearMetadatas,
|
|
182
|
-
ctx.broker.emit(`${SERVICE_METADATA_PREFIX}.${metadataType}.clear`, {metadataType, metadataApiNames: _.pluck(data,
|
|
183
|
-
})
|
|
232
|
+
_.each(_.groupBy(clearMetadatas, "metadataType"), function(data: any, metadataType) {
|
|
233
|
+
ctx.broker.emit(`${SERVICE_METADATA_PREFIX}.${metadataType}.clear`, { metadataType, metadataApiNames: _.pluck(data, "metadataApiName"), isClear: true });
|
|
234
|
+
});
|
|
184
235
|
}
|
|
185
236
|
|
|
186
|
-
async function getMetadataServices(broker){
|
|
187
|
-
const queryKey = `${METADATA_SERVICES_PERFIX}
|
|
237
|
+
async function getMetadataServices(broker) {
|
|
238
|
+
const queryKey = `${METADATA_SERVICES_PERFIX}.*`;
|
|
188
239
|
const keyPrefix = broker.cacher?.prefix || "";
|
|
189
|
-
|
|
190
|
-
const keys = await mockCacherKeys({broker,}, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
240
|
+
const keys = await broker.cacher.client.keys(`${keyPrefix}${queryKey}`); //TODO 此功能仅支持redis cache
|
|
241
|
+
// REPLACE: const keys = await mockCacherKeys({broker,}, `${keyPrefix}${queryKey}`) //TODO 此功能仅支持redis cache
|
|
191
242
|
const values = [];
|
|
192
243
|
for (const key of keys) {
|
|
193
|
-
|
|
194
|
-
values.push(await mockCacherGet({broker}, getKey(key, keyPrefix)))
|
|
244
|
+
values.push(await broker.cacher.get(getKey(key, keyPrefix)));
|
|
245
|
+
// REPLACE: values.push(await mockCacherGet({ broker }, getKey(key, keyPrefix)));
|
|
195
246
|
}
|
|
196
247
|
return values;
|
|
197
248
|
}
|
|
198
249
|
|
|
199
|
-
export async function started(broker){
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
await mockCacherSet({broker, }, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`, {});
|
|
250
|
+
export async function started(broker) {
|
|
251
|
+
// mock_prefix = broker.cacher?.prefix || "";
|
|
252
|
+
await broker.cacher.set(`${METADATA_SERVICES_PERFIX}.${broker.nodeID}`, {});
|
|
253
|
+
// REPLACE: await mockCacherSet({broker, }, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`, {});
|
|
203
254
|
}
|
|
204
255
|
|
|
205
|
-
export async function stopped(broker){
|
|
206
|
-
|
|
207
|
-
await mockCacherDel({broker}, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`);
|
|
256
|
+
export async function stopped(broker) {
|
|
257
|
+
await broker.cacher.del(`${METADATA_SERVICES_PERFIX}.${broker.nodeID}`);
|
|
258
|
+
// REPLACE: await mockCacherDel({broker}, `${METADATA_SERVICES_PERFIX}.${broker.nodeID}`);
|
|
208
259
|
const services = await getMetadataServices(broker);
|
|
209
|
-
if(!services || services.length === 0){
|
|
210
|
-
|
|
211
|
-
await mockCacherClean({broker}, `**`);
|
|
260
|
+
if (!services || services.length === 0) {
|
|
261
|
+
await broker.cacher.clean(`**`);
|
|
262
|
+
//REPLACE: await mockCacherClean({broker}, `**`);
|
|
212
263
|
}
|
|
213
264
|
}
|
|
214
265
|
|
|
215
266
|
export const ActionHandlers = {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
267
|
+
clearPackageServices,
|
|
268
|
+
clearPackageServicesMetadatas,
|
|
269
|
+
async get(ctx: any): Promise<any> {
|
|
270
|
+
try {
|
|
271
|
+
return await ctx.broker.cacher.get(ctx.params.key);
|
|
272
|
+
} catch (error) {
|
|
273
|
+
|
|
274
|
+
}
|
|
275
|
+
// REPLACE: return await mockCacherGet(ctx, ctx.params.key)
|
|
219
276
|
},
|
|
220
277
|
async filter(ctx: any): Promise<Array<any>> {
|
|
221
278
|
return await query(ctx, ctx.params.key);
|
|
@@ -227,58 +284,93 @@ export const ActionHandlers = {
|
|
|
227
284
|
// }
|
|
228
285
|
// return values;
|
|
229
286
|
},
|
|
230
|
-
async add(ctx: any){
|
|
231
|
-
|
|
232
|
-
return await mockCacherSet(ctx, ctx.params.key, transformMetadata(ctx));
|
|
287
|
+
async add(ctx: any) {
|
|
288
|
+
return await ctx.broker.cacher.set(ctx.params.key, transformMetadata(ctx));
|
|
289
|
+
// REPLACE: return await mockCacherSet(ctx, ctx.params.key, transformMetadata(ctx));
|
|
290
|
+
},
|
|
291
|
+
async addServiceMetadata(ctx: any) {
|
|
292
|
+
return await addServiceMetadata(ctx);
|
|
233
293
|
},
|
|
234
|
-
async
|
|
235
|
-
|
|
294
|
+
async fuzzyDelete(ctx: any){
|
|
295
|
+
const { key } = ctx.params
|
|
296
|
+
const keyPrefix = ctx.broker.cacher?.prefix || "";
|
|
297
|
+
const keys = await ctx.broker.cacher.client.keys(`${keyPrefix}${key}`);
|
|
298
|
+
for (const _key of keys) {
|
|
299
|
+
await ctx.broker.cacher.del(getKey(_key, keyPrefix));
|
|
300
|
+
}
|
|
236
301
|
},
|
|
237
|
-
async delete(ctx: any){
|
|
302
|
+
async delete(ctx: any) {
|
|
238
303
|
try {
|
|
239
|
-
|
|
240
|
-
await mockCacherDel(ctx, ctx.params.key);
|
|
304
|
+
await ctx.broker.cacher.del(ctx.params.key);
|
|
305
|
+
// REPLACE: await mockCacherDel(ctx, ctx.params.key);
|
|
241
306
|
} catch (error) {
|
|
242
|
-
ctx.broker.logger.info(error.message)
|
|
307
|
+
ctx.broker.logger.info(error.message);
|
|
243
308
|
}
|
|
244
309
|
return true;
|
|
245
310
|
},
|
|
246
|
-
async getServiceMetadatas(ctx: any){
|
|
247
|
-
let { serviceName, metadataType, metadataApiName } = ctx.params;
|
|
248
|
-
if(!
|
|
249
|
-
|
|
311
|
+
async getServiceMetadatas(ctx: any) {
|
|
312
|
+
let { nodeID, serviceName, metadataType, metadataApiName } = ctx.params;
|
|
313
|
+
if (!nodeID) {
|
|
314
|
+
nodeID = "*";
|
|
250
315
|
}
|
|
251
|
-
if(!
|
|
252
|
-
|
|
316
|
+
if (!serviceName) {
|
|
317
|
+
serviceName = "*";
|
|
253
318
|
}
|
|
254
|
-
if(!
|
|
255
|
-
|
|
319
|
+
if (!metadataType) {
|
|
320
|
+
metadataType = "*";
|
|
256
321
|
}
|
|
257
|
-
|
|
322
|
+
if (!metadataApiName) {
|
|
323
|
+
metadataApiName = "*";
|
|
324
|
+
}
|
|
325
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
258
326
|
return await query(ctx, key);
|
|
259
327
|
},
|
|
260
|
-
async getServiceMetadata(ctx: any){
|
|
328
|
+
async getServiceMetadata(ctx: any) {
|
|
261
329
|
let { serviceName, metadataType, metadataApiName } = ctx.params;
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
330
|
+
const { nodeID } = ctx.meta.caller || { nodeID: undefined };
|
|
331
|
+
if(!nodeID){
|
|
332
|
+
console.log(`getServiceMetadata ctx.meta`, ctx.meta);
|
|
333
|
+
}
|
|
334
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
335
|
+
return await ctx.broker.cacher.get(key)
|
|
336
|
+
// REPLACE: return await mockCacherGet(ctx, key);
|
|
265
337
|
},
|
|
266
|
-
async refreshServiceMetadatas(ctx: any){
|
|
267
|
-
const { offlinePackageServices: _offlinePackageServices } = ctx.params || {offlinePackageServices: undefined};
|
|
268
|
-
if(_offlinePackageServices && _offlinePackageServices.length > 0){
|
|
269
|
-
await clearPackageServices(ctx, _offlinePackageServices);
|
|
338
|
+
async refreshServiceMetadatas(ctx: any) {
|
|
339
|
+
const { offlinePackageServices: _offlinePackageServices } = ctx.params || { offlinePackageServices: undefined };
|
|
340
|
+
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
341
|
+
// await clearPackageServices(ctx, _offlinePackageServices);
|
|
342
|
+
ctx.broker.broadcast(`$metadata.clearPackageServices`, { offlinePackageServicesName: _offlinePackageServices });
|
|
270
343
|
}
|
|
271
344
|
let packageServices = await getPackageServices(ctx);
|
|
345
|
+
const packageServicesName = _.pluck(packageServices, "apiName");
|
|
272
346
|
const lastPackageServices = await getLastPackageServices(ctx);
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
347
|
+
const lastPackageServicesNames = _.pluck(lastPackageServices, "apiName");
|
|
348
|
+
let offlinePackageServicesName = _.difference(lastPackageServicesNames, packageServicesName);
|
|
349
|
+
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
350
|
+
offlinePackageServicesName = offlinePackageServicesName.concat(_offlinePackageServices);
|
|
351
|
+
const onlinePackageServicesName = _.difference(lastPackageServices, _offlinePackageServices);
|
|
352
|
+
packageServices = _.filter(packageServices, (ps)=>{
|
|
353
|
+
return ps && _.include(onlinePackageServicesName, ps.apiName)
|
|
354
|
+
})
|
|
277
355
|
}
|
|
278
|
-
if(
|
|
279
|
-
|
|
280
|
-
|
|
356
|
+
if (offlinePackageServicesName.length > 0) {
|
|
357
|
+
// console.log(`lastPackageServicesNames`, lastPackageServicesNames)
|
|
358
|
+
// console.log(`packageServicesName`, packageServicesName)
|
|
359
|
+
// console.log(`offlinePackageServicesName`, offlinePackageServicesName);
|
|
360
|
+
ctx.broker.broadcast(`$metadata.clearPackageServices`, { offlinePackageServicesName });
|
|
281
361
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
362
|
+
|
|
363
|
+
//使用延时方式存储软件包记录, 防止多服务之间服务发现延时导致数据清理异常。延时来自moleculer内部的服务发现机制(broker.registry.getServiceList)
|
|
364
|
+
//清理数据无需做到实时,延时30秒
|
|
365
|
+
if(savePackageServicesTimeoutID){
|
|
366
|
+
clearTimeout(savePackageServicesTimeoutID);
|
|
367
|
+
savePackageServicesTimeoutID = null;
|
|
368
|
+
}
|
|
369
|
+
if(!savePackageServicesTimeoutID){
|
|
370
|
+
savePackageServicesTimeoutID = setTimeout(()=>{
|
|
371
|
+
setPackageServices(ctx, packageServices);
|
|
372
|
+
}, 30 * 1000)
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
},
|
|
376
|
+
};
|
package/src/metadata.service.ts
CHANGED
|
@@ -22,12 +22,21 @@ module.exports = {
|
|
|
22
22
|
methods: {
|
|
23
23
|
refreshServiceMetadatas:async function (ctx) {
|
|
24
24
|
return await ActionHandlers.refreshServiceMetadatas(ctx)
|
|
25
|
+
},
|
|
26
|
+
clearPackageServices:async function (ctx) {
|
|
27
|
+
const { offlinePackageServicesName } = ctx.params;
|
|
28
|
+
// console.log(`$metadata.clearPackageServices`, offlinePackageServicesName)
|
|
29
|
+
await ActionHandlers.clearPackageServices(ctx, offlinePackageServicesName);
|
|
30
|
+
await ActionHandlers.clearPackageServicesMetadatas(ctx, offlinePackageServicesName);
|
|
25
31
|
}
|
|
26
32
|
},
|
|
27
33
|
|
|
28
34
|
events: {
|
|
29
35
|
"$services.changed"(ctx) {
|
|
30
36
|
this.refreshServiceMetadatas(ctx);
|
|
37
|
+
},
|
|
38
|
+
"$metadata.clearPackageServices"(ctx) {
|
|
39
|
+
this.clearPackageServices(ctx);
|
|
31
40
|
}
|
|
32
41
|
},
|
|
33
42
|
/**
|
|
@@ -59,6 +68,11 @@ module.exports = {
|
|
|
59
68
|
return await ActionHandlers.delete(ctx);
|
|
60
69
|
}
|
|
61
70
|
},
|
|
71
|
+
fuzzyDelete: {
|
|
72
|
+
async handler(ctx) {
|
|
73
|
+
return await ActionHandlers.fuzzyDelete(ctx);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
62
76
|
refreshServiceMetadatas: {
|
|
63
77
|
params: {
|
|
64
78
|
offlinePackageServices: { type: "array", items: "string" },
|