kuzzle-device-manager 2.9.0 → 3.0.0-next.10
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/bin/migration/migration_platform_index.d.ts +2 -0
- package/dist/bin/migration/migration_platform_index.js +55 -0
- package/dist/bin/migration/migration_platform_index.js.map +1 -0
- package/dist/bin/migration/migration_tenant_index.d.ts +2 -0
- package/dist/bin/migration/migration_tenant_index.js +160 -0
- package/dist/bin/migration/migration_tenant_index.js.map +1 -0
- package/dist/bin/migration/utils.d.ts +18 -0
- package/dist/bin/migration/utils.js +97 -0
- package/dist/bin/migration/utils.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/modules/asset/AssetModule.d.ts +0 -2
- package/dist/lib/modules/asset/AssetModule.js +0 -12
- package/dist/lib/modules/asset/AssetModule.js.map +1 -1
- package/dist/lib/modules/asset/AssetService.d.ts +1 -2
- package/dist/lib/modules/asset/AssetService.js +24 -38
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +9 -1
- package/dist/lib/modules/asset/AssetsController.js +69 -1
- package/dist/lib/modules/asset/AssetsController.js.map +1 -1
- package/dist/lib/modules/asset/collections/assetsMappings.js +10 -15
- package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -1
- package/dist/lib/modules/asset/exports.d.ts +0 -4
- package/dist/lib/modules/asset/exports.js +0 -4
- package/dist/lib/modules/asset/exports.js.map +1 -1
- package/dist/lib/modules/asset/index.d.ts +1 -3
- package/dist/lib/modules/asset/index.js +1 -3
- package/dist/lib/modules/asset/index.js.map +1 -1
- package/dist/lib/modules/asset/model/AssetSerializer.js +0 -1
- package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
- package/dist/lib/modules/asset/types/AssetApi.d.ts +83 -5
- package/dist/lib/modules/asset/types/AssetContent.d.ts +9 -16
- package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +4 -11
- package/dist/lib/modules/decoder/DecodedPayload.d.ts +2 -0
- package/dist/lib/modules/decoder/DecodedPayload.js +13 -2
- package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
- package/dist/lib/modules/decoder/DecodersRegister.js +1 -1
- package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadService.js +157 -26
- package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
- package/dist/lib/modules/device/DeviceService.d.ts +4 -48
- package/dist/lib/modules/device/DeviceService.js +123 -294
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.d.ts +5 -5
- package/dist/lib/modules/device/DevicesController.js +37 -18
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +6 -0
- package/dist/lib/modules/device/collections/deviceMappings.js +76 -6
- package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +2 -2
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +7 -4
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -1
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js +4 -1
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js.map +1 -1
- package/dist/lib/modules/device/types/DeviceApi.d.ts +68 -41
- package/dist/lib/modules/device/types/DeviceContent.d.ts +55 -4
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +8 -23
- package/dist/lib/modules/group/GroupsController.d.ts +35 -0
- package/dist/lib/modules/group/GroupsController.js +471 -0
- package/dist/lib/modules/group/GroupsController.js.map +1 -0
- package/dist/lib/modules/group/GroupsModule.d.ts +6 -0
- package/dist/lib/modules/group/GroupsModule.js +21 -0
- package/dist/lib/modules/group/GroupsModule.js.map +1 -0
- package/dist/lib/modules/group/GroupsService.d.ts +116 -0
- package/dist/lib/modules/group/GroupsService.js +503 -0
- package/dist/lib/modules/group/GroupsService.js.map +1 -0
- package/dist/lib/modules/group/collections/groupsMappings.d.ts +2 -0
- package/dist/lib/modules/{asset/collections/assetsGroupsMapping.js → group/collections/groupsMappings.js} +4 -12
- package/dist/lib/modules/group/collections/groupsMappings.js.map +1 -0
- package/dist/lib/modules/group/exports.d.ts +5 -0
- package/dist/lib/modules/group/exports.js +22 -0
- package/dist/lib/modules/group/exports.js.map +1 -0
- package/dist/lib/modules/group/index.d.ts +4 -0
- package/dist/lib/modules/{measure/measures → group}/index.js +4 -5
- package/dist/lib/modules/group/index.js.map +1 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.js → group/roles/RoleGroupsAdmin.js} +7 -7
- package/dist/lib/modules/group/roles/RoleGroupsAdmin.js.map +1 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.d.ts → group/roles/RoleGroupsReader.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.js → group/roles/RoleGroupsReader.js} +7 -7
- package/dist/lib/modules/group/roles/RoleGroupsReader.js.map +1 -0
- package/dist/lib/modules/group/types/GroupContent.d.ts +10 -0
- package/dist/lib/modules/{asset/types/AssetGroupsApi.js → group/types/GroupContent.js} +1 -1
- package/dist/lib/modules/group/types/GroupContent.js.map +1 -0
- package/dist/lib/modules/group/types/GroupsApi.d.ts +141 -0
- package/dist/lib/modules/{asset/types/AssetGroupContent.js → group/types/GroupsApi.js} +1 -1
- package/dist/lib/modules/group/types/GroupsApi.js.map +1 -0
- package/dist/lib/modules/measure/MeasureExporter.js +1 -1
- package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
- package/dist/lib/modules/measure/MeasureService.d.ts +11 -43
- package/dist/lib/modules/measure/MeasureService.js +80 -365
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/lib/modules/measure/MeasureSourcesBuilder.d.ts +1 -2
- package/dist/lib/modules/measure/MeasureSourcesBuilder.js +3 -14
- package/dist/lib/modules/measure/MeasureSourcesBuilder.js.map +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +2 -91
- package/dist/lib/modules/measure/collections/measuresMappings.js +1 -5
- package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
- package/dist/lib/modules/measure/exports.d.ts +0 -1
- package/dist/lib/modules/measure/exports.js +0 -1
- package/dist/lib/modules/measure/exports.js.map +1 -1
- package/dist/lib/modules/measure/index.d.ts +0 -1
- package/dist/lib/modules/measure/index.js +0 -1
- package/dist/lib/modules/measure/index.js.map +1 -1
- package/dist/lib/modules/measure/types/MeasureEvents.d.ts +5 -148
- package/dist/lib/modules/measure/types/MeasureSources.d.ts +1 -0
- package/dist/lib/modules/measure/types/MeasureSources.js.map +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +3 -2
- package/dist/lib/modules/model/ModelService.js +90 -58
- package/dist/lib/modules/model/ModelService.js.map +1 -1
- package/dist/lib/modules/model/ModelsController.js +6 -1
- package/dist/lib/modules/model/ModelsController.js.map +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +3 -2
- package/dist/lib/modules/model/ModelsRegister.js +5 -3
- package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
- package/dist/lib/modules/model/collections/modelsMappings.js +18 -0
- package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
- package/dist/lib/modules/model/types/ModelApi.d.ts +2 -1
- package/dist/lib/modules/model/types/ModelContent.d.ts +24 -0
- package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +5 -1
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +15 -6
- package/dist/lib/modules/plugin/DeviceManagerEngine.js +61 -37
- package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +3 -2
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js +36 -38
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +9 -14
- package/dist/lib/modules/plugin/types/InternalCollection.d.ts +1 -1
- package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
- package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +3 -1
- package/dist/lib/modules/shared/services/AbstractExporter.js +6 -2
- package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +6 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js +44 -2
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +70 -0
- package/dist/lib/modules/shared/services/DigitalTwinService.js +311 -0
- package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -1
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -5
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +30 -0
- package/package.json +6 -2
- package/dist/lib/modules/asset/AssetsGroupsController.d.ts +0 -22
- package/dist/lib/modules/asset/AssetsGroupsController.js +0 -242
- package/dist/lib/modules/asset/AssetsGroupsController.js.map +0 -1
- package/dist/lib/modules/asset/AssetsGroupsService.d.ts +0 -47
- package/dist/lib/modules/asset/AssetsGroupsService.js +0 -165
- package/dist/lib/modules/asset/AssetsGroupsService.js.map +0 -1
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.d.ts +0 -2
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.js.map +0 -1
- package/dist/lib/modules/asset/roles/RoleAssetsGroupsAdmin.js.map +0 -1
- package/dist/lib/modules/asset/roles/RoleAssetsGroupsReader.js.map +0 -1
- package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +0 -11
- package/dist/lib/modules/asset/types/AssetGroupContent.js.map +0 -1
- package/dist/lib/modules/asset/types/AssetGroupsApi.d.ts +0 -59
- package/dist/lib/modules/asset/types/AssetGroupsApi.js.map +0 -1
- package/dist/lib/modules/measure/measures/BatteryMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/BatteryMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/HumidityMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/HumidityMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/MovementMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/MovementMeasure.js +0 -17
- package/dist/lib/modules/measure/measures/MovementMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/PositionMeasure.d.ts +0 -10
- package/dist/lib/modules/measure/measures/PositionMeasure.js +0 -33
- package/dist/lib/modules/measure/measures/PositionMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/TemperatureMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/index.d.ts +0 -5
- package/dist/lib/modules/measure/measures/index.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const utils_js_1 = require("./utils.js");
|
|
5
|
+
const args = {};
|
|
6
|
+
for (let index = 0; index < process.argv.length; index++) {
|
|
7
|
+
const val = process.argv[index];
|
|
8
|
+
if (val.startsWith("--")) {
|
|
9
|
+
const [key, value] = val.replace("--", "").split("=");
|
|
10
|
+
args[key] = value || true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const pathToPlatformIndex = args["platform-index"] || process.env.PLATFORM_INDEX;
|
|
14
|
+
if (!pathToPlatformIndex) {
|
|
15
|
+
throw new Error("PLATFORM_INDEX env variable or --platform-index is required");
|
|
16
|
+
}
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
console.info("MIGRATING " + pathToPlatformIndex);
|
|
19
|
+
// DEVICES
|
|
20
|
+
(0, utils_js_1.transformDocuments)("devices", pathToPlatformIndex, (line) => {
|
|
21
|
+
const propertiesToDelete = [
|
|
22
|
+
"assetId",
|
|
23
|
+
"metadata",
|
|
24
|
+
"measures",
|
|
25
|
+
"groups",
|
|
26
|
+
"lastMeasuredAt",
|
|
27
|
+
];
|
|
28
|
+
const obj = JSON.parse(line);
|
|
29
|
+
// Check line is a document
|
|
30
|
+
if (obj.body) {
|
|
31
|
+
obj.body = (0, utils_js_1.clearProperties)(obj.body, propertiesToDelete);
|
|
32
|
+
const createdAt = obj.body._kuzzle_info?.createdAt;
|
|
33
|
+
if (createdAt) {
|
|
34
|
+
obj.body.provisionedAt = createdAt;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return obj;
|
|
38
|
+
});
|
|
39
|
+
// MODELS
|
|
40
|
+
(0, utils_js_1.transformDocuments)("models", pathToPlatformIndex, (line) => {
|
|
41
|
+
const obj = JSON.parse(line);
|
|
42
|
+
// Check line is a document
|
|
43
|
+
if (obj.body && obj.body.group) {
|
|
44
|
+
obj.body.group.affinity = {
|
|
45
|
+
models: {
|
|
46
|
+
assets: [],
|
|
47
|
+
devices: [],
|
|
48
|
+
},
|
|
49
|
+
strict: false,
|
|
50
|
+
type: ["assets", "devices"],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return obj;
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=migration_platform_index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration_platform_index.js","sourceRoot":"","sources":["../../../bin/migration/migration_platform_index.ts"],"names":[],"mappings":";;;AACA,yCAAiE;AAEjE,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,mBAAmB,GACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAEvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACzB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;AACJ,CAAC;AACD,sCAAsC;AACtC,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,CAAC;AAEjD,UAAU;AACV,IAAA,6BAAkB,EAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE;IAC1D,MAAM,kBAAkB,GAAG;QACzB,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,gBAAgB;KACjB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,2BAA2B;IAC3B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,GAAG,IAAA,0BAAe,EAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,IAAA,6BAAkB,EAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,2BAA2B;IAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;YACxB,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;aACZ;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/* eslint-disable no-console */
|
|
5
|
+
const utils_js_1 = require("./utils.js");
|
|
6
|
+
const args = {};
|
|
7
|
+
for (let index = 0; index < process.argv.length; index++) {
|
|
8
|
+
const val = process.argv[index];
|
|
9
|
+
if (val.startsWith("--")) {
|
|
10
|
+
const [key, value] = val.replace("--", "").split("=");
|
|
11
|
+
args[key] = value || true;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const pathToTenantIndex = args["tenant-index"] || process.env.TENANT_INDEX;
|
|
15
|
+
const pathToPlatformIndex = args["platform-index"] || process.env.PLATFORM_INDEX;
|
|
16
|
+
const includeSoftTenants = args["with-soft-tenants"] || process.env.WITH_SOFT_TENANTS;
|
|
17
|
+
if (!pathToTenantIndex) {
|
|
18
|
+
throw new Error("TENANT_INDEX env variable or --tenant-index flag is required");
|
|
19
|
+
}
|
|
20
|
+
if (!pathToPlatformIndex) {
|
|
21
|
+
throw new Error("PLATFORM_INDEX env variable or --platform-index is required");
|
|
22
|
+
}
|
|
23
|
+
const linkedDevices = {};
|
|
24
|
+
console.info("MIGRATING " + pathToTenantIndex);
|
|
25
|
+
console.info("WITH_SOFT_TENANTS " + includeSoftTenants);
|
|
26
|
+
// RETRIEVE MEASURESLOTS FROM MODELS
|
|
27
|
+
(0, utils_js_1.retrieveModelMeasureSlots)(pathToPlatformIndex, (models) =>
|
|
28
|
+
// ASSETS
|
|
29
|
+
(0, utils_js_1.transformDocuments)("assets", pathToTenantIndex, (line) => {
|
|
30
|
+
const propertiesToDelete = [
|
|
31
|
+
"measures",
|
|
32
|
+
"linkedDevices",
|
|
33
|
+
"lastMeasuredAt",
|
|
34
|
+
];
|
|
35
|
+
if (!includeSoftTenants) {
|
|
36
|
+
propertiesToDelete.push("softTenant");
|
|
37
|
+
}
|
|
38
|
+
const obj = JSON.parse(line);
|
|
39
|
+
// Check line is a document
|
|
40
|
+
if (obj.body) {
|
|
41
|
+
if (obj.body.groups && obj.body.groups.length) {
|
|
42
|
+
obj.body.groups = obj.body.groups.map((gr) => {
|
|
43
|
+
if (gr.id) {
|
|
44
|
+
return { date: gr.date, path: gr.id };
|
|
45
|
+
}
|
|
46
|
+
return gr;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
obj.body.linkedMeasures = [];
|
|
50
|
+
obj.body.measureSlots = [...models.assets[obj.body.model]];
|
|
51
|
+
if (obj.body.linkedDevices && obj.body.linkedDevices.length) {
|
|
52
|
+
// Fill the obj of linked devices for later device collection migration
|
|
53
|
+
obj.body.linkedMeasures = obj.body.linkedDevices.map((link) => {
|
|
54
|
+
const measureSlots = link.measureNames.map((m) => ({
|
|
55
|
+
asset: m.asset,
|
|
56
|
+
device: m.device,
|
|
57
|
+
}));
|
|
58
|
+
const deviceLink = { assetId: obj._id, measureSlots };
|
|
59
|
+
if (Array.isArray(linkedDevices[link._id])) {
|
|
60
|
+
linkedDevices[link._id].push(deviceLink);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
linkedDevices[link._id] = [deviceLink];
|
|
64
|
+
}
|
|
65
|
+
return { deviceId: link._id, measureSlots };
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
obj.body = (0, utils_js_1.clearProperties)(obj.body, propertiesToDelete);
|
|
69
|
+
}
|
|
70
|
+
return obj;
|
|
71
|
+
}, () => {
|
|
72
|
+
// DEVICES LAUNCHED ONLY AFTER THE ASSET FILE IS DONE TO HAVE ALL THE LINKED DEVICES
|
|
73
|
+
(0, utils_js_1.transformDocuments)("devices", pathToTenantIndex, (line) => {
|
|
74
|
+
const propertiesToDelete = [
|
|
75
|
+
"assetId",
|
|
76
|
+
"measures",
|
|
77
|
+
"linkedDevices",
|
|
78
|
+
"lastMeasuredAt",
|
|
79
|
+
];
|
|
80
|
+
const obj = JSON.parse(line);
|
|
81
|
+
// Check line is a document
|
|
82
|
+
if (obj.body) {
|
|
83
|
+
obj.body.measureSlots = [...models.devices[obj.body.model]];
|
|
84
|
+
if (obj.body.groups && obj.body.groups.length) {
|
|
85
|
+
obj.body.groups = obj.body.groups.map((gr) => {
|
|
86
|
+
if (gr.id) {
|
|
87
|
+
return { date: gr.date, path: gr.id };
|
|
88
|
+
}
|
|
89
|
+
return gr;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
obj.body.linkedMeasures = [];
|
|
93
|
+
if (linkedDevices[obj._id]) {
|
|
94
|
+
// Fill the obj of linked devices for later device collection migration
|
|
95
|
+
obj.body.linkedMeasures = linkedDevices[obj._id];
|
|
96
|
+
}
|
|
97
|
+
obj.body = (0, utils_js_1.clearProperties)(obj.body, propertiesToDelete);
|
|
98
|
+
}
|
|
99
|
+
return obj;
|
|
100
|
+
});
|
|
101
|
+
}));
|
|
102
|
+
// ASSET-HISTORY
|
|
103
|
+
(0, utils_js_1.transformDocuments)("assets-history", pathToTenantIndex, (line) => {
|
|
104
|
+
const propertiesToDelete = ["measures", "linkedDevices", "lastMeasuredAt"];
|
|
105
|
+
if (!includeSoftTenants) {
|
|
106
|
+
propertiesToDelete.push("softTenant");
|
|
107
|
+
}
|
|
108
|
+
const obj = JSON.parse(line);
|
|
109
|
+
// Check line is a document
|
|
110
|
+
if (obj.body) {
|
|
111
|
+
const asset = obj.body.asset;
|
|
112
|
+
if (asset) {
|
|
113
|
+
if (asset.groups && asset.groups.length) {
|
|
114
|
+
asset.groups = asset.groups.map((gr) => {
|
|
115
|
+
if (gr.id) {
|
|
116
|
+
return { date: gr.date, path: gr.id };
|
|
117
|
+
}
|
|
118
|
+
return gr;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
asset.linkedMeasures = [];
|
|
122
|
+
if (asset.linkedDevices && asset.linkedDevices.length) {
|
|
123
|
+
// Fill the obj of linked devices for later device collection migration
|
|
124
|
+
asset.linkedMeasures = asset.linkedDevices.map((d) => {
|
|
125
|
+
const measureSlots = d.measureNames.map((m) => ({
|
|
126
|
+
asset: m.asset,
|
|
127
|
+
device: m.device,
|
|
128
|
+
}));
|
|
129
|
+
return { deviceId: d._id, measureSlots };
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
obj.body.asset = (0, utils_js_1.clearProperties)(asset, propertiesToDelete);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return obj;
|
|
136
|
+
});
|
|
137
|
+
// GROUPS
|
|
138
|
+
(0, utils_js_1.transformDocuments)("assets-groups", pathToTenantIndex, (line) => {
|
|
139
|
+
const propertiesToDelete = ["parent", "children"];
|
|
140
|
+
const obj = JSON.parse(line);
|
|
141
|
+
// Check line is a document
|
|
142
|
+
if (obj.body) {
|
|
143
|
+
if (obj.body.parent) {
|
|
144
|
+
obj.body.path = obj.body.parent + "." + obj._id;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
obj.body.path = obj._id;
|
|
148
|
+
}
|
|
149
|
+
if (linkedDevices[obj._id]) {
|
|
150
|
+
// Fill the obj of linked devices for later device collection migration
|
|
151
|
+
obj.body.linkedMeasures = linkedDevices[obj._id];
|
|
152
|
+
}
|
|
153
|
+
obj.body = (0, utils_js_1.clearProperties)(obj.body, propertiesToDelete);
|
|
154
|
+
}
|
|
155
|
+
else if (obj.collection === "assets-groups") {
|
|
156
|
+
obj.collection = "groups";
|
|
157
|
+
}
|
|
158
|
+
return obj;
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=migration_tenant_index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration_tenant_index.js","sourceRoot":"","sources":["../../../bin/migration/migration_tenant_index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { JSONObject } from "kuzzle-sdk";
|
|
2
|
+
export declare function transformDocuments(collection: string, indexPath: string, callBack: (string: any) => JSONObject, endCallBack?: () => void): void;
|
|
3
|
+
export declare function clearProperties(obj: any, properties: any): {};
|
|
4
|
+
export interface ModelRegistry {
|
|
5
|
+
assets: {
|
|
6
|
+
[key: string]: {
|
|
7
|
+
type: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}[];
|
|
10
|
+
};
|
|
11
|
+
devices: {
|
|
12
|
+
[key: string]: {
|
|
13
|
+
type: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare function retrieveModelMeasureSlots(pathToPlatformIndex: string, callBack: (models: ModelRegistry) => void): void;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.retrieveModelMeasureSlots = exports.clearProperties = exports.transformDocuments = void 0;
|
|
7
|
+
/* eslint-disable no-console */
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const readline_1 = require("readline");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const fileName = "documents.jsonl"; // Fichier d'entrée
|
|
12
|
+
const tempFileName = "temp-" + fileName;
|
|
13
|
+
function transformDocuments(collection, indexPath, callBack, endCallBack) {
|
|
14
|
+
let error;
|
|
15
|
+
const inputFilePath = path_1.default.join(indexPath, collection, fileName);
|
|
16
|
+
const tempFilePath = path_1.default.join(indexPath, collection, tempFileName);
|
|
17
|
+
if (!(0, fs_1.existsSync)(inputFilePath)) {
|
|
18
|
+
console.error("THE FILE DOESN'T EXIST at " + inputFilePath);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const readStream = (0, fs_1.createReadStream)(inputFilePath);
|
|
22
|
+
const writeStream = (0, fs_1.createWriteStream)(tempFilePath);
|
|
23
|
+
const rl = (0, readline_1.createInterface)({
|
|
24
|
+
input: readStream,
|
|
25
|
+
});
|
|
26
|
+
rl.on("line", (line) => {
|
|
27
|
+
try {
|
|
28
|
+
const doc = callBack(line);
|
|
29
|
+
writeStream.write(JSON.stringify(doc) + "\n");
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
console.error("Error in " + collection);
|
|
33
|
+
console.error(err);
|
|
34
|
+
error = true;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
rl.on("close", () => {
|
|
38
|
+
if (error) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (endCallBack) {
|
|
42
|
+
endCallBack();
|
|
43
|
+
}
|
|
44
|
+
writeStream.end(() => {
|
|
45
|
+
// Remplace l'ancien fichier par le nouveau
|
|
46
|
+
(0, fs_1.rename)(tempFilePath, inputFilePath, (err) => {
|
|
47
|
+
if (err) {
|
|
48
|
+
console.error("Erreur lors du remplacement du fichier : " + collection, err);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.error("Fichier mis à jour avec succès");
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
exports.transformDocuments = transformDocuments;
|
|
58
|
+
function clearProperties(obj, properties) {
|
|
59
|
+
return Object.keys(obj)
|
|
60
|
+
.filter((key) => !properties.includes(key))
|
|
61
|
+
.reduce((acc, key) => {
|
|
62
|
+
acc[key] = obj[key];
|
|
63
|
+
return acc;
|
|
64
|
+
}, {});
|
|
65
|
+
}
|
|
66
|
+
exports.clearProperties = clearProperties;
|
|
67
|
+
function retrieveModelMeasureSlots(pathToPlatformIndex, callBack) {
|
|
68
|
+
const modelsPath = path_1.default.join(pathToPlatformIndex, "models", fileName);
|
|
69
|
+
const readStream = (0, fs_1.createReadStream)(modelsPath);
|
|
70
|
+
const rl = (0, readline_1.createInterface)({
|
|
71
|
+
input: readStream,
|
|
72
|
+
});
|
|
73
|
+
const models = { assets: {}, devices: {} };
|
|
74
|
+
rl.on("line", (line) => {
|
|
75
|
+
try {
|
|
76
|
+
const obj = JSON.parse(line);
|
|
77
|
+
if (obj.body?.asset?.measures) {
|
|
78
|
+
const model = obj.body.asset.model;
|
|
79
|
+
models.assets[model] = [];
|
|
80
|
+
models.assets[model].push(...obj.body.asset.measures);
|
|
81
|
+
}
|
|
82
|
+
else if (obj.body?.device?.measures) {
|
|
83
|
+
const model = obj.body.device.model;
|
|
84
|
+
models.devices[model] = [];
|
|
85
|
+
models.devices[model].push(...obj.body.device.measures);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
console.error(err);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
rl.on("close", () => {
|
|
93
|
+
callBack(models);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exports.retrieveModelMeasureSlots = retrieveModelMeasureSlots;
|
|
97
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../bin/migration/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -21,4 +21,5 @@ __exportStar(require("./lib/modules/measure/exports"), exports);
|
|
|
21
21
|
__exportStar(require("./lib/modules/decoder/exports"), exports);
|
|
22
22
|
__exportStar(require("./lib/modules/shared/exports"), exports);
|
|
23
23
|
__exportStar(require("./lib/modules/model/exports"), exports);
|
|
24
|
+
__exportStar(require("./lib/modules/group/exports"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAE7C,8DAA4C;AAE5C,+DAA6C;AAE7C,gEAA8C;AAE9C,gEAA8C;AAE9C,+DAA6C;AAE7C,8DAA4C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAE7C,8DAA4C;AAE5C,+DAA6C;AAE7C,gEAA8C;AAE9C,gEAA8C;AAE9C,+DAA6C;AAE7C,8DAA4C;AAE5C,8DAA4C"}
|
|
@@ -28,22 +28,14 @@ const Module_1 = require("../shared/Module");
|
|
|
28
28
|
const AssetHistoryService_1 = require("./AssetHistoryService");
|
|
29
29
|
const AssetsController_1 = require("./AssetsController");
|
|
30
30
|
const AssetService_1 = require("./AssetService");
|
|
31
|
-
const AssetsGroupsController_1 = require("./AssetsGroupsController");
|
|
32
31
|
const RoleAssetsAdmin_1 = require("./roles/RoleAssetsAdmin");
|
|
33
32
|
const RoleAssetsReader_1 = require("./roles/RoleAssetsReader");
|
|
34
|
-
const RoleAssetsGroupsAdmin_1 = require("./roles/RoleAssetsGroupsAdmin");
|
|
35
|
-
const RoleAssetsGroupsReader_1 = require("./roles/RoleAssetsGroupsReader");
|
|
36
33
|
const specificRoles = __importStar(require("./roles/specificRoles"));
|
|
37
|
-
const AssetsGroupsService_1 = require("./AssetsGroupsService");
|
|
38
34
|
class AssetModule extends Module_1.Module {
|
|
39
35
|
async init() {
|
|
40
36
|
this.assetHistoryService = new AssetHistoryService_1.AssetHistoryService(this.plugin);
|
|
41
37
|
this.assetService = new AssetService_1.AssetService(this.plugin, this.assetHistoryService);
|
|
42
38
|
this.assetController = new AssetsController_1.AssetsController(this.plugin, this.assetService);
|
|
43
|
-
this.assetsGroupsService = new AssetsGroupsService_1.AssetsGroupsService(this.plugin);
|
|
44
|
-
this.assetGroupsController = new AssetsGroupsController_1.AssetsGroupsController(this.plugin, this.assetsGroupsService);
|
|
45
|
-
this.plugin.api["device-manager/assetsGroup"] =
|
|
46
|
-
this.assetGroupsController.definition;
|
|
47
39
|
this.plugin.api["device-manager/assets"] = this.assetController.definition;
|
|
48
40
|
this.plugin.imports.roles[RoleAssetsAdmin_1.RoleAssetsAdmin.name] =
|
|
49
41
|
RoleAssetsAdmin_1.RoleAssetsAdmin.definition;
|
|
@@ -55,10 +47,6 @@ class AssetModule extends Module_1.Module {
|
|
|
55
47
|
specificRoles[role].definition;
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
|
-
this.plugin.imports.roles[RoleAssetsGroupsAdmin_1.RoleAssetsGroupsAdmin.name] =
|
|
59
|
-
RoleAssetsGroupsAdmin_1.RoleAssetsGroupsAdmin.definition;
|
|
60
|
-
this.plugin.imports.roles[RoleAssetsGroupsReader_1.RoleAssetsGroupsReader.name] =
|
|
61
|
-
RoleAssetsGroupsReader_1.RoleAssetsGroupsReader.definition;
|
|
62
50
|
}
|
|
63
51
|
}
|
|
64
52
|
exports.AssetModule = AssetModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetModule.js","sourceRoot":"","sources":["../../../../lib/modules/asset/AssetModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAE1C,+DAA4D;AAC5D,yDAAsD;AACtD,iDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"AssetModule.js","sourceRoot":"","sources":["../../../../lib/modules/asset/AssetModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAE1C,+DAA4D;AAC5D,yDAAsD;AACtD,iDAA8C;AAC9C,6DAA0D;AAC1D,+DAA4D;AAC5D,qEAAuD;AAEvD,MAAa,WAAY,SAAQ,eAAM;IAK9B,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,eAAe,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAe,CAAC,IAAI,CAAC;YAC7C,iCAAe,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAgB,CAAC,IAAI,CAAC;YAC9C,mCAAgB,CAAC,UAAU,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBACjD,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAvBD,kCAuBC"}
|
|
@@ -32,7 +32,7 @@ export declare class AssetService extends DigitalTwinService {
|
|
|
32
32
|
*/
|
|
33
33
|
delete(engineId: string, assetId: string, request: KuzzleRequest): Promise<void>;
|
|
34
34
|
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<AssetContent>>>;
|
|
35
|
-
migrateTenant(user: User, assetsList: string[], engineId: string, newEngineId: string): Promise<ApiAssetMigrateTenantResult>;
|
|
35
|
+
migrateTenant(user: User, assetsList: string[], engineId: string, newEngineId: string, includeDevices: boolean, request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
36
36
|
/**
|
|
37
37
|
* Replace an asset metadata
|
|
38
38
|
*/
|
|
@@ -46,6 +46,5 @@ export declare class AssetService extends DigitalTwinService {
|
|
|
46
46
|
* @param model
|
|
47
47
|
*/
|
|
48
48
|
updateModelLocales(request: KuzzleRequest, model: string): Promise<ApiAssetUpdateModelLocales[]>;
|
|
49
|
-
private getEngine;
|
|
50
49
|
private refreshModel;
|
|
51
50
|
}
|
|
@@ -153,22 +153,16 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
153
153
|
for (const [metadataName, metadataValue] of Object.entries(assetModel.asset.defaultMetadata)) {
|
|
154
154
|
lodash_1.default.set(assetMetadata, metadataName, metadataValue);
|
|
155
155
|
}
|
|
156
|
-
const measures = {};
|
|
157
|
-
for (const { name } of assetModel.asset.measures) {
|
|
158
|
-
measures[name] = null;
|
|
159
|
-
}
|
|
160
156
|
const asset = await this.createDocument(request, {
|
|
161
157
|
_id: assetId,
|
|
162
158
|
_source: {
|
|
163
159
|
groups: [],
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
measures,
|
|
160
|
+
linkedMeasures: [],
|
|
161
|
+
measureSlots: assetModel.asset.measures,
|
|
167
162
|
metadata: { ...assetMetadata, ...metadata },
|
|
168
163
|
model,
|
|
169
164
|
modelLocales: assetModel.asset.locales,
|
|
170
165
|
reference,
|
|
171
|
-
softTenant: [],
|
|
172
166
|
},
|
|
173
167
|
}, {
|
|
174
168
|
collection: plugin_1.InternalCollection.ASSETS,
|
|
@@ -200,15 +194,14 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
200
194
|
* Delete an asset metadata
|
|
201
195
|
*/
|
|
202
196
|
async delete(engineId, assetId, request) {
|
|
203
|
-
const user = request.getUser();
|
|
204
197
|
const strict = request.getBoolean("strict");
|
|
205
198
|
return (0, shared_1.lock)(`asset:${engineId}:${assetId}`, async () => {
|
|
206
199
|
const asset = await this.get(engineId, assetId, request);
|
|
207
|
-
if (strict && asset._source.
|
|
200
|
+
if (strict && asset._source.linkedMeasures.length !== 0) {
|
|
208
201
|
throw new kuzzle_1.BadRequestError(`Asset "${assetId}" is still linked to devices.`);
|
|
209
202
|
}
|
|
210
|
-
for (const {
|
|
211
|
-
await (
|
|
203
|
+
for (const { deviceId } of asset._source.linkedMeasures) {
|
|
204
|
+
await this.unlinkAssetDevice(deviceId, assetId, [], true, request);
|
|
212
205
|
}
|
|
213
206
|
await this.deleteDocument(request, assetId, {
|
|
214
207
|
collection: plugin_1.InternalCollection.ASSETS,
|
|
@@ -222,7 +215,7 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
222
215
|
engineId,
|
|
223
216
|
});
|
|
224
217
|
}
|
|
225
|
-
async migrateTenant(user, assetsList, engineId, newEngineId) {
|
|
218
|
+
async migrateTenant(user, assetsList, engineId, newEngineId, includeDevices, request) {
|
|
226
219
|
let errors = [];
|
|
227
220
|
let successes = [];
|
|
228
221
|
//Sanity check
|
|
@@ -263,7 +256,7 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
263
256
|
//We want to create the new asset with linked devices and groups empty
|
|
264
257
|
const assetsContentCopy = lodash_1.default.cloneDeep(assetsContent);
|
|
265
258
|
for (const asset of assetsContentCopy) {
|
|
266
|
-
asset.body.
|
|
259
|
+
asset.body.linkedMeasures = [];
|
|
267
260
|
asset.body.groups = [];
|
|
268
261
|
}
|
|
269
262
|
//Even if they exist in the destination tenant, try creating them all
|
|
@@ -281,27 +274,23 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
281
274
|
//because we reset them when we create the asset
|
|
282
275
|
const assetOriginal = assets.successes.find((a) => a._id === asset._id);
|
|
283
276
|
// get linked devices to this asset, if any
|
|
284
|
-
const
|
|
285
|
-
_id: d._id,
|
|
286
|
-
measureNames: d.measureNames,
|
|
287
|
-
}));
|
|
277
|
+
const linkedMeasures = assetOriginal._source.linkedMeasures;
|
|
288
278
|
// ... and iterate over this list
|
|
289
|
-
for (const
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
});
|
|
279
|
+
for (const link of linkedMeasures) {
|
|
280
|
+
if (includeDevices === true) {
|
|
281
|
+
// detach linked devices from current tenant (it also unkinks asset)
|
|
282
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:device:detach-engine", { deviceId: link.deviceId, user });
|
|
283
|
+
// ... and attach to new tenant
|
|
284
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:device:attach-engine", { deviceId: link.deviceId, engineId: newEngineId, user });
|
|
285
|
+
// ... and link this device to the asset in the new tenant
|
|
286
|
+
await this.linkAssetDevice(newEngineId, link.deviceId, asset._id, link.measureSlots, false, request);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
await this.unlinkAssetDevice(link.deviceId, asset._id, link.measureSlots, false, request);
|
|
290
|
+
}
|
|
302
291
|
}
|
|
303
292
|
}
|
|
304
|
-
// Finally here, we can delete the
|
|
293
|
+
// Finally here, we can delete the successefully migrated assets from the source engine !
|
|
305
294
|
await this.sdk.document.mDelete(engineId, plugin_1.InternalCollection.ASSETS, assetsCreatedId);
|
|
306
295
|
//Refresh ES indexes and collections
|
|
307
296
|
const collectionsToRefresh = [
|
|
@@ -323,7 +312,7 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
323
312
|
},
|
|
324
313
|
{
|
|
325
314
|
collection: plugin_1.InternalCollection.DEVICES,
|
|
326
|
-
index: this.config.
|
|
315
|
+
index: this.config.platformIndex,
|
|
327
316
|
},
|
|
328
317
|
].map(({ index, collection }) => {
|
|
329
318
|
return this.sdk.collection.refresh(index, collection);
|
|
@@ -358,7 +347,7 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
358
347
|
* @param model
|
|
359
348
|
*/
|
|
360
349
|
async updateModelLocales(request, model) {
|
|
361
|
-
const res = await this.sdk.document.search(this.config.
|
|
350
|
+
const res = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, {
|
|
362
351
|
query: {
|
|
363
352
|
bool: {
|
|
364
353
|
must: [
|
|
@@ -406,10 +395,6 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
406
395
|
}
|
|
407
396
|
return results;
|
|
408
397
|
}
|
|
409
|
-
async getEngine(engineId) {
|
|
410
|
-
const engine = await this.sdk.document.get(this.config.adminIndex, plugin_1.InternalCollection.CONFIG, `engine-device-manager--${engineId}`);
|
|
411
|
-
return engine._source.engine;
|
|
412
|
-
}
|
|
413
398
|
async refreshModel({ assetModel, }) {
|
|
414
399
|
// For engine group 'commons', fetch all engines
|
|
415
400
|
const engines = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:list", {
|
|
@@ -448,6 +433,7 @@ class AssetService extends shared_1.DigitalTwinService {
|
|
|
448
433
|
...modelMetadata,
|
|
449
434
|
...assetMetadata,
|
|
450
435
|
};
|
|
436
|
+
asset._source.measureSlots = assetModel.asset.measures;
|
|
451
437
|
acc[asset.index].push(asset);
|
|
452
438
|
return acc;
|
|
453
439
|
}, Object.fromEntries(engines.map((engine) => [
|