@balena/open-balena-api 29.1.4-build-service-install-as-async-job-f5409128a85ecd09407a085344cf3f35cb32c58e-1 → 29.1.4-build-service-install-as-async-job-f019054744cabf0b6538536050c4e713559ae124-1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  import { tasks, sbvrUtils, permissions } from '@balena/pinejs';
2
+ import _ from 'lodash';
2
3
  import { randomUUID } from 'node:crypto';
3
4
  const schema = {
4
5
  type: 'object',
@@ -110,53 +111,49 @@ const createServiceInstalls = async ({ devices, }) => {
110
111
  });
111
112
  // hmmm should we really go one device at a time or Promise.all?
112
113
  // This is already batched at one level, does it make sense to batch it again?
113
- const tx = await sbvrUtils.db.transaction();
114
114
  const remainingDevices = new Set(devices);
115
115
  let totalSiCreated = 0;
116
- for (const device of devicesToAddServiceInstalls) {
117
- // TODO maybe we need to do a improved diff here?
118
- // e.g keep the mean device time and this become
119
- // if (Date.now() - startTime > MAX_JOB_TIME_MS - meanDeviceTime)
120
- // but I am probably overthinking it
121
- if (Date.now() - startTime > MAX_JOB_TIME_MS) {
122
- // TODO: better error handling
123
- await api.tasks.post({
124
- resource: 'task',
125
- passthrough: { req: permissions.root, tx },
126
- body: {
127
- key: randomUUID(),
128
- is_executed_by__handler: 'create_service_installs',
129
- is_executed_with__parameter_set: {
130
- devices: Array.from(remainingDevices),
116
+ return await sbvrUtils.db.transaction(async (tx) => {
117
+ for (const device of devicesToAddServiceInstalls) {
118
+ // TODO maybe we need to do a improved diff here?
119
+ // e.g keep the mean device time and this become
120
+ // if (Date.now() - startTime > MAX_JOB_TIME_MS - meanDeviceTime)
121
+ // but I am probably overthinking it
122
+ if (Date.now() - startTime > MAX_JOB_TIME_MS) {
123
+ // TODO: better error handling
124
+ await api.tasks.post({
125
+ resource: 'task',
126
+ passthrough: { req: permissions.root, tx },
127
+ body: {
128
+ key: randomUUID(),
129
+ is_executed_by__handler: 'create_service_installs',
130
+ is_executed_with__parameter_set: {
131
+ devices: Array.from(remainingDevices),
132
+ },
131
133
  },
132
- },
133
- });
134
- await tx.end();
135
- console.info('[service-install-task] Task took too long. Created a new task for the remaining devices');
136
- return totalSiCreated;
134
+ });
135
+ console.info('[service-install-task] Task took too long. Created a new task for the remaining devices');
136
+ return totalSiCreated;
137
+ }
138
+ // Use existingServiceIds as a Set for faster lookups on the follow up filter
139
+ const existingServiceIds = device.service_install.map((si) => si.installs__service.__id);
140
+ const deviceServiceIds = _.difference(serviceIds, existingServiceIds);
141
+ await Promise.all(deviceServiceIds.map(async (serviceId) => {
142
+ // Create a service_install for this pair of service and device
143
+ await api.resin.post({
144
+ resource: 'service_install',
145
+ passthrough: { req: permissions.root, tx },
146
+ body: {
147
+ device: device.id,
148
+ installs__service: serviceId,
149
+ },
150
+ options: { returnResource: false },
151
+ });
152
+ }));
153
+ totalSiCreated += deviceServiceIds.length;
154
+ remainingDevices.delete(device.id);
137
155
  }
138
- // Use existingServiceIds as a Set for faster lookups on the follow up filter
139
- const existingServiceIds = new Set(device.service_install.map((si) => si.installs__service.__id));
140
- const deviceServiceIds = serviceIds.filter((sid) => !existingServiceIds.has(sid));
141
- // TODO, we need to handle in case it fails.
142
- // Maybe something smart is that if a specific device fails
143
- // we create a new task with only the failures
144
- await Promise.all(deviceServiceIds.map(async (serviceId) => {
145
- // Create a service_install for this pair of service and device
146
- await api.resin.post({
147
- resource: 'service_install',
148
- passthrough: { req: permissions.root, tx },
149
- body: {
150
- device: device.id,
151
- installs__service: serviceId,
152
- },
153
- options: { returnResource: false },
154
- });
155
- }));
156
- totalSiCreated += deviceServiceIds.length;
157
- remainingDevices.delete(device.id);
158
- }
159
- await tx.end();
160
- return totalSiCreated;
156
+ return totalSiCreated;
157
+ });
161
158
  };
162
159
  //# sourceMappingURL=service-installs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-installs.js","sourceRoot":"","sources":["../../../../src/features/ci-cd/tasks/service-installs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-installs.js","sourceRoot":"","sources":["../../../../src/features/ci-cd/tasks/service-installs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@balena/open-balena-api",
3
3
  "description": "Internet of things, Made Simple",
4
- "version": "29.1.4-build-service-install-as-async-job-f5409128a85ecd09407a085344cf3f35cb32c58e-1",
4
+ "version": "29.1.4-build-service-install-as-async-job-f019054744cabf0b6538536050c4e713559ae124-1",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -168,6 +168,6 @@
168
168
  "loader": "ts-node/esm/transpile-only"
169
169
  },
170
170
  "versionist": {
171
- "publishedAt": "2024-10-14T10:28:06.012Z"
171
+ "publishedAt": "2024-10-14T13:13:34.423Z"
172
172
  }
173
173
  }